Howto

Armadillo-IoT G4 を用いた物体認識プログラムの動作確認と AWS 各サービスの利用による分析方法 (G4 セットアップ編)

このページでは、Armadillo-IoT G4 で動かす物体認識コンテナの作成方法を記載します。


以下の工程で実施します。

1. Armadillo-IoT G4 のコンテナの作成

Armadillo-IoT G4 で動かす物体認識コンテナを作成します。
今回はアットマークテクノが提供しているイメージを利用してコンテナを作成します。

1.1 イメージのダウンロード

Podman のデータ保存先はデフォルトでは tmpfs が指定されているため、電源を OFF するとデータが消えてしまいます。
このことを避けるため、以下のコマンドで eMMC に変更します。

[armadillo ~]# podman_switch_storage --disk

次にアットマークテクノが提供しているイメージをArmadillo-IoT ゲートウェイ G4 コンテナページからダウンロードして、コンテナストレージにイメージを読み込みます。バージョンは適宜最新のものをダウンロードしてください。2022/4/15 現在の最新版は v1.0.4 です。

[armadillo ~]# curl -O https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g4/container/at-debian-image-v1.0.4.tar
[armadillo ~]# podman load -i at-debian-image-v1.0.4.tar

イメージが読み込まれたかを確認します。

[armadillo ~]# podman images
REPOSITORY                 TAG         IMAGE ID      CREATED      SIZE
localhost/at-debian-image                latest      f50ea240607c  2 weeks ago   237 MB
localhost/at-debian-image                v1.0.4      f50ea240607c  2 weeks ago   237 MB

1.2 Dockerfileの用意

Dockerfile を用いてダウンロードしたイメージをベースにパッケージの追加インストールや各種設定を行い、物体認識コンテナを作成します。

Dockerfile をカレントディレクトリに作成します。以下に示す内容を作成するか、以下コマンドを実行して Dockerfile をダウンロードしてください。

[armadillo ~]# curl -O https://download.atmark-techno.com/sample/armadillo_iot_g4-detect-object-and-aws-services-howto/Dockerfile

Dockerfile に記載する内容は以下です。FROM 行でベースとなるイメージを指定し、必要なパッケージをインストールしていきます。示すバージョンは、適宜ダウンロードしたバージョンに合わせてください。

FROM localhost/at-debian-image:v1.0.4

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y wget \
                       python3 \
                       python3-pip \
                       python3-opencv \
                       python3-tflite-runtime \
                       python3-numpy \
                       nn-imx \
                       tensorflow-lite \
                       gstreamer1.0-tools \
                       gstreamer1.0-imx-tools \
                       gstreamer1.0-plugins-bad \
                       gstreamer1.0-plugins-good \
                       gstreamer1.0-imx \
                       gpiod \
                       i2c-tools \
                       git \
                       vim \
                       unzip \
                       plug-and-trust && \
    apt-get clean && \
    pip3 install AWSIoTPythonSDK pillow pyusb boto3

COPY key/ /root/key/

RUN wget -P /root/key https://www.amazontrust.com/repository/AmazonRootCA1.pem

RUN cd /root/ && \
    wget https://download.atmark-techno.com/sample/armadillo_iot_g4-detect-object-and-aws-services-howto/object_detection.zip && \
    unzip object_detection.zip && \
    \rm object_detection.zip

ENV OPENSSL_CONF=/etc/plug-and-trust/openssl11_sss_se050.cnf
ENV EX_SSS_BOOT_SSS_PORT=/dev/i2c-2:0x48

Dockerfile がカレントディレクトリに存在するか確認します。

[armadillo ~]# ls Dockerfile
Dockerfile

1.3 コンテナイメージ作成

Dockerfile の作成が確認出来たら、Dockerfile と同ディレクトリで以下のコマンドを実行してイメージを作成します。

[armadillo ~]# podman build -t detectcontainer:1.0 .

イメージが出来たか確認します。

[armadillo ~]# podman images
REPOSITORY                               TAG         IMAGE ID      CREATED         SIZE
localhost/detectcontainer                1.0         29e3a5b7eeee  21 seconds ago  1.15 GB

ダウンロードしてきたイメージと、作成した物体認識コンテナのイメージが確認できます。

1.4 コンテナ作成

作成した物体認識コンテナのイメージを使用して、コンテナを作成します。コンテナがカメラデバイスを扱えるようにするため、Armadillo-IoT G4 に USB カメラを接続しておく必要があります。接続機器の詳細については1.2 接続機器で説明します。
以下のスクリプトをダウンロード、実行してください。

[armadillo ~]# curl -O https://download.atmark-techno.com/sample/armadillo_iot_g4-detect-object-and-aws-services-howto/run_container.sh
[armadillo ~]# chmod +x run_container.sh
[armadillo ~]# ./run_container.sh

コンテナが作成されているかを確認します。以下の通り、"my_container" が作成されています。

[armadillo ~]# podman ps -a
CONTAINER ID  IMAGE                                           COMMAND               CREATED        STATUS                     PORTS                  NAMES
5cf41eb587fa  localhost/detectcontainer:1.0                   /bin/bash             4 seconds ago  Up 4 seconds ago                                  my_container

以上でコンテナ作成は終了です。 次のArmadillo-IoT G4 を用いた物体認識プログラムの動作確認と AWS 各サービスの利用による分析方法 (AWS サービスセットアップ編) に進んでください。