3.1.4. 物体検出

3.1.4.1. YOLO

YOLO (You Only Look Once) は,物体検出を単一の回帰問題として定式化し,end-to-end で最適化可能にした高速な検出モデルである.

3.1.4.1.1. 定式化

入力画像を \(S \times S\) のグリッドセルに分割する.各セルについて, \(B\) 個のバウンディングボックスのパラメータ \((x, y, w, h)\) ,その信頼度(confidence score) \(q\) ,および \(N_C\) 個の条件付きクラス確率 \(p(c) = P(c \mid \text{Obj})\) を予測する.出力テンソルのサイズは \(S \times S \times (5B + N_C)\) である( \(N_C = |\mathcal{C}|\) はクラス数).

正解の信頼度(ターゲット) \(q_{ij}\) は以下で定義される.

\[q_{ij} = \mathbb{I}_i^{\text{obj}} \text{IoU}_{\text{pred},ij}^{\text{truth}}\]

ここで, \(\mathbb{I}_i^{\text{obj}}\) はセル \(i\) に物体が存在する場合に1,そうでない場合に0となるインジケータ関数であり, \(\text{IoU}_{\text{pred},ij}^{\text{truth}}\) は予測ボックスと正解ボックスの重なり比率(IoU)である.

検出時には,各クラスの予測スコア \(s_{ij}(c)\) を計算し,非最大値抑制(NMS)により重複を除外して最終出力を得る.

\[s_{ij}(c) = \hat{p}_i(c) \hat{q}_{ij}\]

YOLOのネットワークは畳み込み層と全結合層で構成される.

3.1.4.1.2. 損失関数

学習は,予測値と正解値の2乗誤差の和である損失関数 \(E\) を最小化することで行う.

\[E = J_{\text{bb}} + J_{\text{conf}} + J_{\text{class}}\]

各項は以下のように定義される.

\[ \begin{align}\begin{aligned}J_{\text{bb}} = \lambda_{\text{bb}} \sum_{i=1}^{S^2} \sum_{j=1}^B \mathbb{I}_{ij}^{\text{obj}} \|\mathbf{r}_i - \hat{\mathbf{r}}_{ij}\|^2\\J_{\text{conf}} = \sum_{i=1}^{S^2} \sum_{j=1}^B \mathbb{I}_{ij}^{\text{obj}} \left( \text{IoU}_{\text{pred},ij}^{\text{truth}} - \hat{q}_{ij} \right)^2 + \lambda_{\text{noobj}} \sum_{i=1}^{S^2} \sum_{j=1}^B \mathbb{I}_{ij}^{\text{noobj}} \hat{q}_{ij}^2\\J_{\text{class}} = \sum_{i=1}^{S^2} \mathbb{I}_i^{\text{obj}} \sum_{c \in \mathcal{C}} (p_i(c) - \hat{p}_i(c))^2\end{aligned}\end{align} \]

ここで, \(\hat{}\) は予測値を表す.また, \(\mathbf{r}_i = (x_i, y_i, \sqrt{w_i}, \sqrt{h_i})^\top\) および \(\hat{\mathbf{r}}_{ij} = (\hat{x}_{ij}, \hat{y}_{ij}, \sqrt{\hat{w}_{ij}}, \sqrt{\hat{h}_{ij}})^\top\) はバウンディングボックスの座標パラメータベクトルである. \(\mathbb{I}_{ij}^{\text{obj}}\) はセル \(i\)\(j\) 番目の予測器が物体の検出を担当(正解とのIoUが最大)する場合に1,そうでない場合に0となり, \(\mathbb{I}_{ij}^{\text{noobj}}\) はその逆を表す. \(\lambda_{\text{bb}}\)\(\lambda_{\text{noobj}}\) は各項の重要度のバランスを調整するハイパーパラメータである.

3.1.4.2. 物体検出の評価

3.1.4.2.1. バウンディングボックスの一致度 (IoU)

予測された領域 \(\mathcal{R}_p\) と正解領域 \(\mathcal{R}_g\) の一致度は IoU (Intersection over Union) で測定される.

\[\text{IoU}(\mathcal{R}_p, \mathcal{R}_g) = \frac{|\mathcal{R}_p \cap \mathcal{R}_g|}{|\mathcal{R}_p \cup \mathcal{R}_g|}\]

通常, \(\text{IoU} \ge 0.5\) を満たす予測を真陽性 (TP) と判定する.

3.1.4.2.2. 平均適合率 (AP / mAP)

モデルの検出性能は,クラスごとの AP (Average Precision) および全クラスの平均である mAP で評価される.

  1. TP/FPの判定: 予測結果をスコア \(s_{ij}(c)\) の降順にソートし,正解領域との \(\text{IoU} \ge \text{threshold}\) を満たし,かつ未検出の正解に最も近い予測を真陽性 (TP),それ以外を偽陽性 (FP) と判定する.

  2. PR曲線の作成: 上位 \(k\) 個の予測結果における精度 \(P(k)\) と再現率 \(R(k)\) を計算し,PR曲線を描く.

    \[P(k) = \frac{TP(k)}{TP(k) + FP(k)}, \quad R(k) = \frac{TP(k)}{N_{\text{gt}}}\]

    \(N_{\text{gt}}\) は正解の総数)

  3. APの計算: 精度を単調非増加に補間した \(P_{\text{interp}}(r)\) を用いて,PR曲線の下側面積を算出する.

    \[P_{\text{interp}}(r) = \max_{\tilde{r} \ge r} P(\tilde{r}), \quad \text{AP} = \int_{0}^{1} P_{\text{interp}}(r) dr\]
  4. mAPの算出: 全クラス数 \(K\) に対する AP の平均値を求める.

    \[\text{mAP} = \frac{1}{K} \sum_{k=1}^K \text{AP}_k\]