2014年11月20日木曜日

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を採用

以上