靜止背景下的多目標(biāo)追蹤附matlab程序_第1頁
靜止背景下的多目標(biāo)追蹤附matlab程序_第2頁
靜止背景下的多目標(biāo)追蹤附matlab程序_第3頁
靜止背景下的多目標(biāo)追蹤附matlab程序_第4頁
靜止背景下的多目標(biāo)追蹤附matlab程序_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、靜止背景下的多目標(biāo)追蹤隨著計(jì)算機(jī)技術(shù)以及智能汽車行業(yè)的開展,多目標(biāo)的檢測與追蹤的實(shí)用性與研究價(jià)值逐漸提升.在計(jì)算機(jī)視覺的三層結(jié)構(gòu)中,目標(biāo)跟蹤屬于中間層,是其他高層任務(wù),例如動(dòng)作識(shí)別以及行為分析等的根底.其主要應(yīng)用可包括視頻監(jiān)控,檢測異常行為人機(jī)交互,對復(fù)雜場景中目標(biāo)交互的識(shí)別與處理,以及虛擬現(xiàn)實(shí)及醫(yī)學(xué)圖像.目標(biāo)跟蹤又包括單目標(biāo)跟蹤和多目標(biāo)跟蹤.單目標(biāo)跟蹤可以通過目標(biāo)的表觀建?;蛘哌\(yùn)動(dòng)建模,以處理光照、形變、遮擋等問題,而多目標(biāo)跟蹤問題那么更加復(fù)雜,除了單目標(biāo)跟蹤回遇到的問題外,還需要目標(biāo)間的關(guān)聯(lián)匹配.另外在多目標(biāo)跟蹤任務(wù)中經(jīng)常會(huì)碰到目標(biāo)的頻繁遮擋、軌跡開始終止時(shí)刻未知、目標(biāo)太小、表觀相似、目標(biāo)

2、間交互、低幀率等等問題.靜止背景下的多目標(biāo)追蹤可分為兩步來實(shí)現(xiàn),第一步是在視頻文件的每幀中檢測出移動(dòng)的目標(biāo),第二步是將檢測到的目標(biāo)與跟蹤軌跡實(shí)時(shí)匹配.在本次實(shí)驗(yàn)中,利用混合高斯模型進(jìn)行背景減除,使用形態(tài)學(xué)操作消除噪聲,通過卡爾曼濾波預(yù)測目標(biāo)位置,最后利用匈牙利算法進(jìn)行匹配,實(shí)現(xiàn)靜止背景下的多目標(biāo)追蹤.1實(shí)驗(yàn)原理1.1 混合高斯模型單高斯模型是利用高維高斯分布概率來進(jìn)行模式分類:X11TlN(-)=exp-二(X-)-(x-)C,2二卜二|2其中N用練習(xí)樣本均值代替,仃用樣本方差代替,X為d維的樣本向量.通過高斯概率公式就可以得出類別C屬于正(負(fù))樣本的概率.而混合高斯模型就是數(shù)據(jù)從多個(gè)高斯分布

3、中產(chǎn)生,每個(gè)GMM由k個(gè)單高斯分布線性疊加而成.相當(dāng)于對各個(gè)高斯分布進(jìn)行加權(quán),權(quán)系數(shù)越大,那么這個(gè)數(shù)據(jù)屬于這個(gè)高斯分布的可能性越大.P(x)=pp(k)*p(x|k)利用混合高斯模型(GMM)可以進(jìn)行背景減除,將前后景別離,得到移動(dòng)的目標(biāo).對每個(gè)像素點(diǎn)建立由k個(gè)單高斯模型線性疊加而成的模型,在這些混合高斯背景模型中,認(rèn)為像素之間的顏色信息互不相關(guān),對各像素點(diǎn)的處理都是相互獨(dú)立的.單個(gè)像素點(diǎn)在t時(shí)刻服從混合高斯分布概率密度函數(shù):kp(xt)=w,t(xi,t,i,t)i=1其中k為分布模式總數(shù),xtli,t,%)為t時(shí)刻第i個(gè)高斯分布,t為其均值,!為其協(xié)方差矩陣.在獲得新一幀圖像后更新混合高斯

