主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

SSDマルチボックス検出入門

シングルショットマルチボックス検出器(SSD)は単一ステージのオブジェクト検出ネットワークを使用して,マルチスケールの特徴から予測した検出結果をマージします。SSDは更快R-CNN検出器のような2段階の検出器よりも高速です。また,YOLO v2意思検出器のような単一スケールの特徴検出器よりも正確にオブジェクトの位置推定ができます。

SSDは入力イメージに対して深層学習CNNを実行し,複数の特徴マップからネットワーク予測を生成します。このオブジェクト検出器は予測結果を収集して復号化し,境界ボックスを生成します。

イメージ内のオブジェクトの予測

SSDは,アンカーボックスを使用してイメージ内のオブジェクトのクラスを検出します。詳細は,アンカーボックスによるオブジェクトの検出を参照してください。SSDは,各アンカーボックスの次の2つの属性を予測します。

  • アンカーボックスのオフセット——アンカーボックスの位置を調整します。

  • クラス確率——各アンカーボックスに割り当てられるクラスラベルを予測します。

次の図は,特徴マップ内の各位置の事前定義されたアンカーボックス(破線)と,オフセットの適用後の調整された位置を示します。クラスと一致したボックスは青色とオレンジ色で表示されます。

転移学習

転移学習を使用すると,SSD検出ネットワークで事前学習済みのCNNを特徴抽出器として使用できます。関数ssdLayersを使用して,たとえばMobileNet v2などの事前学習済みのCNNからSSD検出ネットワークを作成します。事前学習済みのCNNの一覧については,事前学習済みの深層ニューラルネットワーク(深度学习工具箱)を参照してください。

事前学習済みイメージ分類CNNに基づいてカスタムモデルを設計することもできます。詳細は,SSD検出ネットワークの設計を参照してください。

SSD検出ネットワークの設計

プログラム的にカスタムSSDモデルを設計することも,ディープネットワークデザイナー(深度学习工具箱)アプリを使用して手動でネットワークを作成することもできます。このアプリには,计算机视觉工具箱™のSSD機能が組み込まれています。

SSDマルチボックス検出ネットワークを設計するには,次の手順に従います。

  1. 事前学習済みのCNNを初期化するか,ゼロから学習させることができる特徴抽出ネットワークから,モデルを開始します。

  2. 特徴抽出ネットワークから予測層を選択します。特徴抽出ネットワークの層はどれでも,予測層として使用できます。ただし,オブジェクト検出にマルチスケールの特徴を使用する利点を活かすためには,サイズの異なる特徴マップを選択してください。

  3. anchorBoxLayerを各層に付加することで,予測層のアンカーボックスを指定します。

  4. anchorBoxLayerオブジェクトの出力を分類分岐と回帰分岐に接続します。分類分岐には、タイル配置された各アンカーのクラスを予測する畳み込み層が少なくとも 1 つあります。回帰分岐には、アンカー ボックスのオフセットを予測する畳み込み層が少なくとも 1 つあります。分類分岐と回帰分岐には層を追加できますが、最終畳み込み層 (マージ層の前) には次の表に示す数のフィルターがなければなりません。

    分岐 フィルターの数
    分類 アンカーボックスの数+ 1(背景クラス用)
    回帰 アンカーボックスの数の4倍

  5. すべての予測層について,ssdMergeLayerオブジェクトを使用して分類分岐の出力を統合します。ssdMergeLayerオブジェクトをsoftmaxLayer(深度学习工具箱)オブジェクトに接続し,その次にfocalLossLayerオブジェクトを接続します。再度ssdMergeLayerオブジェクトを使用して,回帰分岐のすべての出力を収集します。ssdMergeLayerの出力をrcnnBoxRegressionLayerオブジェクトに接続します。

このタイプのネットワークの作成の詳細については,SSDオブジェクト検出ネットワークの作成を参照してください。

SSDモデルを使用したオブジェクト検出器の学習とオブジェクトの検出

SSD深層学習手法を使用したオブジェクト検出器の学習方法の詳細については,SSD深層学習を使用したオブジェクト検出の例を参照してください。

コード生成

SSDオブジェクト検出器(ssdObjectDetectorオブジェクトを使用して作成)を使用したCUDA®コードの生成方法の詳細については,シングルショットマルチボックス検出器を使用したオブジェクト検出のコードの生成を参照してください。

深層学習用学習データのラベル付け

イメージラベラービデオラベラー,またはグラウンドトゥルースラベラー(自动驾驶工具箱)(自动驾驶工具箱™で利用可能)アプリを使用して,対話形式でピクセルにラベル付けし,ラベルデータを学習用にエクスポートできます。アプリは、オブジェクト検出用の四角形の関心領域 (ROI)、イメージ分類用のシーン ラベル、セマンティック セグメンテーション用のピクセルにラベルを付けるためにも使用できます。

参照

[1] Liu, Wei, Dragomir angelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg。“SSD: Single Shot MultiBox Detector”。在计算机视觉- ECCV 2016, Bastian Leibe, Jiri Matas, Nicu Sebe和Max Welling编辑,9905:21-37。Cham:施普林格International Publishing, 2016。https://doi.org/10.1007/978 - 3 - 319 - 46448 - 0 - _2。

参考

アプリ

オブジェクト

関数

関連する例

詳細