このシリーズではE資格対策として、シラバスの内容を項目別にまとめています。
YOLO
YOLOの概要
YOLO(You Only Look Once)は、2015年に発表された物体検出の手法で、その名の通り「一度だけ見る」を意味します。これは物体検出のプロセスを一度の操作で完了させるという革新的なアプローチを取り入れた結果で、従来の二段階のプロセス(検出と識別)を大きく変えました。
このモデルの特徴は、高速化に成功しており、リアルタイムでの物体検出が可能になった点です。45fpsの検出速度で実用可能であり、さらに速いバージョンであるFastYOLOでは155fpsに達しました。これは、End-to-Endモデルの最初期モデルであるため、物体検出のスタンダードを確立したといえるでしょう。
ほぼ同時期に発表されたFast R-CNNと比較すると、YOLOはより高速に検出が可能で、背景と物体を区別する精度が高く、汎用性能も高いです。芸術作品などの自然でないものに対しても精度を維持できる点が特筆されます。また、モデル構造がよりシンプルであるという利点があります。
一方で、精度が若干低く、小さな物体の検出が苦手という欠点もあります。これは、グリッドセルを使用するための制約からくるものです。
YOLOの革新性は、それまでの境界設定と物体検出の二段階の作業を一度に行うという点にあります。これにより、End-to-End型のモデルが高速化に成功しました。
YOLOのモデル
①S*Sのグリッドセルに分割
YOLOは、R-CNNなどの伝統的な候補領域検出を行わない新しい方法を取り入れています。入力画像をS*Sのグリッドセルに分割することで、物体の中心がどのグリッドセルにあるかを特定し、そのセルが物体を検出するように学習します。論文ではS=7としています。
②バウンディングボックスの推定
各グリッドセルはB個のバウンディングボックスを持ちます(論文ではB=2)。バウンディングボックスの信頼スコアは、物体の存在確率を示し、1に近いほど物体が存在する可能性が高いと解釈されます。各バウンディングボックスは、座標値(x、y、w、h)と信頼スコアで構成されます。
③物体の予測
各グリッドセルはC個のクラスに対して条件付きクラス確率を予測します(論文ではC=20)。条件付きクラス確率とバウンディングボックスの信頼スコアを掛け合わせて、各バウンディングボックスのクラスに対する信頼スコアを計算します。
モデルアーキテクチャ
YOLOのアーキテクチャはDarknetと呼ばれ、24層の畳み込みニューラルネットワーク(CNN)と4層のプーリング層からなります。これらの層で特徴量を抽出した後、2つの全結合層を用いて物体のバウンディングボックスと種類を予測します。CNNの最終出力サイズがS*S*Cになるように設定されており、グリッドセルとクラスの数と一致します。Fast YOLOバージョンでは、層の数を24から9に減らすことでさらに高速化しています。最終層を除いて活性化層はLeaky ReLUを使用しています。
YOLOの損失関数
1.バウンディングボックスの中心座標(x、y)の損失
バウンディングボックスのx座標とy座標は0から1の区間で表記されます。物体が存在する場合にのみ、予測と真の値との二乗誤差(SSE)が計算されます。この損失は、バウンディングボックスの位置の正確さを改善する役割を果たします。
2.バウンディングボックスの幅と高さ(w、h)の損失
バウンディングボックスの幅(w)と高さ(h)も0と1の間に正規化されます。物体が存在する場合にのみSSEが計算されます。大きなボックスと小さなボックスで差の重要度が異なるため、wとhには平方根が使用されます。これにより、大きなボックスと小さなボックスの誤差に対して同等の重視を持たせることができます。
3.信頼スコアの損失
信頼スコアは予測ボックスと正解ラベル間のIOU(Intersection over Union)を表します。ほとんどのグリッドセルには物体が含まれていないため、信頼スコアのほとんどがゼロに近づくという問題があります。これにより、勾配が圧倒されてモデルが不安定になる可能性があるため、物体を含まないボックスの信頼スコアによる損失を減少させる工夫が必要です。
4.クラス確率の損失
物体が存在する場合にのみ、クラス確率のSSEが
まとめ
最後までご覧いただきありがとうございました。