OKIのAIエッジコンピューター「AE2100」とコニカミノルタの画像IoTプラットフォーム「FORXAI」を連携してみよう(1) ―デバイス登録・AIコンテナ/アプリ準備編―

# 要約
* この記事は、OKIのAIエッジコンピューター「AE2100」とコニカミノルタの画像IoTプラットフォーム「FORXAI」の連携方法についての解説記事です。
* 本記事では、FORXAIの骨格推定エンジンとサンプルアプリを使用して**人の進入検知**をAE2100で推論する方法を2回に分けて解説します。
* 第1回の「デバイス登録・AIコンテナ/アプリ準備編」では、FORXAI（クラウド）とAE2100（エッジデバイス）との紐づけを行い、遠隔からAIコンテナをデプロイするまでを解説します。


# はじめに
OKIの[AE2100](https://www.oki.com/jp/AIedge/)はディープラーニングモデルの推論をエッジで高速に実行可能なコンピューターですが、推論用のモデルやアプリケーションはユーザー側で用意する必要があります。
[FORXAI](https://forxai.konicaminolta.com/)はエッジ側で画像を使用した推論を行うために必要なAIコンテナを豊富に用意し、クラウドとエッジをセキュアかつ容易に接続可能なことからAE2100との親和性が非常に高いです。

本記事では、このAE2100とFORXAIとを連携させて、AE2100上でFORXAIのAI推論を実行するまでを2弾構成で解説します。
第1回の記事では、FORXAIとAE2100との紐づけを行って遠隔からAIコンテナをデプロイするまでの手順、FORXAIのサンプルコード集「Quick Start Kit」の詳細について解説します。

※AE2100は[FORXAIデバイス認定を取得した最初のデバイス](https://forxai.konicaminolta.com/service/technology/02)です。「本当にこのデバイスで連携できるのか？」等といった懸念は気にする必要がないことも嬉しいですね。

なお、<font color="red">**本記事はFORXAIパートナーであることが前提の記事構成となっております。
（FORXAIパートナー以外の方は[FORXAIパートナーサイト](https://forxai-partner.konicaminolta.com/home)へアクセスすることが出来ません）**</font>
FORXAIパートナーではない方で興味がある場合は、[FORXAIのお問合せフォーム](https://forxai.konicaminolta.com/contact)から相談をしてみてください。

# 環境
実行環境は次の図のような構成を前提とします。
![FORXAI_環境図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/e694dde6-75ab-cac0-12df-c074a8c6ad4b.png)


本記事ではAE2100をFORXAI（クラウド）に接続します(※1)。
AE2100はLTE対応モデルをご使用いただくか(※2)、LANポート1から有線でインターネット回線に接続してください。
上図はLTE非対応モデルを使用する際の構成です。

なお、各バージョンは以下のものを使用しています。
項目|バージョン
:-:|:-:
AE2100(ファームウェア)|V3.7.0
FORXAI IoT Platform|V1.6.1-1
FORXAI Skelton Recognition|V1.0.0-2
Quick Start Kit|V1.0.0-1

:::note info
AE2100ファームウェアv3.8.0でも動作確認しています。
v3.8.0を使用する場合、HDDLデーモンは OpenVINO 2021.4.2 LTSを適用してください。
更新方法は、AE2100ファームウェアに同梱のリリースノートを参照してください。
:::

<font color="red">**※1 FORXAIパートナーサイトのアカウントが必要となります。**</font>
※2 SIMカード（Micro SIM）はご自身で用意してください。


# AE2100とFORXAI IoT Platformの連携
FORXAI IoT Platformとはエッジデバイスとクラウドをセキュアかつ容易に連携し、データ管理とAI処理を実行させるための技術群です。デバイスのデータ管理やリモート監視等ができ、今回の記事ではAIコンテナの遠隔デプロイ機能を使用します。

### ■ FORXAI IoT Platformのインストールスクリプトのダウンロード（FORXAI側）
まずは、AE2100にFORXAI IoT Platformのエージェントをインストールするためのスクリプトを用意します。
FORXAIパートナーサイトの開発ドキュメントに[FORXAI IoT Platformのユーザーズマニュアル](https://forxai-partner.konicaminolta.com/spec/iot-platform/latest/ja/index.html)があるため、この手順に従ってインストールスクリプトを用意します。

流れとしてはデバイス・ストレージ管理ページにて連携対象のAE2100の基本情報の入力を行い、最終的にインストールスクリプト（「{deviceName}_{yyyymmddhhmmss}.sh」）をダウンロードします。

詳細な手順は[FORXAI IoT Platformのインストールマニュアル](https://forxai-partner.konicaminolta.com/spec/iot-platform/latest/ja/install-manual.html)を参照してください。

### ■ FORXAI IoT Platformのエージェントをインストール（AE2100側）
次に、前節でダウンロードしたインストールスクリプトをAE2100にインストールします。
インストールスクリプトはSCP等でAE2100のホストOSに転送し、以下のコマンドで実行してください。

```
root@ae2100:~# sudo chmod +x run_{deviceName}_{yyyymmddhhmmss}.sh
root@ae2100:~# sudo -E ./run_{deviceName}_{yyyymmddhhmmss}.sh install
```

※インストール対象のデバイスがプロキシサーバーを経由してインターネットに接続する場合は、別途プロキシの設定が必要となります。設定方法は[こちら](https://forxai-partner.konicaminolta.com/spec/iot-platform/latest/ja/install-manual.html#%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)参照してください。

インストールが完了すると、デバイス・ストレージ管理画面に登録済みの該当のエッジデバイスの接続状態・認証状態がそれぞれ「接続」「認証済み」と表示されます。
![FORXAI_IoT Platform接続完了.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/623d0a68-3fcf-ac89-d38a-8728c9e59c4a.png)

ここまででFORXAIと該当のAE2100との紐づけが完了となり、クラウド側からAE2100の稼働状態の監視やAIコンテナのデプロイ等が出来る状態になりました。


# AIコンテナのデプロイ（FORXAI側）
それでは、AIコンテナをインターネット経由でAE2100にデプロイします。
FORXAIのデバイス・ストレージ管理画面に登録した該当のAE2100の「コンテナ管理」を選択し、Portainer画面を開きます。
![FORXAI_コンテナ管理画面遷移前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/2b7456e7-3ae2-6e96-a08f-a4014ab036b6.png)

次に、サイドバーの「App Templates」の「Custom Templates」にて、使用するAIコンテナを選択して「Deploy the stack」をクリックします。
本記事では、AIコンテナは骨格推定エンジン「forxai_skelton_recognition_ov」を選択します。（理由は次章にて説明します）
![FORXAI_AIコンテナのデプロイ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/23e97377-824c-e295-760d-fe116e428694.png)



正常にデプロイが完了すると、サイドバーの「Containers」にデプロイしたAIコンテナが<font color="red">**state：running**</font>で表示されます。
![FORXAI_AIコンテナのデプロイ完了.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/aaf6d574-b65a-a903-cf36-e5cacac317a7.png)


# AE2100での推論に必要なアプリケーションの用意（FORXAI側）
前章までで、AE2100にFORXAIのAIコンテナ「forxai_skelton_recognition_ov」のデプロイが完了しました。
次に、このAIコンテナを使用するためのアプリケーションが必要になります。

FORXAIパートナーサイトにはFORXAI Imaging AIを利用するシーンを想定したサンプルコード集「Quick Start Kit」が用意されています。
今回はこのQuick Start Kitを利用してみようと思います。

### ■ サンプルアプリ「Quick Start Kit」の準備（FORXAI側）
Quick Start Kitはパートナーサイトの開発ドキュメントから事前にPCへダウンロードをしておきます。
（第2回の記事で使用します）
![FORXAI_Quick Start Kitのダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/4db199e8-e2f4-088a-a07d-6144dadd1234.png)


Quick Start Kitでは「Pedestrian counting and tracking（歩行者カウント）」、「People entering detection（人物進入検知）」の2種類のアプリケーションが用意されており（V1.0.0-1時点）、本記事では「People entering detection（人物進入検知）」を使用します。

人物進入検知アプリを動かす際は別途、属性認識または骨格推定のAIコンテナが必要です。
今回は、前章でAE2100にデプロイした骨格推定のAIコンテナ「forxai_skelton_recognition_ov」を使用します。（実は、Quick Start Kitで必要となるAIコンテナを事前に確認していました）

各アプリケーションの概要や詳細な使い方は[パートナーサイトのQuick Start Kitのページ](https://forxai-partner.konicaminolta.com/spec/quick_start_kit/latest/ja/index.html)を参照してください。

### ■ Skelton Recognitionのクライアントライブラリのダウンロード（FORXAI側）
「forxai_skelton_recognition_ov」を使用するためには、別途PythonクライアントライブラリをAE2100にインストールする必要があります。
[FORXAIパートナーサイトの開発ドキュメント](https://forxai-partner.konicaminolta.com/devdocument)からSkeleton RecognitionのPythonクライアントライブラリをダウンロードしておきます。
（第2回の記事で使用します）
![FORXAI_Pythonクライアントライブラリのダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/660784/70db01c9-591e-43f2-7283-60100add842c.png)


# まとめ
今回はAE2100とFORXAIの紐づけ方法やAIコンテナのデプロイ方法について解説しました。
FORXAIはエッジデバイスと連携することが前提のプラットフォームということもあり、AE2100とも容易に連携できることが実感いただけたのではないでしょうか。

次回の記事では、骨格推定のAIを使用した人の進入検知をAE2100上で動作させてみようと思います。

次回の記事:
[AIMINAで作成したAIモデルを「AE2100」で推論してみよう(2) ―セグメンテーション編―](https://qiita.com/shimatak/items/b6c98bd0e731dd49777a)