導(dǎo)讀
使用光流 + CNN的方法來(lái)預(yù)測(cè)車輛的速度,用PyTorch實(shí)現(xiàn),有代碼。
代碼:https://github.com/SharifElfouly/vehicle-speed-estimation
我想要解決的問題是:在一輛車?yán)镉幸粋€(gè)攝像頭,我想知道車開得有多快。你顯然不能看速度表,只能看視頻片段本身。深度學(xué)習(xí)魔法應(yīng)該能幫助我們。
數(shù)據(jù)
我有兩個(gè)不同的視頻。一個(gè)用于訓(xùn)練,另一個(gè)用于測(cè)試。訓(xùn)練視頻有20399幀,測(cè)試視頻有10797幀。視頻下載地址:https://github.com/commaai/speedchallenge。下面是一些例子:
視頻中的樣本圖像
訓(xùn)練視頻的標(biāo)簽是a .txt文件,其中每一行對(duì)應(yīng)于特定幀的速度。
方法
這個(gè)問題最有趣的地方是你的神經(jīng)網(wǎng)絡(luò)輸入會(huì)是什么樣子。僅從一個(gè)靜態(tài)圖像計(jì)算速度是不可能的。一種有效的方法是將兩個(gè)或更多的圖像堆疊在一起,或者像LSTM或Transformer那樣連續(xù)地堆疊。另一個(gè)是計(jì)算光流,我決定用它。
什么是光流?它基本上是一種為每個(gè)像素計(jì)算矢量的方法,告訴你兩幅圖像之間的相對(duì)運(yùn)動(dòng)。有一個(gè)很棒的computerphile視頻:https://www.youtube.com/watch?v=4v_keMNROv4,你可以了解更多細(xì)節(jié)。有一些“經(jīng)典”的計(jì)算機(jī)視覺算法可以用來(lái)計(jì)算光流,但深度學(xué)習(xí)已經(jīng)變得更好了(這一點(diǎn)也不奇怪)。那么什么是SOTA方法,讓我們看看paperswithcode:
RAFT 看起來(lái)不錯(cuò),它還有PyTorch的實(shí)現(xiàn)。我forked原始存儲(chǔ)庫(kù),并使其更簡(jiǎn)單一些。我不需要訓(xùn)練,評(píng)估等等。我只會(huì)用它來(lái)推理。
計(jì)算光流
為了進(jìn)行推斷,網(wǎng)絡(luò)將兩幅圖像拼接起來(lái),并預(yù)測(cè)了一個(gè)維度為*(2, image_height, image_width)*的張量。如前所述,圖像中的每個(gè)像素對(duì)應(yīng)一個(gè)二維向量。我們將在實(shí)際訓(xùn)練中使用這些文件,因此我們將它們保存為.npy文件。如果你想象光流圖像它會(huì)是這樣的:
訓(xùn)練
記住我們訓(xùn)練的目的:
光流→模型→車速估計(jì)
我選擇的模型是EfficientNet。我非常喜歡它,因?yàn)樗目蓴U(kuò)展性。它有8個(gè)不同的版本供你選擇,最大的一個(gè),EfficientNet-B7仍然非常非常好。你可以從一個(gè)像B0這樣的小變體開始,然后如果一切工作正常,你有一個(gè)足夠好的GPU,你可以選擇一個(gè)更大的。還有一個(gè)PyTorch庫(kù),我會(huì)使用它來(lái)非常容易地加載預(yù)先訓(xùn)練好的網(wǎng)絡(luò)模型,地址:https://github.com/lukemelas/effecentnet-PyTorch。如果你打開[train.ipynb](https://github.com/sharifelfouly/vehicle-speed - estimate),你就可以看到訓(xùn)練是如何運(yùn)作的。
我總是從B0開始,然后放大到B3,因?yàn)槲业腉PU只有6 GB內(nèi)存。經(jīng)過訓(xùn)練,我得到如下結(jié)果(loss為均方誤差):
訓(xùn)練損失
驗(yàn)證損失
很好,看起來(lái)一切都很正常!訓(xùn)練和驗(yàn)證損失都在降低,網(wǎng)絡(luò)沒有過擬合。
結(jié)果如下:
雖然不完美,但它確實(shí)有一些用
總結(jié)
我通常不太喜歡特征工程,但我認(rèn)為在這種情況下它做得很好。下一步是嘗試一些序列化的東西,比如Transformer或LSTM。
英文原文:https://medium.com/@selfouly/vehicle-speed-estimation-from-video-using-deep-learning-18b41babda4c
責(zé)任編輯:xj
原文標(biāo)題:使用深度學(xué)習(xí)從視頻中估計(jì)車輛的速度
文章出處:【微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132842 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5510瀏覽量
121343 -
cnn
+關(guān)注
關(guān)注
3文章
353瀏覽量
22267
原文標(biāo)題:使用深度學(xué)習(xí)從視頻中估計(jì)車輛的速度
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論