結果は??? 大幅改善です。
- 黒石
・左右から黒(0,0,0)以外のピクセルを黒に置き換える処理をMatをもとに、行っていた処理を Bitmapに変換してBitmap上のピクセルで(0,0,0)を判定し、Mat内のピクセルを置き換える方法に変更。(*1)
・ひとつの石の領域の左端・上端は黒(0,0,0)とみなす処理を追加。
この2つの処理で黒石の誤検出は全て解消しました。 - 白石
・ひとつの石の領域の下端から7ピクセルを無条件に白にしていたが これを下端から6ピクセルに変更した。 - 対象外判定処理
Dを白石とみなす誤りがあった。前回はパターンマッチングではじいていたが、石の検出を行っているHoughCirclesメソッドの引数を 第5、6引数を50、20から 100、30に変更した。参照
上記の対策により、前回に比べ大幅にエラーが減少しました。
第一局 170手中 4手エラー
第二局 209手中 8手エラー
第三局 182手中12手エラー
第四局 165手中 6手エラー
合計 726手中30手エラー 誤認識率は4%(コウの手数は反映されていません)
変換内容の確認および コウの手順入力等のため、いずれにしても変換前後の確認・修正処理は免れないことから、とりあえずこの状態で保留として、次のフェーズに進むことにします。
局 | 図 | マス目の大きさ | 輪郭上の石 | 誤認識等 | ||||||
横 | 縦 | 左 | 上 | 右 | 下 | |||||
1 | 1 | 29.0555 | 28.9422 | エラーなし | ||||||
2 | 29.0277 | 29.0000 | 〇 | エラーなし | ||||||
3 | 28.9722 | 29.0000 | 〇 | 〇 | ( 3, 5)白116を115 | (10,7)白110を116 | ||||
4 | 29.0277 | 29.0000 | 〇 | 〇 | ( 2,15)白26認識不能 | |||||
5 | 28.9722 | 29.0000 | 〇 | 〇 | (14,13)白50を1 | |||||
2 | 1 | 30.9444 | 30.9166 | エラーなし | ||||||
2 | 30.9444 | 30.9166 | (17,6)△を誤検出 | (17,7)△を誤検出 | ||||||
3 | 30.9444 | 30.9166 | (5,11)白96を98 | (13,7)△を誤検出 | (13,8)△を誤検出 | |||||
(17,12)▲を誤検出 | ||||||||||
4 | 30.9444 | 30.9166 | (9,17)白36認識不能 | |||||||
5 | 30.9444 | 30.9166 | 〇 | エラーなし | ||||||
6 | 30.9444 | 31.0000 | 〇 | 〇 | 〇 | (5, 5)白108を103 | ||||
3 | 1 | 30.9444 | 30.8611 | 〇 | (15,11)白26認識不能 | (15,16)白30認識不能 | (18,12)白20認識不能 | |||
2 | 30.9444 | 30.9166 | 〇 | (3,18)白100を10 | (5,3)白74を741 | (8,7)白60認識不能 | ||||
(8,17)白104を100 | (9,8)白86を56 | (9,10)白64認識不能 | ||||||||
3 | 30.9444 | 30.9166 | 〇 | 〇 | (2,10)白34認識不能 | (3,11)白30認識不能 | ||||
4 | 30.9444 | 31.0000 | 〇 | 〇 | 〇 | 〇 | エラーなし | |||
5 | 30.8888 | 30.7777 | 〇 | 〇 | 〇 | 〇 | (8,11)△を誤検出 | |||
6 | 30.8888 | 30.7777 | 〇 | 〇 | 〇 | 〇 | エラーなし | |||
4 | 1 | 30.7500 | 30.7222 | 〇 | (11,2)白26認識不能 | (11,3)白20認識不能 | (12,1)白38を33 | |||
2 | 30.7777 | 30.6666 | 〇 | 〇 | エラーなし | |||||
3 | 30.7500 | 30.7777 | 〇 | 〇 | (11,10)白96認識不能 | |||||
4 | 30.7777 | 30.6666 | 〇 | 〇 | (9,11)△を誤検出 | (9,12)△を誤検出 | ||||
5 | 30.7222 | 30.7777 | 〇 | 〇 | 〇 | エラーなし |
△はパターンマッチングで類似度を0.8を超えるものを 対象外としているが、類似度が0.8未満になっている。 | |
類似度の判定をさらに甘くすれば対象外とできるが、本来対象にすべきものまで対象外になってしまう。そのため今回はちょっときつめにしている。 | |
▲はパターンマッチングで対象チェックを行っていない。 |
(*1)私のバグの可能性もありますが、Matはあらかじめ2値化を行っいるにも関わらず、白と黒の中間部には(0,0,255)とか(255,0,255)といったピクセルがあった。 ToBitmap関数で、変換したBitmapには(0,0,0)(255,255,255)以外のピクセルしか存在しない。 これは謎・・・・
開発環境
OS:Windows10
言語:C#(WPF使用)
IDE:VisualStudio2019
仕様Tool:OpenCvSharp v4.0.0.20181129
Tesseract v3.3.0.0
使用電子本:電子書店パピレスのNHK 囲碁講座 テキスト
OS:Windows10
言語:C#(WPF使用)
IDE:VisualStudio2019
仕様Tool:OpenCvSharp v4.0.0.20181129
Tesseract v3.3.0.0
使用電子本:電子書店パピレスのNHK 囲碁講座 テキスト
0 件のコメント:
コメントを投稿