主要内容

yolov2Layers

创建YOLO v2对象检测网络

描述

例子

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

例子

lgraph= yolov2Layers (___“ReorgLayerSource”,reorgLayer使用名称-值对指定重组层的源。您可以指定这个名称-值对来向YOLO v2网络体系结构添加重组层。在前面语法中的输入参数之外指定此参数。

例子

全部折叠

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

imageSize = [224 224 3];

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

numClasses = 1;

定义锚框。

锚箱= [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;

定义锚框。

锚箱= [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重组层重新组织输出特征的维度activation_47_relu层。深度级联层将重组层的输出与较高层的输出进行级联。

analyzeNetwork (lgraph)

输入参数

全部折叠

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

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

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

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

锚框,指定为-by-2矩阵定义锚框的大小和数量。中的每一行-by-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.迪夫瓦拉、R. B.格什克和F.阿里。“你只看一次:统一、实时的物体检测。”在IEEE计算机视觉与模式识别会议论文集(CVPR),第779-788页。拉斯维加斯,内华达州:CVPR, 2016。

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

扩展功能

在R2019a中引入