opencv_createsamples、opencv_traincascadeをコマンドプロンプトで実行する際に-w,-hを設定できますが、幅と高さの設定なのはわかりますが、どの幅、高さなのでしょうか。何も設定しないと初期値の24で実行されるようですがそれだと用意した正解画像、不正解画像のサイズではないと思います。
認識させたいモノの幅、高さなのかと思いましたが画像によって大きく写れば数値は大きくなりますし、小さければ小さくなりますので認識するモノの幅、高さでもない気がします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
回答依頼の件(2017/09/29夜 追記)
Q.1
一枚の画像から7000枚の正解画像を制作し、不正解を3500枚にして制作したわけですが、もっと枚数を増やせば精度は上がりますか。
一般的な話として、枚数を上げればある程度は上がると思います。が、ここでそれよりも、もっと大事にしたいのは「データの質(規模・性質)」と「パラメータ(どう処理するか)」です。
*データの質の話
先日stackoverflow(リンクは忘れました…)を読んでいたところ「100枚のデータ増強写真よりも、本物の写真1枚の方がずっと価値が高い。しっかりした選別機を作りたいなら、(めんどくさいかもしれないけれども)ちゃんとデータをそろえるべきだ」というようなことが書いてありました。
増強データよりも本物のデータの方が、上手くばらついているとでも呼ぶのでしょうか。対象の背景が都度ばらついていることが物体検出では必要になってきますので、その辺が実際のデータの方がうまくいっているのかもしれませんね。
なので、データの質的な切り口では、
1.まずはデータ増強によって得られた検出器を使い、デジカメか何かで撮影した動画をしゃーっと流して処理
2.正解フレームや誤検出したフレームを保存(OpenCVの動画再生でqボタンで割り込む要領で、sで保存など適当にやればよいと思います)
※先の事例では、「動画を使えば写真を数千枚用意するくらいのことはたやすいけれども、動画を枚フレームや毎秒キャプチャしたところで、一般的にはそんなにバラついた写真は得られないよね。だから、適当に時間を置きながらデータを採るとよいよ」的なtipsが書かれていました。
3.新しく得られたデータを元にさらに改良されたカスケードファイルを生成
※誤検出画像を背景にしていしたり、対象物が含まれていない画像を適当なサイズに大小ばらつかせて背景に指定するのがよい、ということを割と見かけます、
が精度を上げるためのデータの準備になります。
*パラメータの話
上手く検出するためには、パラメータ(アルゴリズム側)の設定も重要になります。デフォルトではHaar-likeになっていると思いますが、LBPやHOGも試してはいかがでしょうか?それぞれの特徴量に特異不得意があるようで、詳しい方でも「モデル毎にやってみないと分からない」というような記事をよく見ます。
あたりをつけるために、まずは少ないステージ数で走らせて試すのがよいと思います。
Q.2
あとtraincascadeが16ステージで終わり、Required leaf false alarm rate achieved. Branch training terminated.というメッセージが表示されました。16ステージで終わってもxmlファイルは作成されうまく認識できていたのであまり気にしなくてもいいのでしょうか。
その通りだと思います。確かtraincascadeをする際に、目標値(この精度で誤検出しなくなるまでやる)を引数で設定するか、なければデフォルト値がロードされるようになっていたと思います。その値に達したのでもうこれ以上訓練する必要はないね、ということで打ち切られていますね。
投稿2017/09/29 12:48
編集2017/09/29 12:52退会済みユーザー
総合スコア0
0
ベストアンサー
うろ覚えですが、検出させたいターゲットの最小サイズと言い換えてよいと思います。24なら24px(以上)
、100なら100px(以上)
とかそんな感じでしょうか。(「サイズではない!ベクトルだ!」のような細かい理解のズレはあるかもしれません)
検出したい生画像が200px四方で、そこにライオンが80px四方で写っているとした場合、24
で仕込んだ場合は検出できても、100
で仕込んだ場合には検出できない(ターゲットが80px四方では検出するには小さすぎる)とかそういうことが起きたはずです。あとは、数値を大きくすると仕込みにかかる時間がグーンと伸びた気がします。
Cascade Classifier Training(公式)
OpenCVで物体検出器を作成する
今回は画像解析とかそういうアレ
この辺が参考になると思います。
投稿2017/09/16 02:05
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/16 08:39
2017/09/16 08:56
退会済みユーザー
2017/09/16 11:34 編集
2017/09/29 05:58 編集
退会済みユーザー
2017/09/29 12:08
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/29 14:39