训练一个更快的R-CNN深度学习对象检测器
使用深度学习训练一个Faster R-CNN(卷积神经网络区域)目标检测器。您可以训练一个Faster R-CNN检测器来检测多个对象类。trainedDetector
= trainFasterRCNNObjectDetector (trainingData
,网络
,选项
)
此功能要求您拥有深度学习工具箱™。建议您还使用并行计算工具箱™与CUDA一起使用®使英伟达®GPU。有关支持的计算功能的信息,请参见金宝appGPU支金宝app持按版本划分(并行计算工具箱).
[
还返回关于每次迭代的训练进度的信息,例如训练损失和准确性。trainedDetector
,信息
= trainFasterRCNNObjectDetector(___)
从检测器检查点恢复训练。trainedDetector
= trainFasterRCNNObjectDetector (trainingData
,检查点
,选项
)
继续训练具有额外微调选项的Faster R-CNN对象检测器。将此语法与其他训练数据一起使用,或执行更多训练迭代以提高检测器的准确性。trainedDetector
= trainFasterRCNNObjectDetector (trainingData
,探测器
,选项
)
使用一个或多个指定的其他选项trainedDetector
= trainFasterRCNNObjectDetector (___,名称,值
)名称,值
将参数和前面的任何输入配对。
为了加速训练的数据预处理,trainFastRCNNObjectDetector
根据并行首选项设置自动创建和使用并行池。有关设置这些首选项的详细信息,请参见平行首选项设置.使用并行计算首选项需要“并行计算工具箱”。
VGG-16、VGG-19、ResNet-101和Inception-ResNet-v2是大型型号。使用大图像进行训练可能会产生“内存不足”的错误。要减轻这些错误,请尝试以下一个或多个选项:
使用'方法减小图像的大小SmallestImageDimension
”的论点。
减少'的值NumRegionsToSample
'名称-值参数。
这个函数支持迁移学习。金宝app当你输入网络
按名字,如“resnet50”
,函数根据预训练结果自动将网络转换为有效的Faster R-CNN网络模型resnet50
(深度学习工具箱)模型。方法手动指定自定义Faster R-CNN网络LayerGraph
(深度学习工具箱)从预训练的DAG网络中提取。有关更多细节,请参见创建更快的R-CNN对象检测网络.
该表描述了如何将每个已命名的网络转换为Faster R-CNN网络。特征提取层名称指定由ROI池化层处理的层。ROI输出大小指定了由ROI池化层输出的特征映射的大小。
网络名称 | 特征提取层名称 | ROI池化层OutputSize | 描述 |
---|---|---|---|
alexnet (深度学习工具箱) |
“relu5” |
(6 - 6) | 最后一个最大池化层被ROI最大池化层取代 |
vgg16 (深度学习工具箱) |
“relu5_3” |
7 [7] | |
vgg19 (深度学习工具箱) |
“relu5_4” |
||
squeezenet (深度学习工具箱) |
“fire5-concat” |
(14日14) | |
resnet18 (深度学习工具箱) |
“res4b_relu” |
在特征提取层之后插入ROI池化层。 | |
resnet50 (深度学习工具箱) |
“activation_40_relu” |
||
resnet101 (深度学习工具箱) |
“res4b22_relu” |
||
googlenet (深度学习工具箱) |
“inception_4d-output” |
||
mobilenetv2 (深度学习工具箱) |
“block_13_expand_relu” |
||
inceptionv3 (深度学习工具箱) |
“mixed7” |
17 [17] | |
inceptionresnetv2 (深度学习工具箱) |
“block17_20_ac” |
有关如何修改一个网络转换为Faster R-CNN网络的信息,请参见设计R-CNN、Fast R-CNN和Faster R-CNN模型.
在训练过程中,从训练图像处理多个图像区域,每个图像的图像区域数量由控制NumRegionsToSample
财产。的PositiveOverlapRange
而且NegativeOverlapRange
属性控制用于训练的图像区域。正训练样本是那些与地面真理盒重叠0.6到1.0的样本,通过边界盒交叉过并度量(IoU)来度量。负训练样本是那些重叠0到0.3的样本。通过在验证集上测试训练过的检测器来为这些属性选择值。
重叠值 | 描述 |
---|---|
PositiveOverlapRange 设置为(0.6 - 1) |
正训练样本被设置为与地面真理盒重叠0.6到1.0的样本,由边界盒IoU度量来度量。 |
NegativeOverlapRange 设置为0.3 [0] |
负训练样本设置为与地面真值框重叠的样本0 ~ 0.3。 |
如果你设置PositiveOverlapRange
来(0.6 - 1)
,则函数将正训练样本设置为与地面真值框重叠的样本0.6 ~ 1.0,用边界框IoU度量度量。如果你设置NegativeOverlapRange
来0.3 [0]
,则函数将负训练样本与与地面真值框重叠的样本设置为0 ~ 0.3。
使用trainingOptions
(深度学习工具箱)函数启用或禁用详细打印。
[1] Ren S., K. He, R. Girschick, J. Sun。《更快的R-CNN:使用区域提议网络实现实时目标检测》神经信息处理系统的研究进展.2015年第28卷。
[2]格尔希克,R。“快速R-CNN。”IEEE计算机视觉国际会议论文集, 1440 - 1448。圣地亚哥,智利:IEEE, 2015。
[3]吉尔希克,R.多纳休,T.达雷尔和J.马利克。用于精确目标检测和语义分割的丰富特征层次。2014年IEEE计算机视觉与模式识别会议论文集, 580 - 587。哥伦布,俄亥俄州:IEEE, 2014。
Zitnick, c.l., P. Dollar。“边缘框:从边缘定位对象建议。”计算机视觉- eccv 2014, 391 - 405。瑞士苏黎世:ECCV, 2014。
trainRCNNObjectDetector
|trainFastRCNNObjectDetector
|trainingOptions
(深度学习工具箱)|objectDetectorTrainingData
|estimateAnchorBoxes
|fasterRCNNLayers
maxPooling2dLayer
(深度学习工具箱)|层
(深度学习工具箱)|layerGraph
(深度学习工具箱)|averagePooling2dLayer
(深度学习工具箱)|SeriesNetwork
(深度学习工具箱)|fasterRCNNObjectDetector
|boxLabelDatastore