。
この例で,你只看一次(Yolo)v2 v2オブジェクト検出器用途のをを明し生成するy v2オブジェクトのネットワークは2つのサブででネットワークされ。特色が続きます。このこの例で,计算机Vision Toolbox™の“YOLO V2深层学习习使したオブジェクト”の例で学习させネットワークのコードを生成します。YOLO V2深层学习をををしたオブジェクトのをを参照してくださいこの例例を変更すれば,“事前学习済みのonnx yolo v2オブジェクト検出器材の”のので计算机视觉工具箱™からインポートしたネットワーク用のcuda®mexを生成でき。详细详细,事前学習済みのONNX YOLO v2意思オブジェクト検出器のインポートを参照してください。
必须
この例では,CUDA MEXを生成します。以下のサードパーティ要件がされます。
CUDA®対応NVIDIA®GPUおよびおよび互换性性あるある
オプション
スタティックライブラリ,ダイナミックライブラリ,または実行可能のmex户外のビルド,この例ではビルド要件要件されます。
nvidiaツールツール。
nvidia cudnnライブラリ。
コンパイラおよびライブラリの环境位数。详细详细,サードパーティハードウェア(GPU编码器)と前提条件となる制品の设定(GPU编码器)を参照してください。
关节coder.checkGpuInstall
(GPU编码器)をを用し,この例を実行するのに必要なコンパイラおよびがが设定されれてこと検证ししし検证を検证しし
envcfg = coder.gpuenvconfig(“主机”);envcfg.deeplibtarget =.'cudnn';envCfg。DeepCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg);
net = getyolov2();
DAGネットワークネットワークに,畳み込み畳み込み,relu层,バッチ正规化层に加入て,yolo v2変换层やyolo v2出力层など,150个の层が含まれいいます。深层学习ネットワークアーキテクチャを対话。て表示表示するに,关节分析
(深度学习工具箱)を使用します。
分析(网);
yolov2_detect.
エントリポイント関数yolov2_detect.m.は,イメージイメージ力を,yolov2ResNet50VehicleExample.mat
ファイルに保存されている习习习ネットワークを使し,イメージイメージ検出器材をし。附近,ネットワークネットワークは,ネットワークオブジェクトをyolov2ResNet50VehicleExample.mat
ファイルファイル永続数yolov2obj.に読み込み,それ以降の検出のではこの永続オブジェクトをを利用します。
类型('yolov2_detect.m')
函数outimg = yolov2_detect(in)%copyright 2018-2019 Mathworks,Inc.持久化yolov2obj;如果是isempty(yolov2obj)yolov2obj = coder.loaddeeplearningnetwork('yolov2resnet50vehiceexample.mat');输入%通过输入[bboxes,〜,标签] = yolov2obj.detect(in,'threshold',0.5);%将分类标签转换为matlab%执行的CharAtyor向量的单元格数组,如果编码器。('matlab')标签= cellstr(标签);终端%注释图像中的检测。Outimg = InsertObjectAnnotation(IN,'矩形',Bboxes,标签);
エントリポイント関数yolov2_detect.m.のcudaコードを生成するは,mexターゲットのgpuコード成オブジェクトを作用成,ターゲットターゲットをc ++に设定ます。关联编码器。DeeplearningConfig
(GPU编码器)を使用してCUDNN.
深层学习构成オブジェクト作物,それをgpuコード成オブジェクトのDeeplearningConfig
プロパティプロパティ割り当てます。入力サイズ[224,224,3]ををしてCodegen.
コマンドコマンド実行。この値はyolov2のの力层サイズにししますます。
cfg = coder.gpuconfig('mex');cfg.targetlang ='c ++';cfg.deeplearningconfig = coder.deeplearningconfig('cudnn');Codegen.-Config.CFG.yolov2_detect.- args.{ONE(224,224,3,'UINT8')}-报告
代码生成成功:要查看报告,请打开('codegen / mex / yolov2_detect / html / export.mldatx')。
ビデオファイルビデオをし,入ビデオををます。
videoFile ='highway_lanechange.mp4';Videofreader = Vision.videofilereader(VideoFile,'VideoOutputDatatype'那'uint8');depvideoplayer = Vision.DeployapleDapeplayAlyer('尺寸'那'风俗'那'自定义大小',[640 480]);
ビデオビデオ力量をごとに読み取り読み取り読み取りビデオビデオの内内をを検出検出し検出しししし
cont =〜ISDONE(Videofreader);而cont i = step(videofreader);In = Imresize(I,[224,224]);out = yolov2_detect_mex(in);步骤(Demvideoplayer,Out);cont =〜ISDONE(VideoFreader)&& Inopen(depvideoplayer);如果关闭视频播放器图形窗口,则%退出循环结尾
[1] Redmon,Joseph和Ali Farhadi。“YOLO9000:更好,更快,更强。”2017年电脑视觉和模式识别(CVPR)会议。IEEE,2017年。