Versions Compared

Key

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

SDK同梱ドキュメント:PythonModuleInstallManual

目次

Table of Contents
minLevel1
maxLevel4

責任制限

  • 本ツールはセキュリティカメラ上で動作するアプリを開発するための機能を提供するもので、ツールを利用したアプリの動作保証を行うものではありません。また、追加アプリ動作中はセキュリティカメラに組み込まれた機能の動作は保証されません。

  • 付属のサンプルはツールの使用方法を記述したものであり、実際の監視運用を目的として作成されたものではありません。

  • 弊社は、いかなる場合も以下に関して一切の責任を負わないものとします。

    • 本製品に関連して直接または間接に発生した、偶発的、特殊、または結果的損害・被害

    • お客様の故意や誤使用、不注意による障害または本製品の損傷など

    • お客様による本商品の逆コンパイル、逆アセンブルが行われた場合、それに起因するかどうかにかかわらず、発生した一切の故障または不具合

    • セキュリティデバイスからダウンロードしたデータ等のパソコンにおける消失、あるいは漏洩等によるいかなる損害、クレームなど

    • ネットワーク上からの不正アクセスなど悪意を持った第三者による画像データ、音声データ、認証情報(ユーザー名、パスワード)の漏えいなどによるいかなる損害、クレームなど

概要

AIを使用する追加アプリを開発する際には、Caffe/Tensorflow/ONNXで作成したモデルをAIカメラ内蔵のアクセラレータ(CVFlow)で実行可能なバイナリ(cavalry.bin)に変換する必要があります。

CVツールはこの変換処理に関連するツール(Convert Tool)を提供します。

...

...

...

本ドキュメントは、ユーザがAIモデルの学習に習熟していることを前提として、作成されています。

・CVツールはAIモデルの学習に関する機能を提供するものではありません。

 各フレームワークでの学習は、ユーザが前もって実施してください。

・CVツールはAIモデルとしてCNNを対象としています。

・tensorflow v2.xのモデルは事前にtfliteに変換が必要です。

・pytorchのモデルは事前にONNXに変換が必要です。

開発フロー

学習済みモデルをCVflowの実行可能バイナリに変換するまでのフローを記載します。

CVツールでは図中の色付きの項目に対する処理を実施します。

...

Conversion

学習モデルをcavalry.binに変換します。

Conversionではモデルの再学習は行いません。

カメラのアクセラレータ(CVFlow)は16bitまたは8bitの固定小数点で演算を行うため、元のモデルは16bitまたは8bitに量子化されます。

量子化の設定は、16bit固定・16bit/8bit混合(各演算のbit幅は、ツールが自動で決定します)・8bit固定の3種類から、ユーザが選択可能です。

通常、8bitの方が推論時間は高速になりますが、精度は劣化します。

環境構築

...

Info

CVツールの入手方法は・CVツールの入手方法はこちらをご参照ください。

・i-PROカメラSDK用とAIモデル変換ツール用に作成するDockerイメージおよびコンテナは関係ありません。このページの手順はSDKとは関係ありませんので、Ubuntu OSのターミナルで実施してください。

チュートリアルでのインストール対象OS

  • Ubuntu 1820.04 .6 LTS

Dockerをインストールする

Docker環境の構築に必要なパッケージをインストール、環境設定を行います。

他のLinuxディストリビューションでのインストール方法など、詳細については公式サイトなどを参照してください。

参考:https://docs.docker.com/engine/install/

Code Block
$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl
\$ sudo install -m 0755 gnupg-agent \
    software-properties-common
$d /etc/apt/keyrings
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \
 -o /etc/apt/keyrings/docker.asc
$ sudo chmod a+r /etc/apt/keyrings/docker.asc

$ echo \
  "deb [arch=amd64=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \

  $(lsb_release -cs) \
   stable". /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Dockerイメージをインポートする(初回のみ)

インポートが完了するまでに数分程度の時間がかかります。

[image name]は任意の名前

