这个例子展示了如何在英特尔®处理器上生成YOLO V2对象检测网络的C++代码。生成的代码使用英特尔数学内核库,用于深度神经网络(MKL DNN)。
有关详细信息,请参阅基于YOLO v2深度学习的目标检测(计算机视觉工具箱).
英特尔深度神经网络数学内核库(MKL-DNN)
参考MKLDNN CPU支金宝app持了解支持MKL-DNN库的处理器列表金宝app
MATLAB®编码器™ C++代码生成
MATLAB编码器接口的深度学习支持包金宝app
深度学习工具箱™达格网络
对象
计算机视觉工具箱™ 用于视频I/O操作
有关受支持版本的编译器和库的详细信息,请参阅金宝app第三方软硬件.
这个例子是支持Linux®,Wi金宝appndows®和macOS平台,不支持MATLAB Online。
达格网络
对象DAG网络包含150层,包括卷积层、ReLU层、批处理正常化层、YOLO v2转换层和YOLO v2输出层。
net=getYOLOv2();
下载预训练检测器(98mb)…
使用命令网。层
查看网络的所有层。
网。层
yolov2_检测
函数这个yolov2_检测
附加在示例中的函数接受图像输入,并使用保存在其中的网络在图像上运行检测器yolov2ResNet50VehicleExample.mat
.函数从yolov2ResNet50VehicleExample.mat
变成一个持久变量yolov2Obj
.后续对该函数的调用将重用持久对象进行检测。
类型(“yolov2_detection.m”)
函数outImg=yolov2_检测(in)%2018-2019版权所有MathWorks,Inc.%持久对象yolov2Obj用于加载YOLOV2OBJECTDECTOR对象在第一次调用此函数时,将构造并设置持久对象。对函数的后续调用将重用同一对象来调用输入上的检测%,从而避免必须重新构建和重新加载%网络对象。持久性yolov2Obj;如果isempty(yolov2Obj)yolov2Obj=coder.loadDeepLearningNetwork('yolov2ResNet50VehicleExample.mat');输入[B盒,~,标签]=yolov2Obj.detect(输入,'阈值',0.5)的结束百分比通过率;outImg=in;%将分类标签转换为字符向量标签的单元格数组=cellstr(标签);如果~(isempty(bboxes)&&isempty(labels))%,则对图像中的检测进行注释。outImg=插入对象注释(在“矩形”、“bboxes”和标签中);终止
若要生成代码,请为MEX目标创建代码配置对象,并将目标语言设置为C++。编码器。DeepLearningConfig
函数创建MKL-DNN深度学习配置对象。将此对象指定给DeepLearningConfig
代码配置对象的属性。将输入大小指定为编码基因
命令在本例中,YOLO v2网络的输入层大小为[224,224,3]
.
cfg=coder.config(“墨西哥”); cfg.TargetLang=“C++”;cfg.DeepLearningConfig=coder.DeepLearningConfig(“mkldnn”); 编码基因-配置cfgyolov2_检测-args{one(224224,3,'uint8')}报告
代码生成成功:要查看报告,请打开('codegen/mex/yolov2_detection/html/report.mldatx')。
设置视频文件读取器并读取示例输入视频lanechange.mp4公路
.创建一个视频播放器来显示视频和输出检测。
videoFile =“highway_lanechange.mp4”;videoFreader =愿景。VideoFileReader (videoFile“VideoOutputDataType”,‘uint8’); depVideoPlayer=vision.DeployableVideoPlayer(“尺寸”,“自定义”,“定制尺寸”,[640 480]);
逐帧读取视频输入,利用检测器检测视频中的车辆。
续= ~结束(videoFreader);而cont I = step(videoFreader);在= imresize(我,[224224]);= yolov2_detection_mex(的);depVideoPlayer(出);= ~isDone(videoFreader) && isOpen(depVideoPlayer);%如果视频播放器图形窗口关闭,则退出循环终止
雷蒙德,约瑟夫和阿里·法哈迪。“YOLO9000:更好、更快、更强。”在2017年IEEE计算机视觉和模式识别会议(CVPR),6517–25。檀香山,HI:IEEE,2017。