主要内容

开始使用深度学习进行对象检测

使用深度学习的物体检测提供了一种快速准确的方法来预测物体在图像中的位置。深度学习是一种强大的机器学习技术,目标检测器自动学习检测任务所需的图像特征。使用深度学习进行目标检测的一些技术是可用的,例如Faster R-CNN,您只看一次(YOLO) v2, YOLO v3, YOLO v4和单次检测(SSD)。

目标检测的应用包括:

  • 图像分类

  • 现场了解

  • 无人驾驶车辆

  • 监测

为目标检测创建训练数据

使用标记应用程序交互式地标记视频、图像序列、图像集合或自定义数据源中的地面真相数据。您可以使用矩形标签标记物体检测地面真相,矩形标签定义物体在图像中的位置和大小。

增强和预处理数据

使用数据增强提供了一种使用有限数据集进行训练的方法。微小的更改,如平移、裁剪或转换图像,可以提供新的、独特的和唯一的图像,您可以使用这些图像来训练一个健壮的检测器。数据存储是读取和增加数据集合的一种方便方法。使用imageDatastoreboxLabelDatastore为图像和标记的包围框数据创建数据存储。

有关使用数据存储增强训练数据的详细信息,请参见用于深度学习的数据存储(深度学习工具箱),使用内置数据存储执行其他图像处理操作(深度学习工具箱)

创建对象检测网络

每个对象检测器都包含一个独特的网络结构。例如,Faster R-CNN检测器使用两级网络进行检测,而YOLO v2检测器使用单级网络。使用如下函数fasterRCNNLayersyolov2Layers创建网络。控件,还可以逐层设计网络深度网络设计器(深度学习工具箱)

列车检测和评估结果

使用trainFasterRCNNObjectDetectortrainYOLOv2ObjectDetectortrainYOLOv4ObjectDetector,trainSSDObjectDetector函数来训练一个目标检测器。使用evaluateDetectionMissRate而且evaluateDetectionPrecision评估培训结果的功能。

使用深度学习检测器检测对象

使用训练过的检测器检测图像中的对象。例如,下面显示的部分代码使用经过训练的探测器在图像上.使用检测对象函数fasterRCNNObjectDetectoryolov2ObjectDetectoryolov3ObjectDetectoryolov4ObjectDetector,或ssdObjectDetector对象返回边界框、检测分数和分配给边界框的类别标签。

I = imread(input_image) [bboxes,scores,labels] = detect(检测器,I)

使用预训练的对象检测模型检测对象

计算机视觉工具箱™提供预训练的对象检测模型,用于执行开箱即用的推理。

使用预先训练好的目标检测模型

  1. 下载一个预先训练好的模型。预训练的模型作为支持包提供,您可以使用万博1manbetxvision万博1manbetxSupportPackages函数或Add-On资源管理器。

  2. 使用计算机视觉工具箱中的对象检测器来加载预训练的模型并检测测试图像中的对象。

该表列出了预训练模型的名称,对应的支持包的名称,以及计算机视觉工具箱中的对象检测器。万博1manbetx

预训练模型的名称 描述 支持包名称万博1manbetx 对象探测器
resnet50-coco 预训练的掩码R-CNN对象检测器在COCO数据集上训练,并使用ResNet-50网络作为特征提取器。 掩码R-CNN实例分割的计算机视觉工具箱模型 maskrcnn
darknet19-coco 使用DarkNet-19作为基础网络创建的预训练YOLO v2深度学习网络,并在COCO数据集上进行训练。 YOLO v2对象检测的计算机视觉工具箱模型 yolov2ObjectDetector
tiny-yolov2-coco 预训练YOLO v2深度学习网络使用小型基础网络创建,并在COCO数据集上进行训练。
darknet53-coco 一个预先训练的YOLO v3深度学习网络,使用DarkNet-53作为基础网络,在COCO数据集上进行训练。 YOLO v3对象检测的计算机视觉工具箱模型 yolov3ObjectDetector
tiny-yolov3-coco 预训练YOLO v3深度学习网络使用小型基础网络创建,并在COCO数据集上进行训练。
csp-darknet53-coco 以CSP-DarkNet-53为基础网络,在COCO数据集上进行预训练的YOLO v4深度学习网络。 YOLO v4对象检测的计算机视觉工具箱模型 yolov4ObjectDetector
tiny-yolov4-coco 预训练YOLO v4深度学习网络,使用小型基础网络创建,并在COCO数据集上进行训练。

例如,使用darknet19-coco预训练的YOLO v2模型用于对象检测,使用yolov2ObjectDetector对象。然后可以使用检测的函数yolov2ObjectDetector对象来检测未知图像中的对象。

探测器= yolov2ObjectDetector(“darknet19-coco”);testImage = imread(“highway.png”);[bboxes,scores,labels] = detect(检测器,testImage);

MathWorksGitHub

MathWorks®GitHub存储库提供了最新的预训练对象检测深度学习网络的实现,可以下载并用于执行开箱即用的推理。预先训练的目标检测网络已经在标准数据集(如COCO和Pascal VOC数据集)上进行了训练。您可以直接使用这些预训练的模型来检测测试图像中的不同对象。

有关所有最新的MathWorks预训练对象检测器的列表,请参见MATLAB深度学习(GitHub)

另请参阅

应用程序

相关的话题