开始使用深度学习进行对象检测
使用深度学习的对象检测提供了一种快速准确的方法来预测图像中对象的位置。深度学习是一种强大的机器学习技术,目标检测器自动学习检测任务所需的图像特征。几种使用深度学习的对象检测技术可用,例如Faster R-CNN,您只看一次(YOLO) v2, YOLO v3, YOLO v4和单镜头检测(SSD)。
目标检测的应用包括:
图像分类
现场了解
无人驾驶车辆
监测
为目标检测创建训练数据
使用标签应用程序交互式标记视频,图像序列,图像收集或自定义数据源中的地面真实数据。您可以使用矩形标签标记对象检测地面真相,矩形标签定义了对象在图像中的位置和大小。
扩充和预处理数据
使用数据增强提供了一种使用有限数据集进行训练的方法。微小的更改,如翻译、裁剪或转换图像,可以提供新的、不同的和唯一的图像,您可以使用这些图像来训练健壮的检测器。数据存储是一种读取和增加数据集合的方便方法。使用imageDatastore
和boxLabelDatastore
为图像和带标签的边界框数据创建数据存储。
增强物体检测的边界框(深度学习工具箱)
深度学习的图像预处理(深度学习工具箱)
面向特定领域深度学习应用的预处理数据(深度学习工具箱)
有关使用数据存储库增强训练数据的详细信息,请参见深度学习的数据存储(深度学习工具箱),使用内置数据存储执行额外的图像处理操作(深度学习工具箱).
创建目标检测网络
每个对象检测器包含一个独特的网络架构。例如,Faster R-CNN探测器使用两级网络进行检测,而YOLO v2探测器使用单级网络。使用如下函数fasterRCNNLayers
或yolov2Layers
创建一个网络。您还可以使用深度网络设计器(深度学习工具箱).
训练检测器和评估结果
使用trainFasterRCNNObjectDetector
,trainYOLOv2ObjectDetector
,trainYOLOv4ObjectDetector
,trainSSDObjectDetector
训练对象检测器的函数。使用evaluateDetectionMissRate
和evaluateDetectionPrecision
评估训练结果的函数。
使用深度学习检测器检测对象
使用训练好的检测器检测图像中的物体。例如,下面显示的部分代码使用训练过的探测器
在图像上我
.使用检测
对象函数fasterRCNNObjectDetector
,yolov2ObjectDetector
,yolov3ObjectDetector
,yolov4ObjectDetector
,或ssdObjectDetector
对象以返回边界框、检测分数和分配给边界框的分类标签。
I = imread()input_image[盒子,分数,标签]=检测(检测器,I)
使用预训练的对象检测模型检测对象
计算机视觉工具箱™提供预训练的对象检测模型,用于执行开箱即用的推理。
使用预训练的目标检测模型
下载一个预训练的模型。预先训练的模型作为支持包提供,您可以使用金宝app
vision金宝appSupportPackages
功能或插件资源管理器。使用计算机视觉工具箱中的对象检测器来加载预训练模型并检测测试图像中的对象。
表中列出了计算机视觉工具箱中预训练模型的名称、相应支持包的名称和对象检测器的名称。金宝app
预训练模型的名称 | 描述 | 支持包名称金宝app | 对象探测器 |
resnet50-coco |
使用ResNet-50网络作为特征提取器,在COCO数据集上训练预训练Mask R-CNN目标检测器。 | Mask R-CNN实例分割的计算机视觉工具箱模型 | maskrcnn |
darknet19-coco |
使用DarkNet-19作为基础网络并在COCO数据集上进行训练的预训练YOLO v2深度学习网络。 | YOLO v2目标检测的计算机视觉工具箱模型 | yolov2ObjectDetector |
tiny-yolov2-coco |
一个预训练的YOLO v2深度学习网络,使用一个小的基础网络,并在COCO数据集上进行训练。 | ||
darknet53-coco |
使用DarkNet-53作为基础网络并在COCO数据集上进行训练的预训练YOLO v3深度学习网络。 | 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(detector,testImage);
MathWorksGitHub
MathWorks®GitHub存储库提供了最新的预训练对象检测深度学习网络的实现,可以下载并用于执行开箱即用的推理。预训练的目标检测网络已经在标准数据集(如COCO和Pascal VOC数据集)上进行了训练。您可以直接使用这些预训练的模型来检测测试图像中的不同对象。
有关所有最新的MathWorks预训练对象检测器的列表,请参见MATLAB深度学习(GitHub).