Meta推出像素級(jí)動(dòng)作追蹤模型,簡(jiǎn)易版在線可玩
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
視頻動(dòng)作跟蹤,已經(jīng)精確到了每個(gè)像素!
Meta最新推出的視頻跟蹤工具CoTracker,發(fā)布沒多久就在GitHub上斬獲了1.4k星標(biāo)。
從官方發(fā)布的幾個(gè)DEMO來看,效果還是很震撼的。
一場(chǎng)馬術(shù)比賽中,馬匹在騎手的操縱下優(yōu)雅地跨過障礙,畫出了優(yōu)美的弧線。
還有一架帆船乘風(fēng)破浪,仿佛捉住了風(fēng)的影子。
另一邊,一位跳傘運(yùn)動(dòng)員從空中劃過,留下了一道絢麗的彩虹……
對(duì)這個(gè)新“玩具”,有網(wǎng)友評(píng)論說,它不僅能改變物體追蹤技術(shù),也將在體育(動(dòng)作)分析、野生動(dòng)物追蹤,甚至電影后期領(lǐng)域掀起一場(chǎng)新的革命。
我們也第一時(shí)間上手試玩了一下線上的簡(jiǎn)易版本,下面就一起來看看吧。
精準(zhǔn)記錄像素軌跡
首先有請(qǐng)四川知名網(wǎng)紅、熊貓界的當(dāng)紅炸子雞“果賴”隆重登場(chǎng)。
只見花花六親不認(rèn)的步伐被CoTracker整個(gè)記錄了下來,真的是太可愛了。
不過要論戲劇性的話,可能還得是我們的“西直門三太子”萌蘭。
看完了可愛的胖達(dá),接下來就要進(jìn)入整活環(huán)節(jié)了,來點(diǎn)名場(chǎng)面!
這個(gè)就不用再多介紹了吧(確信)。
除了上面的這位老朋友,還有王境澤吃炒飯的鏡頭。
只見他手上誠(chéng)實(shí)的動(dòng)作在CoTracker面前暴露無遺。
而在地球的另一邊,馬斯克正在直播用FSD開著特斯拉去找小扎,準(zhǔn)備進(jìn)行一番親切友好的交流。
CoTracker的效果就展示到這里了,朋友們?nèi)绻肟雌渌Ч梢宰约和嫱婵础?/p>
傳送門:https://huggingface.co/spaces/facebook/cotracker
不過,在線DEMO是個(gè)簡(jiǎn)易版本,還不支持自定義跟蹤位置,只能根據(jù)輸入的跟蹤數(shù)量等距分配。
但是如果自己部署、用代碼操縱的話,就可以設(shè)置任意跟蹤點(diǎn)了。
說到這我們正好來看一下CoTracker該怎么部署。
首先是Colab版本,我們剛剛說到的自定義跟蹤點(diǎn)也在Colab當(dāng)中。
傳送門:https://colab.research.google.com/github/facebookresearch/co-tracker/blob/master/notebooks/demo.ipynb
Colab的過程不必過多介紹,進(jìn)入之后運(yùn)行筆記中的代碼就可以了。
而如果想自己動(dòng)手的話,最簡(jiǎn)單的方式是從torch.hub中直接調(diào)用已完成預(yù)訓(xùn)練的版本。
pip install einops timm tqdm
import torch
import timm
import einops
import tqdm
cotracker = torch.hub.load("facebookresearch/co-tracker", "cotracker_w8")
如果要對(duì)模型進(jìn)行評(píng)估或訓(xùn)練,那么使用GitHub Repo更為合適。
首先要安裝一下程序和相關(guān)依賴:
git clone https://github.com/facebookresearch/co-tracker
cd co-tracker
pip install -e .
pip install opencv-python einops timm matplotlib moviepy flow_vis
然后下載模型:
mkdir checkpoints
cd checkpoints
wget https://dl.fbaipublicfiles.com/cotracker/cotracker_stride_4_wind_8.pth
wget https://dl.fbaipublicfiles.com/cotracker/cotracker_stride_4_wind_12.pth
wget https://dl.fbaipublicfiles.com/cotracker/cotracker_stride_8_wind_16.pth
cd ..
有關(guān)評(píng)估和訓(xùn)練的方式,可以到GitHub項(xiàng)目頁來查看,鏈接放在了文末。
那么,CoTracker又是怎么實(shí)現(xiàn)像素級(jí)追蹤的呢?
評(píng)分超過DINOv2
雖然都是追蹤,但CoTracker和物體追蹤模型有很大區(qū)別。
CoTracker并沒有基于語義理解對(duì)視頻中物體進(jìn)行分割的過程,而是把重點(diǎn)放在了像素點(diǎn)上。
底層方面,CoTracker采用了Transformer架構(gòu)。
Transformer編碼了視頻中點(diǎn)的跟蹤信息,并迭代更新點(diǎn)的位置。
推理上,CoTracker還采用了一種窗口機(jī)制,在時(shí)間軸上劃分出滑動(dòng)窗口。
CoTracker使用上個(gè)窗口的輸出對(duì)后面的窗口進(jìn)行初始化,并在每個(gè)窗口上運(yùn)行多次Transformer迭代。
這樣就使得CoTracker能夠?qū)ΩL(zhǎng)的視頻進(jìn)行像素級(jí)跟蹤。
總之,經(jīng)過一番訓(xùn)練之后,CoTracker取得了一份不俗的成績(jī)單。
在FastCapture數(shù)據(jù)集測(cè)試上,CoTracker的成績(jī)?cè)谝槐娔P椭忻摲f而出,其中也包括Meta自家的DINOv2。
總之,喜歡的話,就趕緊體驗(yàn)一下試試吧!
論文地址:https://arxiv.org/pdf/2307.07635.pdfGitHub項(xiàng)目頁:
https://github.com/facebookresearch/co-tracker