Deep Learning Object Detector
库:
Computer Vision Toolbox /
Analysis & Enhancement
描述
Deep Learning Object Detector 模块使用通过模块参数指定的经过训练的目标检测器来预测输入图像的边界框、类标签和分数。此模块允许从 MAT 文件或使用 MATLAB® 函数将预训练目标检测器加载到 Simulink® 模型中。此模块为使用 Simulink 中的检测器对象提供图形界面。要启用 Deep Learning Object Detector 模块的某些参数,您必须选择支持这些参数的目标检测器。例如,将 yolov2ObjectDetector 对象与此模块结合使用,您可以选择与关联的 detect 对象函数的名称-值参量类似的参数。
示例
Lane and Vehicle Detection in Simulink Using Deep Learning
Use deep convolutional neural networks inside a Simulink® model to perform lane and vehicle detection. This example takes the frames from a traffic video as an input, outputs two lane boundaries that correspond to the left and right lanes of the ego vehicle, and detects vehicles in the frame.
(Deep Learning Toolbox)
端口
输入
H×W×C 数值数组,其中 H、W 和 C 分别是图像的高度、宽度和通道数。每个时间步只允许使用一个图像作为输入。
输出
在输入图像中检测到的目标的位置,以 M×4 或 M×5 矩阵形式返回。M 是在图像中检测到的边界框的数量。您可以通过指定最大检测次数参数来设置 M 大小的上界。
下表描述边界框的格式。
| 边界框 | Description |
|---|---|
与轴对齐的矩形 | 在空间坐标中定义为 M×4 数值矩阵,其行的形式为 [x y w h],其中:
|
旋转矩形 | 在空间坐标中定义为 M×5 数值矩阵,其行的形式为 [xctr yctr w h yaw],其中:
|
有关详细信息,请参阅Datastores for Deep Learning (Deep Learning Toolbox)。
边界框的标签,以 M×1 枚举向量形式返回。M 是在图像中检测到的边界框的数量。
每个标签的检测置信度分数,以 M×1 向量形式返回。M 是在图像中检测到的边界框的数量。分数越高,表示检测的置信度越高。
参数
从以下选项中选择检测器对象的源:
来自 MAT 文件的检测器 - 从 MAT 文件中导入检测器对象。例如,选择一个包含
yolov2ObjectDetector对象的 MAT 文件。来自 MATLAB 函数的检测器 - 从 MATLAB 函数中导入检测器对象。例如,指定函数
vehicleDetectorYOLOv2,该函数返回一个经过训练的yolov2ObjectDetector对象。
导入的检测器必须为以下受支持的对象之一:
rcnnObjectDetectorfastRCNNObjectDetectorfasterRCNNObjectDetectorrtmdetObjectDetectorssdObjectDetectoryolov2ObjectDetectoryolov3ObjectDetectoryolov4ObjectDetectoryoloxObjectDetector
编程用法
模块参数: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' |
扩展功能
用法说明和限制:
配置参数 > 代码生成常规类别中的语言参数必须设置为 C++。
有关代码生成支持的网络和层的列表,请参阅代码生成支持的网络和层 (MATLAB Coder)。
若要为以 YOLOv3、YOLOv4 或 RTMDet 作为目标检测器的“深度神经网络数学内核库” (MKL-DNN) 目标库生成代码,请将
MaxStackSize和TLCOptions模型参数设置为较高的值。例如,您可以使用以下语法将MaxStackSize和TLCOptions参数值设置为 'inf'。>> set_param(modelName,'MaxStackSize','inf') >> set_param(modelName,'TLCOptions','-aMaxStackVariableSize=inf')
用法说明和限制:
配置参数 > 代码生成常规类别中的语言参数必须设置为 C++。
有关 CUDA® 代码生成支持的网络和层的列表,请参阅Supported Networks, Layers, and Classes (GPU Coder)。
版本历史记录
在 R2021b 中推出从 R2024b 开始,Deep Learning Object Detector 模块支持目标检测的实时模型 (RTMDet)。您可以导入预训练的 RTMDet 目标检测器对象 rtmdetObjectDetector 来执行目标检测。
从 R2024b 开始,Deep Learning Object Detector 模块支持 You Only Look Once X (YOLOX) 目标检测。您可以导入预训练的 YOLOX 目标检测器对象 yoloxObjectDetector 来执行目标检测。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)

