This post is Private. Only a writer or those who know its URL can access this post.

GR-LYCHEEで画像認識やってみよう

10/30 AIoTLTハンズオン用の資料です。画像を認識して数字を判別するプログラムを作ってみます。

Image from Gyazo

ご自身で進められる方は、サクサク進めていってみてください!

(コマンドライン操作に慣れている方などは結構すぐ終わってしまうかもしれません)

  • Pythonインストール(Windowsの方)
  • Tensorflowインストール
  • ArduinoIDEインストール(シリアルモニタ用)

使うもの

GR-LYCHEE

がじぇっとるねさすさんが提供している、カメラと無線(Wi-Fi・BLE)を搭載したマイコンボードです。
gr-lychee_2.jpg

電子工作でよく使われるArduino UNOとピンが互換になっていて、作例の多い通信モジュール「ESP32」搭載しています。

わりと手軽にIoTプロトタイピングを試せる高性能マイコンボード、な立ち位置です。(ちゃんとく所感)

なお他のGRシリーズのボードでも今回のプログラムを試すことができますが、GR-KURUMI、GR-COTTON、GR-ADZUKIは容量不足で実行できないようです。

USBケーブル(microB)

pastedimage1492736200900v1.png

PCとGR-LYCHEEの通信(プログラムの書き込みなど)には、Android端末などに使われているmicroBタイプのUSBケーブルを使います。

※ご自身で用意する場合、シリアル通信ができるものか確認してください。安価なものだと一方向の給電専用タイプのものが多いです。

手順1: 作業用ディレクトリ(フォルダ)を作成

今回のプログラムを試す場所(フォルダ)を作ります。

プログラムを実行する上では今どこで作業しているかというのが重要です。最初のうちはわかりづらいので、意識するようにしましょう。

Windowsの方

①デスクトップで右クリックし、gr-tutorialというファイルを作成

②Windowsメニューから「コマンドラインプロンプト」を検索し開く(「cmd」で候補にでてきます)

③下記コマンドを1行ずつ実行($は不要。コマンドラインであることを表しています)

$ cd Desktop
$ cd gr-tutorial

cdコマンドは移動するコマンドです。

Macの方

①「ターミナル」を起動(⌘+スペースで「ターミナル」を検索すると便利)

②下記コマンドを1行ずつ順に打ち込む($は不要。コマンドラインであることを表しています)

$ cd ~/Desktop
$ mkdir gr-tutorial
$ cd gr-tutorial

デスクトップに「gr-tutorial」というフォルダができているかと思います。(右クリックで普通に作成してもOKです)

cdコマンドは移動するコマンド、mkdirコマンドはディレクトリを作成するコマンドです。

手順2: 環境構築

今回はご自身の環境に、以下の内容を用意し進めます。

  • Python実行環境
  • TensorFlow

環境構築はおそらくこのハンズオンで1番大変なところです。乗り越えたらサクッと試せるようになるので頑張りましょう!

PCの状態に合わせて場合分けしましたので、ご自身に合う部分を読んでください。

まずは現在の環境を確認する

下記コマンドを試して、PythonとTensorFlowがインストールされているか確認しましょう。コマンドは$マークの後ろの部分です。(↓の場合はpython -Vと打ち込む)

$ python -V
Python X.X.X

Pythonのバージョンが表示されればOKです。command not foundなどと表示された方は、インストールされていない(または正しくインストールできていない)のでPythonの環境構築手順を進めます。

インストールされていなかった方は、手順2.1へ進んでください。

続いて、TensorFlowモジュールがインストールされているかの確認です。pip listと打ち込んでみましょう。(表示されるものは一例)

$ pip list
Package                Version
---------------------- ---------
absl-py                0.6.1
bleach                 1.5.0
html5lib               0.9999999
Markdown               3.0.1
nose                   1.3.7
numpy                  1.15.3
pip                    18.1
protobuf               3.6.1
setuptools             39.0.1
six                    1.11.0
tensorflow             1.5.0
tornado                5.1.1
Werkzeug               0.14.1
wheel                  0.32.2

