999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV的運(yùn)動(dòng)目標(biāo)跟蹤及其實(shí)現(xiàn)

2008-04-12 00:00:00李振偉
現(xiàn)代電子技術(shù) 2008年20期

摘 要:CAMSHIFT算法是一種基于顏色直方圖的目標(biāo)跟蹤算法。在視頻跟蹤過(guò)程中,CAMSHIFT算法利用選定目標(biāo)的顏色直方圖模型得到每幀圖像的顏色投影圖,并根據(jù)上一幀跟蹤的結(jié)果自適應(yīng)調(diào)整搜索窗口的位置和大小,得到當(dāng)前幀中目標(biāo)的尺寸和質(zhì)心位置。在介紹Intel公司的開源OpenCV計(jì)算機(jī)視覺庫(kù)的基礎(chǔ)上,采用CAMSHIFT跟蹤算法,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)跟蹤,解決了跟蹤目標(biāo)發(fā)生存在旋轉(zhuǎn)或部分遮擋等復(fù)雜情況下的跟蹤難題。實(shí)驗(yàn)結(jié)果表明該算法的有效性、優(yōu)越性和可行性。

關(guān)鍵詞:目標(biāo)跟蹤;CAMSHIFT算法;OpenCV;顏色直方圖

中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1004373X(2008)2012803

Moving Object Tracking Method and Implement Based on OpenCV

LI Zhenwei1,2,CHEN Chong1,2,ZHAO You1

(1.Changchun Observatory,National Astronomical Observatories,Chinese Academy of Sciences,Changchun,130117,China;

2.Graduate School,Chinese Academy of Sciences,Beijing,100049,China)

Abstract:CAMSHIFT is an object tracking algorithm based onthe color histogram.In the process of object tracking,CAMSHIFT operates on a color back-projection image produced from object histogram model in current frame and finds the location and size of the current frame by adaptively adjusting the size and the location of the searching windows according to the tracking results of the previous frame in the video.On the basis of introducing OpenCV(an Intel open source computer vision library),through CAMSHIFT algorithm,the paper realizes moving object tracking and resolves some problems including distractor and occlusion by other objects.Experimental results show good performances,superiority and feasibility of the algorithm.

Keywords:object tracking;CAMSHIFT algorithm;OpenCV;color histogram

目標(biāo)跟蹤是計(jì)算機(jī)視覺的一個(gè)重要分支,日益廣泛應(yīng)用于科學(xué)技術(shù)、國(guó)防安全、航空、醫(yī)藥衛(wèi)生以及國(guó)民經(jīng)濟(jì)等領(lǐng)域。實(shí)現(xiàn)目標(biāo)跟蹤的關(guān)鍵在于完整地分割目標(biāo)、合理提取特征和準(zhǔn)確地識(shí)別目標(biāo),同時(shí),要考慮算法實(shí)現(xiàn)的時(shí)間,以保證實(shí)時(shí)性。當(dāng)視頻圖像中被跟蹤目標(biāo)發(fā)生姿態(tài)變化,存在旋轉(zhuǎn)或部分遮擋時(shí),簡(jiǎn)單的灰度模板或者Hausdorff距離匹配一般很難達(dá)到實(shí)時(shí)跟蹤目標(biāo)的要求,出現(xiàn)誤匹配或者跟蹤丟失的情況,而且跟蹤效率較低。

Gary R.Bradski提出的CAMSHIFT[1](Continuously Adaptive Mean Shift)算法是以顏色直方圖為目標(biāo)模式的目標(biāo)跟蹤算法,可以有效地解決目標(biāo)變形和部分遮擋的問題,而且運(yùn)算效率很高。該文首先詳細(xì)介紹CAMSHIFT算法,并結(jié)合Intel公司開發(fā)的開源OpenCV計(jì)算機(jī)視覺庫(kù),實(shí)現(xiàn)了運(yùn)動(dòng)目標(biāo)跟蹤,并驗(yàn)證了CAMSHIFT算法的有效性以及展現(xiàn)OpenCV計(jì)算機(jī)視覺庫(kù)的靈活性和優(yōu)越性。