4、模型.用圖像中的每個(gè)像素點(diǎn)與混合高斯模型匹配,如果成功那么判定該點(diǎn)為背景點(diǎn),否那么為前景點(diǎn).當(dāng)背景更新完成后,高斯模型與背景相關(guān)程度越大,標(biāo)準(zhǔn)差就越小,權(quán)值越大.根據(jù)權(quán)值與標(biāo)準(zhǔn)差的比值從大到小進(jìn)行排序,取前B個(gè)模型作為背景./ZbB=argminZwkT【k力1.2 卡爾曼濾波卡爾曼濾波是一種利用線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)輸入輸出觀測數(shù)據(jù),對系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的算法.其核心思想是,根據(jù)當(dāng)前的測量值、上一時(shí)間的預(yù)測值以及誤差,計(jì)算得到當(dāng)前值,并可以持續(xù)預(yù)測下一時(shí)間的值.試驗(yàn)中利用卡爾曼濾波計(jì)算并預(yù)測每個(gè)軌跡在下一幀中的位置,建立幀問軌跡的關(guān)系.卡爾曼濾波將跟蹤分為5種狀態(tài):新目標(biāo)出現(xiàn)、目標(biāo)匹配

5、、目標(biāo)遮擋、目標(biāo)別離以及目標(biāo)消失.其狀態(tài)方程如下所示:X(k1)-A(k1,k)X(k)c(k)X(k)=x(k),y(k),w(k),h(k),v(k)其中x,y,w,h分別表示目標(biāo)外接矩形的橫縱坐標(biāo)以及長、寬,c(k),v(k)為不相關(guān)的高斯白噪聲.定義其觀測方程為Z(k)=H(k)X(k)+v(k)o定義好了觀測方程與狀態(tài)方程之后就可以用卡爾曼濾波器實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的跟蹤,步驟如下:1)計(jì)算運(yùn)動(dòng)目標(biāo)的特征信息(運(yùn)動(dòng)質(zhì)心,以及外接矩形).2)用得到的特征信息初始化卡爾曼濾波器.3)用卡爾曼濾波器對下一幀中對應(yīng)的目標(biāo)區(qū)域進(jìn)行預(yù)測,當(dāng)下一幀到來時(shí),在預(yù)測區(qū)域內(nèi)進(jìn)行目標(biāo)匹配.4)如果匹配成功,那么更

