韓贊 祁晉東 張禧龍
(西藏大學,西藏拉薩 850011)
視頻目標檢測是近幾年計算機視覺領域中最為活躍的分支,視頻檢測可以很精確地檢測到目標的狀態(tài),在視頻目標檢測的基礎上,利用目標的特征,可以為科學實驗準備好的素材,提供精確的預判,讓科學研究更加完善和深入;對于視頻目標檢測而言,運用幀間差法、光流法等方法,很大概率實現(xiàn)該有的效果,為學習研究提供大量的資料,實現(xiàn)合理化的評估預算。
在運動目標檢測中,視頻檢測是至關重要的,而運用好的方法對于這些數(shù)據(jù)進行收集及分析的話,得到的信息的價值是十分可觀的。而對于各種科研實驗都在不斷地出現(xiàn)和完善,而有的實驗需要許多的數(shù)據(jù),而有一個好的視頻監(jiān)控預測,進行檢測目標的軌跡刻畫,并進行收集,加上合理的分析運用,得到的成果就顯而易見。
總的來講,如果能對視頻目標進行很好的收集和分析,可以最大程度的節(jié)省精力,提供精準的實驗資料,使所需實驗推向更深層次,得到理想的結果,避免不必要的麻煩,提高安全性能,盡最大可能提取所需要的信息,使使用價值達到最大化。
二幀差分法是通過計算相鄰兩幀圖像之間的差值來獲取運動區(qū)域,由兩幀之間的差值判斷運動范圍;當檢測視頻中出現(xiàn)相對運動物體時,兩幀之間相減,得到差值的絕對值,用閥值來判斷存在的運動物體。三幀差分法是在二幀差分法的基礎上進行改進,將相鄰的三幀圖像歸為一組進行差分,從而得到運動物體軌跡上的細微變化。
選擇圖像的連續(xù)三幀I(j-1)、I(j)、I(j+1)。
計算相鄰兩幀差值:
選擇閥值T,進行二值化:
在每一個像素點(x,y)將得到二值圖像邏輯相“與”,得到三幀圖像中的中間幀的二值圖像:
腐蝕:用3×3 的結構元素去掃描圖像的每一個像素點,與其覆蓋的二值圖像做邏輯“與”,從而使二值圖像減少一圈。用公式表示為:
X 腐蝕B:E(x)={a|ba?X},如圖1 所示:
圖1
膨脹:用3×3 的結構元素去掃描圖像的每一個像素點,與其覆蓋的二值圖像做邏輯“或”,從而使二值圖像擴大一圈。可以看作是腐蝕的對偶運算,用公式表示:
如圖2 所示:
圖2
2.1.1 研究思路
首先進行視頻目標檢測,編寫各個板塊代碼,在重疊或者不明顯的片段進行顏色區(qū)分,再把各個板塊進行測試,然后合成主板塊,進行板塊與板塊間的合理區(qū)分,使用大量視頻目標驗證分析,進行一定程度的優(yōu)化,加強各個板塊間的分辨率,得到相應的基礎數(shù)據(jù)。
合理運用數(shù)學方法進行目標軌跡運算,并預判在短時間內(nèi)將發(fā)生的軌跡圖像,在兩個相似視頻物件中提取不同之處,在取定一個視頻目標為模板,進行合理的修改并完善,且檢測視頻間的斷流層,并進行高度還原,可以用不同時間階段的模板,進行長期分析觀察,進行數(shù)據(jù)整理并收集。
2.1.2 研究方法
可以運用Python,MATLIB 等軟件進行數(shù)學編譯,在一定程度上進行規(guī)劃,并反復進行視頻目標調(diào)控,運用大量的視頻進行測試,并記錄數(shù)據(jù),觀察數(shù)據(jù)之間的聯(lián)系,進行系統(tǒng)優(yōu)化調(diào)整,進行每個步驟的連接和運用,然后把每個版塊進行串聯(lián),運用合理的代碼進行計算分析,達到可實行的效果。
幀間差分法:利用視頻序列中連續(xù)兩幀間的變化來檢測靜態(tài)場景下的運動目標,運用圖像序列中的第k 幀和第k+1 幀中像素點(x,y)的象素值,刻畫出視頻目標的軌跡模擬,時間間隔小則目標位置越精確,得到的圖像更具體現(xiàn)象。
光流法:微分法,快匹配法,基于能量的方法,基于相位的方法。有兩種假設:強度不變,全局光滑。在不同時刻的像素值需要向前加一個時間段,則產(chǎn)生光流場,得到平滑的軌跡圖像。
背景減除法:通過判定灰度等特征的變化,或用直方圖等統(tǒng)計信息的變化來判斷異常情況的發(fā)生和分割出運動目標。特別針對微小重復運動的場合,運用無參的核密度估計方法對視頻目標進行統(tǒng)計分析。
總的來說,由于幀間差分法的計算簡單、復雜度低的優(yōu)良性質(zhì),軌跡跟蹤算法需要以幀間差分法為主體,再結合各個方法的優(yōu)良性質(zhì),得到很精確的軌跡分析及模擬。
重點在于錄制視頻的機械對光的捕捉效應是否明顯,視頻中目標變化是否緩慢,是否受斷流層的影響,是否存在目標形狀變化巨大,是否產(chǎn)生不可控因素對視頻目標造成干擾,得到不確定的數(shù)值,而產(chǎn)生特殊值影響普遍結果,各個程序之間的鏈接是否會因為一小點誤差出現(xiàn)運行失誤,分析出來的總模板是否因為子模板錯誤而產(chǎn)生偏差,難點也在于此。
而視頻目標的處理也是難點。首先要進行視頻目標的單一提取,排除光線變化;如果存在多個目標的話,目標之間會產(chǎn)生信號干擾,嚴重的話會產(chǎn)生信息混亂,導致表達效果出現(xiàn)偏差,讓重要的信息發(fā)生了遺漏,讓已經(jīng)出現(xiàn)的目標不能被檢測;還有就是多個目標是否存在重疊,在重疊部分產(chǎn)生軌跡陰影,影響系統(tǒng)分析識別。
由于大家采用了光流法、背景減除法,大部分都是用matlab來做,效果并不是很好,并且運算量大,結果模糊,操作繁瑣,檢測還單一,運動軌跡過于簡單等缺點?;谏厦娴谋尘跋?,采用python 來做,可以減少運算時間,運行效率,得到更加準確清晰的結果,并改進及優(yōu)化了算法,能合理的運用幀間差分法去進行視頻的預判,評估,還原,這樣就可以提供大量的數(shù)據(jù),并進行分析和處理,從而檢測出視頻運動目標,運用python 中幀函數(shù)模擬其運動軌跡,解決視頻運動的物體軌跡。
首先熟練運用Python ,MATLAB 構思數(shù)據(jù)代碼,準備相應的視頻材料,收集可靠的數(shù)學方法,進行實驗前的有效調(diào)控,擬定各個步驟的計劃,達到運用于實踐中的要求,并盡量完善系統(tǒng)方法。
然后進行相關數(shù)據(jù)的收集,得到可觀的實現(xiàn)可能性,進行任務分工,主要分為材料的收集,檢測視頻是否存在錯誤斷層,如果有,編寫相應還原視頻的代碼,檢測視頻光線差異變化,運用代碼進行調(diào)控,提煉視頻目標信息,變成簡單方便的二維線性關系并計算相對運動物體的運動速率,并刻畫運動物體軌跡,在短時間范圍內(nèi),進行未發(fā)生運動物體的軌跡預算;在此基礎上,可以分辨兩個相似物之間的不同點,從而標記,得到不同數(shù)據(jù)類型。
最后進行實驗評估,得到相應實驗數(shù)據(jù),調(diào)試系統(tǒng),減少誤差,調(diào)節(jié)各個模板的契合度,加大對特殊值和特殊環(huán)境的處理,達到系統(tǒng)成功運行,并能使用。
圖3 三幀差分法
圖4 彩色差分法
圖5 軌跡模擬畫圖
圖6 總流程圖
實驗在windows10 系統(tǒng)下,使用IDLE (Python 3.7 64-bit)編程實現(xiàn)的,本次實驗程序需要環(huán)境配置pip install numpy,pip install opencv-python,pip install matplotlib。
以下截圖來源為本人錄制,用了很多視頻素材進行驗證測試,進行代碼調(diào)試,改進,優(yōu)化,選取運動目標檢測最為明顯片段。
圖7 是視頻運動檢測,小球為檢測到的運動物體,藍圈表示跟蹤運動物體,該圖完全實現(xiàn)了幀間差分法對運動物體的檢測;根據(jù)跟蹤的運動物體,刻畫出的小球運動軌跡,每幀停留時間:單位ms,100ms 即10fps 即每秒十幀,有空隙的地方表示該運動物體在該幀與前一幀中物體沒有運動。
圖7 視頻運動檢測示意圖
本次研究運用了三幀差分法、二幀差分法、彩色幀間差分法、運動軌跡算法等,完全實現(xiàn)了視頻目標檢測及軌跡模擬刻畫??梢赃\用在視頻運動目標檢測;可以安裝攝像頭,對需要的目標進行監(jiān)控,特別是需要刻畫運動軌跡的視頻;也可以用于視頻有效存儲,剔除視頻中無運動物體部分,從而釋放存儲空間。但由于本次研究主要使用了幀間差分法,視頻需要機位固定,不然整個視頻圖像在檢測時,每一個像素點都是運動的,這是需要進一步改進和完善的地方。