見出し画像

物体検出まとめ


物体検出とは

物体検出は、画像の中で「何がどこにあるか」を特定する技術です。具体的には、画像内の物体を囲む四角形(バウンディングボックス)を描き、その中の物体を分類する作業を含みます。この技術は、自動運転車の歩行者検出や工場での品質管理など、さまざまな分野で使われています。

物体検出のモデルの精度を測る指標として
mAP や AP があります

mAP(Mean Average Precision)とAP(Average Precision)について

AP(Average Precision)とは?

APは「Average Precision」の略で、物体検出や画像分類などのタスクにおけるモデルの精度を測る指標です。具体的には、モデルが予測した結果がどれだけ正確かを示します。

APの計算方法

  1. 予測結果のランキング: モデルが予測した各物体の確信度(スコア)に基づいて、予測結果をランキングします。

  2. PrecisionとRecallの計算: それぞれのランクでPrecision(適合率)とRecall(再現率)を計算します。

    • Precision: 正しく検出された物体の数 ÷ モデルが検出した物体の総数

    • Recall: 正しく検出された物体の数 ÷ 実際に存在する物体の総数

  3. APの計算: PrecisionとRecallの曲線の下の面積を計算します。これがAPの値になります。

mAP(Mean Average Precision)とは?

mAPは「Mean Average Precision」の略で、複数のクラスにわたるAPの平均値を指します。つまり、異なるカテゴリの物体を検出するモデルの全体的な精度を示す指標です。

mAPの計算方法

  1. 各クラスに対してAPを計算します。

  2. すべてのクラスにわたるAPの平均値を取ります。これがmAPの値になります。

APとmAPまとめ

  • APは、単一のクラスに対するモデルの精度を示す指標です。

  • mAPは、複数のクラスにわたるモデルの平均的な精度を示す指標です。

これらの指標は、特に物体検出の分野でよく使われ、モデルの性能を評価するのに重要な役割を果たします。


IoU(Intersection over Union)


IoU(Intersection over Union)は、物体検出やセグメンテーションの分野で使われる指標で、予測されたバウンディングボックス(物体を囲む矩形)と実際のバウンディングボックスの重なり具合を測定します。IoUは、予測されたバウンディングボックスと実際のバウンディングボックスの交差部分(Intersection)を、両者の結合部分(Union)で割った値です。

具体的には、次のように計算されます:

  1. 予測されたバウンディングボックスと実際のバウンディングボックスの交差部分(重なっている部分)の面積を求めます。

  2. 予測されたバウンディングボックスと実際のバウンディングボックスの結合部分(両者を合わせた部分)の面積を求めます。

  3. 交差部分の面積を結合部分の面積で割ります。

IoUの値は0から1の間で、1に近いほど予測が正確であることを意味します。例えば、IoUが0.5以上であれば、予測されたバウンディングボックスが実際のバウンディングボックスとかなり重なっていると判断されます。この指標は、物体検出モデルの性能評価に広く用いられています。


R-CNN

R-CNNは、2013年に発表された物体検出手法です。この手法は、物体検出を3つのステップに分けて行います。

  1. 領域提案(Region Proposal): 画像内で物体が存在する可能性のある場所を見つけます。R-CNNでは「Selective Search」という特別なアルゴリズムを使って、これらの場所を探します。

  2. CNNによる特徴抽出: 提案された領域の画像特徴を、CNN(畳み込みニューラルネットワーク)を使って抽出します。R-CNNでは、AlexNetという古典的なCNNモデルを使用し、大規模な画像データセットであるImageNetで事前に学習させたモデルを使います。

  3. SVMによる分類: CNNで抽出された特徴を基に、サポートベクターマシン(SVM)を使って物体の種類を分類します。SVMは、各領域がどの物体クラスに属するかを判断するために使われます。

検出結果の改善方法

