コンピューターによる写真内物体検出の進化: R-CNNからMask R-CNNへ
物体検出の
R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、Mask R-CNNは、
コンピューターが写真の中の物を見つけるための技術です。
これらは、写真から物を識別し、位置を特定するのに役立ちます。
まず初めに単語の概要を一覧で表現してみます
R-CNN:写真の特定の部分を切り取り、それが何であるかをコンピューターに教える方法です。
Fast R-CNN:R-CNNよりも効率的で、写真全体を一度に処理して、物の位置と種類を特定します。
Faster R-CNN:さらに高速化され、物体候補領域を直接提案するため、処理が速くなります。
YOLO:「一度だけ見る」という意味で、写真を一瞬で処理し、物の位置と種類を同時に予測します。
SSD:YOLOと同様に、一度の処理で物体検出を行いますが、異なるスケールとアスペクト比のデフォルトボックスを使用します。
Mask R-CNN:Faster R-CNNをベースにして、物体検出に加えてピクセルレベルでのセグメンテーション機能を追加しました。
少し詳しく説明します
R-CNN (Regions with CNN features): R-CNNは、物体検出のための深層学習モデルの先駆けであり、画像から関心領域(Region of Interest, ROI)を切り出し、それぞれに対して畳み込みニューラルネットワーク(CNN)を適用して特徴を抽出し、その後分類器で物体を識別します。
Fast R-CNN: R-CNNの計算効率を改善したモデルで、画像全体に対して一度だけCNNを適用し、その特徴マップからROIを抽出して分類します。これにより、R-CNNに比べて計算量が大幅に削減されました。
Faster R-CNN: Fast R-CNNをさらに進化させたモデルで、Region Proposal Network (RPN)を導入しました。RPNは物体候補領域を直接提案するため、従来のSelective Searchよりも高速に処理を行うことができます。
YOLO (You Only Look Once): YOLOは、物体検出のための別のアプローチを採用しており、画像全体を一度だけ見て("You Only Look Once")、物体の位置とクラスを同時に予測します。
SSD (Single Shot Detector): SSDもYOLOと同様に、物体検出を一度の処理で行うモデルですが、異なるスケールとアスペクト比のデフォルトボックスを使用して物体を検出します。
Mask R-CNN: Faster R-CNNをベースにして、物体検出に加えてピクセルレベルでのセグメンテーション(物体の形状を特定する)機能を追加したモデルです。
R-CNN (Regions with CNN features)
R-CNNは、コンピューターが写真の中の物を見つける技術の一つです。この方法では、まず写真から物があるかもしれない部分を見つけ出します。これらの部分は「領域提案」と呼ばれます。次に、これらの領域から特徴を抽出するためにCNN(畳み込みニューラルネットワーク)を使います。最後に、これらの特徴を使って、物が何であるかを分類します。
R-CNNには3つのバージョンがあり、それぞれがこのプロセスの一部を改善、加速、または強化しています。最初のR-CNNでは、領域提案を生成するためにEdge Boxesなどのアルゴリズムを使用し、提案された領域をトリミングしてサイズを変更し、CNNで分類します。そして、CNNの特徴を使って学習したサポートベクターマシン(SVM)によって、領域提案の境界ボックスを調整します。
R-CNNオブジェクト検出器を学習させるには、trainRCNNObjectDetector関数を使用します。この関数は、写真内の物体を検出するためのrcnnObjectDetectorオブジェクトを返します。
Fast R-CNN
Fast R-CNNは、物体検出のための深層学習モデルで、R-CNNの改良版です。このモデルは、R-CNNよりも効率的な処理を実現しています。
Fast R-CNNの特徴
領域提案の生成: Fast R-CNNも、R-CNNと同様にEdge Boxesなどのアルゴリズムを使用して領域提案を生成します。
イメージ全体の処理: R-CNNが各領域を個別に処理するのに対し、Fast R-CNNではイメージ全体を一度に処理します。
効率的な特徴量プーリング: Fast R-CNNは、各領域提案に対応するCNN特徴量をプーリングすることで、オーバーラップする領域の計算を共有します。これにより、R-CNNに比べて計算効率が向上します。
Fast R-CNNの学習
Fast R-CNNオブジェクト検出器の学習には、trainFastRCNNObjectDetector関数を使用します。この関数は、写真から物体を検出するためのfastRCNNObjectDetectorオブジェクトを返します。
Fast R-CNNは、R-CNNの計算効率の問題を解決し、より高速な物体検出を可能にするモデルです。
ROI Pooling(関心領域プーリング)の概要
ROI Poolingは、物体検出ネットワークにおいて、異なるサイズの領域提案を統一されたサイズの特徴マップに変換するための重要な技術です。これにより、ネットワークは異なるサイズの入力に対しても効率的に処理を行うことができます。
ROI Poolingの役割
統一された入力サイズ: どんなサイズの領域提案でも、同じ空間サイズの特徴マップに変換します。これにより、後続のネットワークステージが常に同じサイズの入力を受け取ることができます。
位置合わせの統一: 入力される領域候補の画像領域と特徴マップの空間領域の位置合わせが統一されます。これにより、畳み込み層の学習に一貫性をもたらします。
ROI Poolingの適用
Fast R-CNN: Fast R-CNNでは、ROI Poolingが導入され、異なるサイズの領域候補を一定のサイズの特徴マップに変換するために使用されました。
Faster R-CNN: Faster R-CNNでも、ROI Poolingが利用され、領域提案ネットワーク(RPN)によって提案された領域候補を効率的に処理します。
ROI Poolingのメリット
効率的な処理: 異なるサイズの領域候補を同じサイズの特徴マップに変換することで、ネットワークの処理効率が向上します。
柔軟性の向上: さまざまなサイズやアスペクト比の領域候補に対応できるため、物体検出の柔軟性が向上します。
ROI Poolingは、物体検出モデルの性能向上に大きく貢献する技術であり、Fast R-CNNやFaster R-CNNなどのモデルで広く利用されています。
Faster R-CNN
Faster R-CNNは、2015年にMicrosoft社によって開発された、Deep Learningを用いた物体検出モデルです。このモデルは、End-to-Endの学習を初めて実現したことで注目されました。
主な流れ
物体か背景かの識別: 画像上の矩形領域が物体なのか背景なのかを学習します。
物体の種類の識別: 物体を検出した場合、その物体が何であるか(例:犬、猫)を学習します。
特徴
RPN (Region Proposal Network): 物体候補領域の提案を行うCNN構造を使用。
Selective Search不要: 従来のモデルで必要だったSelective Search処理が不要になり、処理速度と精度が大幅に向上。
End-to-End
入力から出力までを一連のプロセスで処理すること。
YOLO (You Only Look Once)
YOLOは、物体検出の分野で画期的な手法として登場しました。従来の物体検出手法とは異なり、YOLOは画像全体を一度だけ見ることで、物体の位置と種類を同時に予測します。このアプローチにより、物体検出の処理速度が大幅に向上しました。
YOLOの特徴
画像全体の処理: YOLOは、画像をグリッドに分割し、各セルごとに物体の存在と位置を推定します。
Bounding Boxの推定: 各グリッドセルから複数のBounding Box(物体の境界ボックス)を推定し、それぞれの信頼度スコアを算出します。
物体の種類の推定: 各グリッドセルで物体の種類も推定し、物体のクラス確率を出力します。
高速処理: YOLOは画像1枚あたり約22msで処理を行い、従来の物体検出手法よりも高速です。
YOLOのネットワーク構造
YOLOのネットワークは、24層の畳み込み層と4層のプーリング層、2層の全結合層から構成されています。このネットワークは、画像から特徴を抽出し、物体のBounding Boxと物体の種類の確率を推定します。
YOLOの応用
YOLOは、その高速処理能力から、リアルタイムの物体検出に適しています。自動運転車や監視カメラなど、リアルタイムでの物体検出が求められる分野で特に有効です。
YOLOは、物体検出の分野において大きな進歩をもたらし、リアルタイム処理の可能性を広げました。物体検出の精度と速度のバランスを取る上で、YOLOは重要な役割を果たしています。
SSD
SSDは、物体検出の分野で重要な役割を果たすモデルです。この手法は、一度のCNN演算で物体の「領域候補検出」と「クラス分類」を同時に行い、物体検出処理の高速化を実現しました。
SSDの特徴
一度のCNN演算: SSDは「Single Shot」という名前が示すように、一度のCNN演算で物体検出を行います。
ベースネットワークの活用: SSDでは、画像分類に使用されるモデル(例:VGG-16)をベースネットワークとして利用します。
特徴マップの抽出: 各レイヤーから特徴マップを抽出し、物体検出を行います。
デフォルトボックスの使用: 各特徴マップの位置にデフォルトボックスを設定し、物体のクラスと位置を推定します。
SSDの検出プロセス
スコアの抽出: 高いスコアを持つデフォルトボックスを抽出します。
IoUの計算: 各クラスごとにデフォルトボックスの重なり率(IoU)を計算します。
重複の除去: IoUが高い場合、スコアの低いデフォルトボックスを除去します。
SSDの学習メカニズム
クラス誤差と位置誤差: 各特徴マップに対して、クラスのスコアの誤差とデフォルトボックスの位置の誤差を計算します。
損失関数: 最終的な損失関数は、クラス誤差と位置誤差の合成関数になります。
SSDのメリット
SSDは、物体検出の処理を高速化するだけでなく、異なるスケールの物体を検出する能力も持っています。これにより、様々なサイズの物体を効率的に検出することが可能になります。
SSDは、物体検出の分野において、高速かつ効率的な検出を実現する重要なモデルとして位置づけられています。
Mask R-CNN
Mask R-CNNは、2017年にICCVでBest Paperに選出された手法で、物体検出とセグメンテーションを実現します。
特徴
Faster R-CNNの進化形: Faster R-CNNの物体検出機能に加えて、セグメンテーション機能を付加。
セグメンテーション機能: 画像中のピクセル毎にクラスを検出する機能。
セグメンテーション
画像中の各ピクセルに対して、それが属するクラス(物体の種類など)を識別する処理。
以上が、Faster R-CNNとMask R-CNNの基本的な概要です。これらのモデルは、物体検出とセグメンテーションの分野において大きな進歩をもたらしました。
RPN(Region Proposal Network)と呼ばれるCNN構造を用いている点が
Faster R-CNNの特徴です。
これにより従来モデルでネックとなっていたSelective Search 処理が不要となり、大幅なスピードアップと精度向上を実現しました。
Mask R-CNN とは ICCV 2017 Best Paper に選出された手法で、物体検出やセグメンテーションを実現するための手法です。
Faster R-CNNは、物体検出とセグメンテーションの機能を有していて、
Mask R−CNNはそれにセグメンテーションの機能を付加する形で進化した手法といえます。
セグメンテーション
画像中のピクセル毎にクラスを検出することです。
それ以外にも新たな手法としてFCOSがあります
FCOS(Fully Convolutional One-Stage Object Detection)
FCOS(Fully Convolutional One-Stage Object Detection)は、物体検出の分野で注目されているアンカーフリー(Anchor-Free)の手法です。従来の物体検出モデルがアンカーボックスに依存していたのに対し、FCOSはアンカーボックスを使用せず、物体検出を行います。
FCOSの特徴
アンカーボックス不使用: FCOSはアンカーボックスや提案領域(proposal)を使わず、物体検出を行います。
中央からの4次元ベクトル予測: 物体の中心からの距離を表す4次元ベクトルとクラスラベルを予測します。
Feature Pyramid Network (FPN)の活用: 複数のスケールの特徴マップを組み合わせて、物体検出の精度を向上させます。
センターネス指標: 物体の中心に近い領域に高いスコアを与えることで、より正確な物体検出を実現します。
FCOSは、Feature Pyramid Network(FPN)を利用して複数のスケールの特徴マップを生成し、それぞれの特徴マップに対して物体のクラス、物体のバウンディングボックスの位置、および物体の中心度(Center-ness)を予測します。特に、Center-nessは物体の中心に近い予測ほど高品質であると判断し、精度の低い予測をフィルタリングするために導入されました。
このアルゴリズムの特徴は以下の通りです:
アンカーフリー: FCOSはアンカーボックスを使用せず、画像内の各ピクセルが直接物体の検出に貢献するため、より柔軟な検出が可能です。
スケールの多様性: FPNを用いることで、小さな物体から大きな物体まで、さまざまなスケールの物体を効果的に検出できます。
Center-nessによる品質管理: 物体の中心に近い予測ほど信頼性が高いと判断し、全体の検出精度を向上させます。
Center-nessは、物体検出アルゴリズムであるFCOSにおいて、検出されたバウンディングボックスが物体の中心にどれだけ近いかを表す値です。これは、物体の中心に近い予測ほど信頼性が高いと考え、検出の品質を向上させるために導入されました。
Center-nessの値は、次のように計算されます:
物体のバウンディングボックスにおいて、ピクセルの位置からバウンディングボックスの上下左右の端までの最短距離をそれぞれ計算します。これらの距離をl(左)、t(上)、r(右)、b(下)とします。
これらの距離を使って、Center-nessの値cを次の式で計算します:
この式では、左右と上下の距離の比をそれぞれ計算し、その平方根を取っています。これにより、ピクセルが物体の中心に近いほど、cの値は1に近づきます。一方で、ピクセルが物体の端に近い場合は、cの値は0に近づきます。
つまり、Center-nessの値は0から1までの間の値を取り、この値が高いほど、その予測が物体の中心に近い、つまり信頼性の高い予測であると判断されます。
FCOSは、そのシンプルさと高いパフォーマンスから、多くの画像認識タスクで広く採用されています。物体の検出だけでなく、様々なサイズの物体に対応できる柔軟性と、リアルタイム処理にも適した高速な推論能力を備えていることが、FCOSの大きな強みです。
アンカーボックスの問題点
ハイパーパラメータに敏感: アンカーボックスのサイズ、アスペクト比、数などの設定によって精度が大きく変わることがあります。
形状の変化に対応できない: 固定されたサイズやアスペクト比では、形状の変化が大きい物体に対応できません。
小型物体の検出が困難: 小型の物体に対して効果的に検出することが難しいです。
サンプルバランスの問題: ポジティブサンプルとネガティブサンプルのバランスが崩れることがあります。
FCOSのメリット
計算コストの削減: one-stageアプローチを採用することで、計算コストと学習時間を抑えることができます。
応用の容易さ: 複雑さを抑えることで、さまざまな応用が可能になります。
FCOSは、物体検出の分野において、新しいアプローチを提供する革新的なモデルです。アンカーボックスを使用しないことで、従来の問題点を克服し、効率的かつ正確な物体検出を実現しています
この記事が気に入ったらサポートをしてみませんか?