IoT機器を活用した業務効率化が話題ですが、クラウド上ではなく機器側で処理を行うエッジコンピューティング、さらにはAIによる学習モデルを使用して処理を行う「エッジAI」に注目が集まっています。
今回はAI学習モデルを生成するサービスと連携して手軽にエッジAIを実現できるAIカメラ「M5StickV」を用いて、簡易検品システムの構築に挑戦します。
M5StickVとは
M5StickVはM5Stackが販売しているAIを搭載したカメラデバイスです。
最近AI+とIoTが合体してるデバイスが多く登場しておりこの手のデバイスを「AIoT」と呼ばれています。でもこのM5StickVのすごい部分は親指サイズほどの大きさしかないのに低コストかつ高性能な画像処理ができるのです。
さらに、機能も充実しておりLCDスクリーン、ジャイロスコープ、カメラ、内蔵バッテリーと標準で多くの機能を備えています。
それだけでもすごいのですが、M5StickVと連携することができる「V-Training」というクラウドのサービスがとにかくすごくてとても便利なので下で紹介します。
V-Trainingとは
V-Trainingは、M5stack社が提供している、学習モデルを作ってくれるクラウドのサービスです。
使用者は、学習モデルに必要な写真をM5StickVで撮影して、写真が入ったフォルダをそのままV-Trainingにアップロードするだけで、メールで学習モデルを手に入れることができます。
今までは自分で写真を撮影したデータを自分のマシーンで学習させてマシンスペックによっては長時間かかってしまったり、エラーでやり直しなどもありましたが、クラウドのサービスにアップロードするだけで自分の画像認識モデルを作成することができます。
M5StickVのセットアップ
M5StickVを使用するためには、最初にセットアップをする必要があります。バージョンの違いや新しいアップデートの情報などがあるため下記公式サイトの手順に従うことを推奨します。
※下記はWindowsと接続する場合の手順です
“M5Stack Docs-The reference docs for M5Stack products.”.m5stack-store.2020.
https://docs.m5stack.com/#/en/quick_start/m5stickv/m5stickv_quick_start
上記ページにアクセスしたら、下図赤枠の「Windows」をクリックしてファームウェア(M5StickVを動かすための制御プログラム)をダウンロードします。
制御プログラムをダウンロードできたら、付属のケーブルを使ってM5StickVとPCを接続します。
ダウンロードしたファイルを実行すると、「不明な発行元」として表示されますが「実行」を押して次に進みます。
※以下図版内のアプリ名称、バージョン番号は変更されている場合があります
次の画面に切り替わるので、COM[M5StickVと接続したポート名]に設定したことを確認して「Burn」をクリックします。
黒い画面でコマンドが実行されてダウンロードが終了すると、「Successfully」と表示がでるので、閉じます。
これでWindowsとM5StickVを接続する際のセッティングは完了です。
V-Trainingを使い、画像認識モデルを作成する
プログラムを入れて学習データを撮影する
次にV-Trainingを使い実際に画像認識のモデルを作成してみます。
ここからは、microSDカードが必要になりますが、公式サイトを見ると動作できるmicroSDカードが決まっているようです。
※公式サイトで動作確認済みのmicroSDカードの種類は下記から確認してください
“M5Stack – SD card test”.m5stack-store.2020.
https://docs.m5stack.com/#/en/core/m5stickv?id=sd-card-test
microSDカードが用意できたら、下記にアクセスして「Click here download boot zip」をクリックして必要なファイルをダウンロードします。
“M5Stack – Material Training”.m5stack-store.2020.
https://docs.m5stack.com/#/en/related_documents/v-training?id=classification-mode
ダウンロードしたフォルダを展開すると3つのファイルが入っています。
この3つのファイルを先ほど用意したmicroSDカードにコピーします。
コピーすることができたら、microSDカードをM5StickVに挿入して起動させます。
起動の仕方は、microSDカードを挿入する部分の右側にあるボタン(下図赤枠)を長押しします。
「チーン」という効果音とともにM5StickVの画面が下図のように切り替わったら起動に成功です。
先ほどコピーした3つのファイルには撮影をするためのプログラムが含まれていますので、早速M5StickVで撮影し、学習するための素材を集めます。
画面の右にあるボタンを押して写真を撮影しますが、学習対象となるものだけを撮影するようにして、35枚以上撮影を行います。
V-Trainingでは35枚以上の画像で一つのまとまり(クラス)として学習を行います。また、学習には3クラス以上の画像を用意することが推奨されているため、35枚以上撮影できたら、下図赤枠のボタンを押してクラスを切り替え、別の学習対象でさらに35枚以上写真を撮影します。2クラス目の撮影ができたら、再度下図ボタンを押してまた別の学習対象で35枚以上撮影を行います。
細い注意や写真の撮り方は下記公式サイトの内容も確認してください。
“M5Stack – Footage Shooting”.m5stack-store.2020.
https://docs.m5stack.com/#/en/related_documents/v-training?id=footage-shooting
V-Trainingを使った学習モデルの生成
撮影が終了したら、M5StickVを終了(起動する時に押したボタンを長押し)し、microSDカードを取り出してPCと接続してください。
現在のmicroSDカード内のフォルダの中を確認すると、下図のようになっています。
この中にある、「train」と「vaild」の二つのフォルダが必要になります。
中には撮影した写真がクラスごとのフォルダに分けられています。
撮影に失敗してしまったり途切れたりしていないかを一通り確認したら、この二つのフォルダをzipに圧縮します。
圧縮するのですが、必ず二つのフォルダを下図のように二つ選んだ状態で右クリック→[圧縮(zip 形式)フォルダー]で圧縮します。
※この段階で間違った圧縮方法で進めると学習モデルを作成する段階でエラーが出ます。
(今回はここで時間を取られました。)
圧縮ファイルの準備ができたら下記のURLにアクセスします。
“V-Training”.m5stack-store.2020.
http://v-training.m5stack.com/
アクセスしたら、Emailアドレスを入れ、先ほど用意した圧縮ファイルをアップロードします。
このアップロードには少し時間がかかりますので焦らず待ちます。
アップロードが完了すると、「Finished」と表示され、先ほど入力したメールアドレス宛にメールが来ているのでメールの内容を確認します。
届いたメールに記載されているリンクをクリックして、サンプルコードと学習モデルをダウンロードします。
ダウンロードしたファイルを先ほどと同様に、M5StickVに挿入するmicroSDカードにコピーして上書きします。
実際に画像認識に挑戦
今回は実際の業務の中の検品作業のシチュエーションを想定して、画像認識に挑戦したいと思います。
検品の対象物を今回はブロックを組み合わせたボックスに見立て、準備をします。
一番右と真ん中がOKのプロックの組み合わせで、一番左がNGの組み合わせとして用意したものです。
これらのブロックをベルトコンベアーで流し、ベルトコンベアー上部に設置したM5StickVで認識させます。
OKの組み合わせなら緑色のOKランプが点灯、NGなら赤色のNGランプが付けば成功です。
実際に動作している様子がこちらです。
ノンコーディングでできる画像認識
今回はAIカメラM5StickVを使った画像認識に挑戦してみました。最初のセッティングから学習モデルの生成まで、初めて取り組む人でもスムーズに作業ができるように公式サイト上に丁寧な説明が準備されており、手順に沿って進めるだけでプログラムを書かずに画像認識をすることができます。
様々な分野で活用され始めているエッジAIがどんなものか理解するためには実際に構築を行ってみることが有効ですので、このようなデバイスを活用していただけたらと思います。
[ネクスマグ] 編集部
パソコンでできるこんなことやあんなこと、便利な使い方など、様々なパソコン活用方法が「わかる!」「みつかる!」記事を書いています。