オブジェクトの検出

Image Analyst ライセンスで利用できます。

次の方法と概念は、ArcGIS Pro でのオブジェクトの検出を理解して実行する上で重要となります。

シングル ショット検出器 (SSD)

シングル ショット検出器 (SSD) は、画像から単一のパスを取得して、複数のオブジェクトを検出します。 SSD は、高速で極めて精度の高いオブジェクト検出モデル タイプの 1 つとして評価されています。

SSD には、バックボーン モデルおよび SSD ヘッドという 2 つのコンポーネントがあります。 バックボーン モデルは、フィーチャ エクストラクタとして事前にトレーニングされた画像分類ネットワークです。 これは通常、ImageNet でトレーニングされた ResNet などのネットワークであり、このネットワークから、完全に接続された状態の最終的な分類レイヤーが削除されています。 SSD ヘッドは、このバックボーンに追加された 1 つ以上の畳み込みレイヤーであり、最終レイヤーのアクティベーションの空間位置にあるオブジェクトのバウンディング ボックスおよびクラスとして出力が解釈されます。

グリッド セル

SSD では、スライディング ウィンドウを使用する代わりに、グリッドを使用して画像を分割します。各グリッド セルは、画像内の該当する領域からオブジェクトを検出する役割を果たします。 オブジェクトの検出は、該当する領域内にあるオブジェクトのクラスと位置を予測することを意味します。 オブジェクトが存在しない場合は、そのクラスがバックグラウンド クラスと見なされ、位置が無視されます。 たとえば、次の例では、4 x 4 グリッドを使用できます。 グリッド セルごとに、そのセルに含まれているオブジェクトの位置と形状を出力できます。

4 x 4 グリッド

4 x 4 グリッドの例を示します。

1 つのグリッド セルに複数のオブジェクトが含まれている場合や形状の異なる複数のオブジェクトを検出する必要がある場合は、アンカー ボックスが使用されます。

アンカー ボックス

SSD 内のグリッド セルごとに、複数のアンカー ボックス (または事前ボックス) を割り当てることができます。 これらのアンカー ボックスは事前に定義されており、それぞれがグリッド セル内のサイズと形状の役割を果たします。 たとえば、次の画像にあるスイミング プールは縦に長いアンカー ボックスになり、建物は横に広いアンカー ボックスになります。

2 つのアンカー ボックスの例

2 つのアンカー ボックスの例を示します。
2 つのアンカー ボックスの凡例
2 つのアンカー ボックスの凡例を示します。

SSD では、トレーニング中に照合フェーズを使用して、該当するアンカー ボックスを画像内にある各グラウンド トゥルース オブジェクトのバウンディング ボックスと照合します。 通常、オブジェクトと重なり合っている度合いが最も高いアンカー ボックスは、そのオブジェクトのクラスと位置を予測する役割を果たします。 このプロパティは、ネットワークのトレーニングに使用され、ネットワークのトレーニングが終了した後では、検出されたオブジェクトとその位置を予測するのに使用されます。 実際に、各アンカー ボックスは、縦横比とズーム レベルで指定されます。

縦横比

すべてのオブジェクトの形状が正方形であるとは限りません。 変化の度合いに応じて、細長い形状になるものもあれば、幅広い形状になるものもあります。 SSD のアーキテクチャでは、アンカー ボックスの事前に定義された縦横比でこれに対応できます。 [比率] パラメーターを使用すると、それぞれのズーム レベルまたは縮尺レベルで各グリッド セルに関連付けられたアンカー ボックスに異なる縦横比を指定することができます。

建物のバウンディング ボックス

建物 1 のバウンディング ボックスは縦に長く、建物 2 のバウンディング ボックスは横に広くなっています。

ズーム レベル

アンカー ボックスをグリッド セルと同じサイズにする必要はありません。 グリッド セル内で小規模なオブジェクトを検出したい場合や大規模なオブジェクトを検出したい場合があります。 [ズーム] パラメーターを使用すると、各グリッド セルに対してアンカー ボックスをどれだけ拡大/縮小する必要があるかを指定できます。 アンカー ボックスの例に示されているように、建物のサイズは通常、スイミング プールよりも大きくなります。

RetinaNet

RetinaNet は、高密度のオブジェクトや小規模なオブジェクトにも十分に対応できる一段階のオブジェクト検出モデルです。 このため、航空画像や衛星画像でよく使用されるオブジェクト検出モデルになっています。

Architecture

