SDK同梱ドキュメント:PythonModuleInstallManual
目次
Table of Contents | ||||
---|---|---|---|---|
|
責任制限
本ツールはセキュリティカメラ上で動作するアプリを開発するための機能を提供するもので、ツールを利用したアプリの動作保証を行うものではありません。また、追加アプリ動作中はセキュリティカメラに組み込まれた機能の動作は保証されません。
付属のサンプルはツールの使用方法を記述したものであり、実際の監視運用を目的として作成されたものではありません。
弊社は、いかなる場合も以下に関して一切の責任を負わないものとします。
本製品に関連して直接または間接に発生した、偶発的、特殊、または結果的損害・被害
お客様の故意や誤使用、不注意による障害または本製品の損傷など
お客様による本商品の逆コンパイル、逆アセンブルが行われた場合、それに起因するかどうかにかかわらず、発生した一切の故障または不具合
セキュリティデバイスからダウンロードしたデータ等のパソコンにおける消失、あるいは漏洩等によるいかなる損害、クレームなど
ネットワーク上からの不正アクセスなど悪意を持った第三者による画像データ、音声データ、認証情報(ユーザー名、パスワード)の漏えいなどによるいかなる損害、クレームなど
概要
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ディストリビューションでのインストール方法など、詳細については公式サイトなどを参照してください。
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 |
モデルの変換
...
モデル変換については下記ページをご参照ください。