Microsoft Azure Cogniyive ServicesのCustomVision(以下 CustomVisionと表記します)を利用すると独自のオブジェクト認識モデルを簡単に作ることができます。作成したモデルはREST APIから利用することもできますが、モデルを出力してスタンドアローンで利用することもできます。
今回のサンプルコードではCustomVisionで7種類の犬を判別するモデルを作成し、出力したモデルを使ってRaspberryPi上で推論を実行してみます。
実行環境
RaspberryPi3(Raspbian Stretch 04/08)
Tensorflow 1.13
OpenCV4.1.0
Windows10 PC(CustomVisionのモデル作成に使用)
ブラウザが利用できればなんでも可
モデルの作成
・次のURLからサンプルコードをPCにダウンロードします。
・ダウンロードしたフォルダにある「dogs.zip」を解凍します。
・CustomVisionのサイトにログインします。
・次の画面で
「Name(任意)」、
「Project Types:Object Detection」、
「Domains:General(compact)」、
「Export Capabilities:Basic platforms」
を入力します。
・続いてアップロードした画像のアノテーションを行います。
マウスカーソルを対象のオブジェクトに近づけると枠が表示されるのでサイズを調整して、タグ名を登録します。もし枠が表示されない場合は対象をドラッグして囲みます。アップロードした画像すべてにタグをつけていきます。
・アノテーションが完了したら「testset」以外残りの画像もフォルダごとに同様の作業を繰り返します。
・すべての作業が完了したら、「Performance」タブをクリックします。「Train」ボタンをクリックし、トレーニングを開始します。
・モデルの出力形式を選択します。「Tensorflow」を選んでください。
・次の「Download」ボタンをクリックしてPCに保存します。
・ダウンロードしたファイルを解凍し、「model.pb」、「label.txt」をRaspberryPiに用意したサンプルコードのディレクトリにコピーします。
・RaspberryPiのターミナルを起動して、サンプルコードのディレクトリに移動します。
・コマンドラインから「python3 predict.py (認識させる画像ファイル)」を実行します。
・無事認識されたら犬が写っている範囲と犬種、確率が表示されます。