インストールされた一覧に、tensorflowとあればOKです。バージョンが古い場合は、下記コマンドで更新をしておきましょう。(最新は1.5系です)

  • Python2系の場合
$ pip install --upgrade tensorflow
  • Python3系の場合
$ pip3 install --upgrade tensorflow

PythonがインストールされているがTensorFlowはインストールされていない場合は、手順2.2へ進んでください。

どちらもインストールされていた場合は、手順3へ進みます。

手順2.1: Pythonをインストール

Windowsの方

下記リンクをたどり、Pythonをインストールします。

完了したら、再度コマンドプロンプトで下記コマンドを実行し、バージョンが表示されるか確認してみてください。

$ python -V
Python X.X.X

Macの方

デフォルトでPython2系がインストールされているはずですが、何かのタイミングで消してしまった可能性があります。

下記リンクをたどり、Pythonをインストールしてください。(Hello WorldはやらなくてOK)

完了したら、再度コマンドプロンプトで下記コマンドを実行し、バージョンが表示されるか確認してみてください。

$ python -V
Python X.X.X

手順2.2: TensorFlowをインストール

下記コマンドを実行します。

$ pip install tensorflow

だらだらと実行文が表示され、最後の行に Successfully installed tensorflow-X.X.Xなどと表示されればOKです。

pip listというコマンドを打って、インストールされたか確認してみます。(表示されるものは一例)

$ pip list
Package                Version
---------------------- ---------
absl-py                0.6.1
bleach                 1.5.0
html5lib               0.9999999
Markdown               3.0.1
nose                   1.3.7
numpy                  1.15.3
pip                    18.1
protobuf               3.6.1
setuptools             39.0.1
six                    1.11.0
tensorflow             1.5.0
tornado                5.1.1
Werkzeug               0.14.1
wheel                  0.32.2

一覧に、tensorflowとあればOKです。

実行したらエラーが出た

長い実行文が表示されたあと、最後の一行が下記のようなエラー文になることがあります。

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/tensorflow-1.11.0.dist-info' Consider using the --user option or check the permissions.

下記コマンドを再度実行します。

$ sudo pip install tensorflow

パスワードを求められるので、PCのユーザのパスワードを入力します。(入力したパスワードは表示されません)

エラーが出てインストールが実行されない①

pip install tensorflowを実行すると、command not foundといったエラーが出る場合があります。以下のコマンドを実行し、pipをインストールします。

$ python -m ensurepip

エラーが出てインストールが実行されない②

pip install tensorflowを実行すると、下記のようなエラーが出る場合があります。

Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow

以下のコマンドを再度実行しましょう。

  • Python2系
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.11.0-py2-none-any.wh
  • Python3系
$ python3 -m pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.5.0-py3-none-any.whl

インストールしたのにlistに表示されない

主にMacで、Python環境がPC上に複数あり、意図する場所にインストールできていない可能性があります。

主に下記の記事を参考にしつつ、手順が煩雑なのでメンターに声をかけてください。

手順3: MNISTで学習モデルを作成

画像認識のプログラムと学習モデルを作っていきます。

MNISTとは?

MNIST(Mixed National Institute of Standards and Technology database)とは、手書き数字画像60,000枚と、テスト画像10,000枚を集めた、画像データセットです。さらに、手書きの数字「0〜9」に正解ラベルが与えられるデータセットでもあり、画像分類問題で人気の高いデータセットです。

MNISTは深層学習(ディープラーニング)の手法の1つであるニューラルネットワークを学ぶ上でも便利ですし、機械学習の入門のデータセットとしてもよく使われています。

手軽に入手できる点も含めて、人工知能(AI)の勉強を始める入り口としてMNISTは人気の高いデータセットです。

機械学習で便利な画像データセット「MNIST」を丁寧に解説!より引用

サンプルファイルのダウンロード

ご自身のPCのダウンロードフォルダに、サンプルコードをダウンロードします。

今回はがじぇるねさんのチュートリアルのサンプルコードをお借りしています!

機械学習の実行」の章にある、「mnist_softmax_for_e-ai.py」のリンクをクリックしダウンロードします。

