利用深度学习进行目标检测是一种快速、准确地预测目标在图像中的位置的方法。深度学习是一种强大的机器学习技术,目标检测器自动学习检测任务所需的图像特征。有几种使用深度学习的对象检测技术,如Faster R-CNN、you only look once (YOLO) v2、YOLO v3和single shot detection (SSD)。
用于对象检测的应用包括:
图像分类
现场了解
无人驾驶车辆
监测
使用标签应用程序交互式地标签地面真相数据在视频,图像序列,图像收集,或自定义数据源。您可以使用矩形标签标记物体检测地面真相,它定义了物体在图像中的位置和大小。
使用数据增强提供了一种使用有限数据集进行训练的方法。微小的更改,如平移、裁剪或转换图像,可以提供新的、清晰的和独特的图像,您可以使用这些图像来训练健壮的检测器。数据存储是读取和扩充数据集合的一种方便的方法。使用imageDatastore
和boxLabelDatastore
为图像和带标签的边界框数据创建数据存储。
增加对象检测的包围盒(深度学习工具箱)
深度学习的图像预处理(深度学习工具箱)
预处理数据的领域特定的深度学习应用(深度学习工具箱)
有关使用数据存储增加培训数据的详细信息,请参见用于深度学习的数据存储(深度学习工具箱),使用内置数据存储执行额外的图像处理操作(深度学习工具箱).
每个对象检测器都包含一个独特的网络结构。例如,Faster R-CNN检测器使用两级网络进行检测,而YOLO v2检测器使用单级。使用函数如fasterRCNNLayers
或yolov2Layers
创建一个网络。控件也可以一层一层地设计网络深层网络设计师(深度学习工具箱).
使用trainFasterRCNNObjectDetector
,trainYOLOv2ObjectDetector
,trainSSDObjectDetector
用于训练目标检测器的函数。使用evaluateDetectionMissRate
和evaluateDetectionPrecision
评估培训结果的功能。
使用训练过的检测器检测图像中的目标。例如,下面显示的部分代码使用训练过的探测器
在一个图像我
.使用检测
目标函数在fasterRCNNObjectDetector
,yolov2ObjectDetector
,yolov3ObjectDetector
,或ssdObjectDetector
对象返回边界框、检测分数和分配给边界框的分类标签。
我= imread (input_image) [bboxes,scores,labels] =检测(检测器,I)
MathWorks®GitHub知识库提供了最新的预训练目标检测深度学习网络的实现,可下载并用于执行开箱即用的推理。预先训练的目标检测网络已经在标准数据集上进行训练,如COCO和Pascal VOC数据集。你可以直接使用这些预先训练好的模型来检测测试图像中的不同物体。
例如:
要使用预先训练的YOLO v2和v4深度学习网络执行目标检测,请参见使用预先训练的YOLO v2深度学习网络进行目标检测和使用预先训练的YOLO v4深度学习网络进行目标检测,分别。
要使用预先训练的深度学习网络执行扫描文本检测,请参见文本检测模型的预训练字符区域感知.您可以使用这个预先训练过的模型来检测图像中的文本。该模型可以检测这七种语言的文本:英语、韩语、意大利语、法语、阿拉伯语、德语和孟加拉语。
有关所有最新的MathWorks预训练模型和示例的列表,请参见MATLAB深度学习(GitHub).