2014年11月28日金曜日

OpenCV 3.0.0betaのデータセットモジュールに関して

最新版のドキュメントはここ

OpenCV 3.0.0では、新たにdatasets moduleが作られ各種データセットを読み込み評価できるようになっている

計画では、
・基本 データの読み込み
・次段階 評価用コードを作成し、アルゴリズムのベンチマークができるようにする
・最終 各タスクの解決ができる最新技術を実装

データセット
ドキュメントでは各データセットへのリンクがはられている

Action Recognition
 HMDB: A Large Human Motion Database [1]
 Sports-1M Dataset

Face Recognition
 Adience
 Labeled Faces in the Wild [1]

Gesture Recognition
 ChaLearn Looking at People
 Sheffield Kinect Gesture Dataset

Human Pose Estimation
 HumanEva Dataset
 PARSE Dataset

Image Registration
 Affine Covariant Regions Datasets
 Robot Data Set

Image Segmentation
 The Berkeley Segmentation Dataset and Benchmark
 Weizmann Segmentation Evaluation Database

Multiview Stereo Matching
 EPFL Multi-View Stereo
 Stereo – Middlebury Computer Vision

Object Recognition
 ImageNet
 MNIST [2]
 SUN Database

Pedestrian Detection
 Caltech Pedestrian Detection Benchmark [2]

SLAM
 KITTI Vision Benchmark
 TUMindoor Dataset

Text Recognition
 The Chars74K Dataset
 The Street View Text Dataset [1]

[1] (1, 2, 3) Benchmark implemented
[2] (1, 2) Not used in Vision Challenge

2014年11月26日水曜日

OpenCV TIPS

現在共有ライブラリーで有効なOpenCVのバージョンを表示する


 pkg-config --modversion opencv


パイソンでOpenCVをインストールした時に有効なバージョンを表示する

print cv2.__version__

OpenCV 3.0.0 betaをubuntuのpythonで使用する (2)


OpenCVを、ubuntu 14.04 64bit上のpythonで使用できるようにする。
OpenCVのバージョンは、 3.0.0betaである。

注意
3.0.0betaには、不具合があり、cv2.soがビルドできる場合とできない場合がある
今回は、ハマりどころの回避策である

準備
2.4.10と同じ

ビルド
2.4.10と異なり、最初のcmakeを行うときに、すべてのパラメータを指定する必要がある

cmake -DCMAKE_BUILD_TYPE=RELEASE -DWITH_OPENCL=off -DWITH_1394=off -DBUILD_TESTS=off -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DWITH_CUDA=OFF -DWITH_CUFFT=OFF -DWITH_GIGEAPI=OFF ..

一旦cmakeによりmake用のファイルを作成後に、ccmake等で修正を行うとうまく行かないことが確認された

問題の箇所は、下記のようにライブラリのpathが設定されなくなる。

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
--     Libraries:                   NO
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python2.7/dist-packages

このメッセージは、cmakeの時しか表示されないので、あとで確認するには、
version_string.tmpをみればよい

2014年11月25日火曜日

OpenCVをubuntuのpythonで使用する (1)


OpenCVを、ubuntu 14.04 64bit上のpythonで使用できるようにする。
OpenCVのバージョンは、 2.4.10である。

準備
ubuntuには、あらかじめpythonが使用できるようになっているが、OpenCVをビルドする前に

sudo apt-get install python-dev python-numpy

を行う必要がある

ビルド
OpenCVをビルドする時に、ccmakeを使用し

BUILD_opencv_python が onであることを確認

また、

PYTHON_NUMPY_INCLUDE_DIR 
/usr/lib/python2.7/dist-packages/numpy/core/include が

PYTHON_PACKAGES_PATH 
lib/python2.7/dist-packages

が設定されることを確認する

あとはmake終了後に

sudo make installで

pythonのライブラリ /usr/local/lib/python2.7/dist-packages/cv2.so が
インストールされている。

確認
pythonを起動し
import cv2が成功すれば良い

2014年11月24日月曜日

OpenCV 3.0.0betaのサンプルデータ

これまで、sample言語ごとのフォルダーに分散していた画像やビデオが、3.0.0のベータでは、samples\dataのフォルダーにまとめられている。

画像一覧


ステレオ画像のtsukubaが消えている。

2014年11月20日木曜日

OpenCV 3.0.0 のContribのモジュールが増えている

前のdatasetsモジュールもそうであるが、アルファのリリース時から少しずつ、contribの内容も増えている。
最近ようやく、モジュールの簡単な説明もつくようになった。

説明は、ここで見ることができる

ソースは今も増えており、現時点では、モジュール説明にないlatentsvmも含まれている。

latentsvmは学習ツールを期待したが、残念ながら提供されていない。
VOC2007のカスケードデータは、テスト用に添付されている。