1 CAMSHIFT算法

由于RGB顏色空間對(duì)光照亮度變化比較敏感[2],為了減少光照亮度變化對(duì)跟蹤效果的影響,CAMSHIFT算法將圖像由RGB顏色空間轉(zhuǎn)化到HSV(Hue,Saturation,Value)顏色空間再進(jìn)行后續(xù)處理。

圖1是CAMSHIFT算法流程。首先選擇大小為S的初始搜索窗口,然后對(duì)該窗口中每一個(gè)像素點(diǎn)的H通道上采樣,得到運(yùn)動(dòng)目標(biāo)的色調(diào)(Hue)直方圖,再將該直方圖保存下來(lái)作為搜索目標(biāo)的顏色直方圖模型。在目標(biāo)跟蹤過(guò)程中,對(duì)攝像頭當(dāng)前幀圖像的每一個(gè)像素,通過(guò)查詢目標(biāo)的顏色直方圖模型,可以得到該像素為目標(biāo)像素的概率。經(jīng)上述預(yù)處理,視頻中每一幀圖像都轉(zhuǎn)化為目標(biāo)顏色概率分布圖,也稱為目標(biāo)顏色投影圖。在一般情況下,將投影圖轉(zhuǎn)化為8位的灰度投影圖,概率為1的像素值設(shè)為255,概率為0的像素值為0,其他像素也轉(zhuǎn)換為相應(yīng)的灰度值。

圖1中虛線部分是CAMSHIFT算法的核心。設(shè)點(diǎn)(x,y)為搜索窗口中的像素位置,I(x,y)是投影圖中(x,y)處的像素值。為此,定義搜索窗口的零階矩M00和一階矩M01,M10分別如下:

M00=∑x∑yI(x,y)

M01=∑x∑yyI(x,y)

M10=∑x∑yxI(x,y)

圖1 CAMSHIFT算法跟蹤流程

該搜索窗口的質(zhì)心位置為:

(xc,yc)=(M10/M00,M01/M00)

計(jì)算跟蹤目標(biāo)的方向和尺寸:

二階矩:

M20=∑x∑yx2I(x,y)

M02=∑x∑yy2I(x,y)

M11=∑x∑yxyI(x,y)

令:

a =M20 /M00 -x2c,b=2(M11/M00-xcyc),

c =M02 /M00 -y2c

目標(biāo)長(zhǎng)軸的方向角為:

θ=12tan-1(ba-c)

圖像中目標(biāo)的長(zhǎng)軸和短軸的長(zhǎng)度計(jì)算公式:

l=(a+c)+b2+(a-c)22,

w=(a+c)-b2+(a-c)22

然后,根據(jù)零階矩M00調(diào)整搜索窗口的大小,并將搜索窗口的中心移動(dòng)到質(zhì)心,如果移動(dòng)距離大于預(yù)先設(shè)定的固定閾值,則重新計(jì)算調(diào)整后的窗口質(zhì)心,進(jìn)行新一輪的窗口位置和尺寸調(diào)整,直到窗口中心與質(zhì)心間的距離小于預(yù)設(shè)的固定閾值,或者循環(huán)運(yùn)算的次數(shù)達(dá)到某一最大值,認(rèn)為收斂條件滿足,進(jìn)入下一幀圖像進(jìn)行心的目標(biāo)搜索。在下一幀圖像中,利用上一幀圖像中最終得到的窗口質(zhì)心位置和S=2M00256來(lái)設(shè)置新的搜索窗口位置和尺寸。CAMSHIFT跟蹤算法在視頻單幀內(nèi)與幀間都根據(jù)上一步得到的M00自適應(yīng)地調(diào)整搜索窗口的大小,因而可以適應(yīng)跟蹤目標(biāo)動(dòng)態(tài)變形的情況。

2 計(jì)算機(jī)視覺類庫(kù)OpenCV簡(jiǎn)介

