主要内容

yolov2Layers

创建YOLO v2目标检测网络

自从R2019a

描述

例子

lgraph= yolov2Layers (图象尺寸numClassesanchorBoxes网络featureLayer创建一个YOLO v2对象检测网络,并将其作为参数返回LayerGraph对象。

例子

lgraph= yolov2Layers (___“ReorgLayerSource”,reorgLayer使用名称-值对指定重组层的来源。通过指定此名称-值对,可以将重组层添加到YOLO v2网络体系结构中。除了前面语法中的输入参数之外,还要指定此参数。

例子

全部折叠

指定用于训练网络的输入图像的大小。

imageSize = [224 224 3];

指定网络必须检测的对象类的数量。

numClasses = 1;

定义锚框。

anchorBoxes = [1 1;4 6;5 3;9 6];

指定预训练的ResNet -50网络作为YOLO v2的基网络。要使用这个预训练的网络,您需要安装“ResNet-50网络的深度学习工具箱模型”支持包。金宝app

网络= resnet50();

分析网络结构,查看网络的所有层。

analyzeNetwork(网络)

指定要用于特征提取的网络层。可以选择除全连接层以外的任何层作为特征层。

featureLayer =“activation_49_relu”

创建YOLO v2目标检测网络网络返回为LayerGraph对象。

lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,network,featureLayer);

分析YOLO v2的网络结构。特征层之后的层被移除。在基网络的特征层中加入一系列的卷积层、ReLU层和批归一化层以及YOLO v2变换层和YOLO v2输出层。

analyzeNetwork (lgraph)

指定用于训练网络的输入图像的大小。

imageSize = [224 224 3];

指定网络必须检测的对象类的数量。

numClasses = 1;

定义锚框。

anchorBoxes = [1 1;4 6;5 3;9 6];

指定预训练的ResNet -50作为YOLO v2的基网络。要使用这个预训练的网络,您需要安装“ResNet-50网络的深度学习工具箱模型”支持包。金宝app

网络= resnet50();

分析网络结构,查看网络的所有层。

analyzeNetwork(网络)

指定要用于特征提取的网络层。可以选择除全连接层以外的任何层作为特征层。

featureLayer =“activation_49_relu”

指定要用作重组层源的网络层。

reorgLayer =“activation_47_relu”

创建YOLO v2目标检测网络网络返回为LayerGraph对象。

lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,network,featureLayer,“ReorglayerSource”, reorgLayer);

分析YOLO v2的网络结构。特征层之后的层被移除。在基网络特征层中加入检测子网、YOLO v2变换和YOLO v2输出层。在网络中还增加了重组层和深度连接层。YOLO v2 reorg层对输出特征的维度进行重新组织activation_47_relu层。深度连接层将重组层的输出与更高层的输出连接起来。

analyzeNetwork (lgraph)

输入参数

全部折叠

输入图像的大小,指定为以下值之一:

  • 形式的二元向量[HW-对于大小的灰度图像H——- - - - - -W

  • 三元素形式向量[HW3] -对于大小的RGB彩色图像H——- - - - - -W

对象类的数量,指定为正整数。

锚定框,指定为- × 2矩阵,定义锚盒的大小和数量。的每一行- × 2矩阵表示锚盒的大小,形式为[高度宽度]。表示锚盒的数量。这个输入设置了AnchorBoxes输出层的属性。

每个锚框的大小是根据输入训练数据中存在的不同对象类别的比例和纵横比来确定的。此外,每个锚框的大小必须小于或等于输入图像的大小。您可以使用聚类方法从训练数据中估计锚框。有关更多信息,请参见从训练数据估计锚盒

预训练的卷积神经网络,指定为LayerGraph(深度学习工具箱)DAGNetwork(深度学习工具箱),或SeriesNetwork(深度学习工具箱)对象。该预训练卷积神经网络作为YOLO v2目标检测网络的基础。有关MATLAB中预训练网络的详细信息®,请参阅预训练深度神经网络(深度学习工具箱)

特征层的名称,指定为字符向量或字符串标量。的较深层之一的名称网络用于特征提取。从该层提取的特征作为YOLO v2目标检测子网的输入。你可以使用analyzeNetwork(深度学习工具箱)命令用于查看输入网络中各层的名称。

请注意

可以指定除全连接层以外的任何网络层作为特征层。

重组层的名称,指定为字符向量或字符串标量。的较深层之一的名称网络用作重组层的输入。你可以使用analyzeNetwork(深度学习工具箱)函数用于查看输入层的名称网络。重组层是通过层,它重新组织低层特征的维度,以方便与高层特征的连接。

请注意

重组层的输入必须来自位于特征层之上的任何一个网络层。

输出参数

全部折叠

YOLO v2目标检测网络,返回为LayerGraph对象。

请注意

的默认值归一化属性返回的图像输入层lgraph对象设置为归一化中指定的基网络的属性网络

算法

yolov2Layers函数创建一个YOLO v2网络,该网络表示YOLO v2对象检测器的网络架构。使用trainYOLOv2ObjectDetector函数来训练YOLO v2网络用于目标检测。函数返回一个对象,该对象生成YOLO v2对象检测网络的网络体系结构[1][2]

yolov2Layers使用预训练的神经网络作为基网络,在基网络中添加创建YOLO v2目标检测网络所需的检测子网。给定一个基本网络,yolov2Layers移除基网络中继特征层之后的所有层,并添加检测子网。检测子网由串行连接的卷积层、ReLU层和批规范化层组成。在检测子网中增加YOLO v2变换层和YOLO v2输出层。如果指定了名称-值对“ReorgLayerSource”, YOLO v2网络将重组层的输出与特征层的输出进行连接。

有关逐层创建自定义YOLO v2网络的信息,请参见创建YOLO v2目标检测网络

参考文献

[1]约瑟。R, S. K. Divvala, R. B. Girshick, F. Ali。“你只看一次:统一的实时对象检测。”在IEEE计算机视觉与模式识别(CVPR)会议论文集第779-788页。拉斯维加斯,内华达州:CVPR, 2016。

[2]约瑟。R和f·阿里。“YOLO 9000:更好、更快、更强。”在IEEE计算机视觉与模式识别(CVPR)会议论文集,第6517-6525页。檀香山,夏威夷:CVPR, 2017。

扩展功能

版本历史

在R2019a中引入