RaspberryPiにActcastをインストールしてAIカメラを試す

IoT

はじめに

GMOグローバルサイン・ホールディングス、CTO室でIoTの研究開発をしているringoです。最近は緊急事態宣言ということで外に飲みに行くことも減ったので、自宅でカクテル作りにはまっています。

さて、今回の記事はActcastの紹介と実際にチュートリアルを試したレポートになります。
ここ数年でAIによる画像認識技術の向上は目覚ましいものがあります。ほんの数年前までは研究レベルだったものが実際に製品に組み込まれていたりと身近に感じることが多いです。
論文や学会誌などを読んでいて、この技術があればこんなことできそうだな!と思ったことはありませんか?私はよくあります。でも実際にやりたいことを実現するためには乗り越えないといけないハードルが多く、手軽に実験するのは難しかったりします。こういった問題の解決策の一つにIdein株式会社のActcastというサービスがあります。

Actcastとは

Actcast とは、エッジコンピューティングによって、高度なAI解析を利用したIoTシステムを手軽に安価に構築できる 開発者向け Platform as a Service (PaaS) です。

Product| Idein inc.

画像認識という重たい処理を小型のシングルボードコンピュータであるRaspberryPiでこの速度で処理できるのは凄いです。ActcastではRaspberryPi上で動作する学習モデルの配布と、デバイスを管理するためのダッシュボードやmicroSD書き込み用のソフト(Actcast Writer)を提供しています。
今回はRaspberryPi ZeroWにActcastをインストールして簡単なデモアプリを動かしたいと思います。

Actcastのチュートリアル

本記事ではGetting Started with ActcastにしたがってActcastで通知アプリを作成します。

用意するもの

ラズパイzero

  • Actcastへの登録
  • RaspberryPi Zero W
  • microSD
  • Raspberry Pi カメラモジュール V2

その他にもモニタに表示する場合はモニタとケーブルを用意してください。

デバイスの追加

Actcastへの登録はActcastからできます。
登録が完了しログインするとダッシュボードが表示されます。
まずはデバイスの追加のために、左のメニューからDevicesを選択します。

Add device

認証が有効な期間を設定しプロビジョニングトークンを発行します。
Actcastのアカウントとラズパイの接続はトークンを発行して行うため、表示されたトークンをメモしておきます。

microSDへの書き込み

ActcastにはActcast Writerと言われる専用の書き込みソフトが用意されているのでAdd Deviceの画面でダウンロードします。
ここで先ほど発行したトークンを入力します。トークンのほかにwifiのSSID、パスワード、デバイス名を入力しmicroSDを選択して書き込みます。

actcastwriter

write successと表示されると書き込み完了です。

Actcastの起動

actcast1

初回起動時はActcastのインストールが始まるのでしばらく待ちます。
インストールに成功しwifiに繋がると自動的にプロビジョニングされます。
ここまで手順通りに進むとActcastのダッシュボードのデバイス画面からラズパイが追加されていることが確認できます。

actcast2

Updateのアイコンが表示されているのでクリックすると自動的にアップデートが始まります。

Actの作成

Actcastではデバイス上で実行され、デバイスに様々な振舞いをさせるソフトウェアをActと呼びます。
想定されるユースケースに合わせたActが用意されています。Demoのカテゴリにいくつか無料で試せるActが用意されているのでインストールします。
せっかくなのでいくつか試してみます。

ImageNet Classification (Free)

チュートリアルにしたがってImageNet ClassificationのActを作成します。
デバイスの画面から作成したActを選択すると自動的にラズパイにActがインストールされます。

動かしている様子をご覧ください。

4fps前後で動作して、マウスやバナナといった分かりやすいものは高い確率を表示していることが確認できます。
ちなみにラズパイ3b+だと15fpsぐらいで動作しました。

Pedestrian Counter (Free)

このActは指定したライン↑を通過した人数を数えるActになります。
こちらは無料版でデータを送ることはできませんが、Actの機能を試すことはできます。
先ほどと同じようにActを追加し、デバイスにActを割り当てると自動的にラズパイにインストールされます。

ラインを人が通り過ぎると画面の上に表示されたカウンタの数字が増えていることが確認できます。
Freeで使えそうなら有料版でサービス構築してみてね。といった使い方を想定しているように感じます。価格設定も安いので気軽に試せそうです。

Castの作成

Cast とは Act から届いたデータをインターネット上のサービスに送信する仕組みです。Actで得られた結果に対して、トリガーを設定することでアクションを起こすことができます。

webhookの送り先はhookbinを使用します。
トリガーはデフォルトのままで送り先のURLと送るデータの形式を入力してCastを作成します。
比較的認識率が高かったマグカップを映して、hookbinを確認してみると、

hookbin

検出された物体と認識率が送信されています。
ImageNet Classificationのデフォルトのしきい値は90%以上となっていますが、うまく認識しなかったため70%にしきい値を変更して行いました。
Actのログの確認はDevices -> Device Detailes -> Act -> Show Act Logから確認することもできます。

今回はチュートリアルにしたがってhookbinを使用しましたが、他のサービスと連携することで手軽に様々な応用の効くアプリケーションができそうです。

終わりに

ActcastのチュートリアルにしたがっていくつかのActとCastによるイベントの送信を行いました。
感想になりますが、画像認識を使ったアプリケーションを構築するときに必要な、AIモデルやOTA(Over The Air)アップデート、デバイス管理のダッシュボードがひと通り揃っているため、プログラムが書けない人でも組み合わせてアプリケーションが作成できるのはいいと思いました。
ここで紹介したこと以外にも開発者向け機能として、Actcastアプリケーションを開発するためのツールが配布されています。開発したモデルをActcast上で公開することもできます。

AI x IoTアプリケーション開発にActcastという選択肢を考えてみるのもいいかもしれませんね。

参考