天天看點

MOSSE目标跟蹤算法步驟

輸入圖像序列 lists:

  1. 讀取第一幀圖像,灰化,并且框定ROI區域
  2. 以ROI中心(center)點為中心,計算第一幀圖像的高斯響應圖g(整幅圖計算,距離ROI中心越遠響應值越小)
  3. 将步驟2中計算得到的高斯響應圖對應于ROI區域的部分取出來,記為g1
  4. 取第一幀圖像中ROI區域,進行預處理(均值化為0,歸一化),記為f1
  5. 将g1,f1進行快速傅裡葉變換,訓練,得到Ai ,Bi
  6. 如果是第一幀:

    Ai Bi 乘學習率進行Ai,Bi更新,用pos存下跟蹤位置(x ,y的起始坐标和寬帶、高度),clip存下更詳細的跟蹤位置(上下左右四個坐标),即為第一幀的目标定位。

  7. 如果不是第一幀,記目前幀為f:

    計算濾波器Hi =Ai/Bi,f進行灰化,取f對應clip的區域進行預處理(均質化為0,歸一化等),得到fi(fi是clip大小的區域,位置以pos為中心)

    對fi進行FFT變換得到Fi,再求響應圖:

    Gi = Hi * Fi

    Gi進行反FFT變換,得到gi

    在gi中找出響應值最大的點maxg,用maxg的位置更新pos和clip

    再取目前幀目标位置(pos區域),更新Ai ,Bi ,

    畫出跟蹤結果,之後進行下一幀跟蹤。

這裡說一下我的疑惑:

代碼中,clip基本隻用來檢測ROI是否超出圖像範圍。但是其實用pos也可以達到同樣的目的。不知道這個clip_pos的變量作用到底是什麼。

還有一個問題,pre_training中,更新了num_pretrain次Ai,Bi ,我看不懂這是什麼原理。用一幀圖像多次計算就可以提升性能?

希望懂的大佬不吝賜教。

附上MOSSE代碼,可直接運作:

https://download.csdn.net/download/qq_32048913/11644401

繼續閱讀