ターゲット検出 [物体検出]

基本的な考え方

オブジェクト検出は、コンピューター ビジョンにおける重要な問題です. その目的は、画像またはビデオ シーケンスから特定のオブジェクトを識別し、それを背景から分離することです. オブジェクト検出タスクには次のものが含まれます。

  1. 人、車、動物など、画像またはビデオ シーケンス内のオブジェクトを検出します。
  2. 人を人間、乗り物、動物などに分類するなど、オブジェクトを分類します。
  3. 画像内のオブジェクトの位置とサイズをマークするなど、オブジェクトの位置とサイズを決定します。

深層学習に基づく物体検出アルゴリズムは、主に次の 2 つのカテゴリに分類されます。

  1. 2 段階のターゲット検出アルゴリズムは
    、最初に領域生成 (領域提案、RP) (検出対象のオブジェクトを含む事前選択ボックス) を実行し、次に畳み込みニューラル ネットワークを介してサンプル分類を実行します。
    タスク: 特徴抽出 -> RP の生成 -> 分類/ポジショニング回帰。
    一般的な 2 段階のターゲット検出アルゴリズムには、R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN などがあります。
  2. 1 段階のターゲット検出アルゴリズムは
    RP を使用せず、ネットワークから特徴を直接抽出してオブジェクトの分類と位置を予測します。
    タスク: 特徴抽出 -> 分類/位置回帰。
    一般的な 1 段階のターゲット検出アルゴリズムには、SSD、YOLOv1、YOLOv2、YOLOv3、RetinaNet などがあります。

2 段階のオブジェクト検出アルゴリズム

R-CNN

翻訳: 正確なオブジェクト検出とセマンティック セグメンテーションのための豊富な機能階層: https://ieeexplore.ieee.org/document/6909475
ここに画像の説明を挿入

RCNN には 2 つの主要なイノベーションがあります。

  1. CNN (ConvNet) を使用して、地域提案の特徴ベクトルを計算します。経験主導の特徴からデータ主導の特徴 (CNN) まで、サンプルを表す特徴の能力を向上させます。
  2. 大きなサンプルの下での教師付き事前トレーニングと小さなサンプルの微調整の方法は、困難なトレーニングや小さなサンプルの過適合の問題を解決するために使用されます。

元のテキストでは、RCNN に必要な手順は次の 4 つだけです。

  1. 事前トレーニング済みモデル。事前トレーニング済みのニューラル ネットワーク (AlexNet、VGG など) を選択します。
  2. 全結合層を再トレーニングします。検出対象のオブジェクトを含む最後の全結合層を再トレーニングします。
  3. 提案を抽出し、CNN 機能を計算します。選択的検索アルゴリズムを使用してすべての提案 (約 2000
    画像) を抽出し、CNN 入力要件を満たすようにそれらを固定サイズに調整 (サイズ変更/ワープ) し (全結合層の制限のため)、特徴マップを保存します。ローカル ディスクに。
  4. SVM をトレーニングします。SVM は、特徴マップを使用してトレーニングされ、オブジェクトと背景を分類します。
    ここに画像の説明を挿入

高速 R-CNN

元のリンク: Fast R-CNN: https://arxiv.org/pdf/1506.01497.pdf
ここに画像の説明を挿入

Fast R-CNN には、次の革新があります。

  1. R-CNN での冗長な特徴抽出を回避して、画像全体に対して特徴抽出を 1 回だけ実行します。
  2. 最後のレイヤーの最大プーリング レイヤーを RoI プーリング レイヤーに置き換え、同時に提案フレーム データを導入し、対応する提案フレームの特徴を抽出します。
  3. Fast R-CNN ネットワークの最後では、異なる並列全結合層が使用され、分類結果とウィンドウ回帰結果を同時に出力でき、エンドツーエンドのマルチタスク トレーニングを実現します [提案ボックス抽出を除く] ]、追加の機能は必要ありません
    ストレージ スペース [R-CNN の機能は、SVM とバウンディング ボックス回帰によるトレーニングのためにローカルに保持する必要があります
    ]
  4. SVD は、Fast R-CNN ネットワークの最後にある並列全結合層を分解するために使用され、計算の複雑さを軽減し、検出を高速化します。

ここに画像の説明を挿入

より高速な R-CNN

原文链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks:https://arxiv.org/pdf/1506.01497.pdf
ここに画像の説明を挿入