RetinaNet モデル アーキテクチャには、次の 4 つの主要なコンポーネントがあります 1

  • ボトムアップ経路 - ResNet のバックボーン ネットワークであり、入力画像サイズやバックボーンに関係なく、さまざまな縮尺でフィーチャ マップを計算します。
  • トップダウン経路および横方向の接続 - トップダウン経路では、ピラミッドの上位レベルから空間的に粗いフィーチャ マップをアップサンプリングし、横方向の接続では、同じ空間サイズのトップダウン レイヤーとボトムアップ レイヤーをマージします。
  • 分類サブネットワーク - アンカー ボックスとオブジェクト クラスごとに、オブジェクトがそれぞれの空間位置に存在する確率を予測します。
  • 回帰サブネットワーク - グラウンド トゥルース オブジェクトごとに、アンカー ボックスからバウンディング ボックスのオフセットを回帰します。

焦点損失

焦点損失 (FL) は、交差エントロピー誤差 (CE) を拡張したものであり、一段階のオブジェクト検出モデルでのクラス不均衡の問題に対処するために導入されました。 一段階のモデルでは、アンカー ボックス (オブジェクトが存在する可能性のある位置 1) のサンプリング密度が高いために、前景と背景の間に極端なクラス不均衡の問題が生じます。 RetinaNet の各ピラミッド レイヤーには、何千ものアンカー ボックスが含まれていることがあります。 そのうちのごく一部がグラウンド トゥルース オブジェクトに割り当てられ、大部分はバックグラウンド クラスになります。 これらの簡単なサンプル (確率の高い検出) では、損失値は小さくなるものの、数が多すぎてモデルが対処できない可能性があります。 FL では、簡単なサンプルから損失の原因を排除し、誤って分類されたサンプルを修正することの重要性を高めます。

縮尺

アンカー ボックスの縮尺。 デフォルト値は [2, 2.3, 2.6] に設定されています。この値は、データセット内のほとんどのオブジェクトに十分に対応できます。 データセット内のオブジェクトのサイズに合わせて、縮尺を変更することができます。

縦横比

アンカー ボックスの縦横比。 デフォルト値は [0.5, 1, 2] に設定されています。この場合、アンカー ボックスの縦横比は 1:2、1:1、2:1 になります。 対象となるオブジェクトの形状に合わせて、比率を変更することができます。

YOLOv3

YOLO (You Only Look Once) v3 では、Darknet-53 がバックボーンとして使用されています。 これとは異なり、SSD や RetinaNet などの他のモデルでは、ResNet ファミリーのバックボーンが主に使用されています。 Darknet-53 は、これまで YOLOv2 で使用されていた Darknet-19 よりもさらに機能が豊富なバージョンです。 名前が示すとおり、このバックボーン アーキテクチャには 53 個の畳み込みレイヤーがあります。 ResNet スタイルの残差レイヤーを適応させることで、速度の利点を維持しながら精度も向上しました。 このフィーチャ エクストラクタは、ResNet101 よりも優れたパフォーマンスを発揮し、ResNet152 によく似ていますが、速度はそれぞれ約 1.5 倍と約 2 倍速くなっています 2

YOLOv3 は、これまでのバージョンから段階的に改善されています 2。 YOLOv3 では、アップサンプリングが使用され、フィーチャ レイヤーと前のフィーチャ レイヤーが連結されるため、詳細なフィーチャが保持されます。 もう 1 つの改善点は、3 つの縮尺を検出に使用できる点です。 これにより、画像内で縮尺の異なるオブジェクトを検出するのに適したモデルとなっています。 これ以外にも、アンカー ボックスの選択や損失関数などの改善点もあります。 YOLOv3 アーキテクチャの詳しい分析については、「YOLO v3 の新機能外部リンクをご参照ください。

Faster R-CNN

Faster R-CNN (領域ベースの畳み込みニューラル ネットワーク) が登場する前のモデルは、領域候補の検出にさまざまなアルゴリズムを使用していましたが、これらのアルゴリズムは CPU で計算されていたため、ボトルネックを生み出していました。 Faster R-CNN では、Fast R-CNN の選択的検索アルゴリズムに代わって、Region Proposal Network (RPN) と呼ばれる畳み込みネットワークが導入されたことで、オブジェクト検出アーキテクチャが改善されました。 それ以外のモデル アーキテクチャは Fast R-CNN と同じです。フィーチャ マップを作成するために画像が CNN に送られ、そのフィーチャ マップから、RPN で推定された領域のフィーチャが選択され、プーリング レイヤーでサイズ変更されて、ソフトマックス分類器およびバウンディング ボックス リグレッサという 2 つのヘッドを持つ FC レイヤーに送られます。 この設計により、検出速度が上がり、リアルタイムに近くなりました 3

