M5 StickV をなんとなく購入してみました

こんにちは、 id:numanuma08 です。年末年始は実家でゆっくり過ごしました。

年末にM5StickVを購入してみたので、セットアップを行いました。

M5StickVとは

f:id:numanuma08:20220111223802j:plain

名前がすでにM5StackやM5StickCと似ていますが、M5Stack社が発売しているAIカメラです。これ単体と事前に用意した学習済みモデルを使うと、カメラから取得した画像に対して物体認識などが行えます。TensorFlowで作成したモデルも変換すれば使えるため、省電力・省スペースなカメラとして活用が期待できます。

利用方法は例えば監視カメラ的に使ってみたり、M5Stackと組み合わせてロボットの目として利用するなどが挙げられます。なお、名前がM5Stackと似ていますが搭載しているチップはArduino互換ではなく、Kendryte K210なので開発環境や使用できるAPIは別物です。

M5StickVのセットアップ

基本的に公式サイトにあるQuickStartを参照します。やりたいことに応じて参照するページが異なりますが、学習済みモデルを使ったアプリケーションを実装する場合はM5StickV MaixPyを、M5StickV上で機械学習のためのデータを作成する場合はV-Trainingをそれぞれ参照します。

docs.m5stack.com

docs.m5stack.com

まずは何はなくともHello worldなのでM5StickV MaixPyを参考に環境をセットアップします。手順は以下です。

  1. Kflash GUIをインストール
  2. ファームウェアをダウンロード
  3. Kflash GUIを使ってM5StickVにファームウェアを焼く

ここまで行うとM5StickVが単独で起動してカメラから取り込んだ画像がディスプレイに表示されます。この時点でYoloの画像認識モデルをロードしていて、画像認識アプリが使えるので適当な人や写真をカメラで写してみましょう。顔のところに白い枠が付きます。

id:takkumattsu 入社のお知らせ記事にいい感じの集合写真があったのでサンプルに使ってみました。

f:id:numanuma08:20220111223822j:plain

松村さんが入社しました | covelline, LLC.

MaixPyを使ってみる

MaixPyを使うとPythonでM5StickVのAPIを利用できます。とりあえず、Hello worldとしてカメラで読み込んだ画像をそのままディスプレイに表示します。

import sensor,image,lcd
lcd.init()
lcd.rotation(2)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
while True:
    img=sensor.snapshot()
    lcd.display(img)

コードを実行するとMaixPy上でも画像が表示され、またヒストグラムの情報が表示されます。

f:id:numanuma08:20220111223557p:plain

まとめ

M5StickVを購入したのでセットアップを行いました。ビジネスに活かすとか、そのあたりは考えておらずほぼ趣味で購入した物なので、今後どう使うか未定です。何かできあがったら記事にします。