| OpenCV for Linux |
| 手っ取り早くOpenCVをLinuxで利用するための日本語リファレンス |
● yahooのOpenCVグループ 英語です.非常に有用です.メンバになりましょう.
以下のページに,非常に分かりやすく書かれています. VineLinux2.6にインストールする場合には,アップグレードする必要のある プログラムがいくつかあります../configureの結果をよく読みましょう. VineLinux3.1だと結構すんなりインストールできます.
●
IPL, OpenCVを使った画像処理プログラミング
●
Linux + OpenCV + 1394カメラ HOWTO
Video4Linux(V4L)を用いてIPL画像に格納します. NTSCカメラとキャプチャボードを使います. 私はVineLinux2.6を使っていますが,V4Lは特に設定する必要がありませんでし た. Linuxで用いるキャプチャボードは,そのチップセットに注意する必要がありま す.
今からカメラを購入しようとするならば,IEEE1394カメラをお薦めします.キャ プチャボードが必要ありません.導入方法は「Linux + OpenCV + 1394カメラ HOWTO」で見ることができます.
● OpenCVでサポートされている物体検知アルゴリズムです.学習すれば様々なパ ターンを検知することができます.簡単で明解なアイデアに基づいていますし, 素晴しい性能を持っていると思います.
● 画像サイズが320×240ならばPentium4 2GHzのCPUで10fps〜15fpsで検知できます(最高30fpsの環境です).640×480で も5fps〜10fpsの速さが実現できます.他の手法と比較すると非常に高速です. これは事前に用意されている./opencv-0.9.6/data/haarcascades/*.xmlを読 み込んで,sampleプログラムでテストすることができます.顔の発見用のデー タファイルが用意されており,うまく検知する印象を受けます.
● 学習のために必要なサンプル画像の数は膨大です.背景画像が3000通り,対象 物の画像が7000通り程度あると良いそうです. 平面的なロゴマークなどに対する検知には,大量のサンプル画像を生成する ユーティリティーが付属していますから,画像収集には苦労しません. 背景画像はある程度集めないといけません.
● 普通にOpenCVをインストールしたのでは訓練や訓練データの読み込みがうま くいきません.ソースを数カ所,以下の手順に従って修正する必要があります.
● 学習には時間がかかります.遅いパソコンでは数日から数週間かかります. 高性能PCを用意しましょう.
●文献
・[Viola01] Paul Viola and Michael J. Jones. Rapid Object Detection using
a Boosted Cascade of Simple Features. IEEE CVPR, 2001.
・[Lienhart02] Rainer Lienhart and Jochen Maydt. An Extended Set of Haar-like Features
for Rapid Object Detection. IEEE ICIP 2002, Vol. 1, pp. 900-903,
Sep. 2002.
This paper, as well as the extended technical report, can be
retrieved at
http://www.lienhart.de/Publications/publications.html
●
訓練用パターン生成と訓練,テストアプリケーションの使いかた
この記述に基づいて
/opencv-0.9.6/apps/haartraining/src/opencv-createsamples
を利用してサンプル生成を行います.例えば
./opencv-createsamples -vec vecfile -img ./lemonwater.jpg -bg bg.txt
-num 7000 -bgthresh 1 -maxxangle 1.5 -maxyangle 1.5 -maxzangle 1.5 -show -w 24 -h 24
などとします.
●
ハール状特徴に基づくブースト分類器のカスケードの構成方法(thanks to Florian Adolf
for the PDF)
http://robotik.inflomatik.info/other/OpenCV_ObjectDetection_HowTo.pdf か
らの引用です.
これらの記述に基づいて
/opencv-0.9.6/apps/haartraining/src/opencv-haartraining
を利用して訓練を行います.
ただし,上記の文書にあるように,cvhaartraining.cpp内の
関数icvCreateIntHaarFeatures()の中でs0=36,s1=12,s2=18,s3=24となっている
記述をs0=0,s1=0,s2=0,s3=0と書き換えてmakeしなおさなければならないことに
注意が必要です.
ハールトレーニングの利用によりできたディレクトリ群は, opencv-0.9.6(beta4)の cv/src/cvhaar.cppのバグによって,読み込むことがで きません.最新版のcvhaar.cppをCVSからダウンロードして再コンパイルする必 要があります.
●
SourceForge.netのcvs: opencvlibrary/opencv
●
cvhaar.cpp
●OpenCVで下記の文献で提案されているアルゴリズムのプログラムを作成しまし
た(作成者:渕川康裕).膨大なテンプレートを用いる高速パターンマッチング
法です.ちなみにKL展開とはKarhunen-Loeve(カルーネンレーベ)変換を用いる固
有分解の手法です.
Michihiro Uenohara and Takeo Kanade, "Use of Fourier and Karhunen-Loeve
Decomposition for Fast Pattern Matching With a Large Set of Templates,"
IEEE trans. on Pattern Analysis and Machine Intelligence, Vol.19, No.8,
pp. 891-898, 1997.
● 固有値空間でのパターンマッチングなので,対象物の検知と姿勢推定を同時 に行うことが可能です.
● テンプレートの作成を計画的に行う必要があります(テンプレートを必要と するどの手法にもいえますが).
● 画像サイズ640×480,Pentium4,2GHzのCPUで3fps-5fpsです.比較的高速で す.
ここではペットボトルを環境から検知するという応用例を基に説明します.
![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Fig.1 画像取得の条件.様々な見下ろし角度と,回転角度 でペットボトルを撮影.背景が写り込まないようにするのが大変です.私達は この撮影のために,独自のアプリケーションと撮影環境を構築しました. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Takeshi Nishida's Web Page is here . 最終更新2005年5月30日