ByteTrack: シンプルな発想で性能と実効速度を向上したtrackingモデル
前回はreal-time性のあるMulti-object tracking (MOT)モデルとしてFairMOTを紹介しました。
aburaku.hatenablog.com
今回はシンプルな方法でさらに性能、実行速度共に大きく向上させたByteTrackを提案した論文、『ByteTrack: Multi-Object Tracking by Associating Every Detection Box』を紹介します。
arxiv.org
論文の概要
既存研究の課題
多くのMOT研究では物体検出のconfidenceが低いboxを捨ててからtrackingを行います。
著者曰く低いconfidenceのboxは必ずしも誤検出とは限らず、occluded(他の物体の陰に隠れている)状態の可能性もあることもあり、これを見逃すことでかえって性能が悪化してしまうということです。
上の図(a)において、時間が経つにつれて他の歩行者に隠れてconfidenceの値が0.9->0.4->0.1と減少している検出があります。
(b)は一般的なtracking手法の結果で、confidenceの低い検出は捨ててしまうので当然trackingの対象外になります。
一方(c)のようにconfidenceの低い検出も含めてtrackingを行うことで、隠れてしまった物体のtrackingを継続できます。これが本論文で提案するBYTEアルゴリズムの基本的なアイデアです。
BYTE
BYTEは以下のように2段階でマッチングを行うアルゴリズムです。
物体検出のconfidenceが一定の値を超えるものと下回るものの2グループに分ける。
カルマンフィルタによって既存のtrackの次のframeでの位置を予測する。
confidenceの高い検出で1段目のマッチング。trackと検出の類似度計算はIoU(boxの重なり度合い)でもRe-Id特徴量のいずれでも可能。※Re-IDについてはFairMOTの記事を参照
confidenceの低い検出で2段目のマッチング。この時はIoUによる類似度計算を行う。confidenceの低い検出は隠れている場合もあるので、visualの情報に依存するRe-IDは適さない。
2段目でマッチングしなかった低いboxはbackgroundと見なして削除する。残ったtrackは30frame保存する。
性能比較
BYTEは既存のtracking手法と組み合わせられる柔軟な手法で、マッチングをBYTEにするだけで性能が向上しています。
また、論文タイトルになっているByteTrackは物体検出モデルとしてYOLOXを採用したもので、これが当時のSoTAになっています。
性能(縦軸)、実行速度(横軸)共に既存研究を圧倒していることがわかります。
感想
驚くほどシンプルな方法ながらも高い性能と実効速度を実現している手法です。
筆頭著者はFairMOTと同じ研究者で、やはりablation studyを丁寧に行っていてわかりやすい論文です。
同じ発想をした人はいたかもしれませんが、ここまで徹底的に研究をできた人がいなかったのだと思います。
ロボット工学で著名な金出教授の『素人発想、玄人実行』という考えを思い出されました。