主要内容

本页采用了机器翻译。点击此处可查看英文原文。

Deep Learning Object Detector

使用经过训练的深度学习目标检测器检测目标

自 R2021b 起

  • Deep Learning Object Detector block

库:
Computer Vision Toolbox / Analysis & Enhancement

描述

Deep Learning Object Detector 模块使用通过模块参数指定的经过训练的目标检测器来预测输入图像的边界框、类标签和分数。此模块允许从 MAT 文件或使用 MATLAB® 函数将预训练目标检测器加载到 Simulink® 模型中。此模块为使用 Simulink 中的检测器对象提供图形界面。要启用 Deep Learning Object Detector 模块的某些参数,您必须选择支持这些参数的目标检测器。例如,将 yolov2ObjectDetector 对象与此模块结合使用,您可以选择与关联的 detect 对象函数的名称-值参量类似的参数。

示例

端口

输入

全部展开

H×W×C 数值数组,其中 HWC 分别是图像的高度、宽度和通道数。每个时间步只允许使用一个图像作为输入。

输出

全部展开

在输入图像中检测到的目标的位置,以 M×4 或 M×5 矩阵形式返回。M 是在图像中检测到的边界框的数量。您可以通过指定最大检测次数参数来设置 M 大小的上界。

下表描述边界框的格式。

边界框Description

与轴对齐的矩形

在空间坐标中定义为 M×4 数值矩阵,其行的形式为 [x y w h],其中:

  • M 是轴对齐矩形的数量。

  • xy 指定矩形的左上角。

  • w 指定矩形的宽度,即矩形沿 x 轴的长度。

  • h 指定矩形的高度,即矩形沿 y 轴的长度。

旋转矩形

在空间坐标中定义为 M×5 数值矩阵,其行的形式为 [xctr yctr w h yaw],其中:

  • M 是旋转矩形的数量。

  • xctryctr 指定矩形的中心。

  • w 指定矩形的宽度,即旋转前矩形沿 x 轴的长度。

  • h 指定矩形的高度,即旋转前矩形沿 y 轴的长度。

  • yaw 指定旋转角度(以度为单位)。围绕边界框的中心顺时针旋转。

Square rectangle rotated by -30 degrees.

有关详细信息,请参阅Datastores for Deep Learning (Deep Learning Toolbox)

边界框的标签,以 M×1 枚举向量形式返回。M 是在图像中检测到的边界框的数量。

每个标签的检测置信度分数,以 M×1 向量形式返回。M 是在图像中检测到的边界框的数量。分数越高,表示检测的置信度越高。

参数

全部展开

从以下选项中选择检测器对象的源:

  • 来自 MAT 文件的检测器 - 从 MAT 文件中导入检测器对象。例如,选择一个包含 yolov2ObjectDetector 对象的 MAT 文件。

  • 来自 MATLAB 函数的检测器 - 从 MATLAB 函数中导入检测器对象。例如,指定函数 vehicleDetectorYOLOv2,该函数返回一个经过训练的 yolov2ObjectDetector 对象。

导入的检测器必须为以下受支持的对象之一:

  • rcnnObjectDetector

  • fastRCNNObjectDetector

  • fasterRCNNObjectDetector

  • rtmdetObjectDetector

  • ssdObjectDetector

  • yolov2ObjectDetector

  • yolov3ObjectDetector

  • yolov4ObjectDetector

  • yoloxObjectDetector

编程用法

模块参数:Detector
类型:字符向量、字符串
值:Detector from MAT file' | 'Detector from MATLAB function'
默认值:Detector from MAT file'

此参数指定包含要加载的检测器对象的 MAT 文件的名称。如果该文件不在 MATLAB 路径中,请使用浏览按钮找到该文件。

依赖关系

要启用此参数,请将检测器参数设置为来自 MAT 文件的检测器

编程用法

模块参数:DetectorFilePath
类型:字符向量、字符串
值:MAT 文件路径或名称
默认值: 'untitled.mat'

