Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

yuv_ssd_appサンプルアプリには下記ファイルを用意しているので、AIモデル変換ツールを利用しなくても動作確認は可能です。

[ambaCV2Xアプリの場合]
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV2X/cnn/mobilenet_priorbox_fp32.bin
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV2X/cnn/mobilenetv1_ssd_cavalry.bin
[ambaCV5Xアプリの場合]
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV5X/cnn/mobilenet_priorbox_fp32.bin
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV5X/cnn/mobilenetv1_ssd_cavalry.bin

...

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

[ambaCV2Xアプリの場合]
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV2X/cnn/mobilenet_priorbox_fp32.bin
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV2X/cnn/mobilenetv1_ssd_cavalry.bin
[ambaCV5Xアプリの場合]
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV5X/cnn/mobilenet_priorbox_fp32.bin
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV5X/cnn/mobilenetv1_ssd_cavalry.bin

makeします。

Code Block
$ cd src/adamapp/yuv_ssd_app
$ make

...

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

[ambaCV2Xアプリの場合]
${SDK_DIR}/src/adamapp-py/yuv_ssd_app/data_CV2X/cnn/mobilenet_priorbox_fp32.bin
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV2X/cnn/mobilenetv1_ssd_cavalry.bin

...

.bin
[ambaCV5Xアプリの場合]
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV5X/cnn/mobilenet_priorbox_fp32.bin
${SDK_DIR}/src/adamapp/yuv_ssd_app/data_CV5X/cnn/mobilenetv1_ssd_cavalry.bin

makeします。

Code Block
$ cd src/adamapp-py/yuv_ssd_app
$ make

...

カメラの映像が表示されていれば成功です。

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

...

Info

サンプルアプリの解像度初期値は1920×1080です。カメラの解像度設定が1920×1080でない場合は動作しません。詳細は下記を確認ください。

ADAM_DevYcVideo_Create()の呼び出しに失敗する - Technology Partner - Confluence (atlassian.net)

テレビのモニターやソファなどをカメラに映してみると、該当するモデルにオブジェクト名と枠が描画されます。各自で試してみてください。

...

補足情報

...

・設定の変更

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

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

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

・AIモデルの変更方法

  1. data_CV2X/cnn/mobilenetv1_ssd_cavalry.bin
    data_CV5X/cnn/mobilenetv1_ssd_cavalry.bin
    および
    data_CV2X/cnn/mobilenet_priorbox_fp32.bin
    data_CV5X/cnn/mobilenet_priorbox_fp32.bin
    をご使用のモデルに置き換えてください。

  2. main.cppの以下の部分を機種に合わせて変更してください。
    #define OUTSIZE_HEIGHT <モデルの入力高さ>
    #define OUTSIZE_WIDTH <モデルの入力幅>

    #define NETNAME <モデルのファイル名>
    #define PRIORBOXFILE <前のボックスのファイル名>
    #define LAYERNAMEIN <モデルのレイヤー名を入力>
    #define LAYERNAMEOUT_MBOX_LOC <境界ボックスの位置を示すモデルの出力レイヤー名>
    #define LAYERNAMEOUT_MBOX_CONF_FLATTEN <境界ボックスの信頼性を示すモデルの出力レイヤー名>
    #define PROPERTY_NUMCLASSES <背景ラベルを含むクラスの数>
    #define PROPERTY_MBOXLOCSIZE <境界ボックスの数 * 4> : 4 は (x,y,w,h) を意味します
    #define PROPERTY_BACKGROUND_LABEL_ID <背景ラベル ID>

    次のパラメータは、tensorflow SSD に対してのみ有効です。 caffe SSD の場合は、これらの値を 0 に設定してください。
    #define X_SCALE <X スケール値>
    #define Y_SCALE <Yスケール値>
    #define WIDTH_SCALE <幅スケール値>
    #define HEIGHT_SCALE <高さスケール値>

  3. モデルに応じて"objectname" (label-objectname matrix)を記述してください。

・利用ポート

このアプリケーションは、WebSocket 通信に 8081 ポートを使用します。

・ライセンス

MIT License

Copyright (c) 2018 chuanqi305

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.