0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AITRIOSの推論結果をIBM Cloud VPSのVSIに転送するTipsとサンプル

Last updated at Posted at 2025-05-13

0. はじめに

この記事では、AITRIOS Console Developer Editionに接続されているデバイスからの推論結果をIBM Cloud VPC内VSIに転送する具体的な手順や方法を共有します。
AITRIOSの公式Documentに、http転送の方法に関するガイドがありますが、これをIBM CloudのVSI向けに噛み砕いたガイドとなります。

1. 前提

当記事の前提として、IBM CloudのVPCやVSIでのサーバーの構築を経験したことがある方向けとなっていますので、VPCやVSIの作り方や設定の詳細については別の記事を参考にしてください。また、AITRIOS Console Developer Editionにアクセスできる権限が必要です。

2. IBM Cloud VPC / VSI構成について

VPC / VSIを作成する上での注意点としては、AITRIOSデバイスからhttp接続でデータがPUTされてきますので、外部からのアクセスを受けられるフローティングIPが必要です。また、セキュリティー設定として、httpサーバーで送受信するためのポートを決めて開けておく必要があります。(今回の例では、8080を使っています。)
必要に応じて、sshのポートや証明書などの設定もしておくようにします。

3. AITRIOSデバイスの設定

AITROSデバイス側の設定は、デバイスの推論を制御するコマンドパラメーターファイルを編集して、転送方法にhttpを指定し、保存したいディレクトリーを指定することで、転送が可能になります。
デバイスのCommand Parameterファイル管理については、公式のガイドなどをご参照ください。

{
    "commands": [
        {
            "command_name": "StartUploadInferenceData",
            "parameters": {
                "Mode": 2,
                "UploadMethod": "HTTPStorage",
                "StorageName": "http://162.111.111.111:8080",
                "StorageSubDirectoryPath": "/image/a53",
                "FileFormat": "JPG",
                "UploadMethodIR": "HTTPStorage",
                "StorageNameIR": "http://162.111.111.111:8080",
                "StorageSubDirectoryPathIR": "/meta/a53",
                "CropHOffset": 0,
                "CropVOffset": 0,
                "CropHSize": 4056,
                "CropVSize": 3040,
                "NumberOfImages": 0,
                "UploadInterval": 60,
                "NumberOfInferencesPerMessage": 1,
                "PPLParameter": {
                    "header": {
                        "id": "00",
                        "version": "01.01.00"
                    },
                    "dnn_output_detections": 100,
                    "max_detections": 20,
                    "threshold": 0.3,
                    "input_width": 320,
                    "input_height": 320
                }
            }
        }
    ]
}

具体的には、

  • UploadMethodとUploadMethodIRにHTTPStorageを記載
  • StorageNameとStorageNameIRには、httpサーバーのフローティングIPと使用するポートを記載
  • StorageSubDirectoryPathとStorageSubDirectoryPathIRには、サーバーのホームからの相対パスで、データの保存先を指定。イメージと推論結果のメタは別々に指定するか同じにするかは、後段のアプリケーションの作り方によって決めてください。
  • FileFormatは、JPGかBMPのいずれかを指定

IR付きとなしの項目がありますが、IR付きは、Inference Resultの略で、推論結果の意味で、なしの方はイメージの設定となります。

4. データ受け取り側の設定

今回、IBM CloudのVPC上にVSIをDebianで構築し、そこでhttpサーバーを起動し、AITRIOSデバイスから送られてくるImageとMetaデータを同じVSI内に保管していくコードを作成しました。githubにコードを公開してありますので、cloneしてご利用いただけます。

4.1 インストール

git clone git@github.com:TechMind428/aitrios_receiver.git
cd aitrios_receiver
python3 -m venv venv
. venv/bin/activate
pip3 install -r requirements.txt

4.2 起動

Cloneしたaitrios_receiverのディレクトリー直下にあるstartup.shを起動させることで、httpサーバーを含め一連の仕組みが起動します。

./startup.sh

AITRIOSデバイスのコマンドパラメーター設定が正しくセットされ、推論が開始されると順次送られてきたデータがVSIの指定されたディレクトリーに蓄積されていきます。

このプログラムには、蓄積されたデータを消す機能はついていませんので、適時削除しないとパフォーマンスやリソースにインパクトを与えますので、後段のプログラムや、cronなどを使い古いデータを定期的に削除して、ヘルシーにお使いください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?