開放源代碼的計(jì)算機(jī)視覺類庫(kù)OpenCV( Intel@ Open Source Computer Vision Library)由英特爾公司位于俄羅斯的研究實(shí)驗(yàn)室所開發(fā),它是一套可免費(fèi)獲得的、由一些C函數(shù)和C++類所組成的庫(kù),用來(lái)實(shí)現(xiàn)一些常用的圖像處理及計(jì)算機(jī)視覺算法。

OpenCV主要用于對(duì)圖像進(jìn)行一些高級(jí)處理,比如說(shuō)特征檢測(cè)與跟蹤、運(yùn)動(dòng)分析、目標(biāo)分割與識(shí)別以及3D重建等。

與其他計(jì)算機(jī)視覺工具相比,OpenCV的優(yōu)越性如表1所示:

表1 圖像處理、計(jì)算機(jī)視覺工具比較(IPL,openCV,IPP,visDSK與 Matlab)

開發(fā)工具開發(fā)單位應(yīng)用領(lǐng)域免費(fèi)情況源碼公開與否備注

IPLIntel圖像處理Free不公開已被并入到IPP

OpenCVIntel圖像處理、計(jì)算機(jī)視覺Free公開基于Intel芯片代碼優(yōu)化

IPPIntel集成開發(fā)環(huán)境庫(kù)(圖像處理、信號(hào)處理等)Not free不公開基于Intel芯片代碼優(yōu)化

VisDSKMircrosoft圖像處理Free公開無(wú)優(yōu)化

MatlabMathWorks多學(xué)科、多種工作平臺(tái)Not free不公開速度慢,不宜編譯成可執(zhí)行文件

OpenCV是Intel公司開發(fā)的圖像處理和計(jì)算機(jī)視覺函數(shù)庫(kù),它有以下特點(diǎn):

(1) 開放C及C++源碼;

(2)基于Intel處理器指令集開發(fā)的優(yōu)化代碼;

(3)統(tǒng)一的結(jié)構(gòu)和功能定義;

(4)強(qiáng)大的圖像和矩陣運(yùn)算能力;

(5)方便靈活的用戶接口;

(6) 同時(shí)支持MS-Windows,Linux平臺(tái);

(7) 在速度上OpenCV還有Intel 公司的mmx和ssl優(yōu)化。

2.1 OpenCV的數(shù)據(jù)結(jié)構(gòu)

OpenCV設(shè)計(jì)一些基本數(shù)據(jù)類型,基本的數(shù)據(jù)類型包括:圖像類的IplImage,矩陣類的CvMat,可變集合類的CvSeq,CvSet,CvGraph以及用于多維柱狀圖的混合類CvHistogram。輔助數(shù)據(jù)類型包括:用于表示二維點(diǎn)坐標(biāo)的CvPoint,用于表示圖像寬和高的CvSize等。

2.2 OpenCV的函數(shù)體系

OpenCV中每個(gè)函數(shù)的命名都以“cv”開始,然后是該函數(shù)的行為及目標(biāo)。例如用來(lái)創(chuàng)建圖像的函數(shù)“cvCreateImage”,載入圖像的函數(shù)“cvLoadImage”。OpenCV是為圖像處理及計(jì)算機(jī)視覺在實(shí)際工程中的應(yīng)用而設(shè)計(jì)的一個(gè)類庫(kù),其中所有的函數(shù)都由于其在實(shí)際應(yīng)用中所實(shí)現(xiàn)的不同的功能而分屬不同的類型,主要的函數(shù)類型有:

(1) 基本的圖像處理與分析函數(shù)。

這個(gè)類型的函數(shù)主要用于實(shí)現(xiàn)一些基本的圖像處理與分析功能,例如圖像平滑函數(shù)cvSmooth,Sobel算子cvSobe,l Canny邊緣分割函數(shù)cvCanny等。

(2) 結(jié)構(gòu)分析函數(shù)。

包括有輪廓處理函數(shù),幾何學(xué)函數(shù)以及平面細(xì)分函數(shù)。

(3) 運(yùn)動(dòng)分析與目標(biāo)跟蹤函數(shù)。

