はじめに

本ドキュメントは、これからArmadillo Base OSを搭載した製品を用いたアプリケーションを設計・開発する方に向けて、Armadillo-IoT ゲートウェイ G4を例として基本的な開発の流れについての情報を提供します。 また、Armadillo-IoT ゲートウェイ G4の特徴であるNPU(Neural Processing Unit)を活かして、実際に機械学習を用いたサンプルアプリケーションを開発しつつ、Armadillo Base OS搭載製品の開発方法について紹介します。 その際に使用する物体検出モデル [1]も、既存のモデルをベースに学習を行う転移学習という手法で作成し、学習したモデルをアプリケーションに組み込みます。

なお、一般的なアプリケーション開発には企画、要件定義、設計、実装、検証、運用保守などといったステップがありますが、本ドキュメントはその全てを網羅するものではありません。 本ドキュメントでは、Armadillo Base OS搭載製品特有の手順や留意点に焦点を当てて説明していきます。 説明のない箇所は、Armadillo Base OSであることによる特殊性が影響しない部分であるため、一般的なアプリケーション開発手法や、お客様の会社やグループ内のルールに則って開発を進めてください。

1.1. 本ドキュメントを読むことで習得できること

  • Armadillo Base OS上での開発手法

    • podmanイメージ及びコンテナの作成と運用
    • ATDEを用いた各種開発手法
  • 機械学習による物体検出アプリケーションを作る際の手法

    • TensorFlowを用いた既存の物体検出モデルの転移学習の方法
    • TensorFlowのSavedModel形式 [2]のモデルをTFLite形式 [3]に変換する方法
    • アプリケーションへの物体検出モデル組み込み
  • Armadillo Base OSを利用した量産製造の手法

    • 開発完了後のイメージでインストールディスクを作成する方法
    • インストールディスクを用いたイメージ書き換え中に任意のシェルスクリプトを実行する方法

1.2. アイコンについて

具体的な機械学習を使用したサンプルアプリケーションの開発例を通して、Armadillo Base OSの開発手法を紹介します。 本ドキュメント内で図1.1「機械学習関連情報アイコン」のアイコンがある箇所は、機械学習について記述した内容であり、それ以外の箇所は機械学習に使用/不使用関係なくArmadillo Base OSに共通した内容になっています。 機械学習を用いないアプリケーション開発についての情報だけを見たい方は、図1.1「機械学習関連情報アイコン」のアイコンのない箇所を参照してください。

./images/ML_icon.png

図1.1 機械学習関連情報アイコン


また、図1.2「補足情報アイコン」に示すアイコンが付いている箇所については、サンプルアプリケーションの開発には利用しませんがArmadillo Base OSを利用した開発においてよく行うことになる手順について紹介していますので、サンプルアプリケーション以外の開発時にお役立てください。

./images/ADD_icon.png

図1.2 補足情報アイコン


1.3. 表記について

1.3.1. フォント

本書では以下のような意味でフォントを使いわけています。

表1.1 使用しているフォント

フォント例説明

本文中のフォント

本文

[PC ~]$ ls

プロンプトとユーザ入力文字列

text

編集する文字列や出力される文字列。またはコメント


1.3.2. コマンド入力例

本書に記載されているコマンドの入力例は、表示されているプロンプトによって、 それぞれに対応した実行環境を想定して書かれています。 「 / 」の部分はカレントディレクトリによって異なります。 各ユーザのホームディレクトリは「 ~ 」で表します。

表1.2 表示プロンプトと実行環境の関係

プロンプト コマンドの実行環境

[ATDE ~/]$

ATDE上の一般ユーザで実行

[armadillo /]#

Armadillo上 Linuxの root ユーザで実行

[container /]#

Podmanコンテナ内で実行


1.3.3. アイコン

本ドキュメントでは以下のようにアイコンを使用しています。

[警告]

注意事項を記載します。

[ティップ]

役に立つ情報を記載します。

[注記]

用語の説明や補足的な説明を記載します。

1.4. サンプルソースコード

本ドキュメントで紹介するサンプルソースコードは、 https://download.atmark-techno.com/armadillo-iot-g4/example/armadillo-base-os-dev-guide/ からダウンロードできます。

1.5. ライセンス

本ドキュメントで紹介するサンプルソースコードはMITライセンス [4]の下に公開します。

ただし、 コンテナイメージ及び コンテナ内のソフトウェアに含まれる、アナログメーターのサンプル動画 [5]及び、本ドキュメント内における当該の動画のスクリーンショットについては、クリエイティブコモンズの表示-継承 4.0 国際ライセンスの下に提供されています。

本ドキュメントは、クリエイティブコモンズの表示-継承 4.0 国際ライセンスの下に公開しています。

本ドキュメント及び、アナログメーターのサンプル動画のクリエイティブコモンズのライセンスの内容は https://creativecommons.org/licenses/by-sa/4.0/ でご確認ください。

./images/by-sa.png

図1.3 クリエイティブコモンズライセンス




[1] 「機械学習における、入力があったときにそれに何らかの評価を加えて出力値とするもの」を本ドキュメント内では「モデル」及び「推論モデル」と呼称します。

[2] TensorFlow Guide SavedModel 形式の使用: https://www.tensorflow.org/guide/saved_model?hl=ja

[3] TensorFlow Guide TensorFlow Lite: https://www.tensorflow.org/lite/guide?hl=ja