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