このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
trainFasterRCNNObjectDetector
Faster R-CNN 深層学習オブジェクト検出器の学習
構文
説明
検出器の学習
は、深層学習を使用して、Faster R-CNN (Regions with Convolutional Neural Networks) オブジェクト検出器に学習させます。Faster R-CNN 検出器に学習させて複数のオブジェクト クラスを検出することができます。trainedDetector
= trainFasterRCNNObjectDetector(trainingData
,network
,options
)
この関数には、Deep Learning Toolbox™ が必要です。CUDA® 対応 NVIDIA® GPU で使用する Parallel Computing Toolbox™ も推奨されます。サポートされる Compute Capability の詳細については、GPU 計算の要件 (Parallel Computing Toolbox)を参照してください。
[
は、各反復の、学習損失や学習精度などの学習の進行状況に関する情報も返します。trainedDetector
,info
] = trainFasterRCNNObjectDetector(___)
検出器の学習の再開
は検出器のチェックポイントから学習を再開します。trainedDetector
= trainFasterRCNNObjectDetector(trainingData
,checkpoint
,options
)
検出器の微調整
は、追加の微調整オプションを使用して Faster R-CNN オブジェクト検出器の学習を継続します。検出器の精度を向上させるには、追加の学習データと共にこの構文を使用するか、さらに多くの学習の反復回数を実行します。trainedDetector
= trainFasterRCNNObjectDetector(trainingData
,detector
,options
)
追加プロパティ
では、trainedDetector
= trainFasterRCNNObjectDetector(___,Name,Value
)Name,Value
ペアの引数を 1 つ以上指定した追加オプションと、前の入力のいずれかを使用します。
例
入力引数
出力引数
ヒント
学習のデータの前処理を高速化するために、
trainFastRCNNObjectDetector
は並列基本設定の設定値に基づいて並列プールを自動的に作成し、使用します。これらの基本設定の詳細については、並列基本設定を参照してください。並列計算基本設定を使用するには、Parallel Computing Toolbox が必要です。VGG-16、VGG-19、ResNet-101、および Inception-ResNet-v2 は大きなモデルです。大きなイメージで学習すると、"メモリ不足" エラーが発生する可能性があります。これらの誤差を軽減するには、これらのオプションの 1 つ以上を試してください。
引数 '
SmallestImageDimension
' を使用して、イメージのサイズを小さくする。名前と値の引数 '
NumRegionsToSample
' の値を小さくする。
この関数は、転移学習をサポートします。
network
を'resnet50'
などの名前で入力すると、事前学習済みのresnet50
(Deep Learning Toolbox) モデルに基づき、関数はネットワークを有効な Faster R-CNN ネットワーク モデルに自動的に変換します。または、事前学習済みの DAG ネットワークから抽出したLayerGraph
(Deep Learning Toolbox) を使用して手動でカスタム Faster R-CNN ネットワークを指定します。詳細については、Faster R-CNN オブジェクト検出ネットワークの作成を参照してください。それぞれの名前付きネットワークが Faster R-CNN ネットワークにどのように変換されるかを次の表に示します。特徴抽出層の名前は、ROI プーリング層によって処理される層を指定します。ROI 出力サイズは、ROI プーリング層によって出力される特徴マップのサイズを指定します。
ネットワークの名前 特徴抽出層の名前 ROI プーリング層の出力サイズ 説明 alexnet
(Deep Learning Toolbox)'relu5'
[6 6] 最後の最大プーリング層は ROI 最大プーリング層によって置き換えられる vgg16
(Deep Learning Toolbox)'relu5_3'
[7 7] vgg19
(Deep Learning Toolbox)'relu5_4'
squeezenet
(Deep Learning Toolbox)'fire5-concat'
[14 14] resnet18
(Deep Learning Toolbox)'res4b_relu'
ROI プーリング層が特徴抽出層の後に挿入される。 resnet50
(Deep Learning Toolbox)'activation_40_relu'
resnet101
(Deep Learning Toolbox)'res4b22_relu'
googlenet
(Deep Learning Toolbox)'inception_4d-output'
mobilenetv2
(Deep Learning Toolbox)'block_13_expand_relu'
inceptionv3
(Deep Learning Toolbox)'mixed7'
[17 17] inceptionresnetv2
(Deep Learning Toolbox)'block17_20_ac'
ネットワークを Faster R-CNN ネットワークに変換する方法の変更の詳細については、R-CNN、Fast R-CNN、Faster R-CNN モデルの設計を参照してください。
学習中、学習イメージから複数のイメージ領域が処理されます。イメージごとのイメージ領域の数は
NumRegionsToSample
プロパティで制御されます。PositiveOverlapRange
プロパティおよびNegativeOverlapRange
プロパティによって、学習に使用されるイメージ領域が制御されます。学習のポジティブ サンプルは、境界ボックスの Intersection over Union (IoU) メトリクスで測定した場合に、グラウンド トゥルース ボックスとのオーバーラップが 0.6 ~ 1.0 のサンプルです。学習のネガティブ サンプルは、オーバーラップが 0 ~ 0.3 のサンプルです。これらのプロパティの値は、学習済みの検出器を検証セットでテストすることによって選択します。オーバーラップ値 説明 [0.6 1]
に設定されたPositiveOverlapRange
学習のポジティブ サンプルは、境界ボックスの IoU メトリクスで測定した場合に、グラウンド トゥルース ボックスとのオーバーラップが 0.6 ~ 1.0 に等しいサンプルに設定されます。 [0 0.3]
に設定されたNegativeOverlapRange
学習のネガティブ サンプルは、グラウンド トゥルース ボックスとのオーバーラップが 0 ~ 0.3 に等しいサンプルに設定されます。 PositiveOverlapRange
を[0.6 1]
に設定すると、関数はグラウンド トゥルース ボックスとのオーバーラップが 0.6 ~ 1.0 (境界ボックスの IoU メトリクスで測定) のサンプルに等しいポジティブ学習サンプルを設定します。NegativeOverlapRange
を[0 0.3]
に設定すると、関数はグラウンド トゥルース ボックスとのオーバーラップが 0 ~ 0.3 のサンプルに等しいネガティブ学習サンプルを設定します。詳細印刷を有効または無効にするには、関数
trainingOptions
(Deep Learning Toolbox) を使用します。
参照
[1] Ren, S., K. He, R. Girschick, and J. Sun. "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks." Advances in Neural Information Processing Systems. Vol. 28, 2015.
[2] Girshick, R. "Fast R-CNN." Proceedings of the IEEE International Conference on Computer Vision, 1440-1448. Santiago, Chile: IEEE, 2015.
[3] Girshick, R., J. Donahue, T. Darrell, and J. Malik. "Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation." Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition, 580-587. Columbus, OH: IEEE, 2014.
[4] Zitnick, C. L., and P. Dollar. "Edge Boxes: Locating Object Proposals from Edges." Computer Vision-ECCV 2014, 391-405. Zurich, Switzerland: ECCV, 2014.
拡張機能
バージョン履歴
R2017a で導入参考
アプリ
関数
trainRCNNObjectDetector
|trainFastRCNNObjectDetector
|trainingOptions
(Deep Learning Toolbox) |objectDetectorTrainingData
|estimateAnchorBoxes
|fasterRCNNLayers
オブジェクト
maxPooling2dLayer
(Deep Learning Toolbox) |Layer
(Deep Learning Toolbox) |layerGraph
(Deep Learning Toolbox) |averagePooling2dLayer
(Deep Learning Toolbox) |SeriesNetwork
(Deep Learning Toolbox) |fasterRCNNObjectDetector
|boxLabelDatastore