yuv_pose_appの動作説明

 

目次


 

はじめに


i-PROカメラアプリケーション開発環境の構築が完成していることを前提に説明します。
開発環境の構築が準備できていない場合、こちらを参考に完成させてください。

また、このチュートリアルではSDKのインストールディレクトリを${SDK_DIR}として記載します。

 

動作概要


yuv_pose_appはカメラ上のモデルに骨格を描画するサンプルアプリです。

 

動作に必要な外部ライブラリ


Pythonでビルドする場合は下記が必要です。

Numpy

OpenCV

外部ライブラリの利用については、後ほど説明します。

 

サンプルアプリのディレクトリパス


C/C++のソースコードはありません。

Pythonのソースコードは下記に格納されています。

${SDK_DIR}/src/adamapp-py/yuv_pose_app

 

AIモデル変換ツールの利用


サンプルアプリをビルドする前に、AIモデル変換ツールを利用する必要があります。

下記からAIモデル変換ツールを取得し、環境構築してください。

AIモデル変換ツール - Technology Partner - Confluence (atlassian.net)

お問い合わせからご提供までは数日お時間をいただいております。

 環境構築が完了しましたら、下記を参考にサンプルモデルの変換を行ってください。

AIモデル変換ツール:Tensorflow編 - Technology Partner - Confluence (atlassian.net)

変換に利用するsetting.confは下記に格納されています。

${SDK_DIR}/src/adamapp-py/yuv_pose_app/setting.conf

ここでは、モデル変換したファイルを「tf_pose_estimation_cavalry.bin」として説明します。

 

サンプルアプリのビルド方法(Python)


ここでは、AdamAppとしてビルドする方法を記載しています。

Container AdamApp for Azure IoT Edgeとしてビルドする場合は下記を参照ください。

チュートリアル(Container AdamApp for Azure IoT Edge編) - Technology Partner - Confluence (atlassian.net)

Container AdamAppとしてビルドする場合は下記を参照ください。

チュートリアル(Container AdamApp) - Technology Partner - Confluence

サンプルアプリのディレクトリに、モデル変換したtf_pose_estimation_cavalry.binファイルを下記の構成で配置します。

[ambaCV2Xアプリの場合]
${SDK_DIR}/src/adamapp-py/yuv_pose_app/data_CV2X/cnn/tf_pose_estimation_cavalry.bin
[ambaCV5Xアプリの場合]
${SDK_DIR}/src/adamapp-py/yuv_pose_app/data_CV5X/cnn/tf_pose_estimation_cavalry.bin

 

以降のビルド方法はこちらを参照してください。
サンプルアプリを起動してカメラの映像が映っていれば成功です。

 

サンプルアプリの使用方法


カメラにて人体の画像を撮影してください。赤い線と丸で骨格を検知していることが確認できます。

 

補足情報


・設定の変更

このアプリケーションには、ユーザーが変更できるいくつかの設定があります。 一部の設定を変更する場合は、「ADAM OPERATION UI」HTMLページの「AppPrefs」ボタンを押してください。
以下は、ユーザーが現在変更できる設定のリストです。

Resoultion:
YUV 画像を取得するための解像度。HD(1280x720)またはFHD(1920x1080)を指定してください。ただし、カメラの性能によっては指定した値で動作しない場合があります。

Frame rate:
YUV画像を取得するためのフレームレート。 1以上を指定してください。 ただし、カメラの性能によっては指定された値で動作しない場合があります。

・AIモデルの変更方法

  1. 姿勢推定モデルは以下を使用します。
    GitHub - ZheC/tf-pose-estimation: Openpose from CMU implemented using Tensorflow with Custom Architecture for fast inference.

  2. pbファイルをダウンロードしてください。
    https://github.com/ZheC/tf-pose-estimation/blob/master/models/graph/mobilenet_thin_432x368/graph_freeze.pb

  3. CV ツールを使用して変換します。 変換先フォルダ内のsetting.confをご利用ください。
    CVツールの入手方法は以下を参照してください。
    https://dev-partner.i-pro.com/space/TPFAQ/961545224

  4. 変換されたモデル ファイル (.bin) を
    data_CV2X/cnn
    および
    data_CV5X/cnn
    フォルダーに配置します。