6、新卡爾曼濾波器.1.3 匈牙利匹配算法匈牙利匹配算法是一種利用增廣路徑求取二分圖最大匹配的算法.匈牙利樹一般由寬度優(yōu)先搜索(BFS構(gòu)成.從一個(gè)未匹配點(diǎn)出發(fā)運(yùn)行BFS且必須走交替路,直至不能再擴(kuò)展為止.交替路指的是,從一個(gè)未匹配點(diǎn)出發(fā),依次經(jīng)過非匹配邊、匹配邊循環(huán)往復(fù),形成的路徑稱為交替路.示意圖如圖1所示:圖1匈牙利樹匹配匈牙利算法的要點(diǎn)如下:1從左邊第一個(gè)頂點(diǎn)開始,挑選未匹配點(diǎn)進(jìn)行搜索,尋找增廣路.2如果經(jīng)過一個(gè)未匹配點(diǎn),那么尋找成功.更新路徑信息,匹配變數(shù)+1,停止搜索.3如果一直沒有找到增廣路,那么不再從這個(gè)點(diǎn)開始搜索.4找到增廣路之后需要沿著路徑更新匹配,通過prev數(shù)組來記錄路徑上的

7、點(diǎn).在實(shí)驗(yàn)中,用匈牙利算法將新一幀圖片中檢測到的運(yùn)動(dòng)物體匹配到對應(yīng)的軌跡.匹配的過程是通過最小化卡爾曼預(yù)測得到的質(zhì)心與檢測到的質(zhì)心之間的歐氏距離之和實(shí)現(xiàn)的.通過卡爾曼濾波計(jì)算并預(yù)測每個(gè)軌跡在下一幀中的位置,然后計(jì)算預(yù)測的軌跡位置和每個(gè)新檢測到的目標(biāo)之間的歐幾里得距離,將度量結(jié)果作為損失函數(shù)矩陣.損失矩陣的大小為M,N,其中M是軌跡數(shù)目,N是檢測到的運(yùn)動(dòng)物體數(shù)目.2實(shí)驗(yàn)內(nèi)容2.1 目標(biāo)檢測要實(shí)現(xiàn)目標(biāo)檢測,首先利用混合高斯模型區(qū)分前景背景.通過調(diào)用函數(shù)vision.ForegroundDetector設(shè)置檢測子為混合高斯模型,其中參數(shù)分別為高斯核數(shù)目、練習(xí)背景幀數(shù)以及背景閾值.函數(shù)的返回值為一個(gè)二

8、進(jìn)制掩碼,其中1的像素值對應(yīng)前景,0的像素值對應(yīng)背景.在實(shí)驗(yàn)中,選取前150幀圖像作為背景幀,并設(shè)置閾值為0.6,高斯核數(shù)目為3.完成背景減除后,通過設(shè)置blob分析子來尋找連通域,函數(shù)設(shè)置的參數(shù)為最小區(qū)域面積,返回值為目標(biāo)面積、質(zhì)心和邊界框.實(shí)驗(yàn)中,設(shè)置最小區(qū)域面積為400,代碼如下所示:obj.detector=vision.ForegroundDetectorNumGaussians,3,.NumTrainingFrames,150,MinimumBackgroundRatio,0.6;obj.blobAnalyser=vision.BlobAnalysis(BoundingBoxOut

9、putPort,true,AreaOutputPort,true,CentroidOutputPort,true,MinimumBlobArea,400);完成混合高斯混合模型以及blob分析子后,逐幀讀取視頻,為后續(xù)目標(biāo)檢測以及追蹤的過程做準(zhǔn)備:frame=obj.reader.step();在檢測目標(biāo)的過程中,利用形態(tài)學(xué)運(yùn)算中的開運(yùn)算以及閉運(yùn)算可以消除噪聲,使目標(biāo)檢測更為準(zhǔn)確.開運(yùn)算是通過先腐蝕再膨脹,去除孤立的像素點(diǎn)、總的位置和結(jié)構(gòu)不變.而閉運(yùn)算是先膨脹再腐蝕,彌合小裂縫,而總的位置和形狀不變,通過填充圖像的凹角來濾波圖像.其效果如圖2所展示:實(shí)驗(yàn)中,首先使用檢測子,即混合高斯模型得到前

10、景圖,對前景圖使用8*8矩形進(jìn)行開運(yùn)算,切斷臨近物體間的聯(lián)系.再使用15*15矩形進(jìn)行閉運(yùn)算,消除細(xì)小物體,最后填補(bǔ)物體中間的空洞.濾除噪聲后,使用blob分析得到所有連通域的中央以及邊界框的大小.代碼如下所示:functioncentroids,bboxes,mask=detectObjects(frame)%Detectforeground.mask=obj.detector.step(frame);toremovenoiseandf川inholes.%Applymorphologicaloperationsmask=imopen(mask,strel(mask=imclose(mask,

11、strel(mask=imfill(mask,rectangle,8,8);rectangle,15,15);holes);%Performblobanalysistofindconnectedcomponents.,centroids,bboxes=obj.blobAnalyser.step(mask);end視頻中對移動(dòng)目標(biāo)的檢測結(jié)果如圖3.1,圖3.2所示:圖3.1移動(dòng)目標(biāo)檢測結(jié)果1圖3.2移動(dòng)目標(biāo)檢測結(jié)果22.2 目標(biāo)跟蹤要進(jìn)行目標(biāo)跟蹤,首先需要進(jìn)行軌跡初始化,通過函數(shù)iMtializeTracks(冰進(jìn)行初始化,每一個(gè)軌跡代表視頻中一個(gè)移動(dòng)的目標(biāo).軌跡的結(jié)構(gòu)包含如下信息:1) ID,

12、軌跡編號(hào);2) Bbox,目標(biāo)的邊界框;3) kalmanFilter,用于預(yù)測目標(biāo)位置的卡爾曼濾波器;4) Age,目標(biāo)被檢測到的總幀數(shù);5) totalVisibleCount,目標(biāo)可被檢測到的全部幀數(shù);6) consecutiveInvisibleCount:連續(xù)未檢測到目標(biāo)的幀數(shù).代碼如下所示:functiontracks=initializeTracks()%createanemptyarrayoftrackstracks=struct(.id,.bbox,.kalmanFilter,.age,.totalVisibleCount,.consecutiveInvisibleCount

13、,);end為消除噪聲對目標(biāo)追蹤的影響,僅在totalVisibleCount超過閾值時(shí)才顯示目標(biāo)的軌跡.當(dāng)連續(xù)幾幀沒有檢測到與跟蹤相關(guān)的信息時(shí),那么假設(shè)該對象已經(jīng)離開了可視圖畫面.通過參數(shù)consecutiveinvisiblecount可判斷這種情況,當(dāng)其超過閾值時(shí),刪除跟蹤軌跡.如果跟蹤時(shí)間較短,并且在大多數(shù)幀中標(biāo)記為不可見,那么軌跡也可能作為噪聲被刪除.軌跡初始化完成后,通過卡爾曼濾波計(jì)算并預(yù)測每個(gè)軌跡在下一幀的位置,函數(shù)輸出為邊框預(yù)測中央.然后調(diào)整目標(biāo)邊界框的位置,使其中央到達(dá)預(yù)測位置,并將結(jié)果作為軌跡的跟蹤矩形框,代碼如下所示:functionpredictNewLocations

