天天看點

基于均值漂移的視訊目标跟蹤算法的研究

背景介紹

計算機視覺作為一門多技術融合的學科,涉及模式識别和視訊圖像處理等衆多領域。基于視訊的目标檢測與跟蹤技術是計算機視覺領域中最主要的研究方向之一,它是智能監控、移動機器人視覺導航以及人機互動等應用的基礎和關鍵技術。盡管視訊目标跟蹤技術已經發展了近30年, 但仍是計算機視覺分析技術研究最大難題之一,這主要是由于實際場景中經常存在光照強度變化、錄影機抖動、噪聲幹擾、目标被遮擋等問題, 使得視訊目标跟蹤研究面臨着許多的困難和挑戰。是以,研究一種魯棒性較強且準确性和穩定性較高的視訊目标跟蹤技術是目前該研究領域中的難點和熱點。

針對這些問題,在多種跟蹤方法中均值漂移法由于其實時性較好,具有快速搜尋的優點,且易于其他算法融合,在目标跟蹤領域得到了廣泛應用。均值漂移法應用到視訊目标跟蹤領域的關鍵為:采用顔色特征機率密度的方法來表述跟蹤目标,然後利用均值漂移思想疊代至相似性函數局部極值點,即目标的真實位置,達到跟蹤的目的。

實驗資料集

本次實驗選擇OTB資料集(http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html)

(如圖3所示) 中的Walking, 資料集一共有412張圖檔, 每張圖檔的分辨率為768×576, 如圖4

所示。

基于均值漂移的視訊目标跟蹤算法的研究

實驗結果

(1)在第一幀用滑鼠選擇框出目标區域(最右側的那個人) , 如圖5所示

基于均值漂移的視訊目标跟蹤算法的研究

按回車或空格鍵即可開始目标跟蹤, 如圖6所示。

基于均值漂移的視訊目标跟蹤算法的研究

(2)在第一幀中用滑鼠框出另一個目标區域(另一個人) , 如圖7所示。

基于均值漂移的視訊目标跟蹤算法的研究

按回車或空格鍵即可開始目标跟蹤, 如圖8所示。

基于均值漂移的視訊目标跟蹤算法的研究

具體的目标跟蹤結果視訊都在附件中。

實驗結果

所選擇的視訊中有兩個人, 是以本實驗通過分别選取兩個目标來進行對算法的測試。 從實驗結果來看, 第二個人在經過複雜背景時(一排車前面) 時, 算法都能很好的跟蹤目标, 展現了程式具有較好的魯棒性。但是在最後一秒處,出現跟丢的情況,說明程式還存在不足。主要不足之處有: 直方圖特征在目标顔色特征描述方面顯得匮乏,缺少空間位置資訊, 在背景顔色跟目标顔色相近時, 會導緻目标跟蹤定位不準确, 可能會出現目标跟丢的情況

具體代碼

import cv2
import os

#  Walking
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('Walking_output2.avi',fourcc,10,(768,576))
tracker = cv2.TrackerCSRT_create() #  跟蹤器
base_path = "D:\\\\Walking\\img"
for i in range(412):  #  擷取每幀
    if i < 9:
        path = "000" + str(i+1) + ".jpg"
        path = os.path.join(base_path,path)
    if i >= 9 and i < 99:
        path = "00" + str(i+1) + ".jpg"
        path = os.path.join(base_path, path)
    if i >= 99:
        path = "0" + str(i+1) + ".jpg"
        path = os.path.join(base_path, path)
    image = cv2.imread(path)
    if i == 0:
        bbox = cv2.selectROI(image, False)  #  滑鼠標明要追蹤的目标
        tracker.init(image,bbox) #  根據目标初始化追蹤器
    else:
        bbox = tracker.update(image)
        p1 = (int(bbox[1][0]), int(bbox[1][1]))
        p2 = (int(bbox[1][0] + bbox[1][2]), int(bbox[1][1] + bbox[1][3]))
        cv2.rectangle(image, p1, p2, (255, 0, 0), 2, 1)
        out.write(image)
        cv2.imshow("Tracking",image)
        cv2.waitKey(10)

out.release()

           

參考文獻

[1] Amir Hooshang Mazinan, Arash Amir-Latifi.Applying mean shift, motion information and Kalman

filtering approaches to object tracking[J].ISA Transactions, 2012, 51:485-497.

[2] 鄭玉鳳, 馬秀榮, 趙曉琳,等. 基于顔色和邊緣特征的均值遷移目标跟蹤算法[J]. 光電子·雷射,2011(08):1231-1235.

[3] 李冠彬, 吳賀豐.基于顔色紋理直方圖的帶權分塊均值漂移目标跟蹤算法[J].計算機輔助設計與圖形學學報, 2011, 23 (12) :2059-2066.

[4] 戴淵明, 韋巍, 林亦甯.基于顔色紋理特征的均值漂移目标跟蹤算法[J].浙江大學學報 (工學版) , 2012,46 (2) :212-217.

[5] Zivkovic Z , Cemgil A T , Kroese B . Approximate Bayesian methods for kernel-based objecttracking[J]. Computer Vision & Image Understanding, 2009, 113(6):743-749.

[6] Zhao C , Knight A , Reid I . Target tracking using mean-shift and affine structure[C]//International Conference on Pattern Recognition. IEEE, 2008.

[7] Ning J , Zhang L , Zhang D , et al. Scale and orientation adaptive mean shift tracking[J].Computer Vision Iet, 2012, 6(1):52-61.

[8] Ning J , Zhang L , Zhang D , et al. Robust mean-shift tracking with correctedbackgroundweighted histogram[J]. Iet Computer Vision, 2012, 6(1):62-69.

[9] Cheng Y. Mean shift, mode seeking, and clustering[J]. Pattern Analysis and MachineIntelligence, IEEE Transactions on, 1995, 17(8): 790-799.

[10]Comaniciu D , Ramesh V , Meer P . Kernel-Based Object Tracking[M]. IEEE Computer Society,2003.

繼續閱讀