ようやく花粉症のピークも過ぎたでしょうか。連休明けまで気が抜けない方もいらっしゃるかと思います。最近は黄砂も影響するでしょうか。花粉や黄砂の密度の薄いところで暮したいものです。という訳でもないのですが、今回は物体の追跡です。
物体の追跡とは
ある画像の中で注目したい物体の位置を特定するのは、物体検知など定番の技術です。
次に動画を考えたときに、次のフレームでも同じことをして、さらに前のフレームと検知したものが同一か判断することが求められます。
使うだけならそれほど困らない
追跡機能を持つYOLOを試してみることにしました。ずいぶん昔に試したころは物体検出までしかできない時代だったのですが、しばらく見ていない間にずいぶん進化しています。同時に使い勝手も良くなったようです。
ソースはこちら
この中の track_video_write.py
が目的のものになります。あとは、書きちらかしたものなので、気にしないでください。
今回のポイント
動画は自前で用意してもいいのですが、準備するのも大変ですよね。ということで、YouTubeを利用したいと考えました。探してみると同じことを考えている人は多く参考にさせてもらいました。
動画のソースはこのあたりで使い分けます。とりあえずは、自前の動画ファイルを利用するようにしていますが、YouTubeを利用したい場合は適宜コメントアウトの位置を変更してください。
# Open youtube
#video_url = "https://youtu.be/xxxx"
#video = pafy.new(video_url)
#best = video.getbest(preftype="mp4")
# Open Video
video_path = "video1.mov"
#open
#cap = cv2.VideoCapture(best.url) # or video_path
cap = cv2.VideoCapture(video_path) # or video_path
こんな感じで動きます、とサンプルとか載せたいところですが、著作権とかあるし、自前のはいろいろ恥しいので、ぜひお手元の動画で試してみてください。
おわりに
YOLOを見るまではちょっと大変かもなと思っていたんですが、ほぼサンプル通りで労せずできることがわかりましたので、忘れないように自分のメモです。