OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。 最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。 また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。 内容を気にいっていただければ、twitterで紹介願います。
2013年3月18日月曜日
OpenCV関連の書籍
あらたな本の発売予定を見つけた
C++/CLI & OpenCV 画像処理GUIプログラミング
税込価格 3,360 2013年4月10日
Microsoft Visual Studio 2012を使用しているが、OpenCV は、2.4となっている
画像処理の内容としては、10.5 オブジェクト除去がどういうものか気になる
2013年3月15日金曜日
OpenCV 背景差分のサンプルを動かしてみた 2
samples/cpp/bgfg_gmg.cppをこの記事に従い動かしてみる
bgfg_gmg.cppは、以前試したときには、動作しなかったが、再度試してみると問題なく動いた
実験用の画像は、samples\gpu\768x576.aviを使用した。
検出結果は、以下のようになる。
表現が面白いので遊べそうである。
sampleで使用しているクラスは、BackgroundSubtractor.GMGである。
2.4.4になってもドキュメントが提供されていない
また、sampleで使用している initModule_video は、ドキュメントに説明はないが、ソースは、modules\video\src\video_init.cppにあったので、覗いてみると、BackgroundSubtractor.GMG専用になっていた
他の背景差分に関する記事は、こちら
使用しているビデオは同じものと思われるが、ファイル名が変更されたようだ
以上
2013年3月14日木曜日
OpenCVのOptical Flowを試してみた
2.4.4から、Dual TV L1方式がサポートされたので試してみた。
sampleが、sample\tvl1_optical_flow.cppで提供されているが、2枚の画像でフローを求めるものである
以前作成した、カメラの入力画像からオプティカルフローを計算するプログラムを修正した。
修正は、最初に
Ptr<DenseOpticalFlow> tvl1 = createOptFlow_DualTVL1();
でオブジェクトを作成し、前の画像と今の画像(双方白黒)を与えるとフローを得ることができる
tvl1->calc(frame0, frame1, flow);
処理は重く、VGA画像を80x60に縮小しても、5fpsの速度しか得られない
蛇足
インスタンス化は、createOptFlow_DualTVL1を呼ぶのだが、最初打ち間違えてcreateOpticalFlow_DualTVL1()としたため
くだらないことで時間を食った。
2013年3月12日火曜日
OpenCV のFREAK特徴量を試してみた
いまさらながら、2.4.2に追加されたFREAK特徴量を試してみた
使用したのは、sample\freak_demo.cpp
自前のHD画像を480x270に縮小して与えてみた。
特徴点検出にSURFを使用しているが、ORBなどの検出器でも問題ないと思う
メモ
#include "opencv2/nonfree/nonfree.hpp"
は、SurfFeatureDetectorのため
#include "opencv2/legacy/legacy.hpp"
は、BruteForceMatcherのため
使用したのは、sample\freak_demo.cpp
自前のHD画像を480x270に縮小して与えてみた。
特徴点検出にSURFを使用しているが、ORBなどの検出器でも問題ないと思う
メモ
#include "opencv2/nonfree/nonfree.hpp"
は、SurfFeatureDetectorのため
#include "opencv2/legacy/legacy.hpp"
は、BruteForceMatcherのため
2013年3月8日金曜日
OpenCVの最適化に関して
OpenCVの計算速度向上のためには、cv::setUseOptimized(true)を唱える必要があると思い込んでいた。
再度説明を読んでみると、CMakeでoffにしない限り、デフォルトではtrueになっているとのこと
cv::useOptimizedで確認しているとtrueになっていた。
2013年3月7日木曜日
OpenCVの latentSVMを試してみた
c のsampleを眺めていたら、latent SVMのsample(latentsvmdetect.cpp)があったので試してみた。
ソースは、TBB対応になっているので、コンパイルフラグを設定すればよいみたいである。
通常の環境では、計算に時間がかかり、試してみたマシンでは、5秒もかかった。
サンプルには、猫の辞書がついているので、猫の画像で試してみた。
cat.xmlの中を覗いてみると、Componentsが2個 root filter, Part filter 6個 とroot filter, Part filter 6個 の構成になっている。
internetの記事に、人もできると書いてあったので、lenaもためしてみた
補足
2.4.3のソースから一部修正が行われており、検出結果のスコアーを枠の色の明るさに反映するようになっている CV_RGB(cvRound(255.0f*score),0,0) が、上記の2枚の画像は、黒色である。
スコアーを見ると、-0.88なので、符号を反転させないといけない
以上
登録:
投稿 (Atom)