Code Block
$ cat cvtool_v1vx.18xx.tar.bz2 | sudo docker import - [image name]

コンテナを作成する(初回のみ)

ホストOSとコンテナとの間でデータをやりとりする際は –v オプションも指定してください。

プロキシを設定している場合は、以下のリンクを参考にdockerのプロキシ設定を行ってください。

参考:https://matsuand.github.io/docs.docker.jp.onthefly/network/proxy/

[container name]は任意の名前

Code Block
$ sudo docker run -d -it --name [container name] [image name] /bin/bash

プロキシを設定している場合は、以下のリンクを参考にdockerのプロキシ設定を行ってください。

参考:https://matsuand.github.io/docs.docker.jp.onthefly/network/proxy/

CVツールを実行する

コンテナを起動します。

Code Block
$ sudo docker start [container name]

...

Code Block
$ sudo docker exec -it -u cvtool [container name] /bin/bash

passwordが必要な場合は「cv」を利用ください。

(コンテナ内で)環境設定を行います。

  • ambaCV2Xカメラ向けの設定

Code Block
$ cd /home/cvtool
$ source setup_env.sh

モデルを変換する

学習済みのサンプルモデルを変換する手順を記載します。

変換時の設定ファイルについてはこちらを参照してください。

Caffe

  • ambaCV5Xカメラ向けの設定

Code Block
$ cd conversion/caffe

サンプルモデルをダウンロードする

Code Block
$ wget https://github.com/shicai/MobileNet-Caffe/blob/master/mobilenet.caffemodel/home/cvtool
$ mv mobilenet.caffemodel sample/mobilenet_v1/models

モデル変換を実行する

Code Block
$ ./caffe_conversion.sh setting.conf

変換用設定ファイル仕様について

Caffe

# Network Name

NET_NAME=mobilenetv1

 

# Path to Deploy Prototxt

DEPLOY_PROTOTXT=./sample/mobilenet_v1/mobilenet_deploy.prototxt

 

# Path to Directory for (Deploy) Caffe Models

MODEL_DIR=./sample/mobilenet_v1/models

 

# Path to Directory for DRA Images

DRA_IMAGE_DIR=../dra_img

 

# Path to Directory for Output Data

OUTPUT_DIR=./out

 

# Quantization Mode

#  FIX8  : Fixed-point  8bit

#  FIX16 : Fixed-point 16bit

#  MIX   : FIX8/FIX16 mixed

PARSER_OPTION=FIX8

 

# Input Data Format (0:NHWC, 1:NCHW)

IN_DATA_FORMAT=1

 

# Input Data Channel

IN_DATA_CHANNEL=3

 

# Input Data Width

IN_DATA_WIDTH=224

 

# Input Data Height

IN_DATA_HEIGHT=224

 

# Input Data Mean Vector or Name of .binaryproto

IN_MEAN=103.94,116.78,123.68

 

# Input Data Scale

# IN_SCALE=1/Scale

IN_SCALE=58.823529411

 

# RGB or BGR (0:RGB, 1:BGR)

IS_BGR=1

 

# Input Layer Name

IN_LAYER=data

 

# Output Layers Name

OUT_LAYER=mbox_loc,mbox_conf_flatten

 

#cavalry version

#if not specified -> ""

CAVALRY_VER="2.1.7"

 

# Unique preprocess

# if use im2bin -> NONE

# if use unique preprocess -> script path

PREPRO=NONE

PREPRO_ARG=""

 

# Input file data format

IN_DATA_FILEFORMAT=0,0,0,0

 

# Transpose indices(NONE:without transpose , 0,3,1,2:transpose (EX))

...

source setup_env.sh ipro-ambaCV5X

モデルの変換

...

モデル変換については下記ページをご参照ください。

 設定ファイル仕様・サンプルモデル変換(Caffe編)

 設定ファイル仕様・サンプルモデル変換(Tensorflow編)

 設定ファイル仕様・サンプルモデル変換(ONNX/PyTorch編)