ダウンロードしたファイルを作業ディレクトリに移動する

ダウンロードフォルダを開き、デスクトップの「gr-tutorial」フォルダに「mnist_softmax_for_e-ai.py」ファイルをドラッグ&ドロップして移動させましょう。

コマンドラインで、開いている場所にファイルが移動してきたか確認してみます。

  • Windowsの場合
$ dir
  • Macの場合
$ ls

一覧に「mnist_softmax_for_e-ai.py」があればOKです。

tensorFlowで学習モデルを作成

tensorFlowを実行し、学習モデルを作ってみます。下記コマンドを実行しましょう。

$ python mnist_softmax_for_e-ai.py

pythonコマンドはPythonで書かれたプログラムを実行するコマンドです。ファイルの中のプログラムが実行され、学習モデルが作成されます。

エラーが出てしまった人は、PythonまたはTensorFlowが正しくインストールできていない可能性があります。手順2に戻り、それぞれ確認してください。

また、not found~などと表示された方はファイル名が正しいか確認します。

Windowsの方はdir、Macの方はlsを実行し、「tf_LearnedModel」というフォルダが作成されたことを確認してください。

Image from Gyazo

dir tf_LearnedModelまたはls tf_LearnedModelなどのコマンドを実行すると、4つのファイルが入っていることがわかります。

↓こんな感じ
Image from Gyazo

これが学習済みAIモデルです!

手順4: 学習モデルをGRボードで扱う

GRシリーズでは「Webコンパイラ」というブラウザ上で利用できるコンパイラが用意されています。面倒な環境構築がないので楽チンですね!

がじぇるねのページから、「ログイン」または「ゲストログイン」をクリックし移動します。
Image from Gyazo

プロジェクト作成画面になるので、適当なサンプルコードと名前をつけ作成します。(どれでもOKです)
Image from Gyazo

右側のリストから「e-AI Translator」をクリックします。
Image from Gyazo

アップロードボタンを押し、先ほど作成された「tf_LearnedModel」を選択します。
Image from Gyazo

その他はデフォルト選択のまま、「トランスレート」をクリックします。
Image from Gyazo

表示されたプログラムを全て選択してコピーします。
Image from Gyazo

閉じるボタンを押してメニュー左側の「〜〜.cpp」というファイル名をダブルクリックし、編集画面を開きます。
Image from Gyazo

全て消してから、コピーしたプログラムを貼り付けます。右側の「ビルド実行」ボタンをクリックします。

手順5: GR-LYCHEEにプログラムを書き込む

コンパイルが完了すると「〜.bin」というファイルが作成されているので、右クリックしダウンロードします。
Image from Gyazo

GR-LYCHEEとPCをUSBケーブルで接続しましょう。

PCに「MBED」という名前で認識されます。
sp_connect_usb2.png

ダウンロードした「〜.bin」ファイルを「MBED」にコピーします。
sp_flash.png

リセットボタンを押し、GR-LYCHEEを再起動させます。
sp_button_reset.png

手順6: シリアルモニタで表示

GR-LYCHEEで実行されている内容を、シリアル通信を介してPCで確認してみます。

Windowsの方

「TeraTerm」というシリアル通信対応のソフトをダウンロード&インストールします。

https://ja.osdn.net/projects/ttssh2/

下記リンクを参考に、TeraTermを起動しシリアル接続します。

参考: Tera Termでシリアル接続を行う手順

Macの方

下記コマンドを実行し、USB接続されている場所を調べます。

$ ls /dev/tty.usb*
/dev/tty.usbmodem~~~

下記コマンドで接続します。

$ screen /dev/tty.usbmodem1422 9600

表示結果

実行時間と、推論結果が表示されます。画像は「0: 1.00」となっているので、0の可能性が高い、という結果の状態です。
mnist_webc_translator4.png

AIの実行」の章にあるサンプル文字の画像をカメラに移し、認識を試してみましょう。もちろん自分で手書きした文字でもOKです!

以上でハンズオンは終了です。お疲れ様でした!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.