R-CNNの検出結果をより良くするためには、以下の2つの工夫が必要です。

  • Non-Maximum Suppression(非最大抑制): 重なり合うバウンディングボックスを一つにまとめるために使われます。IoU(Intersection over Union)という指標を使って、重なりが一定の閾値以上のバウンディングボックスを統合します。

  • 分類器の閾値処理: SVMからの出力スコアが低い(つまり、分類が不確かな)バウンディングボックスを排除します。これにより、分類器が不確かな予測を行ったバウンディングボックスを取り除くことができます。

R-CNNの限界

R-CNNは物体検出の分野で大きな進歩をもたらしましたが、計算コストが高く、処理速度が遅いという欠点があります。そのため、より効率的な物体検出手法として、Fast R-CNNやFaster R-CNNなどの後続の研究が行われています。


Fast R-CNN

Fast R-CNNは2015年に発表されたR-CNNより高速な物体検出手法です。

物体検出とFast R-CNN

物体検出は、画像の中で「何がどこにあるか」を特定する技術です。Fast R-CNNは、物体検出のためのモデルの一つで、以前のモデル(R-CNNやSPP-net)よりも効率的に物体を検出することができます。

背景課題

以前の物体検出モデル(R-CNNやSPP-net)は、複数のステップで学習を行う必要があり、学習プロセスが複雑で時間がかかるという問題がありました。

Fast R-CNNの特徴

  • 効率的な学習: Fast R-CNNは、単一の学習ステップでモデルをトレーニングできます。これにより、学習プロセスが簡素化され、時間の節約につながります。

  • 高い精度: R-CNNやSPP-netよりも高い精度(mAP)を達成しています。

  • RoI Pooling: Fast R-CNNは、SPPを単純化した「RoI Pooling」という技術を使用しています。これにより、画像の特定の領域(Region of Interest)から固定サイズの特徴マップを生成することができます。

  • Multi-task lossの使用: CNN以降の構造は全てニューラルネットワークで構成され、Multi-task lossを使用しています。これにより、物体の分類とバウンディングボックスの位置決めを同時に行うことができます。

Fast R-CNNは、物体検出の分野で以前のモデルよりも効率的かつ高精度な検出を実現するモデルです。単一の学習ステップでトレーニングが可能であり、RoI Poolingによって特定の領域から固定サイズの特徴マップを生成することができます。これにより、物体検出のプロセスが簡素化され、より高速かつ正確な検出が可能になります。


Faster R-CNN

Faster R-CNNの概要と特徴

Faster R-CNNは、物体検出の分野で革新的な進歩をもたらしたモデルです。従来の物体検出手法と比較して、Faster R-CNNは処理速度の向上と精度の向上を実現しています。

Region Proposal Method

  • 従来の手法: R-CNNなどの従来の物体検出手法では、Region Proposal Methodを使用しています。これは、画像中から物体らしさ(Objectness)の高い領域を見つける手法で、Selective Searchなどが用いられます。

  • 問題点: しかし、この手法では抽出した領域全てをディープニューラルネットワークの入力とするため、処理に時間がかかるという問題がありました。

領域提案ネットワーク(RPN)

  • Faster R-CNNの革新: Faster R-CNNでは、領域提案ネットワーク(RPN)を使用して領域提案を直接生成します。これにより、処理が高速化され、データに適切に調整されます。

End-to-End時代の先駆け

  • 一貫した処理: Faster R-CNNは、物体検出手法の中で初めてend-to-endのアプローチを採用しました。これにより、画像を入力するだけで検出と識別を一貫して行うことが可能になります。

  • 最適化の恩恵: end-to-endにすることにより、物体らしさの高い領域を抽出する際にもディープニューラルネットワークによる最適化の恩恵が受けられます。

  • 高速で高精度: 多段構成のボトルネックが解消されるため、より高速で高精度な検出手法が可能となりました。

Faster R-CNNは、物体検出の分野で大きな進歩をもたらし、自動運転車の歩行者検出や監視カメラシステムなど、多くの応用分野で利用されています。