14、OfTracks()fori=1:length(tracks)bbox=tracks(i).bbox;%Predictthecurrentlocationofthetrack.predictedCentroid=predict(tracks(i).kalmanFilter);%艮據(jù)以前的軌跡,預(yù)測當(dāng)前位置%Shifttheboundingboxsothatitscenterisat%thepredictedlocation.predictedCentroid=int32(predictedCentroid)-bbox(3:4)/2;tracks(i).bbox=predictedCentroi

15、d,bbox(3:4);endend完成位置預(yù)測后,創(chuàng)立損失函數(shù)矩陣,航代表軌跡,列代表檢測到的目標(biāo).損失矩陣的大小為(M,N),其中M是軌跡數(shù)目,N是檢測到的運(yùn)動(dòng)物體數(shù)目.對每個(gè)軌跡計(jì)算其卡爾曼濾波預(yù)測的軌跡位置和每個(gè)新檢測到的目標(biāo)之間的歐幾里得距離,將度量結(jié)果作為損失函數(shù)矩陣.functionassignments,unassignedTracks,unassignedDetections=.detectionToTrackAssignment()nTracks=length(tracks);nDetections=size(centroids,1);%Computethecostofas

16、signingeachdetectiontoeachtrack.cost=zeros(nTracks,nDetections);fori=1:nTrackscost(i,:)=distance(tracks(i).kalmanFilter,centroids);end通過函數(shù)assignDetectionsToTracks(cost,costOfNonAssignment)用匈牙利J匹配算法將新一幀圖片中檢測到的運(yùn)動(dòng)物體匹配到對應(yīng)的軌跡.其中輸入的參數(shù)為損失矩陣以及閾值,低于閾值時(shí),取消匹配.返回值為匹配的結(jié)果以及未匹配成功的軌跡以及目標(biāo).完成匹配后,對已分配的軌跡,將其更新至當(dāng)前幀目標(biāo)所在位

17、置,對未分配的軌跡,增加其連續(xù)不可見幀數(shù).設(shè)置兩個(gè)閾值,invisibleForLong代表當(dāng)連續(xù)不可見幀數(shù)大于它時(shí),刪除軌跡;ageThreshold代表當(dāng)總出現(xiàn)幀數(shù)小于它時(shí),當(dāng)該參數(shù)與總可見幀數(shù)的比值小于0.6時(shí),刪除軌跡.目標(biāo)檢測與軌跡跟蹤的操作循環(huán)進(jìn)行,直至視頻結(jié)束,顯示最終跟蹤結(jié)果.2.3總結(jié)實(shí)驗(yàn)程序可分解為11個(gè)局部,創(chuàng)立系統(tǒng)對象、初始化軌跡、讀取視頻幀、檢測目標(biāo)、預(yù)測已跟蹤軌跡的新位置、分配新檢測目標(biāo)給軌跡、更新已分配的軌跡、更新未分配的軌跡、刪除喪失的軌跡、創(chuàng)立新軌跡以及顯示跟蹤結(jié)果.其中創(chuàng)立系統(tǒng)對象包含創(chuàng)立視頻對象,設(shè)置檢測子為高斯混合模型以及設(shè)置blob分析子.在預(yù)測已跟蹤

