OpenCV 2.4.3 Windows版のHoughCirclesをデバッグモードで動かすと落ちる。
リリースモードでは、問題なく動くことを確認した。
OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。 最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。 また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。 内容を気にいっていただければ、twitterで紹介願います。
2012年11月29日木曜日
2012年11月28日水曜日
OpenCV 2.4.3の新サンプル pca.cppを試してみた
新しいサンプルのpca(主成分分析)を試してみた。
テンプレートのプロジェクトに、元のソースをコピーして、ビルドすれば問題なくビルドできる。
説明文には、ATTの顔画像のデータを使用して試してみてねと書いてあるので、ATTのzip形式のデータをダウンロードして適当なフォルダーに展開する。
15の顔画像を使用してねとの記載に従い、15の顔データへのパスを書いたファイルを作成して、保存する。
Visual Studio のプロジェクトの、構成プロパティ、デバッグ、コマンド引数に上記ファイルのパスを設定して実行。
サンプルの初期値では、Retained Varianceが95%となっており、最初のデータの画像が再現される。
Varianceを小さくすると、平均顔となっていく。
注意:Varianceを0にするとプログラムが落ちるので、onTrackbarでpos = 0をはねたほうがよい
以上
2012年11月27日火曜日
OpenCV 2.4.3の新サンプル bgfg_gmg.cppを試してみた。
ソースをサンプルを動かす雛形にペーストしてビルドしてみたが、
initModule_video();
の関数がないことや、
Ptr<BackgroundSubtractorGMG> fgbg = Algorithm::create<BackgroundSubtractorGMG>("BackgroundSubtractor.GMG");
でオブジェクトを生成しても
if (fgbg.empty())
のところで引っかかり実行できない。
opencv documentationでも、"BackgroundSubtractor.GMG"が見つからないので、サンプルプログラムは、残念ながらコードが不足していると思われる
2012年11月26日月曜日
OpenCV 2.4.3の新サンプル SimpleFlow.cppを試してみた
OpenCV 2.4.3のサンプルにsimleflowが存在していたので、ソースの中身を除いてみた。
Lucas Kanadeが1チャンネル(通常輝度信号)のみで処理をしているところ、3チャンネル使用している。
ファイルから画像を読み込み、フローを計算して入力画像に重ねて表示するプログラムを作成してみた。画像には、2.4.3のsamples\gpu\768x576.aviを使用している(人が道路を歩いている画像であるが、それほど品質はよくない)
第一印象は、計算が重い。最初PCがフリーズしたのかと思うくらい時間がかかった。
結果の画像を示す。
この画像輝度信号のみでoptical flowを求めると、動いていない場所に大量のベクトルが検出されるが、simple flowでは、動きのない部分にはベクトルは検出されない。
それでも、サンプルの結果には、道路の部分にもベクトルが生じている(これは元の画像に問題があるのではと思う)
APIの説明は、ここ。 元の論文へのリンクも掲載されており、2012年に発表された最新のものである。
以上
2012年11月22日木曜日
OpenCV 2.4.2と2.4.3のサンプルコードを比較してみた
インストールしてついでにC++のサンプルコードを比較してみた。
Winmergeでフォルダーの比較をしたところ、ほとんどのソースに差分が生じている
何かと思って確かめてみるとほとんどは、改行コードの違い
2.4.2 windows
2.4.3 Unix
と、不要なスペースの違いであるが、いくつかのソースは一部修正されている
また、2.4.3で増えたものは以下のものである
bgfg_gmg.cpp
fabmap_smple.cpp
muluticascadeclassifire.cpp
pca.cpp
simpleflow_demo.cpp
である。どういうものかは後で覗いてみる。
tutorial_codeのフォルダー数は同じだが、中身まで確認していない。
サンプルの画像は、templ.pngが増えている。
以上
2012年11月21日水曜日
Windows7 64bit版にOpenCV 2.4.3の開発環境を構築した
検索などでこのページを訪れる人が、数は少ないけど、コンスタントにいる。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。
最新の2.4.6の記事 (7/9 追加)
Windows7 64bit版にOpenCV 2.4.6の開発環境を構築した
11/3にリリースされた2.4.3の環境を今頃構築した
1 ここからWindows版をダウンロードする
2 OpenCV-2.4.3.exeを実行しインストールディレクトリc:\を指定する
3 展開後、ディレクトリ名をopencvからopencv243に変更する
4 opencv2431フォルダーに binフォルダーの作成とlibフォルダーの作成
5 OpenCV libのコピー
c:\opencv243\build\x86\vc10\libの内容を
c:\opencv243\libにコピー
6 OpenCV binのコピー
c:\opencv243\build\x86\vc10\binの内容を
c:\opencv243\binにコピー
7 OSの環境変数の設定(要管理者権限)
コントロールパネル、システムとセキュリティ、システムを開き
システムの詳細設定の環境変数ボタンを押し
システム環境変数のPathの編集
末尾に";c:\opencv243\bin"を追加
8 Visual C++ 2010 Expressのパスの設定を行う
この記事の242を243に置き換える
以上の作業は30分もかからない。また、今回からTBBのライブラリは不要となった。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。
最新の2.4.6の記事 (7/9 追加)
Windows7 64bit版にOpenCV 2.4.6の開発環境を構築した
11/3にリリースされた2.4.3の環境を今頃構築した
1 ここからWindows版をダウンロードする
2 OpenCV-2.4.3.exeを実行しインストールディレクトリc:\を指定する
3 展開後、ディレクトリ名をopencvからopencv243に変更する
4 opencv2431フォルダーに binフォルダーの作成とlibフォルダーの作成
5 OpenCV libのコピー
c:\opencv243\build\x86\vc10\libの内容を
c:\opencv243\libにコピー
6 OpenCV binのコピー
c:\opencv243\build\x86\vc10\binの内容を
c:\opencv243\binにコピー
7 OSの環境変数の設定(要管理者権限)
コントロールパネル、システムとセキュリティ、システムを開き
システムの詳細設定の環境変数ボタンを押し
システム環境変数のPathの編集
末尾に";c:\opencv243\bin"を追加
8 Visual C++ 2010 Expressのパスの設定を行う
この記事の242を243に置き換える
以上の作業は30分もかからない。また、今回からTBBのライブラリは不要となった。
2012年11月20日火曜日
OpenCVでIP Cameraの画像を表示してみた
IP Cameraとして、TENVIS JPT3815が安く入手できるので購入してみた。
最初にカメラの設定が必要であるが、サイトから専用アプリをダウンロードし、有線イーサで接続し
パスワードや無線LANの設定を行った。
OpenCVでは、VideoCaptureのopenにURLを指定すれば、ストリームを再生できるはずである。
JPT3815のマニュアルでは、ストリーム出力がmjpegであったが、OpenCV 2.4.2のVideoCaptureでは、mjpegを解釈できないようで落ちてしまう。
mjepgのURLは、以下のようになる。
http://IPADDRESS/videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0
そこでだめもとでH264を指定したところ、表示することができた。
http://IPADDRESS/videostream.asf?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0
ユーザ名と、パスワードが平文なのがあれだが、以下のコードでVGAサイズで表示できる。
std::string fname = std::string("http://192.168.1.100/videostream.asf?user=hoge&pwd=hoge&resolution=32&rate=0");
mCap.open(fname);
while(true) {
mCap >> mat;
cv::imshow("Capture", mat);
cv::waitKey(15);
}
今後IRモードで遊んでみる。
2012年11月9日金曜日
OpenCV2.4.3のチュートリアルが提供されていた
11/3の2.4.3のリリースにあわせて、チュートリアルのpdfがリリースされていた
403ページと非常に読み応えのあるものとなっている。
各章のタイトルを紹介しておく
1 OpenCVの紹介
2 core module
3 Image Processing
4 GUI
5 カメラのキャリブレーションと3D再構成
6 2D Feture
7 動画解析
8 物体検出
9 機械学習
10 GPU の利用
11 コントリビューション
12 iOS上での開発
Kinddle whiteがとどいたら入れてみる予定
追加
1章をざっと眺めてみた
各種環境構築に97ページも割いている。
あと、1章の最後にチュートリアルを書いてコミュニティに貢献しようとの記述が
2012年11月8日木曜日
Tegra向けSDKにOpenCV2.4.2が含まれている
試す時間がないが、忘れないようにメモ
10/31に TADP(Tegra Android Development Pack)2.0がリリースされた
中のOpenCVは、OpenCV.orgが提供しているものと同じと推測されるが、開発環境一式が準備されており、またドキュメントなどもあるようだ
ダウンロードには、Tegra開発者の登録が必要である(無料
登録:
投稿 (Atom)