• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于OpenCV的運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái)

    2016-03-21 12:55:48賈紅賓
    卷宗 2016年1期
    關(guān)鍵詞:目標(biāo)跟蹤

    賈紅賓

    摘 要:本文構(gòu)建了一個(gè)基于OpenCV軟件的運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái),采用CamShift算法對(duì)攝像頭視野中的運(yùn)動(dòng)目標(biāo)進(jìn)行實(shí)時(shí)檢測(cè)和跟蹤,取得較好的效果,為計(jì)算機(jī)視覺研究奠定基礎(chǔ)。

    關(guān)鍵詞:目標(biāo)跟蹤;CamShift算法;OpenCV

    1 引言

    隨著數(shù)字圖像處理技術(shù)的發(fā)展,基于視頻信息的目標(biāo)檢測(cè)跟蹤技術(shù)成為當(dāng)今計(jì)算機(jī)視覺領(lǐng)域研究的熱點(diǎn),其在安防監(jiān)控、智能交通機(jī)、器人等領(lǐng)域有著廣泛應(yīng)用前景。OpenCV作為一個(gè)開源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),實(shí)現(xiàn)了 數(shù)字圖像處理和計(jì)算機(jī)視覺方面的很多通用算法,具有簡(jiǎn)單易用、功能強(qiáng)大、移植方便等優(yōu)越性能,廣泛用于計(jì)算機(jī)視覺領(lǐng)域研究。本文借助OpenCV計(jì)算機(jī)視覺庫(kù)和VC++6.0編程環(huán)境,構(gòu)建了一個(gè)運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái),對(duì)從攝像頭采集來的圖像數(shù)據(jù)進(jìn)行實(shí)時(shí)分析、處理,從而實(shí)現(xiàn)對(duì)運(yùn)動(dòng)物體的檢測(cè)與跟蹤。

    2 OpenCV簡(jiǎn)介[1]

    OpenCV是Intel開源計(jì)算機(jī)視覺庫(kù)(Open Computer Vision)的簡(jiǎn)稱。它由一系列 C 函數(shù)和少量 C++ 類構(gòu)成。OpenCV實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。OpenCV 擁有包括300多個(gè)C函數(shù)的跨平臺(tái)的中、高層API。它不依賴與其它的外部庫(kù),盡管也可以使用某些外部庫(kù)。OpenCV具有以下特點(diǎn):

    (1)開放源碼

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

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

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

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

    (6)支持Windows和Linux操作系統(tǒng)

    由于有了以上性能特點(diǎn),OpenCV函數(shù)庫(kù)功能強(qiáng)大,簡(jiǎn)單易用,移植也很方便,不失為學(xué)生和科研人員進(jìn)行數(shù)字圖像處理和計(jì)算機(jī)視覺方面學(xué)習(xí)和研究的好工具。

    3 運(yùn)動(dòng)物體的檢測(cè)與跟蹤

    3.1 目標(biāo)檢測(cè)

    目標(biāo)檢測(cè)即為從攝像機(jī)視野區(qū)域的序列圖像中將進(jìn)入該區(qū)域的運(yùn)動(dòng)物體從場(chǎng)景中提取出來。運(yùn)動(dòng)目標(biāo)檢測(cè)的算法依照目標(biāo)與攝像機(jī)之間的關(guān)系可以分為靜態(tài)背景下運(yùn)動(dòng)檢測(cè)和動(dòng)態(tài)背景下運(yùn)動(dòng)檢測(cè)[2]。背景差分法、幀間差分法以及光流法等是靜態(tài)背景下運(yùn)動(dòng)目標(biāo)檢測(cè)的常用方法。對(duì)于動(dòng)態(tài)背景下運(yùn)動(dòng)目標(biāo)檢測(cè),其算法要比靜態(tài)背景下的運(yùn)動(dòng)目標(biāo)檢測(cè)復(fù)雜得多。

    3.2 目標(biāo)跟蹤

    視頻信息中,運(yùn)動(dòng)目標(biāo)跟蹤就是在圖像序列中尋找與檢測(cè)目標(biāo)匹配最相似目標(biāo)區(qū)位置的過程。簡(jiǎn)單的說,就是在攝像機(jī)采集的序列圖像中為目標(biāo)確定在圖像區(qū)域中的位置。跟蹤算法通常有以下四類:基于主動(dòng)輪廓的跟蹤、基于特征的跟蹤、基于區(qū)域的跟蹤和基于模型的跟蹤等。算法的精度、魯棒性和實(shí)時(shí)性是衡量跟蹤效果的主要指標(biāo)。

    4 運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤的算法實(shí)現(xiàn)

    4.1 運(yùn)動(dòng)檢測(cè)跟蹤算法

    平臺(tái)硬件由PC機(jī)和通用攝像機(jī)組成,攝像機(jī)所帶開發(fā)包提供二次開發(fā)的API接口函數(shù)。平臺(tái)在進(jìn)行運(yùn)動(dòng)物體檢測(cè)跟蹤時(shí)所采用的算法是:首先利用“幀差法”檢測(cè)出初始的運(yùn)動(dòng)目標(biāo);一旦認(rèn)為此目標(biāo)合法,便根據(jù)目標(biāo)在HSI(色調(diào)、飽和度、強(qiáng)度)空間中H通道的色調(diào)特性,利用“連續(xù)適應(yīng)性均值移動(dòng)算法(CamShift)”,對(duì)目標(biāo)進(jìn)行跟蹤。

    CamShift算法簡(jiǎn)述如下:首先,在圖像HSI空間中計(jì)算H通道(色彩通道)分量的1D直方圖;接著,利用此1D直方圖將原圖改建成2D概率分布圖;第三步,計(jì)算出目標(biāo)區(qū)域的重心;第四部,利用經(jīng)典的“Mean Shift”算法,不斷平移調(diào)整窗口中心到與目標(biāo)重心重合;第五步,將上一幀的窗口大小和中心,作為下一幀Mean Shift算法搜索窗口的初始值,在下一幀中繼續(xù)Mean Shift運(yùn)算。

    上述運(yùn)動(dòng)物體檢測(cè)和跟蹤的算法運(yùn)算量小,跟蹤效果好。只要初始抓取目標(biāo)無誤,并且在色彩空間上目標(biāo)與背景有一定偏差,視頻跟蹤便能夠達(dá)到相當(dāng)?shù)臏?zhǔn)確度。更好的一點(diǎn)是,此算法在跟蹤同一場(chǎng)境內(nèi)多個(gè)運(yùn)動(dòng)目標(biāo)其中的一個(gè)時(shí)的效果,是其它同樣計(jì)算復(fù)雜度的算法所難以比擬的。

    4.2 VC++6.0編程環(huán)境下的實(shí)現(xiàn)

    目標(biāo)檢測(cè)與跟蹤的算法程序編寫在VC++6.0環(huán)境下結(jié)合OpenCV進(jìn)行實(shí)現(xiàn)。為了達(dá)到良好的實(shí)時(shí)性能,充分利用CPU資源,本平臺(tái)采用多線程并發(fā)處理模式進(jìn)行編程,以達(dá)到提高程序運(yùn)行效率的目的[3]。

    本平臺(tái)中,算法程序由兩個(gè)線程組成:MainThread線程和GetImageThread線程。MainThread線程是算法實(shí)現(xiàn)的主線程,主要功能就是利用OpenCV函數(shù)庫(kù),對(duì)從攝像頭獲取的圖像數(shù)據(jù)進(jìn)行分析處理,同時(shí),它負(fù)責(zé)啟動(dòng)GetImageThread線程。GetImageThread線程的主要工作就是循環(huán)地從攝像頭讀取數(shù)據(jù)放到緩存中,以供主線程分析。在視頻采集處理的過程中,GetImageThread線程向緩存中寫數(shù)據(jù)與從緩存中讀數(shù)據(jù)將不可避免地操作同一塊緩存。因此,為防止數(shù)據(jù)讀寫沖突出錯(cuò),兩線程在操作這塊緩存時(shí)都必須上鎖,可以通過“互斥量”來實(shí)現(xiàn)的。此外,為防止主線程重復(fù)地分析同一幀圖像,要求MainThread線程必須等待GetImageThread線程的一個(gè)信號(hào)才能進(jìn)行數(shù)據(jù)讀取和分析。

    5 實(shí)驗(yàn)結(jié)果

    經(jīng)過實(shí)驗(yàn)證明,本文構(gòu)建的基于OpenCV計(jì)算機(jī)視覺庫(kù)的運(yùn)動(dòng)目標(biāo)檢測(cè)跟蹤實(shí)驗(yàn)平臺(tái)可以在實(shí)時(shí)顯示圖像的基礎(chǔ)上,實(shí)時(shí)檢測(cè)和跟蹤運(yùn)動(dòng)目標(biāo),并且檢測(cè)和跟蹤都具有較高的魯棒性。在跟蹤過程中,即使目標(biāo)保持靜止,程序也不會(huì)丟失對(duì)目標(biāo)的跟蹤。以橙色小球檢測(cè)跟蹤實(shí)驗(yàn)為例,檢測(cè)跟蹤結(jié)果如圖1所示:

    實(shí)踐表明,OpenCV使得在PC機(jī)上的數(shù)字圖像處理和計(jì)算機(jī)視覺處理變得更加簡(jiǎn)單便捷、高效優(yōu)化。本平臺(tái)的構(gòu)建為計(jì)算機(jī)視覺研究提供了一個(gè)基礎(chǔ)平臺(tái),對(duì)學(xué)習(xí)和掌握OpenCV、熟悉圖像處理技術(shù),特別是運(yùn)動(dòng)目標(biāo)跟蹤方面的知識(shí),以及提高Windows操作系統(tǒng)下的C++編程能力等方面,能夠起到很大的作用。

    參考文獻(xiàn)

    [1] 布拉德斯基.學(xué)習(xí)OpenCV [M], 北京:清華大學(xué)出版社,2009.

    [2] 張娟,毛曉波,等.運(yùn)動(dòng)目標(biāo)跟蹤算法研究綜述[J],《計(jì)算機(jī)應(yīng)用研究》, 2009, 26(12):4407-4410

    [3] Jeffery Richter. Windows核心編程[M],北京: 機(jī)械工業(yè)出版社,2008.

    猜你喜歡
    目標(biāo)跟蹤
    多視角目標(biāo)檢測(cè)與跟蹤技術(shù)的研究與實(shí)現(xiàn)
    基于改進(jìn)連續(xù)自適應(yīng)均值漂移的視頻目標(biāo)跟蹤算法
    基于重采樣粒子濾波的目標(biāo)跟蹤算法研究
    航空兵器(2016年5期)2016-12-10 17:12:24
    空管自動(dòng)化系統(tǒng)中航跡濾波算法的應(yīng)用與改進(jìn)
    科技視界(2016年5期)2016-02-22 12:25:31
    智能視頻技術(shù)在電力系統(tǒng)領(lǐng)域的應(yīng)用
    基于車牌識(shí)別的機(jī)混車道視頻測(cè)速算法
    星座| 天柱县| 娱乐| 双流县| 钟祥市| 乡城县| 囊谦县| 贵德县| 晋州市| 永川市| 九江市| 咸阳市| 北安市| 天峨县| 林甸县| 兴宁市| 游戏| 新干县| 吴堡县| 瑞金市| 吉隆县| 依兰县| 柳江县| 司法| 安多县| 抚宁县| 讷河市| 平罗县| 观塘区| 万全县| 凌海市| 高青县| 龙游县| 淳安县| 逊克县| 广州市| 咸宁市| 来宾市| 寻甸| 林周县| 慈利县|