Armadillo Base OS 開発ガイド


目次

1. はじめに
1.1. 本ドキュメントを読むことで習得できること
1.2. アイコンについて
1.3. 表記について
1.3.1. フォント
1.3.2. コマンド入力例
1.3.3. アイコン
1.4. サンプルソースコード
1.5. ライセンス
2. 本ドキュメントについて
2.1. 本ドキュメントで実施する作業
2.2. 本ドキュメントの成果物
3. 準備
3.1. 必要なもの
3.2. 事前準備
3.2.1. 開発環境の準備
3.2.2. 機械学習向け開発環境の準備 ./images/ML_icon.png
3.2.3. 接続物の準備
4. 基本的な開発の流れ
4.1. 機械学習を用いたアプリケーションの開発の流れ ./images/ML_icon.png
5. 仕様を検討・決定する
5.1. Armadillo Base OSにおけるアプリケーション仕様検討
5.2. podmanコンテナイメージの選定
5.2.1. コンテナを用いたシステムの設計 ./images/ADD_icon.png
5.3. ハードウェアの拡張 ./images/ADD_icon.png
5.4. 機械学習を用いたアプリケーションについて ./images/ML_icon.png
5.4.1. 学習の手間
5.4.2. 推論の速度と精度
5.4.3. 開発時の技術的負債
6. サンプルアプリケーションの作成
6.1. サンプルアプリケーションの詳細
6.1.1. 詳細な動作
6.2. 推論モデルの作成 ./images/ML_icon.png
6.2.1. 教師データの用意
6.2.2. 推論モデルの生成
6.3. podmanコンテナを作成する
6.3.1. 開発前の準備
6.3.2. サンプルコンテナをビルド
6.3.3. コンテナ内に入る
6.4. アプリケーション実行の準備をする
6.5. アプリケーションを作成する
6.5.1. ファイル構成
6.5.2. コンテナ内のファイルの編集
6.5.3. アプリケーションの動作確認
6.5.4. podmanコンテナの保存
6.5.5. podmanコンテナのエクスポート
6.5.6. podmanコンテナとアプリケーションの自動実行
6.6. 動作確認
6.7. USBカメラから映像を取得するように変更
6.7.1. 撮影対象のparameter.jsonを作成
6.7.2. パラメータファイルの配置
6.7.3. .confファイルの設定
6.7.4. 自動実行の確認
7. Appendix
7.1. SWUpdateを用いてソフトウェアをアップデートする
7.1.1. SWUpdateによる初回アップデート
7.2. 作成したコンテナを他のArmadilloに組み込む
7.2.1. podman loadでコンテナイメージを組み込む
7.2.2. SWUpdateでコンテナイメージを組み込む
7.3. Device Treeを変更しハードウェアを拡張する
7.3.1. Device Treeとは
7.3.2. Device Treeをカスタマイズする
7.3.3. 開発中のDTBファイルの書き換え
7.3.4. DTB確定後の書き換え
7.4. コンテナデザインパターン
7.4.1. ホストコマンドを実行する
7.5. 機械学習と NPU の使いどころ
7.5.1. 機械学習を活用できる範囲
7.5.2. NPU でできること
7.5.3. 機械学習と NPU を使うことの課題
7.5.4. 機械学習以外の方法

図目次

1.1. 機械学習関連情報アイコン
1.2. 補足情報アイコン
1.3. クリエイティブコモンズライセンス
2.1. Armadillo Base OS上でのアプリケーション開発の流れ
2.2. 詳細なアプリケーション開発の流れ
2.3. サンプルアプリケーションの動作
3.1. Armadillo-IoT ゲートウェイ G4への周辺機器の接続
3.2. 接続後のイメージ
4.1. 開発時のイメージ
6.1. サンプルアプリケーションの詳細な動作の流れ
6.2. 元画像
6.3. 物体検出した箇所をもとに画像を切り出し
6.4. 円を検出
6.5. 画像の枠が円に外接するようにリサイズ
6.6. 直線を検出
6.7. Google Images Downloadのインストール
6.8. Google Images Downloadの実行
6.9. Google Images Downloadでダウンロードしたファイル
6.10. 画像ファイルを連番でリネーム
6.11. labelImgをインストールする
6.12. Linux環境におけるlabelImg実行例
6.13. labelImgの起動
6.14. 出力形式の変更
6.15. アノテーション元の選択
6.16. アノテーション情報の保存先の選択
6.17. 作業効率化のための設定1
6.18. 作業効率化のための設定2
6.19. ラベル付け例
6.20. アノテーション情報ファイルを確認
6.21. label_map.pbtxt作成例
6.22. podman関連ファイルをeMMC上に保存する
6.23. Dockerfileのダウンロード
6.24. サンプルコンテナのイメージのビルド
6.25. コンテナ内に入る
6.26. コンテナへパッケージをインストール
6.27. サンプルアプリケーションのダウンロードと展開
6.28. サンプルアプリケーションを構成するファイル
6.29. ATDEからArmadilloへファイルを送信
6.30. コンテナ内にエディタをインストールする
6.31. サンプルアプリケーションの動作確認
6.32. Armadillo-IoT ゲートウェイ G4への周辺機器の接続
6.33. westonを終了
6.34. podmanコンテナから抜ける
6.35. 起動中のpodmanコンテナを確認する
6.36. 停止中のpodmanコンテナを確認する
6.37. podmanコンテナの変更を保存する
6.38. podmanコンテナイメージを外部ストレージに出力する
6.39. sample_container.conf作成例
6.40. sample_container.confのダウンロード
6.41. podman_startの実行例
6.42. sample_container.confの永続化
6.43. コンテナの停止・削除
6.44. サンプル動画に対して物体検出
6.45. サンプル動画内のアナログメーターを読む
6.46. config_param.pyのダウンロードと起動
6.47. アナログメーターを正面から捉えたサンプル画像(image.png)
6.48. アナログメーターの中心をクリック
6.49. 各スケールの位置をクリック
6.50. 各スケールの数値を入力
6.51. 各スケールの数値を入力
6.52. /var/app/rollback/volumes/assetsの作成
6.53. parameter.jsonを配置
6.54. USBカメラを使用するsample_container.conf作成例
6.55. USBカメラの映像からアナログメーターの値を取得
6.56. sample_container.confの永続化
7.1. mkswuの取得
7.2. mkswuの初期設定を行う
7.3. swuイメージの配置
7.4. コンテナイメージファイルをインポートする
7.5. 作業用ディレクトリの作成と書き込むファイルのダウンロード
7.6. usb_container_sample.desc作成例
7.7. swuイメージの作成
7.8. アップデート用ファイル群の配置
7.9. DTBファイルの配置
7.10. 作業用ディレクトリの作成と各種ファイルの配置
7.11. usb_dtb_sample.desc作成例
7.12. swuイメージの作成
7.13. アップデート用ファイル群の配置
7.14. TensorFlow Lite のインストール
7.15. ONNX Runtime のインストール
7.16. ArmNN のインストール
7.17. OpenCV のインストール
7.18. Julius のインストール
7.19. PIL のインストール
7.20. コンテナ内に入る
7.21. コンテナへ Julius をインストール
7.22. ディクテーションキットのダウンロード
7.23. 音声認識を実行