OpenCV カスケードファイルの作成方法
OpenCVとは画像処理のライブラリです。
その機能の一つに物体検出という機能があります。
物体を検出する方法は「物体の特徴を抽出」⇒「抽出した特徴量を学習」⇒「学習データにより物体を検出」
この機械学習された学習データのことを、カスケード分類器といいます。
カスケード分類器のつくりかた
事前準備
・ポジティブ画像を1枚以上用意
・ネガティブ画像を複数枚用意(1000枚くらいあるとよい)
1. ポジティブ画像、ネガティブ画像各々のファイル名をリストにしたテキストファイルを作成
ファイル名をリスト化させるコマンド
dir /b >sample.txt
2. OpenCVのツールで解釈できる入力ファイル(バイナリファイル)を作成
※ opencv_createsamples というツールを利用
例
opencv_createsamples -img orbis.png -vec orbis.vec -num 8000 -bgcolor 255 -maxidev 40 -maxxangle 0.5 -maxyangle 0.5 -maxzangle 0.5
各パラメータの説明
・img ポジティブ画像
・vec 作成するバイナリファイル名
・num ポジティブ画像数
3.学習 opencv_traincascade
例
opencv_traincascade -data ./cascade/sample/ -vec sample.vec -bg negative.txt -numPos 4000 -numNeg 220 -precalcValBufSize 4096 -precalcIdxBufSize 1024 -featureType LBP -bt LB -mode ALL