生の IoU は一致度ではない
アノテーター間の平均 IoU は、典型的な検出コーパスでは 0.95 前後になります。画像を一度も見ていないアノテーターでも同じです。偶然一致補正された代替がどんなものか、そして IoU 距離上の Krippendorff's α がなぜ機能しないのかを説明します。
アノテーター間一致度を報告するコンピュータビジョンのアノテーションプラットフォームは、どれもそれをクラスごとの閾値に対する生の IoU として報告します。CVAT の合意エンジンもそうです。V7 の合意ステージもそうです。Label Studio Enterprise の指標一覧は、完全一致、数値差、IoU、スパンの重なりです。
いずれも偶然一致補正を適用しておらず、それがなければその数値は見かけどおりの意味を持ちません。
問題を具体的に
各画像に大きめの、おおよそ中央に置かれた対象が一つ写っている検出コーパスを考えてください。二人のアノテーターがどちらもその周りにボックスを描きます。ボックスは大きく重なり、平均 IoU は 0.95 前後になり、ダッシュボードは一致度が優秀だと表示します。
ここで一方のアノテーターを、画像を見ずにどの画像でも真ん中にボックスを描く処理に置き換えてみてください。平均 IoU は 0.9 前後のままです。
この測度が報告しているのは、アノテーターの性質ではなくコーパスの性質、つまりその課題がどれだけ制約されているかです。これは、一つのクラスが支配的なときにカテゴリラベルで一致率が起こす失敗とまったく同じであり、そちらでは Cohen が 1960 年に κ を導入して以来理解されてきました。
空間アノテーションには、それに相当する修正が来ないままでした。
素直な修理は機能しない
Krippendorff's α は任意の距離関数を受け付けます。だから素直な手は 1 − IoU 上の α であり、それが当初の計画でした。
これは構造的な理由で失敗します。α は 1 − D_o/D_e を計算しますが、D_e は無作為な組み合わせの下での期待される不一致です。IoU 距離は [0, 1] に収まり、無作為に組み合わせた二つのボックスはほぼ必ず IoU が 0 です。そのため D_e はおよそ 1 に潰れ、係数全体が偶然一致補正を内に持たない 1 − 観測距離の平均 に退化します。
問題はもう一つあります。IoU はアノテーターが不一致を起こすまさにその領域で平坦なのです。重ならない二つのボックスは、接していようが画像の対角にあろうがスコアは 0 です。この測度は、肝心な領域で勾配を持ちません。
これは理論上の異議にとどまりません。Braylan、Alonso、Lease(WWW 2022)は、得られた一致度スコアがアノテーターの品質を正しく順位づけできるか——おそらく唯一重要な性質です——で候補の距離関数を評価し、バウンディングボックスでは α が単純な L2(0.687)を IoU(0.505)や GIoU(0.507)より上に置くことを見出しました。これは彼ら自身の分布ベースの指標が与える順序を、そして実務者が与える順序を逆転させます。
代わりに何を報告するか
σ です。α の形を保ちつつ、偶然のベースラインを経験的に推定します。
σ = 1 − mean(within-item distance) / mean(between-item distance)
要となる変更は分母です。無作為な組み合わせの分布を仮定するのではなく、異なる項目のアノテーションを比べます。これは「同じものを見ていなかったなら、このアノテーターたちはどれだけ離れていたか」への経験的な答えを与えます。偶然のベースラインとは本来そういうものです。
| σ | 読み方 |
|---|---|
| 1.0 | 完全一致 |
| 0.0 | 無関係な画像にアノテーションするのと変わらない |
| 0 未満 | 別々の画像より同じ画像上のほうが系統的に離れている |
負の値は丸め上げません。「別々の画像上より同じ画像上のほうが離れている」は実在し、かつ診断できる状態であり、ほとんどの場合それはアノテーターが不注意なのではなくガイドラインが曖昧だということです。隠しても誰の得にもなりません。
σ と並べて、項目内距離と項目間距離の分布同士の二標本コルモゴロフ–スミルノフ統計量も報告します。σ は二つの平均を比較するので外れ値に引きずられますが、KS は分布全体を比較します。両者が食い違うときは、一部の項目が不一致の大半を担っているということであり、どの項目を開けばよいかが分かります。
そもそも一つの数値では足りなかった
正しく偶然一致補正したとしても、単一の空間一致度の値では、三つのうちどれが崩れたのかを言えません。
- 検出。 そもそも同じ対象を見つけたのか。
- 分類。 対応づいた対象に同じラベルを与えたのか。
- 位置決め。 対応づいた対象は同じ位置にあるのか。
すべての対象を見つけて全部ラベルを取り違えるアノテーターは、ラベルは正しいがボックスが緩いアノテーターとはまったく別の問題です。対処法も異なります。だからこの三つは別々に報告します。
マスクと 3D には専用の道具が要る
ピクセルマスクでは、「彼らは一致しているか」と「データセットは誰の境界を記録すべきか」は別の問いです。後者に答えるのが STAPLE で、潜在的な合意境界を、アノテーターごとの感度と特異度とともに推定します。この二つを別々に報告するのは、過小分割と過大分割では修正の方向が正反対だからです。
STAPLE はまた、票を数えるのではなく実証された信頼性で重みづけます。これは丁寧なアノテーターが数で劣るときに効いてきます。丁寧な二人が雑な三人に対したとき、多数決は正解に対して Dice 0.846、STAPLE は 1.000 でした。
3D の直方体には厳密な回転 3D IoU を使ってください。軸に平行な近似は、平坦な自動車データには十分でも、ドローン、手持ち、屋内スキャンでは誤りであり、測度そのものに由来する不一致を作り出してしまいます。
なぜ今になったのか
正直な答えは、まずバグがあったということです。Potato の裁定はアノテーションのキーを比較しており、画像スキーマはすべてを _data という一つのキーの下に格納します。どの画像ペアも一致度 1.0 になっていました。何一つ一致していない二人のアノテーターが全員一致に見え、レビューに回された画像は一枚もありませんでした。
これを直すには、本来どんな数値であるべきかを問う必要があり、ジオメトリについて文献に定まった答えはありません。これが我々の答えであり、限界も明示しておきます。時間区間については現在のところ補正なしの指標だけを出しています。クリップの長さが異なるとき、「別のクリップの区間」は意味のある偶然比較にならないからです。