追記
よく見るとモジュール説明のページではなく、cmake時に特定のモジュールをビルドしないようするための説明のページであった。

OpenCV 3.0.0の新機能を試してみた (2)

昨日からコンテストが開始されたが、コンテストに使用するデータは指定されている。
OpenCVでは、指定のデータを扱えるように、3.0のcontribのモジュールにdatasetsが準備されている。

説明は、ここ

とあるデータを試してみたく、そのうちの1つを試してみたが、残念ながらエラーが生じうまくいかなかった。
使い方の説明も少なく、使用方法がわるいのか、OpenCV側が悪いのかいまひとつ切り分けができていない。

ソースもあるので解析もやる気があればできるが、そこまでの気力がないので、しばらく様子を見ることとする。

OpenCV Vision Challengeが開始された

ようやく公式からアナウンスがあり、受付が開始されました。

DARPAとIntelの支援を受け、最新技術のOpenCVのライブラリ拡張のためにchallengeを開始する
賞金$5万は、11のカテゴリの勝者に分配される。
(1) image segmentation
(2) image registration
(3) human pose estimation
(4) SLAM
(5) multi-view stereo matching
(6) object recognition
(7) face recognition
(8) gesture recognition
(9) action recognition
(10) text recognition
(11) tracking.

条件
5人までの優勝者を選定する。参加者は、オリジナルのアルゴリズム、あるいは、他人のアルゴリズムを実装したものでも参加できる
参加するカテゴリを選択する。
カテゴリで優勝すれば賞金$1000を手にする
さらに$7.5kから$9Kまで得るためには、あなたのソースを、BSDライセンスでOpenCVのpull requestを行う必要がある
あなたのコピーライトとともにあなたの貢献は、OpenCVに取り入られる

CVPR 2015やそのWorkShopに提出するコードでもよい、われわれは、CVPRまで公開しない。

勝者と賞品は、委員会の裁量で決められる

期限

参加期間 今から2105/5/8
発表 CVPR 2015の2015/6/8

詳細は以下に
http://code.opencv.org/projects/opencv/wiki/VisionChallenge
http://code.opencv.org/attachments/1672/OpenCVVisionChallenge.pdf

2014年11月18日火曜日

OpenCV 3.0 beta で SIFTを動かした

OpenCV 3.0 では、SIFTはmainから、contribに移され、APIも見直しされている。

アルファ版の記事はここ

contribは開発中なので今後も変更される可能性がある。すでにSIFTも修正されアルファ版のソースではエラーとなってしまった。

3.0 の最新のSIFTの説明は、ここで見れるが、残念ながらalphaの内容と変わらない


SIFTのサンプルを探してみたが、SIFT関連のサンプルが準備されていない。前回と同様にソースを見てみたがうまくいかなかった。
変わりにSURFのサンプルがあったので、それを参考にソースの修正を行うことで動作した。

ベータ版でのSIFTのサンプルコードは、以下のようになる

// main用
#include <opencv2/opencv.hpp>
//
// contribは個別に指定
//
#include <opencv2/xfeatures2d.hpp>

int main( int argc, char** argv )
{
 cv::Mat image, gimage;
 std::string fname = "./opencv/samples/cpp/baboon.jpg";

 cv::Ptr<cv::Feature2D> detector = cv::xfeatures2d::SIFT::create();
 std::vector<cv::KeyPoint> keypoints;

 image = cv::imread(fname);

 cv::cvtColor(image, gimage, cv::COLOR_BGR2GRAY);

 detector->detect(gimage, keypoints);

 cv::drawKeypoints(image, keypoints, image);

 cv::imshow( "sift image", image );

 cv::waitKey(0);

 return 0;
}

以上

2014年11月17日月曜日

OpenCV 3.0 betaの開発環境をWindows7 64bit版に、Visual Studio Community 2013を使用し構築した


検索などでこのページを訪れる人が、数は少ないけど、コンスタントにいる。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。

2.4.10までは、OpenGL、OpenNI、CUDAを使用しなければ、ダウンロードしたファイルを展開し、設定すれば使用できたが、今回は自分でビルドする必要がある

以下は、Windows7 64bit版上で、Visual Studio Community 2013を使用しOpenCVでプログラムを開発するための環境作成を行う。

1 ソースの取得

ここに移動し、opencv-3.0.0-beta.exeをダウンロードする

ダウンロードサイズは363M、展開すると3.6Gになる
展開したフォルダーは、ソース sourcesとビルド buildに分かれている

buildには、staticなライブラリは準備されているが、共有ライブラリが準備されていないので、自分でビルドしないといけない

