OpenCVでは、opencv_createsamples.exeというプログラムで、正解画像をたくさん生成できます。
たった1枚の正解画像を用意します。
ここでは、「ウィンクしている画像」を投入。
すると、数十枚、数百枚、数千枚の、似たような画像を吐きだしてくれます。
似たような画像なので、これらも正解画像です。
そうやってたくさん作ったサンプルを利用して画像認識。
正解画像10枚、NG画像10枚の場合。
前回も述べたように、この画像はウィンクしていないので何も検出されないのがゴールです。
しかし、一か所反応してしまっています。
正解画像50枚、NG画像50枚の場合。
正解画像が増えると、反応する量も増えます。
当然といえば当然。
でも、これは嬉しくない。
ただ、枚数が少なすぎると、正解の画像にも反応しないから難しいところ。
正解画像100枚、NG画像100枚の場合。
もう反応しすぎで使えません。
でも、ここまで枚数を増やして、やっと正解画像でウィンクを認識し始めます。
正しい反応が1回に対して、誤った反応が20回くらいってところ?
正解画像500枚、NG画像1000枚の場合。
あまりに誤検出が多いので、NG画像を追加。
こうすると、誤検出が減ります。
しかし、正しい反応も減ってしまいました。
全然うまくいかない。
ちなみに、この枚数で学習時間は2時間程度。
この100倍くらいの画像数が理想だというから、どうも10日くらいかけて学習させる必要があるらしい。
コメント