主要内容

このページは前リリースの情报です。该当の英语のページはこのリリースで削除されています。

YOLO v2を使使使用したオブジェクト検出のコード生成

この例で,你只看一次(Yolo)v2 v2オブジェクト検出器用途のをを明し生成するy v2オブジェクトのネットワークは2つのサブででネットワークされ。特色が続きます。このこの例で,计算机Vision Toolbox™の“yolo v2深层学习习使したオブジェクトオブジェクト検出の例で习习させたネットワークのコードをををししししははは,YOLO V2深层学习をををしたオブジェクトの(电脑视觉工具箱)をを参照してくださいこの例例を変更すれば,“事前学习済みのonnx yolo v2オブジェクト検出器材の”のので计算机视觉工具箱™からインポートしたネットワーク用のcuda®mexを生成でき。详细详细,事前学习済み済みonnx yolo v2オブジェクト検出器材のインポート(电脑视觉工具箱)を参照してください。

必要条件

  • Compute能力3.2以上のcuda対応nvidia®GPU。

  • nvidia cudaツールキットドライバー。

  • nvidia cudnnライブラリ。

  • コンパイラコンパイラライブラリのの环境。サポートされているコンパイラおよびのバージョンバージョン详细ははは,サードパーティ制品ををしてください。环境环境数のは,前提条件となる制品の设定を参照してください。

  • GPU编码器界面为深度学习图书馆サポートサポート。このこのサポートパッケージををインストールするにははにはアドオンエクスプローラーを使用します。

GPU环境の検证

关节Coder.CheckGPuInstall.をを用し,この例を実行するのに必要なコンパイラおよびがが设定されれてこと検证ししし検证を検证しし

envcfg = coder.gpuenvconfig('主持人');envcfg.deeplibtarget ='cudnn';envcfg.deepcodegen = 1;Envcf​​g.quiet = 1;Coder.CheckGpuInstall(Envcf​​g);

事前学习済みのdagnetworkのの

net = getyolov2();
下载掠夺探测器(98 MB)......

DAGネットワ​​ークネットワークに,畳み込み畳み込み,relu层,バッチ正规化层に加入て,yolo v2変换层やyolo v2出力层など,150个の层が含まれい。て表示表示するに,关节分析(深度学习工具箱)を使用します。

分析(网);

エントリポイント关节yolov2_detect.

エントリポイント关节yolov2_detect.m.は,イメージイメージ力を,YOLOV2RESNET50VEHICEEXAMPLE.MAT.ファイルに保存されている习习习ネットワークを使し,イメージイメージ検出器材をし。附近,ネットワークネットワークは,ネットワークオブジェクトをYOLOV2RESNET50VEHICEEXAMPLE.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,标签);

Mexコード生成の行

エントリポイント关节yolov2_detect.m.のcudaコードを生成するは,mexターゲットのgpuコード成オブジェクトを作用成,ターゲットターゲットをc ++に设定ます。关联coder.deeplearningconfigをを用してCUDNN.深层学习构成オブジェクト作物,それをgpuコード成オブジェクトのDeeplearningConfigプロパティプロパティ割り当てます。入力サイズ[224,224,3]ををしてCodegen.コマンドコマンドを実し。

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年。

参考

||||

关键词トピック