- YOLOv3は物体検出モデルの複数の設計変更をまとめた。
- COCOの320×320入力ではAP28.2、推論時間22ミリ秒と報告した。
- 入力解像度とAPの定義を変えると、速度と精度の見え方も変わる。
何を確かめた研究か
写真や映像から物体の位置を見つけるには、正確さと速さの両方が必要だ。YOLOv3の技術報告は、従来版に複数の変更を加えた検出器を、当時の他手法と比べた。単一の新原理を主張するより、実測の速度と検出精度の折り合いを示す報告である。
どう検証したか
物体ごとの確率を扱う方法、異なる大きさの物体に対応する複数スケールの予測、特徴抽出ネットワークなどを変更した。COCOの物体検出で、入力画像を320、416、608画素の設定に変えて評価した。検出精度はCOCO標準のAPと、重なり率の閾値を0.5に置くAP50を分けて記した。推論時間は論文図1のGPU条件で報告されている。
物体検出のAPは、正しい物体かだけでなく、予測した枠と正解の枠がどれほど重なるかにも左右される。AP50は重なり率0.5の条件を使う一方、COCO標準APは複数の閾値をまとめる。後者の方が枠の位置に厳しい条件も含むので、同じモデルでも値が異なる。
何が分かったか
図1では320×320入力のYOLOv3はAP28.2で22ミリ秒、416入力は31.0で29ミリ秒、608入力は33.0で51ミリ秒。大きい入力ほどAPが上がる一方、処理は遅くなった。AP50では608入力のYOLOv3が57.9、51ミリ秒、比較したRetinaNetは57.5、198ミリ秒だった。この比較に限れば近いAP50で約3.8倍速い。ただし、同じ図のCOCO標準APではYOLOv3-608が33.0で、RetinaNet-101-800の37.8より低い。どのAPを使うかで「精度が同程度」の意味は変わる。
図1の比較には、入力画像の大きさが同じでない相手も含まれる。RetinaNet-101-800の800という設定とYOLOv3-608を比較する際は、各モデルが選んだ速度と精度の点の比較であると読む。モデル構造だけを入れ替えた厳密な比較実験とは異なる。
限界は何か
この論文は小さな設計変更を合わせた技術報告で、各変更だけの寄与を完全に切り分ける試験ではない。図1の時間は当時のGPUと実装に依存する。映像入力の読み込み、前処理、表示まで含む利用者体験の遅延ではない。COCOの物体分布を離れた現場の画像では、再評価が要る。
仕事との接点
物体検出AIを選ぶなら、目標とする端末と解像度で処理時間を測り、見逃しが問題になる物体別の精度も調べる。APとAP50を取り違えず、同じデータ・同じ評価条件で比較する。これは論文の読み方から導く編集部の提案で、2018年のGPU速度を現在の製品値にはしない。