このシリーズではE資格対策として、シラバスの内容を項目別にまとめています。
FCOS(Fully Convolutional One-Stage Object Detection)
FCOSの概要
FCOS(Fully Convolutional One-Stage Object Detection)は、2019年に発表された物体検出の手法で、その特異な構造が多くの注目を集めています。従来の物体検出手法の中には、物体の位置とサイズを予測するためにアンカーボックスを使用するものが多かったのですが、FCOSはこのアンカーボックスを使用しないという点で画期的でした。
この手法では、畳み込みネットワークを用いて入力画像上の各位置で物体のクラスとバウンディングボックスを直接予測します。さらに、物体の中心部分が予測される確率、すなわちセンターネス(center-ness)も同時に予測することで、精度を向上させています。
FCOSはFeature Pyramid Network(FPN)も利用しています。FPNは複数のスケールで特徴量マップの抽出を行い、異なるサイズやアスペクト比を持つ物体に対しても効果的に検出できるようにしています。これにより、小さい物体から大きい物体まで幅広く検出が可能になっています。
アンカーボックスの欠点
アンカーボックスを用いた物体検出方法には、以下のようないくつかの重要な欠点があります。
- ハイパーパラメータの数が多い: アンカーボックスを使用する物体検出では、学習を始める前に多くのハイパーパラメータを手動で設定する必要があります。例として、各フィーチャーマップに対して異なるアスペクト比を設定する作業は、非常に煩雑で時間を消費します。このような調整が必要なことは、実装の複雑さを高め、設計者にとって負担になります。
- ポジティブサンプルとネガティブサンプルの不均衡: アンカーボックスを用いると、物体が含まれるボックス(ポジティブサンプル)と背景(ネガティブサンプル)の区別が必要になります。しかし、この方法ではポジティブサンプルとネガティブサンプルの数が非常に不均衡になりがちで、例えばSSDのような手法では約9000個のアンカーボックスのうち、極端に少数しかポジティブに表記されません。この不均衡は、検出の精度を下げる要因となりえます。
- 不均衡の解決方法の限界: 不均衡問題を解決するための重み付きのLossを使う方法も存在しますが、これはあくまで問題の微修正であり、根本的な解決には至りません。アンカーフリー法は、ポジティブとネガティブ表記の段階から不均衡の改善を図ることが可能で、より良い再現率を得ることができるため、一部の研究者や技術者からの支持を受けています。
これらの欠点により、アンカーボックスを使った物体検出手法は、実装が複雑で労力を要し、最終的な性能にも制約があると言えます。
FCOSの構造
このモデルは、Feature Pyramid Network(FPN)を使用してフィーチャーマップを作成します。FPNは複数のスケールで特徴量を抽出し、さまざまなサイズの物体を効率的に検出することができます。FCOSでは、各フィーチャーマップの後に「head」と呼ばれる拡張部分を追加しています。このhead部分は、クラシフィケーション(物体のクラス判定)、バウンディングボックス回帰(物体の位置とサイズの予測)、センターネス(物体の中心の予測)の3つの重要なタスクを学習します。
センターネスという新しい指標は特筆すべき点で、物体の中心が予測の中心にどれだけ近いかを示します。これにより、検出の精度が向上します。
FCOSはFCN(Fully Convolutional Network)と同様に、全結合層を持たないアーキテクチャを採用しています。全結合層を持たないことで、モデルは任意のサイズの画像に対して柔軟に対応でき、計算効率も向上します。
センターネス
FCOSのセンターネスは、物体検出の精度と効率を向上させる重要な概念です。この指標は、特徴マップ上のある点が正解ボックスの中心からどれくらい離れているかを表すもので、以下の特徴と計算方法があります。
計算方法: センターネスは、0〜1の値で計算され、4つの値(l, t, r, b)を用います。具体的には、センターネスは以下の式で表されます。
この値が大きいほど、その点は正解ボックスの中心に近い位置にあると言えます。
機能: センターネスは、バウンディングボックスを予測する際に非常に役立ちます。センターネスの低い点(および対応するボックス)は非最大値抑制(NMS)によりフィルタリングされるため、精度が向上します。
利点: センターネスの導入によって、正解バウンディングボックスから離れた位置に予測バウンディングボックスが出現することが抑制されます。この結果、学習時に正解バウンディングボックスに対応する予測バウンディングボックス(正のサンプル)が多くなり、学習効率が上がります。
画像に示されているように、FCOSは各前景ピクセルでバウンディングボックスの位置をエンコードする4Dベクトル(l, t, r, b)を予測する仕組みになっています。
損失関数
この損失関数は主に2つの部分から構成されます。
第1項:クラス分類に関する損失
座標x,yにおけるクラスの予測結果px,yと正解クラスラベルcx,y∗に基づくクラス分類の損失を計算します。ここでのposNposは物体領域正解のバウンディングボックスに対応する検出領域(予測のバウンディングボックス)の数を表します。
第2項:バウンディングボックスの座標に関する損失
バウンディングボックスの座標に関連する損失です。座標x,yにおけるl,r,t,bの予測結果tx,yと、座標x,yにおける正解のtx,y∗を使用して計算されます。ここでのλは、クラス分類の損失とバウンディングボックスの座標に関する損失のバランスを調整する重みです。
まとめ
最後までご覧いただきありがとうございました。