YOLO

YOLO(You Only Look Once)の概要と特徴

YOLOは、物体検出の分野で革新的な手法です。
その名の通り、「一度見るだけ」で物体の
「検出」と「識別」を同時に行うことができます。

YOLOの基本的なプロセス

  1. 画像のグリッド分割: 入力画像を固定長のグリッドセルに分割します。

  2. Bounding Box(BBox)とConfidenceの推測: 各グリッドセルに対して、複数のBBoxとそれに関連するConfidenceを推測します。

  3. クラスの予測確率: 各グリッドセルは、異なる物体クラスに対する条件付きクラス確率を予測します。

  4. Confidence Scoreの計算: BBoxのConfidenceとクラスの予測確率を掛け合わせて、各BBox・各クラス毎のConfidence Scoreを計算します。

YOLOのアーキテクチャ

  • YOLOのモデルは、入力画像から「クラス予測確率」、「BBoxの位置情報」、「BBoxのConfidence」を出力します。

学習・推論

  • 学習時: 上記の3つの要素をそれぞれの損失関数の項として学習します。

  • 推論時: これらの要素を用いて信頼度スコアを計算し、物体の位置とクラスを特定します。

YOLOのアドバンテージ

  • 高速性: YOLOはシンプルなネットワーク構成のため、非常に高速です。

  • 背景と物体の区別: YOLOは画像全体を一度に処理するため、物体と背景を区別する能力が高いです。

  • 一般化能力: YOLOは、異なるスタイルの画像に対しても良好な検出性能を示します。

YOLOのディスアドバンテージ

  • 精度の問題: YOLOは、他の物体検出手法と比較して、全体的な精度が低い場合があります。

  • 小さな物体の検出が困難: YOLOは、小さな物体や密集している物体の検出が困難です。

YOLOは、リアルタイムでの物体検出において優れた性能を発揮しますが、精度や小さな物体の検出に関しては改善の余地があります。そのため、アプリケーションの要件に応じて、YOLOを選択するか他の物体検出アルゴリズムを検討する必要があります。


SSD(Single Shot MultiBox Detector)

SSD(Single Shot MultiBox Detector)は、物体検出のためのディープラーニング手法で、特にリアルタイムでの高速な物体検出を目的としています。以下に、SSDの主な特徴と概念を簡単に説明します。

SSDの特徴

複数スケールの特徴マップ

  • SSDは、入力画像を異なる解像度の特徴マップに変換します。

  • それぞれの特徴マップ上で物体を検出することにより、さまざまなサイズの物体を効果的に検出できます。

アンカーボックスの使用

  • 各特徴マップピクセルに複数のアスペクト比のアンカーボックスを関連付けます。

  • これらのアンカーボックスは、物体の位置と形状を予測するための基準となります。

物体の存在の二値分類と位置の回帰

  • SSDは、アンカーボックスに対して物体の存在の二値分類(物体あり/物体なし)と位置の回帰を同時に行います。

特徴マップからの予測結果の統合

  • 複数の特徴マップからの予測結果を統合し、最終的な物体検出結果を生成します。

YOLOとSSDの違い

特徴マップのスケール

  • SSDは複数のスケールの特徴マップを使用しますが、YOLOは単一のスケールの特徴マップを使用します。

アンカーボックスの数

  • SSDは各特徴マップピクセルに対して複数のアンカーボックスを使用しますが、YOLOはグリッドセルに基づいて物体の位置を予測します。

処理速度

  • SSDは複数のスケールの特徴マップとアンカーボックスを使用するため、処理速度がYOLOよりも低下する可能性があります。YOLOは高速な処理が可能です。

検出精度

  • SSDは複数のスケールの特徴マップを使用し、小さい物体の検出に優れています。YOLOは大きな物体の検出に優れています。