自 R2026a 起

  • 自动模式 - 此选项会根据模型配置和代码生成兼容性自动选择仿真模式。当支持代码生成时,它会使用代码生成,而当模型与代码生成不兼容时,它会切换到解释执行

  • 解释执行 - 使用 MATLAB 解释器进行模型仿真。此选项可缩短启动时间,但仿真速度低于代码生成。在此模式下,您可以调试模块的源代码。

  • 代码生成 - 使用生成的代码进行模型仿真。

    当您首次仿真包含 Deep Learning Object Detector 模块的模型时,软件会从该模块生成二进制代码或 C/C++ MATLAB 可执行 (MEX) 代码,并将该代码与模型集成。Deep Learning Object Detector 模块使用与 MATLAB Coder™ 相同的基础架构,您通常使用该基础架构在 Simulink 外部从 MATLAB 代码生成 C/C++ 代码。只要模型未更改,生成的代码就会在后续仿真中重用。此选项需要更多启动时间,但后续仿真的速度与解释执行相当。

如果您的 Simulink 模型设置为在普通模式下仿真,并且您通过代码生成来使用 Deep Learning Object Detector 模块,那么各个 Deep Learning Object Detector 模块就可以通过代码生成实现加速。如果 Simulink 模型设置为在加速模式或任何其他目标模式下仿真,则 Deep Learning Object Detector 模块的仿真方式参数没有任何作用。但有一种例外情况:如果模型设置为在加速模式下仿真,而您却以解释执行模式使用 Deep Learning Object Detector 模块,那么该模块将以解释执行模式运行。

编程用法

模块参数:SimulateUsing
类型:字符向量、字符串
值:"Auto mode" | "Interpreted execution" | "Code generation"
默认值:"Auto mode"

此参数指定返回经过训练的目标检测器的 MATLAB 函数的名称。例如,指定函数 vehicleDetectorYOLOv2(它返回经过训练的 yolov2ObjectDetector 对象),或指定自定义函数。

依赖关系

要启用此参数,请将检测器参数设置为来自 MATLAB 函数的检测器

编程用法

模块参数:DetectorFunction
类型:字符向量、字符串
值:MATLAB 函数名称
默认值:'untitled'

将感兴趣的搜索区域指定为 [x y width height] 形式的向量。该向量指定区域的左上角和大小(以像素为单位)。

依赖关系

要启用此参数,请选择指定感兴趣区域参数。

编程用法

模块参数:ROI
类型:字符向量、字符串
值:指定为 '[x y width height]' 的字符向量
默认值:'[1 1 100 100]'

将检测阈值指定为 [0, 1] 范围内的标量。分数低于此阈值的检测将被删除。要减少误报,请增大此值。

依赖关系

要启用此参数,您必须使用支持检测阈值参数的检测器。例如,使用 yolov2ObjectDetector 对象。

编程用法

模块参数:Threshold
类型:字符向量、字符串
值:标量
默认值:'0.5'

将最强区域提议的最大数量指定为整数。减小此值可以加快处理速度,但会降低检测准确度。要使用所有区域提议,请将此参数指定为 Inf

依赖关系

要启用此参数,请使用支持最强区域的数量参数的检测器。例如,使用 rcnnObjectDetector 对象。

编程用法

模块参数:NumStrongestRegions
类型:字符向量、字符串
值:整数
默认值:'2000'

将最大区域大小指定为 [height width] 形式的向量。单位为像素。最大区域大小定义包含该对象的最大区域的大小。例如,[50 50] 将包含该对象的最大区域的大小设置为 50×50 像素。要减少计算时间,请将此值设置为在输入测试图像中可检测到该对象的已知最大区域大小。

依赖关系

启用以下参数

  • 选择指定最大区域大小参数。

  • 使用支持最大区域大小参数的检测器。例如,使用 yolov2ObjectDetector 对象。

编程用法

模块参数:MaxSize
类型:字符向量、字符串
值:指定为 '[height width]' 的字符向量
默认值:'[50 50]'

将最小区域大小指定为 [height width] 形式的向量。单位为像素。最小区域大小定义包含该对象的最小区域的大小。例如,[1 1] 将包含该对象的最小区域的大小设置为 1×1 像素。

依赖关系

启用以下参数

  • 选择指定最小区域大小参数。

  • 使用支持最小区域大小参数的检测器。例如,使用 yolov2ObjectDetector 对象。

编程用法

模块参数:MinSize
类型:字符向量、字符串
值:指定为 '[height width]' 的字符向量
默认值:'[1 1]'

将最大检测次数指定为正整数。此值是检测次数的上界,必须大于或等于 2。

编程用法

模块参数:MaxDetections
类型:字符向量、字符串
值:整数
默认值:'500'

扩展功能

全部展开

版本历史记录

在 R2021b 中推出

全部展开