はじめに

本ドキュメントは、これからArmadillo Base OSを搭載した製品を用いたシステムを設計・開発する方に向けて、Armadillo-IoT ゲートウェイ G4を例として基本的な開発の流れについての情報を提供します。 また、Armadillo-IoT ゲートウェイ G4の特徴であるNPU(Neural Processing Unit)を活かして、実際に簡単な機械学習を用いた物体検出モデル [1]の学習を行い、その学習したモデルをシステムに含む際の流れについても説明します。

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

  • Armadillo Base OS上での開発手法

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

    • TensorFlowを用いた既存の物体検出モデルの転移学習の方法
    • TensorFlowのSavedModel形式 [2]のモデルをTFLite形式 [3]に変換する方法
    • システムへの物体検出モデル組み込み

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

./images/ML_icon.png

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


1.2. 表記について

1.2.1. フォント

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

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

フォント例説明

本文中のフォント

本文

[PC ~]$ ls

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

text

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


1.2.2. コマンド入力例

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

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

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

[ATDE ~/]$

ATDE上の一般ユーザで実行

[armadillo /]#

Armadillo上 Linuxの root ユーザで実行

[container /]#

Podmanコンテナ内で実行


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

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

1.4. ライセンス

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

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

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

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

./images/by-sa.png

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




[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