【4桁 – 7セグメント編】連続デジタル数字画像認識プログラミング入門講座(Python・OpenCV・Keras・CNN)

3ステップ【4桁 - 7セグメント編】連続デジタル数字画像認識プログラミング入門講座(Python・OpenCV・Keras・CNN)

 

【4桁 – 7セグメントOCR編】連続デジタル数字画像認識プログラミング入門(Python・OpenCV・Keras・CNN)

 

 

無料で使えるOCR(Optical Character Recognition/Reader:オーシーアール・光学的文字認識)には、

・Tesseract OCR(テッセラクトOCR)

・SSOCR(Seven Segment Optical Character Recognition:7セグメントディスプレイ数字用OCR)

などがありますが、自分が判定したい測定器の7セグメントのデジタル数字を画像認識させてみると

思ったようにうまく認識できない・・・

などと感じる方もいるのではないかと思います。

 




 

また、上記のOCRの学習モデルを、再学習させたいと思い、関連情報を調べてみても

方法はあるのかもしれないが、自分の能力では意味不明…

と、(自分と同じように…)諦めてしまう方も少なからずいるのではないかと察します。
情報を調べてみるとOpenCVのテンプレートマッチングを使うと、7セグメントのデジタル数字を認識できるようでしたが、公開してくださっている偉大な先人のサンプルコードは、かろうじていくつか動かすことはできましたが、現時点の知識では、うまく使いこなすことができませんでした。
具体的には

(・空白の認識にはコツがいる。)
・認識させる桁数を自分好みにカスタマイズできない…

などに遭遇したので諦めました。
以前から、ディープラーニングのCNN(Convolutional Neural Network:畳み込みニューラルネットワーク )で、7セグメントディスプレイのデジタル数字認識オリジナルAIを作成したいと夢想していましたが、中々重い腰があがりませんでした…
2021年2月に入り

Flask(Python)Web機械学習アプリ開発入門

のコンテンツを作成していると、どういうわけか、無性に7セグメントディスプレイデジタル数字認識オリジナルAIプログラムを作成したくなったので、勢いで今回の入門講座を書き上げました。
人によっては、記事だけでは使い方がわかりずらい方もいるのではないかと思いますので、専用のチュートリアル動画を、今後YouTubeチャンネルの

RehabC – デジタルで、遊ぶ。

に投稿予定です。作成次第公開したいと思いますので、しばらくお待ちください。

一連のコンテンツが、これから、計量器や時計、温度計をはじめとしたデジタル数字認識に挑戦したい方の、何かしらの参考になることがありましたら幸いです。

 

【追記:2021年2月16日】

手動抽出編のチュートリアル動画を公開しました。日々の学習にお役立てください。

 

【Python機械学習入門】高精度の自作OCRを作ろう(7セグメントデジタル連続数字画像認識AI:1桁〜4桁 - 静止画トリミング編)- 7 Segment Digits Training by RehabC - デジタルで、遊ぶ。(YouTube動画)

 

【Python機械学習入門】高精度の自作OCRを作ろう(7セグメントデジタル連続数字画像認識AI:1桁〜4桁 – 静止画トリミング編)- 7 Segment Digits Training by RehabC – デジタルで、遊ぶ。(YouTube動画)

 

【追記:2021年2月2日】

文字検出版のOCRプログラムが作れるコードも公開しました。
自分で作っておきながらあれですが、本格的なOCRも作れてしまうのですね…
すごい時代です。

Pythonではじめる日本語OCR開発 – 手書き文字認識編 by RehabC – デジタルで、遊ぶ。(YouTube動画)

 

 

【3ステップ】連続デジタル数字画像認識プログラミング入門(Python・OpenCV・Keras・CNN)

 

 

7セグメントディスプレイのデジタル数字認識AIを作成し、1〜4桁の数字画像の判定をしてみましょう。
オリジナルデータセットで学習・再学習させて実用的なOCRを作成してみましょう。

 

 

【ステップ1】7セグメント認識用オリジナル学習済みモデルの作成

 

