freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

目標(biāo)檢測(cè)與跟蹤技術(shù)研究及實(shí)現(xiàn)畢業(yè)論文-閱讀頁(yè)

2025-07-07 16:10本頁(yè)面
  

【正文】 ,并提供給構(gòu)造函數(shù)幀圖像大小和目標(biāo)閾值參數(shù)。在準(zhǔn)備了4幀數(shù)據(jù)后,調(diào)用process函數(shù)進(jìn)行目標(biāo)檢測(cè)。圖(35)第n幀圖像 圖(36)第n+1幀圖像圖(37)差分相乘后的效果圖 圖(38)差分相乘后的效果圖如果只用幀間差分方法來(lái)進(jìn)行目標(biāo)檢測(cè)的話,差分圖像中存在大量的噪聲,這樣很難將運(yùn)動(dòng)目標(biāo)從差分圖像中提取出來(lái)。4 運(yùn)動(dòng)目標(biāo)跟蹤 基于Mean Shift的運(yùn)動(dòng)目標(biāo)跟蹤算法前面對(duì)靜態(tài)背景和動(dòng)態(tài)背景下的運(yùn)動(dòng)目標(biāo)檢測(cè)方法進(jìn)行了介紹,下面對(duì)復(fù)雜場(chǎng)景中的運(yùn)動(dòng)目標(biāo)跟蹤進(jìn)行研究。此時(shí)用二值化閾值方法無(wú)法很好地分割出目標(biāo)和背景,必須利用目標(biāo)特征匹配來(lái)實(shí)現(xiàn)目標(biāo)的正確跟蹤,基于Mean shift的目標(biāo)跟蹤方法運(yùn)用的比較廣泛。核密度估計(jì)方法是最常用的無(wú)參數(shù)密度估計(jì)方法。 基于Mean Shift的目標(biāo)跟蹤的基本原理對(duì)多維的采樣數(shù)據(jù)集合進(jìn)行無(wú)參數(shù)密度估計(jì),就需要知道多維空間中使用的核函數(shù),即多變量函數(shù)。這里采用第二種形式,那么,式(42)可寫成如下形式: (43)如果是中心對(duì)稱,并且滿足,K(x)定義在的區(qū)間里,那么稱為的輪廓函數(shù),其中為標(biāo)準(zhǔn)化常量系數(shù)。假設(shè)已經(jīng)知道了密度最大數(shù)據(jù)所對(duì)應(yīng)的位置,就可以估計(jì)出密度梯度。如果目標(biāo)模型是每一個(gè)值的直方圖,那么歸一化后目標(biāo)顏色分布可以用如下形式表示: (46)式中, 函數(shù)——位于的像素對(duì)應(yīng)顏色索引的映像,——Δ函數(shù),——?dú)w一化系數(shù)。這樣目標(biāo)模型概率密度估計(jì)可以表示下列形式: (47)式中:——核函數(shù)對(duì)應(yīng)的輪廓函數(shù)。根據(jù)可得: (48) 候選模型在以后的各幀圖像中,把有可能含有運(yùn)動(dòng)目標(biāo)的部分,叫作候選區(qū)域,設(shè)它的中心坐標(biāo)是,和核函數(shù)中心點(diǎn)坐標(biāo)相同。 相似性函數(shù)一般情況下,候選模型與目標(biāo)模型的相似程度可以用相似性函數(shù)表示,這里選用系數(shù)作為相似性函數(shù)。 目標(biāo)跟蹤實(shí)現(xiàn) 由以上分析可知,在當(dāng)前幀中使得值達(dá)到最大的目標(biāo)候選區(qū)域就是目標(biāo)最可能出現(xiàn)的位置。先計(jì)算候選模型,在處對(duì)候選模型進(jìn)行泰勒展開(kāi),系數(shù)可用下式表示: (411)式中:分析上式可得,式中只有隨改變而改變,令 (412)要使得值最大,可通過(guò)使最大求得。2) 當(dāng)前幀圖像目標(biāo)位置初始化值為,計(jì)算, 求出近似系數(shù):。4) 根據(jù)Mean Shift向量,計(jì)算目標(biāo)新的位置:。6) 當(dāng)時(shí)。 Mean shift跟蹤算法的實(shí)現(xiàn) MeanShiftSegger類定義Mean shift算法的類名為MeanShiftSegger。class MeanShiftSegger{public: MeanShiftSegger()。private: int imgWidth。 //圖像高度 int trackWinWidth。 //窗口高度 int currentX。 //當(dāng)前目標(biāo)縱坐標(biāo)private: float currHistogram[HISTOGRAM_LENGTH]。 //目標(biāo)直方圖摸板public: //計(jì)算Bhattacharyya系數(shù) float CalculateBhattacharyya(float initHistogram[HISTOGRAM_LENGTH],float tempHistogram[HISTOGRAM_LENGTH])。 //計(jì)算目標(biāo)直方圖 int CalculateHistogramSp(unsigned char* frame,char kernel,float histogram[HISTOGRAM_LENGTH])。 //Mean Shift跟蹤操作函數(shù) void MeanShiftTrackProcess(unsigned char* frame,int frameNumber)。}。 i HISTOGRAM_LENGTH。 for(int i = 0。 i ++) tempHistogram[i] = 0。 //memset(tempHistogram,0,sizeof(float) * HISTOGRAM_LENGTH)。 //SetZeroHistogram(tempHistogram)。}/*~MeanShiftSegger函數(shù) 說(shuō)明:析構(gòu)函數(shù)*/MeanShiftSegger::~MeanShiftSegger(){}/* InitMeanShiftTracker()函數(shù) 說(shuō)明:MeanShift過(guò)程跟蹤初始化程序*/void MeanShiftSegger::InitMeanShiftTracker(unsigned char* firstFrame,int frameWidth,int frameHeight,int targetPosX,int targetPosY,int targetWidth,int targetHeight){ thisimgWidth = frameWidth。 thiscurrentX = targetPosX。 thistrackWinHeight = targetHeight。}/* CalculateHistogramSp函數(shù) 說(shuō)明:統(tǒng)計(jì)直方圖,建立區(qū)域模型*/int MeanShiftSegger::CalculateHistogramSp(unsigned char* frame,char kernel, float *histogram){ int pxValue = 0。 i HISTOGRAM_LENGTH。 if(kernel == 39。) { for(int j = max(0,currentY trackWinHeight / 2)。 j ++){ for(int i = max(0,currentX trackWinWidth / 2)。i ++){ pixel r = frame[j * imgWidth * 3 + i * 3] / 16。 pixel b = frame[j * imgWidth * 3 + i * 3 + 2] / 16。 pxValue ++。 i HISTOGRAM_LENGTH。 } else { return 0。}/*MeanShiftTrackerProcess函數(shù) 說(shuō)明:跟蹤中的MeanShift過(guò)程*/void MeanShiftSegger::MeanShiftProcessSp(unsigned char * frame){ float weights[HISTOGRAM_LENGTH]。 float newY = 。iHISTOGRAM_LENGTH。 //目標(biāo)模板直方圖/當(dāng)前直方圖 else weights[i] = 0。 for(int j = max(0,currentY trackWinHeight / 2)。 j ++){ for(int i = max(0,currentX trackWinWidth / 2)。i ++){ pixel r = frame[j * imgWidth * 3 + i * 3] / 16。 pixel b = frame[j * imgWidth * 3 + i * 3 + 2] / 16。 newX += (weights[ptr] * (float)i)。 sumOfWeights += weights[ptr]。 currentY = int((newY/sumOfWeights) + )。}/*MeanShiftTrackProcess函數(shù) 說(shuō)明:MeanShift跟蹤主調(diào)用過(guò)程*/void MeanShiftSegger::MeanShiftTrackProcess(unsigned char* frame,int frameNumber){ if(frameNumber == 0){ //在指定位置建立目標(biāo)模型 CalculateHistogramSp(frame,39。,thistempHistogram)。 int iteratorCoumt = 0。U39。 MeanShiftProcessSp(frame)。 } DrawTrackBox(frame)。 i min(imgWidth,currentX + trackWinWidth)。 frame[currentY * imgWidth * 3 + i * 3 + 1] = 0。 frame[min(imgHeight 1,currentY + trackWinHeight) * imgWidth * 3 + i * 3 + 0] = 0。 frame[min(imgHeight 1,currentY + trackWinHeight) * imgWidth * 3 + i * 3 + 2] = 255。 j min(imgHeight 1,currentY + trackWinHeight)。 frame[j * imgWidth * 3 + currentX * 3 + 1] = 0。 frame[j * imgWidth * 3 + min(imgWidth 1,currentX + trackWinWidth) * 3 + 0] = 0。 frame[j * imgWidth * 3 + min(imgWidth 1,currentX + trackWinWidth) * 3 + 2] = 255。 for(int i = 0。i ++) dis += float(sqrt(double(currHistogram[i] * tempHistogram[i])))。} 函數(shù)的調(diào)用第一步構(gòu)造了MeanShiftSegger類,并假設(shè)在當(dāng)前幀中,目標(biāo)初始位置的橫縱坐標(biāo)分別為targetX、targetY,另外目標(biāo)的大小為targetWidth、targetHeight,并且frameBuffer為當(dāng)前幀的數(shù)據(jù)。其中frameBuffer為目標(biāo)的數(shù)據(jù)緩沖區(qū),index為當(dāng)前幀的幀號(hào)。 基于形心法的目標(biāo)跟蹤算法形心跟蹤算法具有計(jì)算量小、速度快等特點(diǎn),對(duì)很多實(shí)際的工程應(yīng)用具有重要意義。然后計(jì)算目標(biāo)區(qū)域坐標(biāo)的加權(quán)平均,并認(rèn)為這個(gè)坐標(biāo)的加權(quán)平均就是當(dāng)前幀中目標(biāo)所在的位置。可見(jiàn)該算法的關(guān)鍵是目標(biāo)的可分割性和閾值的選擇。將二值化后的目標(biāo)形狀特征無(wú)失真或少失真的提取出來(lái),便于吧目標(biāo)從背景中分割出來(lái)。根據(jù)不同情況,可采用不同的閾值分割方法。如果背景灰度在圖像中某一塊區(qū)域中可近似地看作為恒定,且所有物體與背景具有幾乎相同的對(duì)比度,這時(shí),只需要選取合適的閾值,就可很好地確定邊界。這種情況下,在圖像中某一區(qū)域處理效果很好的閾值在其他區(qū)域處理效果卻可能很差。假設(shè)輸入圖像為,二值化所得圖像為,閾值為T,根據(jù)T分割圖像中的目標(biāo)與背景,當(dāng)坐標(biāo)上的像素大于閾值T則認(rèn)為是目標(biāo),否則認(rèn)為是背景。在一個(gè)窗口中,計(jì)算所有的坐標(biāo)加權(quán)平均,坐標(biāo)就是當(dāng)前幀中目標(biāo)形心的坐標(biāo),計(jì)算公式如下: (414)式中:——圖像在上得像元灰度值,、——分別為跟蹤窗口內(nèi)的方向和方向的像元數(shù)。所以形心為跟蹤點(diǎn),跟蹤的隨機(jī)誤差較小,穩(wěn)定性好,抗干擾能力強(qiáng)。define EDGE_SPACE 5 //計(jì)算時(shí)留出的邊界寬度define EDGE_DRAW 20 //畫框跟蹤窗時(shí)擴(kuò)出的邊界寬度define BLOCK_NUMBER 5 //分塊數(shù)目define TEMPLETE_SIZE 60 //匹配模板大小//WININFO GravityTrack (unsigned char* sGray, int sWidth, int sHeight,int sThreshold)。 = 0。 = 0。 = FALSE。 int M01bh = 0。 int iLine,i,j。jsHeightEDGE_SPACE。 for(i=EDGE_SPACE。i++) { int k = sWidth*j+i。 M01bh+=i。 } } M00bh+=iLine。 if(iLine0) ++。} 函數(shù)調(diào)用通過(guò)在每一幀圖像中調(diào)用Gravity函數(shù),并為該函數(shù)提供幀數(shù)據(jù)以及分隔目標(biāo)區(qū)域的閾值來(lái)實(shí)現(xiàn)場(chǎng)景的目標(biāo)檢測(cè)與跟蹤。 5 結(jié)論目標(biāo)檢測(cè)和跟蹤是計(jì)算機(jī)視覺(jué)領(lǐng)域的一個(gè)重要研究方向,在視頻監(jiān)控、交通管理、行為分析、醫(yī)療診斷、導(dǎo)彈制導(dǎo)、雷達(dá)預(yù)警、工業(yè)生產(chǎn)等領(lǐng)域有了很多的研究成果。目標(biāo)跟蹤部分采用兩種方法,一種是基于Mean Shift的目標(biāo)跟蹤方法,另一種是基于重心法的目標(biāo)跟蹤方法。采用幀間差分相乘方法有效地降低了高頻噪聲、光照改變和自然場(chǎng)景中一些微小變化的影響,使檢測(cè)結(jié)果更精確。采用形心跟蹤算法也實(shí)現(xiàn)了在簡(jiǎn)單背景下多目標(biāo)的檢測(cè)跟蹤。在我的論文的設(shè)計(jì)過(guò)程中,李
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1