AI Car 第二次展示報告
實現(xiàn)的功能
功能介紹
目標跟蹤算法
理論基礎(chǔ)
我們的算法是基于光流法的。
光流法是一種圖像中物體運動的表達方式,即目標、場景或者攝像機的運動或者任意兩者的運動所導致的兩幀圖像之間目標的運動。其運動的判定方法是判斷兩張圖里面相似像素數(shù)據(jù)的時域和相關(guān)性等來獲取圖片中的運動關(guān)系。想要讓這個方法可用,需要在亮度、時間與空間這三方面滿足條件,具體而言:
- 亮度:相鄰兩幀像素強度不發(fā)生變化或者變化較少,這個前提是為了保證算法能夠識別出相鄰兩幀圖片中相同物體的像素
- 時間:相鄰兩幀之間時間較短,這個前提是為了使得物體運動變化較小,因為相同像素的識別是基于一定是時域與空間的,并且也能適當減少亮度的變化
- 空間:相鄰像素具有相似運動,這個前提是為了使得算法能夠找出物體的整體運動方向,對相鄰空間的像素點運動方向進行一個聚合操作。
在目標檢測中,光流法假設(shè)圖像中的每個像素點都有一個速度矢量,于是就形成一個運動矢量場,在某一特定時刻,圖像上的點就與實際物體上的店一一對應(yīng),根據(jù)這些速度矢量特征,可以對其進行運動檢測。若圖中沒有運動目標,那么光流矢量在整個圖像區(qū)域中的變化是連續(xù)的,但有運動物體存在時,目標和背景中就有著相對運動,這兩者的矢量運動方向必然存在著不同,由此就可以檢測出運動物體的對應(yīng)像素,從而得出運動物體識別結(jié)果。
算法實現(xiàn)
本算法實現(xiàn)是基于論文Two-Frame Motion Estimation Based on Polynomial Expansion,具體描述如下:
對于每一張圖片,都能用如下公式將其表示出來:
[圖片上傳失敗...(image-791a16-1514163523826)]=x{T}A_{1}x+b_{1}{T}x+c_{1})
同理,對于下一幀圖片,我們假設(shè)其函數(shù)表達式不變,只是其中每個像素點發(fā)生了位移,那么就得到下式:
拆開合并同次項可以得到:
變換成 [圖片上傳失敗...(image-e951d6-1514163523826)]) 的形式可以得到:
[圖片上傳失敗...(image-ae44ef-1514163523826)]=x{T}A_{2}x+b_{2}{T}x+c_{2})
二次項系數(shù)顯然沒有變化,我們的核心在于一次項系數(shù)的改變。由于兩式的對應(yīng)系數(shù)要相等,對于一次項系數(shù),我們可以建立如下恒等關(guān)系:
[圖片上傳失敗...(image-7bee4-1514163523826)]
化簡得:
[圖片上傳失敗...(image-54a459-1514163523826)])
對其進行變量替換可以得到:
![A(x)d(x)=\Delta b(x)]=(https://latex.codecogs.com/gif.latex?A(x)d(x)=%5CDelta%20b(x))
但是,由于實際圖像的變化并不完全滿足*f(x)*的函數(shù)關(guān)系,因此,我們的目標在于使等式左右兩邊的差值最小化,具體而言,也就是最小化下式:
其中的各項系數(shù)均是可以直接從圖片信息中計算出來的,對于權(quán)重,使用常用的機器學習中的梯度下降法等就可以將其求出來。
實現(xiàn)效果
[視頻地址](https://github.com/KunlinY/AICar/tree/master/2 %20Presentation)
未來展望
- 實現(xiàn)語音識別功能
- 實現(xiàn)自動化識別物體功能