このページでは、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 サービスセットアップ編) に進んでください。