《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于模板匹配的目標(biāo)跟蹤算法在紅外熱成像跟蹤技術(shù)上的應(yīng)用

基于模板匹配的目標(biāo)跟蹤算法在紅外熱成像跟蹤技術(shù)上的應(yīng)用

2008-09-10
作者:向衛(wèi)軍 韓根甲

  摘? 要: 介紹一種優(yōu)化的快速模板匹配" title="模板匹配">模板匹配算法,可實(shí)現(xiàn)目標(biāo)實(shí)時(shí)提取、識(shí)別和跟蹤,并成功應(yīng)用于紅外熱成像" title="紅外熱成像">紅外熱成像跟蹤技術(shù)的研究,解決了復(fù)雜背景條件下目標(biāo)跟蹤穩(wěn)定度差的技術(shù)難點(diǎn)。該算法用Visual C++編寫(xiě),可方便地移植到其它操作平臺(tái)或嵌入式系統(tǒng)。

  關(guān)鍵詞: 模板匹配? 粗匹配? 精匹配? 亂序匹配? Visual C++

?

  紅外熱成像跟蹤技術(shù)是一種被動(dòng)式目標(biāo)檢測(cè)、跟蹤技術(shù),用于對(duì)紅外視頻信號(hào)進(jìn)行目標(biāo)檢測(cè)、提取和跟蹤。對(duì)比度特征鑒別是比較常用的目標(biāo)提取方法。它無(wú)法記憶、識(shí)別目標(biāo)形態(tài)特征,在復(fù)雜背景下提取效果、跟蹤穩(wěn)定性較差。而模板匹配算法以目標(biāo)特征數(shù)據(jù)為模板,在搜索區(qū)域里尋找匹配點(diǎn),即以目標(biāo)形態(tài)特征為判據(jù)實(shí)現(xiàn)目標(biāo)檢索和跟蹤。即便在復(fù)雜背景狀態(tài)下,跟蹤靈敏度和穩(wěn)定度都極高,非常適用于復(fù)雜背景下的目標(biāo)跟蹤。

  模板匹配算法由于計(jì)算量龐大,應(yīng)用成本較高。經(jīng)過(guò)多方優(yōu)化、簡(jiǎn)化后,可用工控機(jī)實(shí)現(xiàn)實(shí)時(shí)模板匹配處理。在沒(méi)有增加成本、耽誤工程進(jìn)度的前提下,增強(qiáng)了復(fù)雜背景下的跟蹤靈敏度和穩(wěn)定度,提高了產(chǎn)品的綜合競(jìng)爭(zhēng)能力。為模板匹配算法的低成本應(yīng)用開(kāi)辟了一條新路。

????本文介紹的模板匹配算法在Windows 2000下用Visual C++編制,可方便地移植到多種操作平臺(tái)。

1 模板匹配原理

  模板匹配是數(shù)字圖像處理的重要組成部分之一。把不同傳感器或同一傳感器在不同時(shí)間、不同成像條件下對(duì)同一景物獲取的兩幅或多幅圖像在空間上對(duì)準(zhǔn),或根據(jù)已知模式到另一幅圖中尋找相應(yīng)模式的處理方法就叫做模板匹配。

  假設(shè)要在搜索區(qū)域中尋找與模板圖像相關(guān)程度最大" title="最大">最大的位置,可以通過(guò)模板匹配來(lái)計(jì)算兩者的相關(guān)程度。圖1是模板匹配算法的示意圖。假設(shè)模板(b)疊放在搜索圖(a)上平移,模板覆蓋下的部分記作子圖Si,j,其中i,j是這塊子圖的左上角像點(diǎn)在S圖中的坐標(biāo)。從圖1中可得出i,j的取值范圍:1≤i≤K-M+1、1≤j≤L-N+1。

?

  衡量模板T和子圖Si,j的匹配程度,可用下列兩種測(cè)度:

  

或者

  

  展開(kāi)前一個(gè)式子,有:

  

  (3)式右邊的第三項(xiàng)表示模板的總能量,是一個(gè)常數(shù),與(i,j)無(wú)關(guān)。第一項(xiàng)是模板覆蓋下那塊子圖像的能量,它隨(i,j)位置而緩慢改變。第二項(xiàng)是子圖像和模板的互相關(guān)函數(shù),隨(i,j)變化而迅速改變。模板T和子圖Si,j匹配時(shí)這一項(xiàng)的值最大,因此可以用下列相關(guān)函數(shù)來(lái)反應(yīng)匹配程度:

????

2 建立數(shù)學(xué)模型