【7セグメント編】オリジナル学習済みモデルの作成方法:連続デジタル数字画像認識プログラミング入門(Python・OpenCV・Keras・CNN)

 

7セグメントのデジタル数字認識AI作成のためにオリジナルデータセットで、学習済みモデルを作成してみましょう。
【7セグメント編】オリジナル学習済みモデルの作成方法

 

【ステップ2】1文字判定(デジタル数字:0〜9+空白)

 

【7セグメント編】1文字判定(デジタル数字:0〜9+空白):連続デジタル数字画像認識プログラミング入門(Python・OpenCV・Keras・CNN)

 

オリジナルの学習済みモデルで、7セグメントのデジタル数字を認識させてみましょう。
【7セグメント編】1文字判定(デジタル数字:0〜9+空白)

 

 

【ステップ3】デジタル数字:4桁連続数字認識 +再学習

 

【7セグメント編-手動抽出OCR】連続文字判定(デジタル数字:4桁連続数字)+再学習:連続デジタル数字画像認識プログラミング入門(Python・OpenCV・Keras・CNN)

 

【基本 – 手動で文字領域トリミング】

数字の判定領域を手動で抽出する方法(手動で文字領域トリミング)を実装しているプログラムです。
1〜4桁のデジタル数字を認識できる簡易OCRを作成し、失敗した画像情報をオリジナルデータセットに追加してAIを賢くしてみましょう。
【7セグメント編-手動抽出OCR】連続文字判定(デジタル数字:4桁連続数字)+再学習

 

【応用 – 自動文字検出・抽出機能付きの自作OCR作成】

数字の判定領域をOpenCVの輪郭抽出機能を使い自動で抽出する方法(自動で文字検出)を実装しているプログラムです。
ここまでできれば、本格的なOCRシステムですね。

上述の2ステップ

【7セグメント編】オリジナル学習済みモデルの作成方法

【7セグメント編】1文字判定(デジタル数字:0〜9+空白)

に加えて、以下のステップを踏むことで、一般的なOCRでお馴染みの自動文字検出機能付きのOCRを自作することができます。

【ステップ3−1:7セグメントデジタル数字文字検出】

 

【7セグメント編】デジタル数字文字検出(物体検出):画像の2値化・膨張処理・輪郭検出枠のカット設定方法

 

【7セグメント編】デジタル数字文字検出(物体検出):画像の2値化・膨張処理・輪郭検出枠のカット設定

 

【ステップ3−2:7セグメントデジタル数字文字検出・抽出オリジナルOCR】

 

【7セグメント編 - 自動文字検出・抽出OCR】連続文字判定(デジタル数字:1〜4桁以上の連続数字)+再学習

 

【7セグメント編 – 自動文字検出・抽出OCR】連続文字判定(デジタル数字:1〜4桁以上の連続数字)+再学習

 

 

今回公開させていただいた、プログラムはMITライセンスで公開しています。
【4桁 – 7セグメント編】連続デジタル数字画像認識プログラミング入門講座のプログラムを改変・応用して、趣味や日常生活・仕事などのタスクを楽にされる方が現れることを楽しみにしています。

 

 

【応用事例】7セグメント:連続デジタル数字画像認識

 

 

今回の7セグメントの連続デジタル数字画像認識のチュートリアルを参考にしてくださって、記事を書いてくださっている方もいるようでしたので、以下に事例を紹介させていただきます。

 

 

【事例】電話のナンバーディスプレイのIT化に挑戦

 

 

電話にまつわる業務効率化と管理をIT化する試みのようです。
昼と夜の明かりの具合を考慮すると、難しさもあるようでしたので一旦保留とのことでしたが、一連のIT化の試みは電子工作やプログラミングに関心のある方にとって、参考になるのではないかと思います。

応用事例をチェック
アナログ電話のナンバーディスプレイを安価にIT化する話 | もやし工房

 

 
by 子供プログラマー | プログラミング入門ウェブ教室

 

 

縦書き・横書き対応の日本語手書き文字のOCR開発に挑戦
【日本語手書きOCR編】連続文字画像認識プログラミング入門(Python・OpenCV・Keras・CNN)| 一覧ページ