Hard Negative Mining

  • SSDでは、背景と誤検出されたネガティブな領域(アンカーボックス)を学習から排除するために、Hard negative miningを使用します。これは、背景クラスのアンカーボックスから、予測が間違っているものを抽出し、再学習に用いることでモデルの精度を向上させる手法です。

SSDは、リアルタイムの物体検出において高速でありながら、小さい物体の検出にも優れた性能を発揮します。そのため、さまざまな物体検出のタスクに広く利用されています。

Mask R-CNN

Mask R-CNNは、インスタンスセグメンテーションを実行するための深層学習手法です。インスタンスセグメンテーションは、物体検出を拡張し、検出された各オブジェクトのピクセルレベルのセグメンテーションを提供します。以下に、Mask R-CNNの主な機能と実現方法を簡単に説明します。

Mask R-CNNの主な機能と実現方法

物体検出とクラス識別

  • 画像内の物体らしき領域を特定し、それらがどのクラスに属するかを識別します。

  • 物体らしき領域は、画像を細かく分割し、それぞれを評価することで見つけられます。

  • 物体らしさが高い領域や、重なりが少ない領域を選択し、最終的にクラスを識別します。

セグメンテーション

  • 画像の各ピクセルに対してクラスを識別します。

  • 物体検出で特定された領域に対してのみセグメンテーションを行います。

  • これにより、画像全体に対するセグメンテーションよりも効率的に処理が行えます。

ポーズ推定(ボーン検出、キーポイント検出)

  • 人物の関節やポーズのキーポイントを検出します。

  • これはMask R-CNNの応用技術であり、人物の姿勢や動きを詳細に分析するのに使用されます。

Mask R-CNNの技術的詳細

  • Mask R-CNNは、畳み込み層と逆畳み込み層を使用して、56x56サイズの出力を生成します。

  • 損失関数は交差エントロピー誤差を使用し、モデルの性能を評価します。


FCOS(Fully Convolutional One-Stage Object Detection)



FCOS(Fully Convolutional One-Stage Object Detection)は、物体検出のためのディープラーニング手法で、以下のような主要な特徴があります:

  1. 全畳み込みネットワーク: FCOSは全結合層を持たず、全畳み込みネットワークを採用しています。これにより、任意サイズの画像を入力として扱うことが可能です。

  2. FPN(Feature Pyramid Networks)の使用: FPNは複数の解像度の特徴マップを生成し、低解像度の特徴は全体の特徴を捉え、高解像度の特徴は細かい部分に強いです。FPNはこれらの特徴を組み合わせて、より効果的な物体検出を実現します。

  3. 4次元ベクトルの予測: FCOSは画像の各ピクセルから4次元ベクトル(物体のバウンディングボックスの位置情報)を予測します。

  4. 逆畳み込みネットワーク: FCOSでは、逆畳み込み(デコンボリューション)を用いて特徴マップをアップサンプリングし、より詳細な情報を得ます。

  5. スキップ接続の利用: スキップ接続を用いることで、ダウンサンプリング中に失われた情報を補完し、より精度の高い出力を得ます。

学習と推論:

  • FCOSでは、物体の中心に近いピクセルをポジティブサンプルとし、それ以外をネガティブサンプルとして扱います。

  • Center-nessは、ピクセルが物体の中心にどれだけ近いかを示す指標で、低品質なバウンディングボックスの生成を抑制します。

  • Non-Maximum Suppression(NMS)は、重複するバウンディングボックスを除去し、最終的な検出結果を精緻化します。

利点:

  • アンカーボックスを使用しないため、アンカーベースの手法のデメリットを回避します。

  • ポジティブサンプルとネガティブサンプルの不均衡を改善し、精度の高い検出が可能です。

  • 実験結果によると、FCOSはYOLOv2やRetinaNetよりも高いAP(Average Precision)を達成しています。

FCOSは、アンカーフリーのアプローチを採用することで、物体検出の精度と効率を向上させる革新的な手法です。



この記事が気に入ったらサポートをしてみませんか?