7-Segment display Analyzer for JunLab 2024
Releases ・ Features ・ Installation ・ References ・ License7セグメント表示器が示したデータをシリアル等で読み取れない場合のために、メータの表示状態を録画し、そこからデータを取り出すためのプログラムを作成した。
仮想環境の作成等はMacOS・Linuxに準拠するため、Windowsで実行する際などは適宜読み替えてほしい。
また、Linux環境以外で tflite-runtime
を用いたい場合は こちら を参照するとよい。
# リポジトリのクローン
git clone https://github.com/EbinaKai/Sichiribe.git
cd Sichiribe
# 仮想環境の作成
python3 -m venv env
# 仮想環境の有効化
source ./env/bin/activate
# ライブラリのインストール
python3 -m pip install --upgrade pip
pip install -r requirements.txt
学習済モデルは、Github | Release v0.1.1 または Github | Release v0.1.2 においてあるので、そこからダウンロードして model/
フォルダを作成して設置する。
mkdir model
# tensorflow を使用する場合
curl -L -o model/model_100x100.keras https://github.com/EbinaKai/Sichiribe/releases/download/v0.1.1/model_100x100.keras
# tflite-runtime を使用する場合
curl -L -o model/model_100x100.tflite https://github.com/EbinaKai/Sichiribe/releases/download/v0.1.2/model_100x100.tflite
ファイル | 説明 |
---|---|
app.py |
GUIアプリケーションの起動 |
live.py |
外部カメラからライブ解析 |
replay.py |
動画ファイルから解析 |
cores/common.py |
コアな汎用的な機能の関数詰め合わせ |
cores/capture.py |
カメラにアクセスする機能 |
cores/frame_editor.py |
動画のフレームに関する機能及び7セグメント表示器の領域選択機能 |
cores/detector.py |
7セグ表示器から数字を推測するプログラムの親クラス |
cores/cnn.py |
CNNモデルを用いて画像から数字を取得するプログラムのコア部分 |
cores/cnn.py |
CNNモデルをTensorflowのフルバージョン(.kerasモデル)で動かす場合 |
cores/cnn_lite.py |
CNNモデルをtflite-runtime(.tfliteモデル)で動かす場合 |
cores/exporter.py |
取得した結果を任意の形式で出力・保存する機能 |
train/train.py |
CNNモデルを学習させるプログラム |
train/conv_keras2tf.py |
Kerasモデルをtflite形式に変換するプログラム |
gui/utils/common.py |
GUI用の汎用的な機能の関数詰め合わせ |
**gui**/utils/router.py |
GUIの各ページのルーティング関数 |
gui/utils/screen_manager.py |
GUIの各ページの管理クラス |
gui/views/splash_view.py |
GUI起動後のスプラッシュ画像 |
gui/views/main_view.py |
メインページ。この中に各ページをラップする |
gui/views/menu_view.py |
ライブ解析・動画ファイル解析を選択 |
gui/views/log_view.py |
ログの表示画面 |
gui/views/region_select_view.py |
7セグメント表示機の領域選択画面 |
gui/views/live_setting_view.py |
ライブ解析の設定画面 |
gui/views/live_feed_view.py |
ライブ解析のカメラ画角確認画面 |
gui/views/live_exe_view.py |
ライブ解析の処理画面。推論結果のグラフと7セグ画像が表示される |
gui/views/replay_setting_view.py |
動画ファイル解析の設定画面 |
gui/views/replay_threshold_view.py |
2値化のしきい値を設定 |
gui/views/replay_exe_view.py |
動画ファイル解析の処理画面。推論結果のグラフが表示される |
gui/workers/live_feed_worker.py |
ライブ解析のカメラ画角確認のバックグランド処理 |
gui/workers/live_detect_worker.py |
ライブ解析の推論のバックグランド処理 |
gui/workers/frame_devide_worker.py |
動画ファイル解析のフレーム分割のバックグランド処理 |
gui/workers/replay_detect_worker.py |
動画ファイル解析の推論のバックグランド処理 |
gui/widgets/mpl_canvas_widget.py |
グラフを表示するウィジェット |
sample/* |
テスト用ファイル |
CNNモデルを学習させるためには以下のプログラムを実行する。
参考にしたサイトは ここ 。
上記サイトからデータセットも落としてこれるので、学習前にダウンロードしたあとに zip を解凍してプロジェクトフォルダに追加すること。また、カスタムデータセットを作成した際は、一文字ごとに分割して PNG形式で保存するとプログラムを改変せずに実行できる。
# 学習(ファイル内のパラメーターを調整してから実行)
python cnn/train.py
# 軽量モデルに変換
python cnn/conv_keras2tf.py
このプロジェクトは MIT ライセンスのもとで公開されています。詳細については、LICENSE.txt ファイルをご覧ください。