2.1 計(jì)算公式

  模板匹配算法計(jì)算模板和匹配區(qū)域的相似程度,以最相似位置為匹配點(diǎn)。由于模板需要在匹配區(qū)域上逐次匹配,運(yùn)算量很大。所以選擇匹配公式對(duì)整個(gè)匹配的效率有極大的影響。

  工控機(jī)的數(shù)據(jù)處理能力有限,需要針對(duì)紅外熱成像跟蹤技術(shù)的特點(diǎn)來(lái)簡(jiǎn)化數(shù)學(xué)模型" title="數(shù)學(xué)模型">數(shù)學(xué)模型,選定計(jì)算量最小的計(jì)算公式。目標(biāo)跟蹤算法用來(lái)確定目標(biāo)位置,可以用匹配誤差的相對(duì)大小作為目標(biāo)判別的依據(jù),誤差最小的位置就是目標(biāo)位置,不需要考慮絕對(duì)相似程度。

  公式(1)~(5)都能夠真實(shí)反應(yīng)模板的相對(duì)匹配程度,選擇計(jì)算量最小、效率最高的公式(1)作為原始數(shù)學(xué)模型。匹配點(diǎn)位置算法完成整個(gè)匹配區(qū)域內(nèi)的最小匹配誤差點(diǎn)檢索,表示為公式(6):

???

  變量K、L為匹配區(qū)域尺寸;M、N為模板尺寸。

2.2 模板尺寸

  模板尺寸對(duì)系統(tǒng)性能和計(jì)算量的影響不容小覷。模板過(guò)大導(dǎo)致動(dòng)態(tài)特性" title="動(dòng)態(tài)特性">動(dòng)態(tài)特性變差;過(guò)小又會(huì)減少目標(biāo)的特征數(shù)據(jù)量,降低匹配的敏感程度,增大目標(biāo)檢測(cè)難度。實(shí)際操作中,模板尺寸設(shè)置為32×16時(shí)效果非常理想。

2.3 匹配區(qū)域

  不同的應(yīng)用環(huán)境下,對(duì)匹配區(qū)域和實(shí)時(shí)性要求也不盡相同。光電探測(cè)設(shè)備需要在視頻圖像采集周期內(nèi)(20ms)完成數(shù)據(jù)實(shí)時(shí)處理。由于目標(biāo)在兩場(chǎng)視頻圖像之間的移動(dòng)量較小、特征變化不大,匹配區(qū)域可以大大縮小。

  匹配區(qū)域太小會(huì)導(dǎo)致目標(biāo)動(dòng)態(tài)特性變差,過(guò)大又會(huì)導(dǎo)致計(jì)算量大幅度增加,具體選擇需要權(quán)衡設(shè)備參數(shù)來(lái)決定。由于CCIR制式視頻信號(hào)是隔行掃描,系統(tǒng)出于實(shí)時(shí)性考慮,數(shù)據(jù)以場(chǎng)為單位處理,導(dǎo)致圖像比例為2:1狀態(tài)。為了保持水平、垂直方向的動(dòng)態(tài)特性一致,圖像匹配區(qū)域也按2:1比例選擇。

  在滿(mǎn)足實(shí)時(shí)性要求的情況下,選擇相對(duì)較大的匹配范圍,可提高設(shè)備的動(dòng)態(tài)特性。從表1實(shí)測(cè)數(shù)據(jù)可以看出,選擇匹配區(qū)域100×50點(diǎn)、模板32×16點(diǎn)時(shí),動(dòng)態(tài)范圍為69×35,時(shí)間消耗為13ms。光電探測(cè)設(shè)備系統(tǒng)目標(biāo)動(dòng)態(tài)特性要求處理區(qū)域不小于40×20點(diǎn)。可見(jiàn)以上選擇可以很好地滿(mǎn)足動(dòng)態(tài)特性和實(shí)時(shí)性要求。

?

?

3 數(shù)學(xué)模型優(yōu)化方法

  數(shù)學(xué)模型結(jié)合選擇的模板和搜索區(qū)域大小,可以知道模板最佳匹配點(diǎn)計(jì)算公式如下:

  

  由公式(7)可以看出,程序需要進(jìn)行大量的循環(huán)計(jì)算,整體運(yùn)算量仍然不小,需要進(jìn)一步優(yōu)化,減少處理時(shí)間。運(yùn)用如下優(yōu)化算法進(jìn)一步減少實(shí)際運(yùn)算量。

3.1 粗精匹配結(jié)合

  觀察實(shí)際模板匹配運(yùn)算結(jié)果可以發(fā)現(xiàn),匹配點(diǎn)附近的匹配誤差迅速下降,明顯區(qū)別于其它位置。針對(duì)這一特點(diǎn),采用粗精匹配結(jié)合的算法迅速鎖定匹配點(diǎn)大致區(qū)域,可大大降低整體匹配次數(shù)。

具體實(shí)現(xiàn)方法:先跳動(dòng)著隔幾個(gè)點(diǎn)進(jìn)行一次粗匹配,大致框定匹配區(qū)域,然后在附近區(qū)域逐一檢索獲得最佳匹配點(diǎn)。運(yùn)算量可減少到三分之一以下,且目標(biāo)提取效果相當(dāng)好。

