『4』を検出できる範囲を試した
いま予定している学習の1/2が終わったところで、検出率がかなり上がってきたので、どんな画像が苦手なのか試してみた。
アルゴリズムをみれーと言われそうだけど。(ソースは少しずつ見て、ちょっといじったりしています……)
- 左
- ノーマル(色ランダム)
- 真ん中左
- ノーマルにさまざまなフィルタをかけた
- 真ん中右
- ノーマルにウェーブ(小)とノイズをかけた
- 右
- ノーマルにウェーブ(大)とノイズをかけた
気づいたこと
- 『ぼかし』で誤検出
- 色反転や輪郭線が検出できない
- 強いウェーブが微妙に検出できない(学習が完全終わったらできるかも?)
どうする?
- シャープネス?(でも別の誤検出が発生する)
- 色反転して2回走査、塗りつぶし?
- 歪み補正?
日記
この出来なら文字のCAPTCHA読めそう?
明日か明後日に学習が完了したらまた試す。
あと、検出された範囲の赤い四角が見難かったので、丸に変えた。
performance.cppの280行あたり
cvRectangle( img, cvPoint( r.rect.x, r.rect.y ), cvPoint( r.rect.x + r.rect.width, r.rect.y + r.rect.height ), CV_RGB( 255, 0, 0 ), 3 );
を
cvCircle( img, cvPoint(r.rect.x + r.rect.width * 0.5, r.rect.y + r.rect.height * 0.5), cvRound((r.rect.width + r.rect.height) * 0.25), CV_RGB(0xff, 0x33, 0x33), 2, 8, 0 );
こうした。