主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

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

この例では,你只看一次(YOLO)意思v2オブジェクト検出器用のCUDA®墨西哥人を生成する方法を説明します。YOLO v2オブジェクトの検出ネットワクは2のサブネットワクで構成されます。特徴抽出ネットワ,クに検出ネットワ,クが続きます。この例では,计算机视觉工具箱™の“YOLO v2意思深層学習を使用したオブジェクト検出“の例で学習させたネットワークのコードを生成します。詳細にいては,YOLO v2深層学習を使用したオブジェクトの検出(计算机视觉工具箱)を参照してください。この例を変更すれば,“事前学習済みのONNX YOLO v2意思オブジェクト検出器のインポート”の例で计算机视觉工具箱™からインポートしたネットワーク用のCUDA®墨西哥人を生成できます。詳細は,事前学習済みのONNX YOLO v2オブジェクト検出器のンポト(计算机视觉工具箱)を参照してください。

サ,ドパ,ティの必要条件

必須

この例では,cuda mexを生成します。以下のサ,ドパ,ティ要件が適用されます。

  • Cuda®対応nvidia®gpuおよび互換性のあるドラバ。

オプション

スタティックライブラリ,ダイナミックライブラリ,または実行可能ファイルなどの墨西哥人以外のビルドについて,この例では以下の要件も適用されます。

Gpu環境の検証

関数coder.checkGpuInstallを使用し,この例を実行するのに必要なコンパイラおよびライブラリが正しく設定されていることを検証します。

envCfg = code . gpuenvconfig (“主机”);envCfg。DeepLibTarget =“cudnn”;envCfg。DeepCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg);

事前学習済みのDAGNetworkの取得

net = getYOLOv2();

DAGネットワークには,畳み込み層,ReLU層,バッチ正規化層に加えて,YOLO v2意思変換層やYOLO v2出意思力層など,150個の層が含まれています。深層学習ネットワ,クア,キテクチャを対話的に可視化して表示するには,関数analyzeNetwork(深度学习工具箱)を使用します。

analyzeNetwork(净);

エントリポ@ @ント関数yolov2_detect

エントリポ@ @ント関数yolov2_detect.mは,化学键メ,化学键ジ入力を受け取り,yolov2ResNet50VehicleExample.matファ@ @ルに保存されている深層学習ネットワ,@ @クを使用して,@ @メ,@ @ジに対して検出器を実行します。この関数は,ネットワ,クオブジェクトをyolov2ResNet50VehicleExample.matファ@ @ルから永続変数yolov2Objに読み込み,それ以降の検出の呼び出しではこの永続オブジェクトを再利用します。

类型(“yolov2_detect.m”
版权所有2018-2019 The MathWorks, Inc. persistent yolov2Obj;if isempty(yolov2Obj) yolov2Obj = code . loaddeeplearningnetwork ('yolov2ResNet50VehicleExample.mat');end % pass in input [bboxes,~,labels] = yolov2Obj.detect(in,'Threshold',0.5);如果code .target('MATLAB') labels = cellstr(labels);注释图像中的检测。outImg = insertObjectAnnotation(在,'矩形',盒子,标签);

Mexコ,ド生成の実行

エントリポ@ @ント関数yolov2_detect.mのCUDAコードを生成するには,墨西哥人ターゲットのGPUコード構成オブジェクトを作成し,ターゲット言語をc++に設定します。関数编码器。DeepLearningConfigを使用してCuDNN深層学習構成オブジェクトを作成し,それをgpuコ,ド構成オブジェクトのDeepLearningConfigプロパティに割り当てます。入力サesc escズ[224,224,3]を指定してcodegenコマンドを実行します。この値はYOLOv2の入力層サズに対応します。

cfg = code . gpuconfig (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”);codegen配置cfgyolov2_detectarg游戏{(224224 3 uint8)}报告
代码生成成功:要查看报告,打开('codegen/mex/yolov2_detect/html/report.mldatx')。

生成されたmexの実行

ビデオファルリダを設定し,入力ビデオを読み取ります。ビデオプレ。

videoFile =“highway_lanechange.mp4”;videoFreader =视觉。VideoFileReader(videoFile,“VideoOutputDataType”“uint8”);depVideoPlayer =视觉。DeployableVideoPlayer (“大小”“自定义”“CustomSize”480年[640]);

ビデオ入力をフレ,ムごとに読み取り,検出器を使用してビデオ内の車両を検出します。

cont = ~isDone(videoFreader);cont I = step(video ofreader);in = imresize(I,[224,224]);Out = yolov2_detect_mex(in);步骤(depVideoPlayer);cont = ~isDone(videoFreader) && isOpen(depVideoPlayer);%如果视频播放器图形窗口关闭,则退出循环结束

参考文献

雷蒙,约瑟夫和阿里·法哈蒂。“YOLO9000:更好、更快、更强。”2017年IEEE计算机视觉和模式识别会议。IEEE 2017。

参考

関数

オブジェクト

関連する例

詳細