【目標(biāo)跟蹤】基于幀差法結(jié)合卡爾曼濾波實(shí)現(xiàn)行人姿態(tài)識(shí)別附matlab代碼
1 簡介
為解決視頻幀目標(biāo)跟蹤中的尺度變化導(dǎo)致的目標(biāo)跟蹤發(fā)生跟丟的問題,提出一種自適應(yīng)跟蹤窗口的處理方法,利用下一幀的估計(jì)位置與當(dāng)前幀目標(biāo)位置的差值作為檢測量,自適應(yīng)調(diào)整跟蹤窗口,實(shí)現(xiàn)目標(biāo)的有效檢測和跟蹤.實(shí)驗(yàn)結(jié)果表明:該方法能有效降低目標(biāo)跟丟的概率,預(yù)防目標(biāo)的誤跟蹤,適應(yīng)目標(biāo)尺度變化.
2 部分代碼
% extracts the center (cc,cr) and radius of the largest blob
function [stats,N,flag,foremm]=extract(Imwork,Imback,index)%,fig1,fig2,fig3,fig15,index)
?cc = 0;
?cr = 0;
?flag = 0;
?[MR,MC,Dim] = size(Imback);
?%Imwork(:,:,1),Imwork(:,:,2),Imwork(:,:,3),分別是圖像的RGB值,
?%程序的目的是提取兩幅圖R,G,B三個(gè)通道的差值大于10的部分(二值化)
?% subtract background & select pixels with a big difference
?fore = zeros(MR,MC); ? ? ? ? ?
?fore = imabsdiff(Imwork,Imback);
?%進(jìn)行二值化,去除圖像噪聲
?Im2=im2bw(fore,80/255);
?%對(duì)圖像進(jìn)行膨脹操作
?foremm = bwmorph(Im2,'dilate',4); %2 time
?% select largest object
?labeled = bwlabel(foremm,4); ? ? ? ? ? ? ?%標(biāo)注二進(jìn)制圖像中已連接的部分。
?stats = regionprops(labeled,['basic']); ? %獲取label的圖形屬性 ?%使用字符串'basic',則屬性:'Area','Centroid'和'BoundingBox'將被計(jì)算
?[N,W] = size(stats);
?if N < 1
? ?return ?
?end
?% do bubble sort (large to small) on regions in case there are more than 1
?id = zeros(N); ? ? ? ? ? ?% ? N為檢測到的目標(biāo)的個(gè)數(shù)
?for i = 1 : N
? ?id(i) = i;
?end
?for i = 1 : N-1
? ?for j = i+1 : N
? ? ?if stats(i).Area < stats(j).Area
? ? ? ?tmp = stats(i);
? ? ? ?stats(i) = stats(j);
? ? ? ?stats(j) = tmp;
? ? ? ?tmp = id(i);
? ? ? ?id(i) = id(j);
? ? ? ?id(j) = tmp;
? ? ?end
? ?end
?end
?% make sure that there is at least 1 big region
?if stats(1).Area < 100
? ?return
?end
?%selected = (labeled==id(1));
?flag = 1;
?return
3 仿真結(jié)果



4 參考文獻(xiàn)
[1]李妍妍, 田瑞娟, 張弦弦. 一種基于幀差法結(jié)合Kalman濾波的運(yùn)動(dòng)目標(biāo)跟蹤方法[J]. 兵工自動(dòng)化, 2019, 38(4):4.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
