見出し画像

OCRで数値を読み取ってみた〜その1、うまく行ってない編

製造機器や装置などの制御盤・機器にデジタル表示器がついていますが、身の回りにも時計、体温計などデジタルで表示の機器はたくさんあります。その表示が見られればいいのですが、表示板の向きが横を向いていたり、別の部屋にあったりして、また暗くて見えず、困ります。

数字はデジタル表示ですが、目視で確認するというものであるので、これはアナログです。数値に変換すると、この値をPCに送ったり、別のところに転送して使うことができるようになります。

表示板上のデジタルの数字の画像から、数字を読み取る仕組みを作ります。

利用技術
OCRエンジン:tesseract
プログラム言語:python
利用ライブラリ:OpenCV

OCRを使って認識させる前に2つをやっておきます。

1.OCRの認識できる文字種類の追加
tesseractは、認識する言語用の学習済データが必要になる。にデジタル文字が認識できるように、学習済データを追加する。

2.画像の加工
画像をモノクロに変換して、コントラストを調整などした後、白と黒の二色に変換する。これは、今回は手作業ですが、一連の仕組みとして作るときは自動で行うようにします。

デジタル表示のディスプレイを撮影して、数字の認識をさせてみます。

文字認識の結果
  1.  何をどのように認識したのかの理解に苦しむ出力

  2.  小数点以下の数字を誤認識

  3.  小数点以下の数字を誤認識

考察と課題
デジタル数字のOCRでの認識は間違いなく良いのだろうと思い込んでいたのだが、予想外にうまく認識されないというのが分かりました。

今回対象にしたのは、0から9までの十個の数字でしたが、使用した①のサンプルは縦長だし線も細い。サンプル③では棒と棒の間の細い隙間がない数字です。また③は傾き具合が最も小さい。ひと言でデジタル数字というが、実際には違いがあり、正しい文字認識への影響があると思われます。

文字認識に間接的な関わりの話になりますが、デジタルディスプレイの撮影でフラッシュや撮影機材、外部の光などが写り込んでしまい、それが原因で画像の加工でとても苦労することになりました。映り込むものによって、それが影になり、うまく数字黒・背景白の画像を作り出すことができませんでした。今回撮り直しを余儀なくされたものが何度もありました。

デジタル数字の認識は、改めて記事を作ろうと思います。tesseractは自分で文字を覚えさせてOCRを学習することができます。今度は自分で学習したOCRでのデジタル数字の文字認識を予定しています。


この記事が気に入ったらサポートをしてみませんか?