18、軌跡的新位置時(shí),使用卡爾曼濾波器進(jìn)行預(yù)測,并調(diào)整位置,顯示預(yù)測結(jié)果矩形框.在更新已分配的軌跡局部中,根據(jù)軌跡對應(yīng)的檢測目標(biāo)位置中央修正其卡爾曼濾波器,并修正軌跡存在幀數(shù)、目標(biāo)檢測到的總幀數(shù)以及連續(xù)未檢測到目標(biāo)的幀數(shù).在刪除喪失軌跡中,刪除連續(xù)不可見幀數(shù)大于閾值或當(dāng)軌跡存在幀數(shù)小于10時(shí),根據(jù)總可見幀數(shù)與軌跡存在幀數(shù)的比值丟棄軌跡.主函數(shù)代碼如下:obj=setupSystemObjects();唳1J建系統(tǒng)對象tracks=initializeTracks();%初始化軌跡nextId=1;%IDofthenexttrack%Detectmovingobjects,andtrackthemac

19、rossvideoframes.whileisDone(obj.reader)frame=readFrame();%取一幀centroids,bboxes,mask=detectObjects(frame);predictNewLocationsOfTracks();assignments,unassignedTracks,unassignedDetections=.detectionToTrackAssignment();updateAssignedTracks();updateUnassignedTracks();deleteLostTracks();createNewTracks();d

20、isplayTrackingResults();end可見完成創(chuàng)立系統(tǒng)對象以及初始化軌跡后,循環(huán)剩余9個(gè)步驟,直至處理完整個(gè)視頻.3實(shí)驗(yàn)結(jié)果分析在本次試驗(yàn)中,通過混合高斯模型背景減除,形態(tài)學(xué)操作消除噪聲,利用卡爾曼濾波預(yù)測每個(gè)軌跡在下一幀中的位置,最后通過匈牙利匹配算法完成目標(biāo)與軌跡之間的匹配.實(shí)現(xiàn)了在靜止背景下的多目標(biāo)檢測與跟蹤.如圖4所示可見,對于勻速移動(dòng)的目標(biāo),檢測效果較好,可以實(shí)現(xiàn)較好的目標(biāo)檢測與跟蹤.圖4勻速移動(dòng)目標(biāo)檢測結(jié)果但靜止背景下,基于動(dòng)態(tài)的多目標(biāo)追蹤,很容易受到環(huán)境的影響.當(dāng)檢測目標(biāo)為行人時(shí),風(fēng)吹動(dòng)樹葉或是有車輛經(jīng)過,甚至是光照導(dǎo)致的影子變化都會(huì)很大程度地影響跟蹤效果.圖5展

21、示了明顯的失敗樣例:圖5目標(biāo)追蹤失敗樣例在實(shí)驗(yàn)中使用的卡爾曼濾波預(yù)測目標(biāo)下一幀所在位置的模型,只適用于勻速變化,而汽車存在加速運(yùn)動(dòng).從右邊的二值圖像可以看出,汽車的車燈造成像素點(diǎn)大量變化,只使用幀間相減以及形態(tài)學(xué)操作來得到檢測目標(biāo)的本實(shí)驗(yàn)并不適用于此.造成了較大的誤差,導(dǎo)致檢測以及跟蹤目標(biāo)失敗.要躲避由前景中不同物體造成的實(shí)驗(yàn)誤差,可使用其他方法在前景檢測中對檢測到的物體進(jìn)行分類.通過屢次試驗(yàn)發(fā)現(xiàn),程序參數(shù)的魯棒性較差,在進(jìn)行形態(tài)學(xué)計(jì)算時(shí),不同的視頻調(diào)整開運(yùn)算以及閉運(yùn)算的結(jié)構(gòu)元素,目標(biāo)檢測的效果差異很大.在后續(xù)的學(xué)習(xí)過程中可以繼續(xù)對本次實(shí)驗(yàn)進(jìn)行更新修正,得到更好的實(shí)驗(yàn)效果.附錄function

22、objectracking()obj=setupSystemObjects();%U始化tracks=initializeTracks();%初始化軌跡nextId=1;%IDofthenexttrack%Detectmovingobjects,andtrackthemacrossvideoframes.whileisDone(obj.reader)frame=readFrame();%取一幀centroids,bboxes,mask=detectObjects(frame);predictNewLocationsOfTracks();assignments,unassignedTracks,