Faster R-CNN の検出手順は次のとおりです。

  • 入力: サイズ変更操作のために M×N のサイズの画像を Faster-RCNN ネットワークに入力し、モデルの要件を満たすように画像のサイズを H×W に処理します。
  • データの前処理: まず、サイズ変更操作のために M×N のサイズの画像を Faster-RCNN ネットワークに入力し、モデルの要件を満たすように画像のサイズを H×W に処理します。次に、画像は特徴サイズ変換のために RoI プーリング層に入力され、画像は分類のために分類器に入力されます。
  • 領域抽出: 入力画像に対して領域抽出を実行し、各オブジェクトの特徴マップを取得します。
  • RPN: 得られた特徴マップを RPN に入力して、各オブジェクトの予測確率を取得します。
  • 分類子: 全結合層を介して最終確率が取得され、カテゴリが計算され、境界ボックス回帰が再度実行されて、検出フレームの最終的な正確な位置が取得されます。
  • 出力: 検出フレームの位置に従って、画像内のターゲットの正確な位置を計算し、ターゲットのカテゴリを出力します。

上記のステップにより、ターゲットの検出を実現するために、画像内のターゲットの正確な位置を得ることができる。
ここに画像の説明を挿入

FPN

论文原文:物体検出のための機能ピラミッド ネットワーク:https://openaccess.thecvf.com/content_cvpr_2017/papers/Lin_Feature_Pyramid_Networks_CVPR_2017_paper.pdf
ここに画像の説明を挿入

FPN ネットワークは Faster R-CNN 単一ネットワーク上で直接変更され、各解像度の特徴マップは、要素ごとの追加を実行するために後者の解像度によって 2 倍にスケーリングされた特徴マップに導入されます。このような接続を通じて、予測の各層に使用される特徴マップは、異なる解像度と異なる意味強度の特徴と融合され、異なる解像度の融合された特徴マップは、対応する解像度のオブジェクトを検出するために使用されます。これにより、各レイヤーが適切な解像度と強力なセマンティック機能を備えていることが保証されます。同時に、この方法は、元のネットワークに基づいて追加のクロスレイヤー接続を追加するだけであるため、実際のアプリケーションでの追加の時間と計算はほとんど増加しません。

マスク R-CNN

原論文:Mask R-CNN:https://arxiv.org/pdf/1703.06870.pdf
ここに画像の説明を挿入

Mask R-CNN は Faster R-CNN を直感的に拡張したものです. ネットワークのバックボーンには RPN が ResNet の機能ピラミッド ネットワーク (FPN) に変換されており, 各関心領域 (RoI) を予測するためにブランチが追加されています.分類およびバウンディング ボックス回帰のための既存の分岐と平行。マスク ブランチは、各 RoI に適用される小さな FCN であり、ピクセルからトップへのピクセル方式でセグメンテーション マスクを予測します。ただし、Faster RCNN は、ネットワークの入力と出力の間のピクセル間の位置合わせ用には設計されていません。これは、インスタンスを処理するための事実上のコア操作である RoIPool [18、12] が、特徴抽出のために粗い空間量子化を実行する方法で最も明白です。このずれに対処するために、ネットワークは、正確な空間位置を忠実に保持する RoI Align と呼ばれる単純で量子化のないレイヤーを使用します。FPN 構築の特徴には、ボトムアップ (bottom-up)、トップダウン (top-down) および同じレイヤー接続の 3 つのプロセスが含まれます。ボトムアップ プロセスは、本質的に畳み込みネットワークの順伝播プロセスです。

1 段階のオブジェクト検出アルゴリズム

SSD

原著: SSD: Single Shot MultiBox Detector: https://arxiv.org/pdf/1512.02325.pdf
ここに画像の説明を挿入

従来のR-CNNシリーズとは異なり、SSDは一段方式。SSD は VGG16 ネットワークを特徴抽出器として使用し、後続の全結合層を畳み込み層に置き換えてから、カスタム畳み込み層を追加し、最後に畳み込みを検出に直接使用します。さまざまなスケーリング比とさまざまなアスペクト比を持つアプリオリ フレームが複数の特徴マップに設定され、検出用のマルチスケール特徴マップが融合されます.前部の大規模な特徴マップは小さなオブジェクトの情報をキャプチャできますが、後部の小規模な機能は、グラフは大きなオブジェクトの情報をキャプチャできるため、検出の精度とローカリゼーションの精度が向上します。
ここに画像の説明を挿入

YOLOv1

论文原文:You Only Look Once:Unified, Real-Time Object Detection:https://arxiv.org/pdf/1506.02640.pdf
ここに画像の説明を挿入

