工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Raspberry Piで手書き数字認識:TensorFlowとOpenCVを用いたディープラーニング実装

手書き数字を文字起こしする深層畳み込みニューラルネットワークを訓練し、Raspberry Piカメラ、OpenCV、TensorFlowを用いてPi上でリアルタイム推論を行う手順を解説します。

概要

このプロジェクトでは、データ準備とモデル訓練をノートPCで行い、Piカメラでリアルタイム数字認識を行うまでのAIパイプライン全体を歩みます。画像操作にはScikit-LearnとOpenCV 3.3を、深層学習にはKeras(TensorFlowバックエンド)を使用します。

MNISTデータセット(28×28ピクセルのグレースケール数字画像:訓練6万枚、テスト1万枚)を用います。Piカメラで撮影した画像は、このフォーマットに合わせて前処理されてから学習済みネットワークに入力されます。

ネットワーク構成は、標準的な畳み込み層スタックに続き、0〜9の各数字を表す10ニューロンの全結合出力層で構成されます。

モデル訓練後、重みをRaspberry Piに転送します。軽量なPythonスクリプトがフレームを取得し、グレースケール変換、閾値処理、リサイズ、反転を行ってから推論を実行します。

ハードウェアセットアップ

デモでは、Piカメラを簡易ホルダー(手持ちリグ)に固定し、単一の数字にピントを合わせました。実用では、固定マウントや小型ケースを用いると安定性が向上します。

ソフトウェアインストール

Pi上でPython仮想環境を作成し、必要なライブラリをインストールします。以下のコマンドは、Raspberry Pi OSとPython 3.7以上が動作していることを前提としています。

source ~/.profile workon cv python PiCameraApp.py --picamera 1

TensorFlowのインストール

pip install tensorflow

Kerasのインストール

pip install keras

OpenCV 3.3のインストール

Piで完全な最適化を有効にするには、OpenCVをソースからビルドする必要があります。手順はPyImageSearchで公開されています。

https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

最後に、NumPy最適化付きのPiCameraライブラリをインストールします:

pip install "picamera[array]"

モデル訓練

訓練スクリプトをノートPC(GPU搭載推奨)で実行します。スクリプトはKerasでCNNを定義し、コンパイル、MNISTデータで訓練、性能検証を行い、重みをmodel_weights.h5として保存します。

python Train_MNIST.py

NVIDIA GPUをお持ちの場合は、GPU対応TensorFlowとCUDAドライバをインストールすると訓練が高速化されます。GPUがなくても完遂可能ですが、時間がかかります。

訓練後、model_weights.h5をscpやWinSCPでPiに転送します。

リアルタイム数字認識

Pi上で認識スクリプトを起動します。tキーでフレーム取得、qキーで終了します。精度は照明、角度、筆跡の鮮明さに大きく依存します。クリーンで高コントラストな数字では95%以上の精度が典型的です。

画像前処理パイプライン

モデルは長さ10の確率ベクトルを出力し、最大確率のインデックスが予測数字となります。

重要なポイント

この例は、データ準備、モデル訓練、デプロイ、シングルボードコンピュータ上での推論までを一貫して示しています。コードはGitHubで公開されており、実験や拡張にご利用いただけます。

参考資料

出典: AI Digit Recognition with PiCamera

製造プロセス

  1. Raspberry Pi 2でDS18B20温度センサー読み取りガイド
  2. Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
  3. Raspberry Piでサーバークローゼットの温度を正確に監視
  4. Walabot搭載Posture Pal:首・背中の痛みを防ぐリアルタイム距離監視
  5. TJBot入門:組み立て、設定、音声制御で自分だけのAIロボットを構築
  6. Raspberry Pi で自作セグウェイ(自己平衡ロボット)を構築
  7. GoPiGo v2をWindows 10 IoT Coreで拡張 - Raspberry Pi 3対応
  8. Acceed IGS-9822DGP:4 SFPポート搭載12ポートギガビットスイッチ – 高性能産業用ネットワークソリューション
  9. AAEONとIntel、FWS-8600を提供:40コア2Uネットワーク アプライアンス、400Gbpsスループット
  10. Lanner、第2世代インテルXeon Scalableプロセッサ搭載でネットワークアプライアンスを強化
  11. IoTネットワークソリューションで都市洪水に立ち向かう