包括有用于運(yùn)動(dòng)分析與目標(biāo)跟蹤的函數(shù),例如背景重建函數(shù)cvAcc,用光流法或動(dòng)態(tài)輪廓模型來(lái)實(shí)現(xiàn)目標(biāo)跟蹤的函數(shù)cvCalcOpticalFlowBM和cvSnakeImage以及卡爾曼濾波函數(shù)CvKalman等。

(4) 攝像機(jī)標(biāo)定和3D重建函數(shù)。

包括有用于攝像機(jī)標(biāo)定,姿態(tài)估計(jì)以及從兩個(gè)攝像機(jī)進(jìn)行3D相似重構(gòu)的函數(shù)。

(5) GUI與視頻處理函數(shù)。

包括有高級(jí)圖形用戶接口highGUI用以實(shí)現(xiàn)對(duì)圖像的載入、顯示及保存等基本操作以及用以實(shí)現(xiàn)視頻輸入輸出及處理的函數(shù)。

3 CAMSHIFT算法實(shí)現(xiàn)

在OpenCV庫(kù)中,CvCamShiftTracker類就是用來(lái)實(shí)現(xiàn)CAMSHIFT算法的,使得進(jìn)行二次開發(fā)變得很簡(jiǎn)單。該函數(shù)為:

int cvCamShift( const CvArr* prob_image,CvRect window,CvTermCriteria criteria,CvConnectedComp* comp,CvBox2D* box=NULL );

prob_image:目標(biāo)直方圖的反向投影

window:初始搜索窗口

criteria:確定窗口搜索停止的準(zhǔn)則

comp:生成的結(jié)構(gòu),包含收斂的搜索窗口坐標(biāo) (comp→rect 字段) 與窗口內(nèi)部所有像素點(diǎn)的和 (comp→area 字段).

box:目標(biāo)的帶邊界盒子。如果非 NULL,則包含目標(biāo)的尺寸和方向。

利用該函數(shù),在VC6.0開發(fā)環(huán)境下,就容易實(shí)現(xiàn)CAMSHIFT算法跟蹤運(yùn)動(dòng)物體,圖2是程序界面:

圖2 CAMSHIFT跟蹤界面

4 實(shí)驗(yàn)結(jié)果與分析

在本實(shí)驗(yàn)中,用一個(gè)攝像頭來(lái)跟蹤一運(yùn)動(dòng)物體,下面圖3~圖6一系列圖像是采用CAMSHIFT算法跟蹤運(yùn)動(dòng)物體部分圖像。

圖3 攝像頭拍到的場(chǎng)景

圖4 手動(dòng)選中的目標(biāo)物體

圖5 物體快速移動(dòng)時(shí)跟蹤目標(biāo)

圖6 物體發(fā)生旋轉(zhuǎn)、變形時(shí)跟蹤目標(biāo)物體

由此可見,基于顏色直方圖的CAMSHIFT算法可以有效地解決目標(biāo)變形和旋轉(zhuǎn)問題,而且運(yùn)算效率很高,可以實(shí)時(shí)跟蹤運(yùn)動(dòng)目標(biāo)。

5 結(jié) 語(yǔ)

本文在詳細(xì)分析CAMSHIFT算法原理的基礎(chǔ)上,采用Intel公司開發(fā)的OpenCV視覺庫(kù),在VC6.0開發(fā)環(huán)境下,實(shí)現(xiàn)了運(yùn)動(dòng)目標(biāo)實(shí)時(shí)跟蹤,解決了目標(biāo)旋轉(zhuǎn)、變形、部分遮擋問題。同時(shí),可以看到,在開源庫(kù)OpenCV的基礎(chǔ)上,根據(jù)自己所開發(fā)應(yīng)用程序所要實(shí)現(xiàn)的功能選擇所需的庫(kù)函數(shù),能夠大大減少在計(jì)算機(jī)視覺領(lǐng)域中的開發(fā)時(shí)間和精力,縮短程序開發(fā)的周期。

參考文獻(xiàn)

[1]Bradski G R.Computer Video Face Tracking for Use in a Perceptual User Interface[J].Intel Technology Journal,1998,2:214-219.