YOLO v1 は 1 段階のターゲット検出方法であり、Faster R-CNN の 2 段階のターゲット検出方法のようなアプリオリ フレームを生成する必要はありません。Yolo アルゴリズムは、エンドツーエンドのターゲット検出に個別の CNN モデルを使用します。YOLO ターゲット検出パイプライン全体を下の図に示します。まず、入力画像が 448x448 にサイズ変更され、次に CNN ネットワークに送信され、最後にネットワーク予測結果が処理されて、検出されたターゲットが取得されます。YOLOは、高速検出と高精度を特徴とする新しいターゲット検出方法です。著者は、オブジェクト検出タスクを、オブジェクト領域予測とクラス予測の回帰問題と見なしています。この方法では、単一のニューラル ネットワークを使用してアイテムの境界とカテゴリの確率を直接予測し、エンド ツー エンドのアイテム検出を可能にします。
ここに画像の説明を挿入

YOLOv2

元の論文: YOLO9000: より良く、より速く、より強く: https://arxiv.org/pdf/1612.08242.pdf
ここに画像の説明を挿入

YOLOv2 と YOLOv1 の比較を次の図に示します。
ここに画像の説明を挿入

YOLOv3

元の論文: YOLOv3: 漸進的な改善: https://pjreddie.com/media/files/papers/YOLOv3.pdf
ここに画像の説明を挿入

YOLOv3 は改良された YOLO アルゴリズムです. YOLOv2 と比較して、より良い結果を得るために精度と速度の間で妥協が行われています.

  • 改善されたモデル構造: YOLOv3 は新しいモジュール - SPP (サンプル ポイント提案) モジュールを導入して、YOLOv3 の精度を向上させます。SPP モジュールは、YOLOv2 の SSD モジュールと YOLOv3 のバックボーン モジュールを組み合わせて、YOLOv3 の分類精度を向上させます。同時に、YOLOv3 のバックボーン モジュールの残りのブロックの数は、YOLOv2 の 512 から 256 に減少し、YOLOv3 の精度がさらに向上します。
  • 改良された分類器: YOLOv3 では分類器が改良され、YOLOv2 の弱分類器を使用して分類の精度が向上しました。YOLOv3 の弱分類器は、各バッチの画像の一部のみを使用して弱分類器を介して予測しますが、YOLOv3+SSD は SSD の予測機能を使用して分類の精度を向上させます。
  • 改善された予測ボックスの生成: YOLOv3 は予測ボックスの生成も改善しました. 別のニューラル ネットワークを使用して画像を複数の領域に分割し、境界ボックスと各領域の確率を予測します. YOLOv2 と比較して、YOLOv3 の予測ボックスの生成速度は速く、バウンディング ボックスの精度も向上しています。
  • 弱分類器のパラメーター調整の改善: YOLOv3 は、さまざまなサイズの画像でより適切に機能するように、弱分類器のパラメーターを調整しました。たとえば、YOLOv3 は 1 つの大きなプール レイヤーを使用して、YOLOv2 の 3 つの小さなプール レイヤーを置き換えます。これにより、弱分類器のパラメーターの数が減り、位置決めの精度がさらに向上します。

オブジェクト検出用の一般的なデータセット

  1. PASCAL VOC
    PASCAL VOC (パスカル VOC チャレンジ) は、コンピューター ビジョン技術の開発と応用を促進するために、欧州連合が資金を提供するコンピューター ビジョン チャレンジです。チャレンジは2005年から開催されており、コンテストの内容は毎年異なります.最初の分類から、検出、セグメンテーション、人体レイアウト、行動認識など、データセットの容量と種類が徐々に追加されます.も増加しており、改善しています。

  2. MS COCO
    MS COCO (Microsoft Common Objects in Context) は、Microsoft Corporation によって開発されたターゲット検出データセットであり、2014 年に Microsoft によって資金提供された Microsoft COCO データセットに由来します。COCO は、業界で非常に高いステータスと非常に大規模なデータ セットであり、ターゲットの検出、セグメンテーション、画像の説明、およびその他のシナリオに使用されます。特徴: オブジェクト セグメンテーション: オブジェクト レベル セグメンテーション; コンテキスト認識: コンテキスト認識; スーパーピクセル スタッフ セグメンテーション: スーパーピクセル セグメンテーション; 330K の画像 (>200K のラベル付き): 330 万の画像 (200,000 以上のラベル付きの画像); 150 万のオブジェクト インスタンス: 150 万オブジェクト インスタンス; 画像ごとに 5 つのキャプション: 各画像には 5 つの説明があります。MS COCO データセットには 91 カテゴリの画像が含まれており、各カテゴリの画像数は 500,000 から 200 万の間です。ターゲット検出タスクには、COCO データセットの 80 クラスで十分です。

  3. Google Open Image
    Open Images は、Google が公開しているオープンソースの画像データセットで、最新の V7 バージョンは 2022 年 10 月にリリースされる予定です。このバージョンのデータセットには、900 万を超える画像が含まれており、すべてカテゴリでラベル付けされています。

  4. ImageNet
    ImageNet は、さまざまなタイプの画像分類タスクを研究するための多くの研究者や大学からの貢献で構成されるオープン データセットです。花、動物、建物など、さまざまな種類の画像が含まれており、各種類の画像には独自のサブセットがあり、さまざまなモデルのトレーニングとテストに使用されます。ImageNet データセットは、Li Feifei 教授らによって 2009 年に開始され、長年の開発を経て、現在では画像分類を研究するための重要なプラットフォームの 1 つになりました。

