Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Kazuhito00/7segment-display-reader

Repository files navigation

2021年11月16日追記:より軽量なモデルに差し替えました(Raspberry Pi4:4桁の推論で15〜20fps程度)

7segment-display-reader

7セグメントディスプレイの数値を認識するプログラムです。
ローカルPC(CPU推論) or Raspberry Pi上での実行を想定しています。

本リポジトリは以下の内容を含みます。

  • サンプルプログラム
  • 7セグメント画像識別モデル(TF-Lite)
  • 学習データ、および、学習用ノートブック

Requirements

  • OpenCV 3.4.2 or Later
  • Tensorflow 2.4.1 or Later
  • matplotlib 3.3.2 or Later

Usage

実行方法は以下です。
起動後、マウスで4点(左上、右上、右下、左下の順)検出対象をクリックする

python 7seg-reader.py

実行時には、以下のオプションが指定可能です。
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:640
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:480
  • --crop_width
    7セグメント画像1枚の切り抜き横幅
    デフォルト:96
  • --crop_height
    7セグメント画像1枚の切り抜き縦幅
    デフォルト:96
  • --num_digits
    7セグメントディスプレイの桁数
    デフォルト:4
  • --check_count
    7セグメント画像識別時に直近何回の数値をもとに判断するか
    指定数値を保持し、最多の数値を識別値とする
    デフォルト:5
  • --use_binarize
    7セグメント画像の識別時に2値化(大津の2値化)を使用するか否か
    デフォルト:指定なし
  • --use_binarize_inverse
    2値化を行う際に値を反転するか否か
    デフォルト:指定なし
  • --binarize_th
    2値化の閾値(0〜255)を指定
    このオプションを指定した場合、大津の2値化ではなく単純2値化を実施
    デフォルト:None

Training

1.学習データ

以下のデータを混合し、学習データ:検証データ = 3:1 で分割して使用

  • 01.dataset
    2種類の7セグメント表示器を撮影したデータセット
    「0」〜「9」「表示なし」のデータで約42,000枚
  • Kazuhito00/7seg-image-generator
    OpenCVの描画関数で疑似的に作成したデータセット
    「0」〜「9」「-」「表示なし」のデータで48,000枚

2.モデル訓練

01-01.train_model.ipynb」をJupyter Notebookで開いて上から順に実行してください。
Google Colaboratory上での実行を想定していますが、ローカルPCでも動作出来ると思います。

X.モデル構造

01-01.train_model.ipynb」で用意しているモデルのイメージは以下です。

Author

高橋かずひと(https://twitter.com/KzhtTkhs)

License

7segment-display-reader is under Apache v2 license.

About

7セグメントディスプレイの数値を認識するプログラム

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /