startup-photos-1

OpenCVで物体検出器を作成する⑧ ~エラー対処~

こんにちは!ザキヤマです。
早くも1月も終わりに近づいてきましたね~

OpenCVで物体検出器を作成するシリーズ
今回はcreatesamples、traincascadeでエラーがでたとき、確認すると良いかもしれないことをまとめました。
「エラー内容がよくわからない!」というときなど参考にしていただければ幸いです!

img_seo_bnr02

createsamples、traincascade共通のエラー

動作が停止する!

ディレクトリに必要な.dllファイルはありますか?


OpenCVで物体検出器を作成する⑤ ~createsamples~
の「作業フォルダの構成」を参照ください。

パラメータを指定する際の半角スペースは正しく打たれていますか?

また、必須でないパラメータが正しく設定されていない場合、そのパラメータはデフォルトの値で実行されます。

正)

opencv_createsamples.exe -img ./pos/ooo.jpg -vec ./vec/ooo.vec -num 50 -bgcolor 255 -maxidev 40 -maxxangle 0.8 -maxyangle 0.8 -maxzangle 0.5

誤)ハイフンの後にスペースが入っている

opencv_createsamples.exe - img ./pos/ooo.jpg - vec ./vec/ooo.vec - num 50 - bgcolor 255 - maxidev 40 - maxxangle 0.8 - maxyangle 0.8 - maxzangle 0.5

誤)パラメータ名の後にスペースがない

opencv_createsamples.exe -img./pos/ooo.jpg -vec./vec/ooo.vec -num50 -bgcolor255 -maxidev40 -maxxangle0.8 -maxyangle0.8 -maxzangle0.5

createsamplesでのエラー

vecファイルが生成されない!

画像ファイル名は正しいですか?

フォルダ名、ファイル名、拡張子などがあっているか、もう一度確認してみてください。

traincascadeでのエラー

Bad argument Can not get new positive sample・・・?

OpenCV Error: Bad argument (Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file.) in CvCascadeImageReader::PosReader::get, file C:builds2_4_PackSlave-win32-vc12-sharedopencvappstraincascadeimagestorage.cpp, line 162

正解画像の枚数が足りていない!

ベクトルファイルを作成した時よりも少ない数・ぴったりの数を指定していませんか?

ぴったりの数を指定しても、エラーが出る場合があります。
作った数よりも少なめ(9割程度の数)に設定しましょう。

なぜぴったりでもダメなのか、仕組みや詳しい設定枚数についてはこちらの記事が分かりやすいです!

takminの書きっぱなし備忘録

takmin
http://d.hatena.ne.jp/takmin/

Assertion failed・・・?

OpenCV Error: Assertion failed (_img.rows * _img.cols == vecSize) in CvCascadeImageReader::PosReader::get, file C:builds2_4_PackSlave-win32-vc12-sharedopencvappstraincascadeimagestorage.cpp, line 157

vecのサイズは正しいですか?

「-w」と「-h」は、ベクトルファイルを作成した時と同じパラメータを指定してください。

Image reader can not be created・・・?

Image reader can not be created from -vec ./xxx.vec and -bg ./xxx.txt.

ファイル名を確認してください!

ベクトルファイルや不正解画像リストファイルのファイル名は正しいですか?簡単なミスですが、つづりを間違っていたり、フォルダや拡張子を間違えていることも意外とあるので確認してみてください。

Parameters can not be written・・・?

Parameters can not be written, because file ./cascade/test_/params.xml can not be opened.

xmlファイルが開けません!

「-data」で指定しているフォルダは作成しましたか?
このフォルダは勝手に生成されないので、手動で作成する必要があります。

また、前回実行した際に生成されたファイルがある場合は、パラメータにも注意してください。
前回と同じパラメータを指定しないと正しく実行されません。

最後に

初歩的なことばかりですが、
私がはじめて検出器を作るときには簡単なエラーでも四苦八苦していました、、、
同じような方に参考にしていただければ幸いです。

img_seo_bnr02

CONTACT US

株式会社プロフェッサはWEB制作会社です。
ウェブサイト制作やシステム開発など、ウェブに関するご相談は下記よりお気軽にどうぞ


Previous Post

Next Post