オブジェクト検出用の注釈ツール

  1. LabelImg
    LabelImg はオープン ソースの画像ラベリング ツールです. ラベルは分類とオブジェクト検出に使用できます. Python で記述されており, グラフィカル インターフェイスとして Qt を使用しています. シンプルで使いやすいです. 注釈は、ImageNet で使用される形式である PASCAL VOC 形式の XML ファイルとして保存されます。さらに、COCO データセット形式をサポートしています。
    LabelImg をインストールする前に、コンパイル済みのバイナリ ライブラリをダウンロードしてインストールする必要があります。次のコマンドでインストールできます。
    pip install labelimg-i https://pypi.tuna.tsinghua.edu.cn/simple

  2. Labelme
    Labelme は、MIT の Computer Science and Artificial Intelligence Laboratory (CSAIL) によって開発された画像ラベル付けツールです. 人々はこのツールを使用して、カスタマイズされたラベル付けタスクを作成したり、画像ラベル付けを実行したりできます. プロジェクトのソース コードはオープン ソースです.

  3. Labelbox
    Labelbox は、ユーザーが画像内のオブジェクトにラベルを付けて注釈を付け、ラベル付けの結果を xml、txt、または json 形式のファイルとして保存するのに役立つオンライン ラベル付けツールです。ユーザーは、Labelbox の公式 Web サイトにアクセスして、Labelbox の最新バージョンをダウンロードしてインストールし、Labelbox を開いて、ラベル付けする画像ファイルを選択し、ラベルの種類 (VOC ラベル、YOLO ラベル、createML ラベルなど) を選択できます。 )、最後に「ラベル」ボタンをクリックすると、マーキング操作が完了します。Labelbox には画像プレビュー機能もあり、ラベル付け前にラベル付け後の画像効果をプレビューできます。さらに、Labelbox は、ラベル ファイルのバージョン番号の設定、ラベル ファイルの保存パスの調整など、その他の機能も提供します。

  4. RectLabel
    Rect Label はオンラインの無料の画像注釈ツールで、オブジェクトの検出、セグメンテーション、および分類にラベルを使用できます。機能または機能:

利用可能なコンポーネント: 長方形ボックス、多角形、3 次ベジエ曲線、線と点、ブラシ、スーパーピクセルは
描画せずに画像全体のみをマークできます
ブラシとスーパーピクセルを使用できます
YOLO、KIT TI、COCO JSON および CSV 形式へのエクスポート
PASCAL VOC での読み取りと書き込みXML 形式
Core ML モデルを使用して画像に自動的にラベルを付ける
動画を画像フレームに変換する

  1. CVAT
    CVAT (Chinese Visual Assisted Text Annotation Tool) は、コンピューター ビジョンと自然言語処理技術に基づくテキスト注釈ツールで、画像内のテキスト情報を迅速かつ正確にマークし、ユーザーが画像を迅速かつ正確に解析および分析するのに役立ちます。
    CVAT の主な機能は次のとおりです。

自動ラベル付け: バッチ ラベル付けをサポートし、画像内の複数のオブジェクトに自動的にラベル付けできます。
リアルタイム注釈: 画像にリアルタイムで注釈を付けることができ、注釈結果は画像の上の注釈ボックスにリアルタイムで表示されます。
マルチラベル アノテーション: マルチラベル アノテーションは画像内のオブジェクトに対して実行でき、各ラベルは 1 つ以上のオブジェクトに対応できます。
画像解析: ターゲットの検出、画像のセグメンテーションなど、アノテーション結果に対して画像解析を実行できます。
注釈結果の可視化: 注釈結果は、画像、テキスト、数値などの形式で視覚的に表示できます。これは、ユーザーが表示および分析するのに便利です。

CVAT は、画像処理、自然言語処理、テキスト注釈などの分野で広く使用され、ユーザーが問題を迅速かつ正確に解決するのに役立ちます。

おすすめ

転載: blog.csdn.net/weixin_43598687/article/details/129939496