先ほど展開したc:\の直下に移動させ、フォルダー名をopencv30bに変更する
また、opencv30bの下に作業用のworkのフォルダーを作成する

2 cmakeの準備と設定

OpenCVのビルドに、cmakeが必要なのでここからVer. 3.0.2のZIP版をダウンロードする

ダウンロードし、zipの展開後に、bin\cmake-gui.exeを起動する

opencvのソースの場所を指定する。
バイナリは、先ほど作成したworkを指定する。

Configureボタンを押下すると、コンパイラの選択ダイアログが表示されるので、Visual staudio 12 2013 Win64を選択する。

Configureが成功し、画面上部にオプションの選択画面が表示される。最初は、赤く表示されるが気にする必要はない

自分の環境にあったオプションを選択する。今回は、1394やcudaやtestを外している。
再度Configureを押し、設定もれがないか確認する。

選択が終わったら、Generateのボタンを押下する。
作業が完了すると、WorkフォルダーにVisualStudio 2013用のプロジェクト一式ができている

3 プロジェクトのビルド
workフォルダーのOpenCV.slnをダブルクリックする
visual studio 2013が起動する。

Solution configrationをリリースに変更しビルドを開始する。マシンの性能に依存するが、約10分で完了する。

4 インストールファイルの作成
Solution explorerのCmakeTargetsのINSTALLを選択し、右クリックでbuildを指示する。



Solution configrationをデバッグに変更し、プロジェクトのビルドと、INSTALLを行う。


プログラム開発に必要なファイルは、C:\opencv30b\work\installに一式準備される。
この後、OSにpathの設定と3.00のプロパティファイルを作成する。

環境構築2に続く

以上

2014年11月11日火曜日

OpenCV 3.0.0 betaをubuntu 14.04 64bitでビルドした (2)

検索などでこのページを訪れる人が、数は少ないけど、コンスタントにいる。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。

今回は、main + contribをビルドする

mainのみとの差分を記す

  • opencv300bに移動する
  • contribをgitで取得
git clone https://github.com/Itseez/opencv_contrib.git
   取得できるとopencv_contribのフォルダーが作成されている
  • 作業フォルダーを作成 mkdir buildcontrib
 別途作業フォルダーを作成することにより、環境を切り分けることができるが、ディスクの使用量が増える
  • 作業フォルダーに移動 cd buildcontrib
  • cmake .. で一旦makefileを作成する
  • ccmake .でオプションを設定する
  • OPENCV_EXTRA_MODULES_PATHに ~/opencv300b/opencv_contrib/modulesを設定
  • configureすることで、contribのモジュールの選択ができる
          文字認識用のtesseractのライブラリーなどの指定が必要になる
  • generate実行後終了する
  • make -j4
  • sudo make install
  • sudo ldconfig

以上

OpenCV 3.0.0 betaをubuntu 14.04 64bitでビルドした

検索などでこのページを訪れる人が、数は少ないけど、コンスタントにいる。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。
 
今回は、contribを含まないmainのみ

linuxのソースはここからzipでダウンロードする

  •     ダウンロードしたzipファイルを展開し、フォルダー名をopencv300bに変更する
  •     先ほど展開したフォルダーをhomeの下に移動させる
  •     opencv300bに移動し、作業フォルダーを作成
  •     作業フォルダーに移動
  •     cmakeで一旦makefileを作成する cmake ..
ccmake .でオプションを設定する
    設定後一旦、configureを行い、genarateする
  •     make -j4
  •     sudo make install
  •     sudo ldconfig


make install のあとにldconfigを行わないと、共有ライブラリが更新されず、コアダンプを起こす
また、ldconfigを行うと、以前のopencvの共有ライブラリが使用できなくなるので注意

デフォルトのインストール先は/usr/localである。変更する場合は、ccmakeでインストール先を変更する

以上

OpenCV 3.0.0 betaがリリースされた

ホームでのアナウンスはないが、ひっそりと3.0.0のベータがリリースされている。
少しの時間差で公式にアナウンスがありました

winodws版はここ、iOS版はここ、Unix版はここから取得できる


3.0alphaからの変更点が、ここに公開されている


OpnCL
Intel Iris あるいは Iris Proのグラフィックスカードで
Canny edge detector, Laplacian, StereoBM, BruteForceMatcher, BackgroundSubtractorMOG2, StitchingWarpersなど
10%-230%の性能改善

 HoughLines, HoughLinesP, cvtColor (selected modes), Gemm, DFTがカーネルに追加

NEON
約40の関数がNEON対応により最適化された

JAVA
JAVAとのIFが大幅に改善
features2d, background subtractor classes, a part of opencv_contribのAPIを更新

IPP
AVX2対応のIPP 8.2.1 のサブセットを採用

GitHUB
200以上のpull requestを採用

以上