目次
物体検出
タスクはコンピュータ ビジョンにおける非常に重要な基本問題であり、画像のセグメンテーション、オブジェクトの追跡、画像の記述などの問題を解決するための基礎でもあります。物体検出とは、入力画像内に所定のカテゴリの物体が存在するかどうかを検出し、存在する場合には画像内での物体の位置情報(長方形のボックスの座標値 Xmin、Ymin、Xmax、Ymax で表されます)を出力します。 )。
初期の頃、従来のターゲット検出アルゴリズムは深層学習を使用しておらず、一般に領域選択、特徴抽出、特徴分類の 3 つの段階に分かれていました。
-
領域の選択: スライディング ウィンドウ (スライディング ウィンドウ) アルゴリズムを使用して、画像内にオブジェクトが表示される位置を選択します。このアルゴリズムには、多数の冗長フレームが含まれ、計算の複雑さが高くなります。
-
特徴抽出: 特徴抽出は、手動で設計された特徴抽出器 (SIFT や HOG など) を通じて実行されます。
-
特徴分類: 分類器 (SVM など) を使用して、前のステップで抽出された特徴を分類します。
従来のアルゴリズム HOG+SVM の役割は次のとおりです。
2014 年、R-CNN (CNN 機能を備えた地域) はディープ ラーニングを使用してターゲット検出を実現し、ターゲット検出のためのディープ ラーニングへの序章が開かれました。ターゲット検出は大きく1段階(One Stage)モデルと2段階(Two Stage)モデルに分けられます。物体検出の一段階モデルとは、候補領域(Region Proposal)を独立に抽出せず、画像を直接入力して画像内に存在する物体のカテゴリとそれに対応する位置情報を取得することを意味します。代表的な 1 ステージ モデルには、SSD (Single Shot multibox-Detector)、YOLO (You Only Look Once) シリーズ モデルなどが含まれます。2段階モデルでは独立した候補領域選択を行い、まず入力画像から物体が含まれる可能性のある候補領域を選別し、候補領域内に対象物が存在するかどうか、出力対象のカテゴリと位置情報があるかどうかを判断します。古典的な 2 段階モデルは、R-CNN、SPPNet、Fast R-CNN、Faster R-CNNです。
次の図は、ターゲット検出におけるいくつかの古典的なモデルの開発履歴をまとめたものです。
一般に、1段階モデルは計算効率の点で有利であり、2段階モデルは検出精度の点で有利です。1 段階モデルと 2 段階モデルの速度と精度の違いには、一般に次の理由があります。
1. ほとんどの 1 段階モデルは、プリセットのアンカー ボックス (アンカー ボックス) を使用して、画像内にオブジェクトが存在する可能性のある領域をキャプチャします。画像内のオブジェクトを含むボックスは、アンカー ボックスの合計よりもはるかに少ないため、正と負のサンプルは分類器のトレーニング時に使用されます。数のバランスが非常に不均衡であるため、分類器トレーニングのパフォーマンスが低下します。
2. 2 段階モデルは候補フレームの位置を修正し、より高い位置決め精度をもたらしますが、モデルの複雑さも増加します。
次に、2段階モデルの開発プロセスを簡単に紹介します。
R-CNN
まず、教師なし選択検索 (SS) 法を使用して、入力画像内の類似した色とテクスチャを持つ領域を結合し、2000 個の候補領域を生成します。
次に、これらの候補領域の対応する画像をインターセプトし、固定サイズに切り取って拡大縮小してから、CNN 特徴抽出ネットワークに送信して特徴を抽出します。
特徴は各カテゴリの SVM 分類器に送信され、そのカテゴリに属するかどうかが判断されます。
線形分類器を使用してフレームの位置とサイズを変更し、最後に検出結果に対して非最大抑制 (NMS) を実行します。
SPPネット
RCNN では、候補領域を固定サイズにトリミングおよびスケーリングすると、傍受された画像のアスペクト比が破壊され、一部の情報が失われます。上記の問題に対応して、SPPNet は空間ピラミッド プーリング (Spatial Pyramid Pooling) 層を提案します。これは CNN の最後に配置され、入力を指定されたサイズにスケーリングする必要がありません。下図の1行目はR-CNN、2行目はSPPNetであり、比較すると違いが分かります。
SPPNet の考え方は、まず任意のサイズの特徴マップを 16、4、1 ブロックに分割し、次に各ブロックのプーリングを最大化し、プールされた特徴を結合して固定次元の出力を取得することです。
高速 R-CNN
Fast R-CNN の考え方は SPPNet の考え方と一致していますが、違いは、Fast R-CNN が空間ピラミッド プーリングの代わりに関心領域プーリングを使用することです。R-CNN と比較すると、Fast R-CNN は、オブジェクトの分類と検出フレームの補正に、以前の SVM 分類器と線形回帰の代わりに完全に接続されたネットワークを使用します。Fast R-CNN には 2 つの出力があり、1 つはソフトマックス層によるカテゴリ予測、もう 1 つはオブジェクトの検出ボックスの出力です。
より高速な R-CNN
Fast R-CNN に基づいた Faster R-CNN は、最も時間のかかる候補領域抽出を領域提案ネットワーク (RPN) に置き換えます。高速 R-CNN では、まず入力画像が RPN によって候補領域として抽出され、次に各候補領域に対応する特徴マップが取り出され、オブジェクトの (RPN の後半とは独立して) Fast R-CNN に送信されます。分類と位置回帰。
Region-CNN (Regional Convolutional Neural Network)シリーズは、ターゲット検出の問題を分類問題に落とし込みます。つまり、最初にターゲットが存在する可能性のある領域 (境界ボックス) を見つけ、次にこれらのボックスを分類してターゲットを決定します。YoLo は、ターゲット検出問題を回帰問題 (回帰問題) に変換し、境界ボックスと関連カテゴリ情報を直接予測します。YoLo は、エンドツーエンドでトレーニングできる単一のネットワークです。領域提案や分類子を個別に検索する必要がないため、検出速度が特に高速です。YoLo は 45 FPS に達し、Fast YoLo は 155FPS に達します。YoLo は背景の認識効果が高く、ある程度の移行性もありますが、YoLo の最大の問題は小さなターゲットの不正確な検出です。
YOLO v1
1. 入力画像 (
)に分けられる
オブジェクトの中心が特定のグリッド上にある場合、このグリッドがこのオブジェクトの検出を担当します。
2. 各グリッドは、B 境界ボックスの位置、このボックスの信頼スコア、およびボックス内にオブジェクトが存在するかどうかの確率を予測します。
-
境界ボックスには 5 つのパラメータ (中心 x 座標、中心 y 座標、幅、高さ、信頼度) が含まれています。
-
信頼スコアは、グリッドにオブジェクトが含まれる可能性を示します: Pr(オブジェクトを含む) x IoU(pred, true); ここで、Pr = 確率。
-
グリッドにオブジェクトが含まれている場合、そのオブジェクトが各クラスに属する確率を予測します。
3. 入力画像を分割します。
グリッド、各グリッドは B 境界ボックスと信頼度を予測し、最終的な予測コードは次のようになります。
YOLO v2
YOLO v2はYOLO v1をベースに改良を加えており、大きく分けてネットワーク構造の改良、事前フレームの設計、トレーニングスキルの改良に分かれます。
1. ネットワーク構造を改善するために、DarkNet と呼ばれる新しいネットワーク構造が提案されています。
-
BN 層: バッチ正規化 (BN)層が畳み込み層の後に追加されます。
-
v1 バージョンの 7×7 畳み込みは、連続 3×3 畳み込みに置き換えられ、計算量が削減されるだけでなく、ネットワークの深さも増加します。さらに、DarkNet は完全接続層とドロップアウト層を削除しました。
-
パススルー層: DarkNet は、深い機能と浅い機能の融合も実行します。
2. 以前のボックスの設計では、YOLO v2 は最初にクラスタリング アルゴリズムを使用して、以前のボックスの規模を決定します。
3. トレーニング スキル。YOLO v2 は、トレーニング用の入力としてさまざまなスケールの写真を撮影します。トレーニング プロセス中、モデルは 10 バッチごとに入力画像のサイズを変更します。
YOLO v3
YOLO v3 は、YOLO v2 に基づいていくつかの変更を加えています。
1. YOLO v3 は、Softmax 関数の代わりにロジスティック関数を使用します。その理由は、Softmax 関数によって出力される複数のカテゴリの予測が互いに抑制し、1 つのカテゴリのみを予測できるのに対し、ロジスティック分類器は互いに独立しており、複数のカテゴリの予測を実現できるためです。
2. YOLO v3 は、53 の畳み込み層を含む、より深いネットワークを特徴抽出器 (DarkNet-53) として使用します。深いネットワークによって引き起こされる勾配消失の問題を回避するために、DarkNet-53 は ResNet の残留アイデアを利用し、基本ネットワーク内の多数の残留接続を使用します。