3.2 限制最大匹配誤差

  因?yàn)橹恍枵业阶钚∑ヅ湔`差的位置,不必完整計(jì)算每一位置的絕對(duì)匹配誤差,而以已經(jīng)計(jì)算的最小匹配誤差作為最大允許誤差。若計(jì)算誤差大于該最大允許誤差,就肯定不是最佳匹配點(diǎn),可以提前結(jié)束計(jì)算,進(jìn)入下一匹配位置的計(jì)算;如果匹配完成后仍小于最大允許誤差,就用當(dāng)前誤差替換最大允許誤差,并把該點(diǎn)作為潛在的匹配位置記錄下來(lái)。

  匹配點(diǎn)和非匹配點(diǎn)的誤差常常相差2~3個(gè)數(shù)量級(jí)。經(jīng)過(guò)這種處理后,匹配點(diǎn)后剩余的計(jì)算量可以大大降低。

3.3 亂序匹配

  目標(biāo)出現(xiàn)在匹配區(qū)域中的位置不確定。不固定順序算法可以更快地檢索到匹配區(qū)域,迅速降低最大匹配誤差,減少剩余非匹配點(diǎn)的計(jì)算量,降低整體運(yùn)算量。

  針對(duì)光電探測(cè)設(shè)備的實(shí)際工作情況,在跟蹤狀態(tài)下,目標(biāo)位移角速度和角加速度有限,導(dǎo)致目標(biāo)常處于匹配區(qū)域中心附近。選擇由中心向周?chē)椛淦ヅ涞姆绞叫Ч罾硐搿?/P>

4 程序樣本

  以下程序樣本綜合使用了上面的優(yōu)化算法,成功應(yīng)用于紅外熱成像跟蹤技術(shù)的原理樣機(jī),達(dá)到了預(yù)期效果。

該函數(shù)用于圖像模板匹配運(yùn)算,適用于256灰度值的黑白圖像數(shù)據(jù)。

  Deal_With::TemplateMatch(unsigned char* lpSource, LONG lWidth, LONG lHeight,? unsigned char*lpTemplate, LONG

  lTemplateWidth,LONG lTemplateHeight,)

  {????

????  ?? unsigned char*?????? Source;??????   ? //指向待處理圖像的指針

??????   unsigned char*?????? Template;??????????? //指向模板圖像的指針

??????   int???????????????????????? i,j,m,n;  //循環(huán)變量

??????   unsigned char??????? lMaxWidth, lMaxHeight,

??????????????????????????????? lMaxWidthExact,lMaxHeightExact

???????????  ????????????????????????????????????? //匹配位置

  ?????? unsigned long?????? D;??     ?????? //相似誤差

??????   unsigned long?????? MaxD;?        //最大允許相似誤差

  //粗相關(guān)

????  ?? MaxD =0x10000000;????        ??? //約定最大匹配誤差

  ?????? for (j = 0;j < lHeight - lTemplateHeight +1 ;j+=2){

????  ? for(i = 0;i < lWidth - lTemplateWidth + 1;i+=2){

????????     ?????? D=0;

??????????????????  ?? Source=(unsigned char *)lpSource+lWidth*j+i;

????????????????????   Template=(unsigned char *)lpTemplate ;

????????????????????   for (n=0;n < lTemplateHeight && D

?????????????????????????  for(m=0;m

?????????????????????????????????? D+=(*Source++-*Template++)*(*Source++

????????????????????????????????????? -*Template++);

??????????????????????????? Source+=lWidth-lTemplateWidth;

????????????????????   }

????????????????????   if (D

????????????????????????  ??? MaxD=D;

???????????????????????????   lMaxWidth=i;

???????????????????????????   lMaxHeight=j;

????????????????????   }

?????????????    }

??????   }

??????   //精相關(guān)

??????   lMaxWidthExact = lMaxWidth;

??????   lMaxHeightExact = lMaxHeight;

??????   for (j = lMaxHeight-2;j <= lMaxHeight+2 ;j++){

???????????for(i = lMaxWidth-2;i <= lMaxWidth+2;i++){

???????????????????? D=0;

???????????????????? Source=(unsigned char *)lpSource+lWidth*j+i;

???????????????????? Template=(unsigned char *)lpTemplate ;

???????????????????? for(n=0;n

  ???????????????????? for(m = 0;m < lTemplateWidth && D

????  ??????????????????? D+=(*Source++-*Template++)*(*Source++

??????????????????????????? -*Template++);

????????  ???????????? Source+=lWidth-lTemplateWidth;

????????????    }

?????????????    if (D

????????????????????   MaxD=D;

????????????????????   lMaxWidthExact=i; ??? ?//x方向最佳匹配點(diǎn)位置

????????????????????   lMaxHeightExact=j;?   //y方向最佳匹配點(diǎn)位置

???????????????????}

????????????? }

??? ???? }

? }

?

?

參考文獻(xiàn)

1章毓晉. 圖像理解與計(jì)算機(jī)視覺(jué). 北京:清華大學(xué)出版社,2000.

2劉忠偉,章毓晉. 基于特征的圖像查詢(xún)和檢索系統(tǒng). 應(yīng)用基礎(chǔ)及工程學(xué)報(bào),2000:8(1):69~77

3 David J. Kruglinski, Scot Wingo,George Shepherd. 1999.?Programming Visual C++ 6.0技術(shù)內(nèi)幕.北京:北京希望電腦公司出版社,2002

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。