23、unassignedDetections=detectionToTrackAssignment();updateAssignedTracks();updateUnassignedTracks();deleteLostTracks();createNewTracks();displayTrackingResults();endfunctionobj=setupSystemObjects()obj.reader=vision.VideoFileReader(obj.maskPlayer=vision.VideoPlayer(obj.videoPlayer=vision.VideoPlayer(創(chuàng)立

24、視頻播放對象obj.detector=vision.ForegroundDetector(NumTrainingFrames,150,test.mp4);Position,740,400,700,400)Position,20,400,700,400)NumGaussians,3,.MinimumBackgroundRatio,0.6);%GMMttT景檢測,高斯核數(shù)目3,前150幀為背景幀,閾值為0.6,返回值為背景obj.blobAnalyser=vision.BlobAnalysis(true,.AreaOutputPort,true,MinimumBlobArea,400);endBo

25、undingBoxOutputPortCentroidOutputPort,true,.%返回值為目標(biāo)面積、質(zhì)心和邊界框functiontracks=initializeTracks()%createanemptyarrayoftrackstracks=struct(.id,),.bbox,.kalmanFilter,.age,.totalVisibleCount,);consecutiveInvisibleCountfunctionframe=readFrame()frame=obj.reader.step();endfunctioncentroids,bboxes,mask=detectO

26、bjects(frame)%Detectforeground.mask=obj.detector.step(frame);%Applymorphologicaloperationstoremovenoiseandfillinholes.mask=imopen(mask,strel(rectangle,8,8);mask=imclose(mask,strel(rectangle,15,15);mask=imfill(mask,holes);%Performblobanalysistofindconnectedcomponents.,centroids,bboxes=obj.blobAnalyse

27、r.step(mask);endfunctionpredictNewLocationsOfTracks()fori=1:length(tracks)bbox=tracks(i).bbox;%Predictthecurrentlocationofthetrack.predictedCentroid=predict(tracks(i).kalmanFilter);%艮據(jù)以前的軌跡,預(yù)測當(dāng)前位置%Shifttheboundingboxsothatitscenterisat%thepredictedlocation.predictedCentroid=int32(predictedCentroid)-

28、bbox(3:4)/2;tracks(i).bbox=predictedCentroid,bbox(3:4);endendfunctionassignments,unassignedTracks,unassignedDetections=detectionToTrackAssignment()nTracks=length(tracks);nDetections=size(centroids,1);%Computethecostofassigningeachdetectiontoeachtrack.cost=zeros(nTracks,nDetections);fori=1:nTrackscos

29、t(i,:)=distance(tracks(i).kalmanFilter,centroids);end%Solvetheassignmentproblem.costOfNonAssignment=20;assignments,unassignedTracks,unassignedDetections=assignDetectionsToTracks(cost,costOfNonAssignment);endfunctionupdateAssignedTracks()numAssignedTracks=size(assignments,1);fori=1:numAssignedTrackst

30、rackIdx=assignments(i,1);detectionIdx=assignments(i,2);centroid=centroids(detectionIdx,:);bbox=bboxes(detectionIdx,:);correct(tracks(trackIdx).kalmanFilter,centroid);tracks(trackIdx).bbox=bbox;tracks(trackIdx).age=tracks(trackIdx).age+1;tracks(trackIdx).totalVisibleCount=tracks(trackIdx).totalVisibl

31、eCount+1;tracks(trackIdx).consecutiveInvisibleCount=0;endendfunctionupdateUnassignedTracks()fori=1:length(unassignedTracks)ind=unassignedTracks(i);tracks(ind).age=tracks(ind).age+1;tracks(ind).consecutiveInvisibleCount=tracks(ind).consecutiveInvisibleCount+1;endend%DeleteLostTracksfunctiondeleteLost

32、Tracks()ifisempty(tracks)return;endinvisibleForTooLong=20;ageThreshold=10;ages=tracks(:).age;totalVisibleCounts=tracks(:).totalVisibleCount;visibility=totalVisibleCounts./ages;lostInds=(agesageThreshold&visibility=invisibleForTooLong;tracks=tracks(lostInds);endfunctioncreateNewTracks()centroids=centroids(unas

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論