[2]Boye M.The Effects of Caputre Conditions on the CAMSHIFT Face Tracker[R].Alberta,Canada:Department of Computer Science,University of Calgary,2001.

[3]Comaniciu D,Ramesh V,Meer R.Real-time Tracking of Non-rigid Objects Using Meanshift[A].Proceeding of the IEEE Conference on Computer Vision and Pattern Recognition[C].Dublin,Ireland,2000,2:142-149.

[4]張宏志,張金換,黃世霖,等.基于Camshift的目標(biāo)跟蹤算法[J].Computer Engineering and Design,2006,27(11):2 012-2 014.

[5]劉雪,常發(fā)亮,王華杰.基于改進(jìn)Camshift算法的視頻對(duì)象跟蹤方法[J].微計(jì)算機(jī)信息,2007(21):297-298,305.

[6]孫鑫,余安平.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

[7]劉瑞禎,于仕琪.OpenCV教程基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.

[8]Intel Open Source Computer Vision Library Reference Manual[EB/OL].http://www.intel.com/research/mrl/research/opencv/.

[9]http://blog.csdn.net/hunnish.

[10]http://tech.groups.yahoo.com/group/OpenCV.

作者簡(jiǎn)介 李振偉 男,1983年出生,河南安陽(yáng)人,碩士研究生。研究方向?yàn)橐曨l運(yùn)動(dòng)目標(biāo)跟蹤。

陳 翀 碩士研究生。

趙 有 研究員、博士生導(dǎo)師。

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

主站蜘蛛池模板: 国产黄色片在线看| 国产精品手机视频一区二区| 亚洲天堂精品在线| 久久鸭综合久久国产| 免费一级无码在线网站| 亚洲高清无码精品| 久久毛片网| 欧美影院久久| 亚洲色图欧美激情| 青青久久91| 国产精品播放| 精品偷拍一区二区| 欧美日韩另类国产| 亚洲av中文无码乱人伦在线r| 欧美国产日韩一区二区三区精品影视| 秘书高跟黑色丝袜国产91在线 | 欧美午夜在线播放| 国产尤物jk自慰制服喷水| 成人福利一区二区视频在线| 久久国产黑丝袜视频| 成人午夜视频在线| 欧美日韩91| 国产精品毛片一区视频播| 狠狠躁天天躁夜夜躁婷婷| 日韩在线播放中文字幕| 亚洲视频a| 青青青国产视频手机| 亚洲一区二区无码视频| 亚洲午夜天堂| 国产午夜无码专区喷水| 欧美精品综合视频一区二区| 婷婷五月在线| 国产精品无码在线看| 四虎永久在线| 国产网站黄| 欧美视频二区| 国产精选自拍| 午夜不卡视频| 日韩午夜福利在线观看| 国产精品一区二区在线播放| 大陆国产精品视频| 69国产精品视频免费| 久久窝窝国产精品午夜看片| 久久精品视频亚洲| av在线手机播放| 久久黄色小视频| 毛片三级在线观看| 第一页亚洲| 色综合成人| 无码AV动漫| 亚洲高清在线天堂精品| 91麻豆精品国产91久久久久| 成人国产一区二区三区| 在线a网站| 欧美色香蕉| 99精品一区二区免费视频| 人妻免费无码不卡视频| 日韩免费毛片视频| 精品国产中文一级毛片在线看| 伊人网址在线| 日本不卡视频在线| 国产国语一级毛片在线视频| 四虎影视库国产精品一区| 久久永久视频| 日本亚洲最大的色成网站www| 四虎永久在线精品国产免费| 麻豆国产原创视频在线播放| 亚洲无码高清一区二区| 好久久免费视频高清| 国产欧美日韩免费| 国产在线精彩视频二区| 99在线小视频| 国产人人射| 亚洲无线国产观看| 天天操天天噜| 国产成人永久免费视频| 啪啪永久免费av| 国产成人亚洲综合A∨在线播放| 久久久亚洲色| 国产在线一区二区视频| 波多野结衣一二三| 91成人在线观看视频|