Faster R-CNN

Faster R-CNN のアーキテクチャを示します 3

Regional Proposal Network

他の領域候補検出アルゴリズムと同様に、Region Proposal Network (RPN) は、入力画像から、オブジェクトを含む対象領域を返します。 また、RPN は、背景ではなく、領域にオブジェクトが含まれる可能性を計測するオブジェクト スコアも返します 3。 Faster R-CNN では、RPN と検出ネットワークが同じバックボーンを共有し、バックボーンで最後に共有されたレイヤーから、RPN が領域候補の推定に使用する画像のフィーチャ マップが提供されます。

スライディング ウィンドウ法を使用すると、小規模なネットワークがフィーチャ マップにオーバーレイされます。 各空間ウィンドウには、縮尺と縦横比が事前に設定されたアンカー ボックスが複数存在します。 このため、モデルは同じ画像内でさまざまな縮尺と縦横比のオブジェクトを検出できます。 通常、アンカー ボックスは異なる 3 つの縮尺と異なる 3 つの縦横比で作成されるため、それぞれの空間位置に 9 つのアンカー ボックスが作成されます。これは、その空間位置での領域候補の最大数を示します。 次に、小規模なネットワークから、2 つのヘッドがあり、完全に接続された状態のレイヤーにデータが送られます。2 つのヘッドのうちの 1 つはオブジェクト スコアに使用され、もう 1 つは領域候補のバウンディング ボックス座標に使用されます。 これらのレイヤーは、Fast R-CNN オブジェクト検出器の最後のいくつかのレイヤーに似ていますが、実際に同じではなく、重みも共有していません。 RPN は、オブジェクトを含む領域を検出する役割だけを果たすため、クラスに依存しない方法で領域を分類します。 RPN の詳細については、「オブジェクトの検出に Faster R-CNN を使用外部リンクをご参照ください。

Mask R-CNN

Mask R-CNN は、インスタンス セグメンテーション用のモデルであり、 Faster R-CNN モデル上で開発されました。 Faster R-CNN モデルは、領域ベースの畳み込みニューラル ネットワークであり 4、各オブジェクトのバウンディング ボックスと信頼度スコアを示すクラス ラベルを返します。

Faster R-CNN はオブジェクト クラスとバウンディング ボックスを予測しますが、Mask R-CNN は各対象領域 (RoI) でセグメンテーション マスクを予測するためのブランチが追加された Faster R-CNN の拡張モデルです。 Faster R-CNN の第 2 段階では、RoI プールに代わって、RoI プールの場合に不整合となる空間情報を保持できる RoIAlign が導入されています。 RoIAlign では、バイナリ補間を使用して、固定サイズ (たとえば 7 x 7) のフィーチャ マップが作成されます。 この後、RoIAlign レイヤーから出力が生成され、2 つの畳み込みレイヤーで構成されるマスク ヘッドにその出力が送られます。 RoI ごとにマスクが生成されるため、ピクセル単位で画像がセグメント化されます。 境界が不規則なオブジェクトで、正確でない境界が過度にスムージングされるのを回避するために、モデルの機能拡張が図られ、PointRend と呼ばれるポイント ベースのレンダリング ニューラル ネットワーク モジュールが組み込まれました。

インスタンス セグメンテーション

インスタンス セグメンテーションでは、画像内のオブジェクトとそのバウンディング ボックス予測を検出することを目的としたオブジェクト検出タスクと、各ピクセルを事前定義済みのカテゴリに分類するセマンティック セグメンテーション タスクを統合します。 このため、オブジェクト インスタンスごとにマスクを正確にセグメント化しながら、画像内のオブジェクトを検出することができます。

インスタンス セグメンテーションを使用すると、次のような多くの問題を解決できます。

  • 損傷の検出。この場合は、損傷の程度を把握することが重要となります。
  • 自動運転車。この場合は、シーン内でそれぞれの車の位置を把握することが重要となります。
  • 建物ごとの建物フットプリントの生成 - GIS に共通した問題。

参考文献

[1] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal Loss for Dense Object Detection, http://arxiv.org/abs/1708.02002 arXiv:1708.02002, (2017).

[2] Joseph Redmon, Ali Farhadi. YOLOv3: An Incremental Improvement, https://arxiv.org/abs/1804.02767 arXiv:1804.02767, (2018).

[3] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, http://arxiv.org/abs/1506.01497 arXiv:1506.01497, (2015).

[4] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, http://arxiv.org/abs/1506.01497 arXiv:1506.01497, (2015).

関連トピック