AITRIOS AIH-IVRW2 チートシート（Console Developer Edition）

AITRIOS対応Wi-Fiカメラ、AIH-IVRW2をAITRIOS Console Developer Editionで使用するチートシートです。

<img width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/32450ae7-b154-5615-949a-92fa7ac8d5a8.png">

# 初期セットアップ

## プロジェクトとConsole

1. AITRIOS Portalにユーザー登録 [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/portal-user-manua#_Registering_and_deleting_users)
1. プロジェクトを申請 [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/portal-user-manual#_Register_new_project)
1. Console Developer Editionを購入 [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/portal-user-manual#_Purchasing_a_product_at_the_Marketplace)

## カメラをプロジェクトに登録

Wi-Fi接続情報やNTPサーバーといったネットワーク設定も同時に設定します。

1. QR Codeを生成 `Enroll Device > Setup Enrollment` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Generate_an_enrollment_QR_code_in_Console)
1. カメラでQR Codeを読み取り [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Scan_the_enrollment_QR_code) [TIPS](https://qiita.com/SSS-keijimorikawa/items/240e6243eb9178c59457)

> プロジェクト登録は済んでいて、ネットワーク設定のみを再設定するときは次のとおりです。 [TIPS](https://qiita.com/SSS-keijimorikawa/items/ffabb3f82a410165ca73)
> 1. QR Codeを生成 `Manage Deivce > Setup Device` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Network_settings_change_and_Device_registration_change_and_deletion)
> 1. カメラでQR Codeを読み取り [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Scan_the_enrollment_QR_code) [TIPS](https://qiita.com/SSS-keijimorikawa/items/240e6243eb9178c59457)

## ファームウェアをデプロイ

ファームウェアは次の3ファイルがあります。

* Sensor chip FW(loader) ... loader.fpk
* Sensor chip FW ... firmware.fpk
* Main chip FW ... ota.bin

1. ダウンロードページからファームウェアをダウンロード [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Obtain_firmware)
1. ファームウェアをConsoleへインポート `Settings > Firmware > Import` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Importing_firmware_into_Console)
    3ファイルを一括してインポートはできません。1つずつインポートします。
1. ファームウェアをデプロイするためのConfigを作成 `Deploy to Device > New Config` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Register_deployment_configuration)
    AI ModelはNoneにします。
1. ファームウェアをデプロイ `Deploy to Device > Config > <Config> > Deploy` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/device-setup-guide#_Perform_initial_deployment_to_the_edge_AI_device)
    デプロイには時間がかかります。`Manage Device > <Device> の Status > Deployment`でデプロイ状況が確認できます。
    カメラにデプロイされたファームウェアのバージョンは`Managa Device > <Device> の Status > Device`で確認します。

# カメラのリアルタイム画像表示

1. リアルタイム画像表示 `Manage Device > <Device> の Preview`
    推論実行中は表示できません。
 
# AI ModelとEdge Applicationのデプロイ

## AI Modelのデプロイ

(WIP)

## Edge Applicationのデプロイ

1. Edge ApplicationをConsoleへインポート `Settings > Edge App > Import` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/console-user-manual#_edge_application%E3%81%AE%E7%AE%A1%E7%90%86)
1. Edge Applicationをデプロイ `Deploy to Device > Edge App > <Edge App> > Deploy` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/console-user-manual#_Camera_Application_deploy)
    デプロイには時間がかかります。`Manage Device > <Device> の Status > Deployment`でデプロイ状況が確認できます。
    カメラにデプロイされたファームウェアのバージョンは`Managa Device > <Device> の Status > Edge Application`で確認します。

# Command Parameterの設定

1. Command ParameterをConsoleへインポート `Settings > Command Parameter > Import` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/console-user-manual#_Command_Parameter_File_management)
1. Command Parameterをカメラに設定 `Manage Device > <Device> の Settings > Command Parameter File > <Command Parameter> > Bind` [doc](https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/console-user-manual#_Adaptation_command_parameter)

> `Settings > Command Parameter > <Command Parameter> > Update`で既存のCommand Parameterを更新（Update）することができます。

# 推論の実行と停止

1. 推論を実行/停止 `Manage Device > <Device> の Settings > Inference Control > Get Inference Data`

# Consoleに保存されている画像と推論結果の表示

## 方法A. Check Data画面で表示

* Consoleに保存されている画像を表示 `Check Data > <Device> > Image`
    > 推論開始時に`<yyyyMMddHHmmssfff>`ディレクトリが作成されて、その配下に`yyyyMMddHHmmssfff.jpg`ファイルで保存されているようです。
    > クリックすると拡大表示できるのでブラウザの機能でローカルに保存できます。

* Consoleに保存されている推論結果を表示 `Check Data > <Device> > Meta Data`
    > 名前は`<GUID>`です。
    > クリックするとJSONが表示できます。**推論結果オブジェクトの箇所はデコードされていません**。（意味を知るにはBASE64デコードとFlatBuffersデコードします。）
    
## 方法B. Data Hub画面で表示

1. 検索画面を表示 `Data Hub`
1. 検索条件を入力してSearchをクリック

> AnnotationのON/OFFで画像に推論結果を重ねて表示できます。（バウンディングボックス）
> LabelをクリックするとオブジェクトのIDが一覧表示できます。**ラベル名に変換はできません。**
> Jsonをクリックすると推論結果のJSONが表示できます。
> **表示されている画像やSave Imageで保存した画像のサイズがカメラの入力画像サイズと一致しない**ので、ここの画像を学習には使わないほうが良いかも？

# 参考リンク

* [AITRIOS デバイス登録時のQRcode読取りのコツ](https://qiita.com/SSS-keijimorikawa/items/240e6243eb9178c59457)
* [AITRIOS | AIH-IVRW2を別のアクセスポイントに接続する方法](https://qiita.com/SSS-keijimorikawa/items/ffabb3f82a410165ca73)