Pythonで使えるOCRソフトtesseractを使ってみて、その精度はどれぐらいなのか気になったので、調べてみました。
OCRソフトなので文章で本来評価すべきでしょうが、それで評価するのはかなり大変です。それで自動車のナンバープレートの数字で評価しました。
数字も一連番号で評価しようとすると一桁の数字などではかなり誤検知すしました。ですので0から9までの単独の数字で評価します。
すっかりMNISTの評価と同じみたいになってしまいますが、ナンバープレートの数字はちょっと特殊ですのでやってみました。
tesseractを使用する上でのパラメータは、言語、builder、layoutがあります。
今回は、
言語: eng
builder builders.TextBuilder
layout: 1から13までありますが6から13までを評価しました。なお、11と12はほぼ精度は0でした。
builderにはText以外にもWordBox、LineBox、DigitLineBoxもありますが、それぞれクセがあって、まったく同じ結果にはなりませんでした、ほとんど同じということで使うならばTextで十分かと思われます。
layoutは今回の評価では13が最も精度が良かったですが、13で誤検知しても他のlayoutでは正しく検知しているケースもありました。
普段13を使用して、誤検知している文字があったならば、6などのlayoutの結果で編集し直すのがいいかもしれません。
精度が悪かった数字の1ですがこれは|と誤検知したケースが多かったです。これも1に編集し直すなどすれば使えるようになるのではないでしょうか。
以下に各数字ごとのaccuracyを残します。使用したデータの総数は、624個の画像です。
number: 0 layout: 13 matchs: 69 / 77 accuracy: 0.896
number: 1 layout: 13 matchs: 14 / 45 accuracy: 0.311 (|と誤検知する)
number: 2 layout: 13 matchs: 72 / 95 accuracy: 0.758
number: 3 layout: 13 matchs: 65 / 66 accuracy: 0.985
number: 4 layout: 13 matchs: 65 / 78 accuracy: 0.833
number: 5 layout: 13 matchs: 74 / 82 accuracy: 0.902
number: 6 layout: 13 matchs: 37 / 42 accuracy: 0.881
number: 7 layout: 13 matchs: 32 / 44 accuracy: 0.727
number: 8 layout: 13 matchs: 56 / 56 accuracy: 1.000
number: 9 layout: 13 matchs: 10 / 39 accuracy: 0.256 (g、b、bs、9g、gg等と誤検知し、精度がかなり低くなっている)
layout13の次に精度が良かったのは、8であり、6、7と続きます。
OCRソフトなので文章で本来評価すべきでしょうが、それで評価するのはかなり大変です。それで自動車のナンバープレートの数字で評価しました。
数字も一連番号で評価しようとすると一桁の数字などではかなり誤検知すしました。ですので0から9までの単独の数字で評価します。
すっかりMNISTの評価と同じみたいになってしまいますが、ナンバープレートの数字はちょっと特殊ですのでやってみました。
tesseractを使用する上でのパラメータは、言語、builder、layoutがあります。
今回は、
言語: eng
builder builders.TextBuilder
layout: 1から13までありますが6から13までを評価しました。なお、11と12はほぼ精度は0でした。
builderにはText以外にもWordBox、LineBox、DigitLineBoxもありますが、それぞれクセがあって、まったく同じ結果にはなりませんでした、ほとんど同じということで使うならばTextで十分かと思われます。
layoutは今回の評価では13が最も精度が良かったですが、13で誤検知しても他のlayoutでは正しく検知しているケースもありました。
普段13を使用して、誤検知している文字があったならば、6などのlayoutの結果で編集し直すのがいいかもしれません。
精度が悪かった数字の1ですがこれは|と誤検知したケースが多かったです。これも1に編集し直すなどすれば使えるようになるのではないでしょうか。
以下に各数字ごとのaccuracyを残します。使用したデータの総数は、624個の画像です。
number: 0 layout: 13 matchs: 69 / 77 accuracy: 0.896
number: 1 layout: 13 matchs: 14 / 45 accuracy: 0.311 (|と誤検知する)
number: 2 layout: 13 matchs: 72 / 95 accuracy: 0.758
number: 3 layout: 13 matchs: 65 / 66 accuracy: 0.985
number: 4 layout: 13 matchs: 65 / 78 accuracy: 0.833
number: 5 layout: 13 matchs: 74 / 82 accuracy: 0.902
number: 6 layout: 13 matchs: 37 / 42 accuracy: 0.881
number: 7 layout: 13 matchs: 32 / 44 accuracy: 0.727
number: 8 layout: 13 matchs: 56 / 56 accuracy: 1.000
number: 9 layout: 13 matchs: 10 / 39 accuracy: 0.256 (g、b、bs、9g、gg等と誤検知し、精度がかなり低くなっている)
layout13の次に精度が良かったのは、8であり、6、7と続きます。