A certain engineer "COMPLEX"

開発メモ その15 OpenCVで機械学習をする際の注意 その2

本当に情報が少ないので


opencv_traincascade.exeで学習を進める際、またも意味がわかりにくいエラーがたくさん出ます。

Train dataset for temp stage can not be filled. Branch training terminated.


直訳すれば、「一時的なステージに対する訓練データセットを完成できませんでした。枝分かれしたトレーニングは中断しました。」になりますが、抽象的過ぎて意味がわかりません。
このエラーはいろいろな時にでます。

私の場合、不正解画像リストを指定したが、リスト内のパスが全部間違っていて画像を一切読み込むことができない時、「Cascade classifier can't be trained. Check the used training parameters.」というメッセージとともに、このエラーが発生しました。
このケースの場合、学習ステージ0で即座に失敗します。

ところが、不正解画像が正解画像に比べて極端に少なかったりすると、ステージの途中でエラーになって終了します。
数時間かけた学習が無に帰す瞬間です。

また、上のケースの場合、acceptanseRatio末尾の数字が浮動小数点のような状態になっています。
こうなっている場合は、過学習に陥っている可能性があるとのこと。

もっと、わかりやすいエラーを出して欲しいです。

Conclusion


OpenCVの解説書籍を読もうと思いましたが、O'Reillyの詳解 OpenCVはかなり古くなってしました。しかし、2016年11月に最新バージョン3に対応した版が発売されるようです。英語ですが。機械学習部分だけでも読めないでしょうかね?

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。