【YOLOv8】トラッキング

YOLOv8では、2つの方法でオブジェクトトラッキングが可能です。

( YOLOv8解説トップ:【画像認識AI】Ultralytics YOLO v8 解説 )


BoT-SORTとByteTrackが利用可能です。
デフォルトはBoT-SORTです。

ものすごいザックリいうと、
『映像において検出できた物体があり、それと同じ物体が次のフレームで少しだけ位置が変わって検出されている』としたら、「それは同じ物体だろう」ということでラベルを付ける仕組みです。
歩いている人物などをトラッキングすることができます。

目次

YOLOv8 トラッカー比較

BoT-SORTとByteTrackを比較してみます。

スクロールできます
項目BoT-SORTByteTrack
発表年2022年2021年
発表元イスラエル
テルアビブ大学
華中科技大学、
香港大学、
ByteDance Inc. (TikTok)
精度
特徴ByteTrackの改良版(!?)素早い物体のトラッキングに
強い…かもしれない

BoT-SORTはByteTrackよりも新しく、改良版とも言えるようなのでトラッキングするときはBoT-SORTデフォルトのままでよいと思われます。
一方で、UltralyticsのGlenn氏が「素早い物体の検知にはByteTrackを使ってみたらどうか」と提案していたこともあり、BoT-SORTで思ったより成果が出なかった場合はByteTrackを試してみるというのが良いかもしれません。
https://github.com/orgs/ultralytics/discussions/13404

ケースバイケースですが、
生放送などのリアルタイムでのトラッキングが必要なときに ByteTrackを使うことも、あります。

トラッカーの使い方

以下のようにして使用します。 model.track とするだけで、デフォルトトラッカーが適応されます。
※結果を保存したかったので便宜上save=Trueとしています

from ultralytics import YOLO

model = YOLO("yolov8n.pt") 

results = model.track("umineko.mp4", save=True)

YouTube ウミネコ商店さまのライブ配信動画を分析させていただきました。
https://www.youtube.com/@uminekoshouten

※関係者さまへ:あくまで研究的な目的での利用ですが、問題あるようでしたらお問い合わせフォームよりご連絡くださいますようお願い申し上げます。

結果

手前の女性の方が id:1 、奥の女性が id:2 としてトラッキングされています。(2秒差の画像)

  • 2枚目の画像では奥の女性が 評価0.16となっているのですが、この後トラッキングが外れてしまいます。

id:2 だった女性が id:3 の別人として評価されています。
いわゆる”ReID (Re-identification)” 問題ですが、高精度なモデルを使用したり、パラメータを変更することで別人として評価されてしまうことを減らすことができます。

ReIDに関連し、カスタムトラッカーの利用が↓で議論されるなどしています。
https://github.com/ultralytics/ultralytics/issues/8154

YOLOv8での挙動

YOLOv8はYOLOv8、トラッカーはトラッカーとして動くようになっており、

トラッキングしてからYOLOv8…ではなく、全フレームごとにYOLOv8は動いています。
YOLOv8が映像を通して値を持っているわけではなく、トラッカーが id を保存し、通しで効くようにしています。

(というか、YOLOv8は各フレームごとに動くといった方がよいかも)

Pose (姿勢)でも使うことができますが、上記の通り、足首の位置を追いかけてくれているとかそういうのではない…と思っていた方がよいでしょう。

トラッキングテスト

モーニング娘。さんの公式YouTubeにあったダンス動画で検証してみました。
https://www.youtube.com/watch?v=T_t9B87xUBo

※版権関係者さまへ:あくまで研究的な目的での利用ですが、問題あるようでしたらお問い合わせフォームよりご連絡くださいますようお願い申し上げます。

ポーズモデルの、最も制度が高いもので検証しました。トラッキングパラメータはデフォルトです。

イントロ、楽曲の始めの方

id:2 が見て取れます。映像内の左後ろの方のメンバーの方が、id:13やid:14として新しい番号が振られてしまったようです。

中盤

立ち位置がめまぐるしく変わる中で、idが何度も採番され続けているようです。id:111まで見て取れます。

最後

センター「id:310」までカウントされています。順番に採番されたのであれば、
ステージ上には10人のメンバーしかいないのですが、310人はいると推定できた?ようです。

デフォルトの設定しかしてないので、こんなところかなと。
フラッシュの多いライティングであること、位置の入れ替わりが多いことなどが分かっているので、それに合わせたチューニングをすることにより、もっと精度が上がるかなと思います。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次