Android 内蔵 IoTエッジカメラデバイス Acty-G3+ 向けに、人数カウントAIアプリを作ってみた　〜アプリの設定や動作イメージをご紹介〜

# 概要
AI Dynamics Japanでは、ビジネスシーンに簡単に導入できるAIのパッケージラインナップ製品として「Package 20™」[^1] をリリースしていますが、この度、 **CYBERDYNE Omni Networks社提供のエッジデバイス「Acty-G3+」** に、Package20™アルゴリズムの一つである「滞在人数カウント（Congestion Monitor）」を実装して展開することとなりましたので、本サービスについて今回記事にしました。
[^1]: [AI Dynamics Japan Package 20™](https://aidynamics.jp/services/package20)

4/20より[SORACOM IoTストア](https://soracom.jp/store/)から販売開始されるこちらのデバイスには、開発した「滞在人数カウント」アプリがプリインストールされた状態で提供されます。本記事では購入後実際にアプリを利用する際の動作イメージや設定方法をレシピとしてご紹介します。
※Androidアプリの実装方法を説明するための記事ではありません。

# Acty-G3+とは
Acty-G3+[^2] の特徴を端的に説明すると、
- Android搭載、通常のAndroidと同様の開発環境でアプリ作成可能
- Bluetooth、Wi-fi、LTEなどの通信機能に加え、加速度センサー、ジャイロセンサーなど各種センサーを搭載
- 防水性能や常時給電利用における給電モード最適化など、現場用途における耐久性
が挙げられます。IoTデバイスとしての機能を十分に備えていますね。

サイズも手のひらに収まるサイズで、とても扱いやすくていい感じです。まさに「ディスプレイのないAndroid端末」という印象です。
 ![actyg3plus.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/77fece7a-4fac-7b8c-7c90-6d36e51aca0f.jpeg)

余談ですが、Acty-G3+のどこが「プラス」なのかと言うと、本デバイスの前身として「Acty-G3」というものがあり、今回の追加点としてカメラが搭載された部分が大きな変更点となっています。

[^2]:[CYBERDYNE Omni Networks Acty-G3+　公式ページ](https://www.cyberdyne-omninet.com/acty_g3plus/index.html)

# 前提
### システム構成
![system.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/dd7b6360-b1af-f32f-8993-983879f7f6f4.png)

### 必要機材
| 品名 | 価格 | 備考  |
|:-|:-:|:-|
| [Android搭載IoTエッジカメラ Acty-G3＋ スターターキット](https://soracom.jp/store/20503) | 29,480円（税込） | 本キットには Acty-G3+ 本体に加えて、SORACOM 特定地域向け IoT SIM / plan-D D-300MB (サイズ：ナノ・データ通信のみ)と、SORACOMサービス利用料 2,000円分のクーポン(6ヶ月有効)が付属します。SIMを別途お求めいただく必要はありません。 |
| PC | - | Acty-G3+ と接続し、リモートデスクトップを使用して操作・設定を行います。 |
| USB-Type A-Type C ケーブル | - | Acty-G3+ とPCとの接続時に使用します。PC側はUSB Type Aに接続します。データ転送対応のものが必要です。 |
| カメラ用３脚スタンド | - | Acty-G3+ の設置に使用します。 |

### 利用ソラコムサービス
| サービス名 | 備考 |
|:-:|:-|
| SORACOM Harvest Data[^3] | データ収集・蓄積サービスです。位置情報の保存先として利用します。 |
| SORACOM Lagoon[^4] | ダッシュボード作成・共有サービスです。SORACOM Harvestに保存した位置情報を使ったダッシュボードを作成するために利用します。 |
[^3]:[SORACOM Harvest](https://soracom.jp/services/harvest/)
[^4]:[SORACOM Lagoon](https://soracom.jp/services/lagoon/)

# 事前準備
### リモートデスクトップ環境
前述のとおりActy-G3+はディスプレイを持たないため、デバイス・アプリの操作には[Vysor](https://www.vysor.io/)と呼ばれるAndroid専用リモートデスクトップツールを使用します。
参考：[https://blog.covia.co.jp/entry/2020/09/10/133226](https://blog.covia.co.jp/entry/2020/09/10/133226)
※ coviaのIOTブログより

### SORACOM IoT SIM挿入
デバイスの電源を入れる前に、デバイス本体にSIMカードをセットします。
参考：[https://soracom.jp/recipes_index/9483/#i-3](https://soracom.jp/recipes_index/9483/#i-3)
※ ソラコムのレシピページより。リンク先はカメラなしモデルであるActy-G3でのご案内ですが、Acty-G3+でも同様です。

# 手順
### アプリ起動
デバイス電源を入れたら、リモートデスクトップからCongestion Monitorアプリ（AI Dynamicsのロゴがアイコン）を起動します。
![app_icon_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/1f4da59e-22ad-6d59-d482-17b68517b553.png)

アプリが起動すると、早速デバイスのカメラが有効化され、画像に対する人物の物体検知AIが処理を始めます。人物が検知されるとその領域が赤枠で表示され、カウント数が画面左上に表示されます。とってもお手軽ですね。
![people.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/61724ec0-ec34-f279-9845-1f50e648c583.png)

※Acty-G3+には現場設置用に各種アタッチメントアクセサリーが準備されています。
今回の撮影には３脚マウントアダプターを利用しました。
参考：[https://blog.covia.co.jp/entry/2022/02/25/105035](https://blog.covia.co.jp/entry/2022/02/25/105035)
※ coviaのIOTブログより
![mount.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/87249553-38d5-e5b9-da02-d99ced179c91.jpeg)

### クラウドアップロード設定
AIの動作を確認して満足感に浸ったついでに、クラウドアップロードの設定も行います。

事前準備でデバイスに挿入したSIMを有効にします。
- ソラコムコンソール側の設定
  - SIM登録とSIMグループ作成
参考：[https://soracom.jp/recipes_index/18462/#S_Camera_Design](https://soracom.jp/recipes_index/18462/#S_Camera_Design)
※ ソラコムのレシピページより

  - SIMグループ設定
参考：[https://soracom.jp/recipes_index/18462/#i-2](https://soracom.jp/recipes_index/18462/#i-2)
※ ソラコムのレシピページより。参考リンクではHarvest Data以外のサービスの設定も行っていますが、今回はHarvest Dataのみ有効化します

- Acty-G3+側の設定
リモートデスクトップ上で下から上にスワイプし、「設定」を開きます。
![apn_setting_1_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/a7d6691f-21c8-838c-8a96-7562bf2183f3.png)
ネットワークとインターネット→モバイルネットワーク→詳細設定→アクセスポイント名の順に進み、画面右上の＋ボタンからSORACOM用のAPN設定を追加します。

| 項目 | 設定値 |
|:-:|:-:|
| APN | soracom.io |
| ユーザー名 | sora |
| パスワード | sora |
| PDP Type | IP |
| 認証タイプ | CHAP または PAP |

![apn_setting_3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/71b3a012-7a4a-a9c9-f370-d4ce07369a40.png)

- アプリ内の設定
アプリの画面下にある矢印部分を上にスワイプして設定項目を表示させます。
「Upload Interval」の項目でアップロード間隔を設定し、「Upload Data」の項目でONを選択することでSORACOM Harvest Dataへのデータ送信が開始されます。
 **※SIMの設定が正しく行われていない、またはデバイスのWi-fi設定がONになっているとクラウドにデータが送信されないことがあり、その場合「Upload Data」の項目が自動でOFFになります。** 
![upload_setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/0c9c6853-c942-56eb-4cc7-2902f27f6f80.png)

データが正常にアップロードされたかどうかはSORACOMアカウントのHarvest Dataのページにアクセスすれば確認できます。
![harvest_data_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/4782dcca-c830-b660-f982-bc7b47b2913b.png)

### Lagoonダッシュボード設定
SORACOM Lagoonを使用することにより、より高機能なデータ可視化が可能になります。
参考：[https://soracom.jp/recipes_index/18462/#SORACOM_Lagoon](https://soracom.jp/recipes_index/18462/#SORACOM_Lagoon)
※ ソラコムのレシピページより
![lagoon.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927556/bd669f63-1d24-682a-d583-b9ac93177adc.png)

# まとめ
いかがでしたでしょうか？今回はデバイスとしてActy-G3+、通信・クラウド環境にソラコムのサービスを利用することで、簡単にIoTシステムを実現することができました。特にActy-G3+はアプリ開発、通信、デバイス設置などあらゆる面で自由度が高く、実シーンでとても有効な手段であると感じました。

今回の滞在人数カウントアプリはActy-G3+デモアプリとして無料公開されますが、今後もAI Dynamics JapanではActy-G3+向けAIアプリのラインナップを続々発表していきたいですね。

ここまで読んでいただき、ありがとうございました！