畢業(yè)設(shè)計(jì)(論文)通信類(lèi)電子信息工程類(lèi)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)全文_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)通信類(lèi)電子信息工程類(lèi)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)全文_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)通信類(lèi)電子信息工程類(lèi)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)全文_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)通信類(lèi)電子信息工程類(lèi)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)全文_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)通信類(lèi)電子信息工程類(lèi)專(zhuān)業(yè)畢業(yè)設(shè)計(jì)全文_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘 要在現(xiàn)代社會(huì)中,視頻采集與檢測(cè)被廣泛應(yīng)用于生活的方方面面,特別是現(xiàn)代監(jiān)控、實(shí)時(shí)統(tǒng)計(jì)等領(lǐng)域,有著巨大的商業(yè)前景。本設(shè)計(jì)研究了廣告效果評(píng)估系統(tǒng)中的人臉檢測(cè)和識(shí)別技術(shù)。本系統(tǒng)是在c+環(huán)境下,調(diào)用directshow和opencv的庫(kù)函數(shù)編譯實(shí)現(xiàn)的。directshow是微軟公司在activemovie和video for windows的基礎(chǔ)上推出的新一代基于com的流媒體處理的開(kāi)發(fā)包,opencv是英特爾公司軟件開(kāi)發(fā)中心開(kāi)發(fā)的是面向應(yīng)用程序開(kāi)發(fā)者開(kāi)發(fā)的計(jì)算機(jī)視覺(jué)庫(kù),它由一系列c函數(shù)和少量c+構(gòu)成。另外本設(shè)計(jì)介紹了快速人臉檢測(cè)算法,快速人臉檢測(cè)是viola提出了基于積分圖像與adaboost訓(xùn)練

2、的快速人臉檢測(cè)方法,其中利用積分圖像計(jì)算矩形特征,再用adaboost方法訓(xùn)練這些矩形特征組成強(qiáng)分類(lèi)器,由于可以在積分圖像上快速的計(jì)算這些矩形特征從而使分類(lèi)器的速度大大提高。本設(shè)計(jì)的基本思想是安裝攝像裝置來(lái)拍攝動(dòng)態(tài)場(chǎng)景,然后在視頻中檢測(cè)人臉信息,并跟蹤其運(yùn)動(dòng)。該系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)單實(shí)用,只需在普通pc上安裝一塊視頻采集卡,與前端攝像頭連接以獲取視頻輸入。軟件結(jié)構(gòu)主要為視頻信息的采集與檢測(cè),算法的核心是人臉快速檢測(cè)檢測(cè)。關(guān)鍵詞: directshow,opencv,人臉檢測(cè),人臉跟蹤,adaboostabstractin modern society, video capture and detec

3、tion are widely used in all aspects of life, especially modern monitoring, real-time statistics and other fields, has great commercial prospects. the design study to assess the effect of the advertising system of face detection and recognition technology. the system is in c + + environment, called d

4、irectshow and opencv to compile the library functions achieve. the design of the basic idea is to install the camera device to shoot dynamic scenes, and then detected in the face video information, and track their movement. the system hardware structure is simple and practical, just in an ordinary p

5、c to install a video capture card, with the front camera for video input connections. software architecture of the main video information for the collection and testing, the core algorithm for rapid detection of human face detection.key words: directshow,opencv face detection, face tracking, adaboos

6、t目 錄前 言1第1章 directshow視頻采集原理31.1 ddiectx簡(jiǎn)介31.2 directx 9.0c41.3 directshow51.4 directshow基本原理61.5系統(tǒng)環(huán)境及開(kāi)發(fā)環(huán)境71.6 用directshow實(shí)現(xiàn)視頻采集7第2章 開(kāi)發(fā)平臺(tái)opencv82.1 opencv簡(jiǎn)介82.2 opencv圖像處理庫(kù)82.3 opencv中的常用結(jié)構(gòu)9第3章 快速人臉檢測(cè)13第4章 人臉檢測(cè)開(kāi)發(fā)環(huán)境搭建164.1硬件安裝164.2 directx sdk 開(kāi)發(fā)包下載安裝174.3 opencv下載與安裝184.4 microsoft visual c+環(huán)境配置184.

7、5 vc項(xiàng)目的建立18第5章 系統(tǒng)實(shí)現(xiàn)215.1系統(tǒng)組成215.2人臉檢測(cè)的實(shí)現(xiàn)21第6章 總結(jié)與展望25致 謝26參考文獻(xiàn)27附 錄directshow視頻采集函數(shù)28前 言 近年來(lái),隨著平面廣告的發(fā)展,對(duì)廣告效果的評(píng)估越來(lái)越被企業(yè)重視。從功能上講,建立一個(gè)這樣的系統(tǒng)需要做視頻采集與檢測(cè)兩方面工作。其核心是利用計(jì)算機(jī)視覺(jué)技術(shù)從視頻圖像中檢測(cè)人臉并對(duì)其行為進(jìn)行理解與描述,其中重要算法就是快速人臉檢測(cè)。所謂人臉檢測(cè),指在給定的一幅靜止圖像或一段動(dòng)態(tài)圖像序列中,從背景未知的圖像中分割、提取并確認(rèn)可能存在的人臉,如果檢測(cè)到人臉,則確定其位置與大小,并提取出人臉的特征。論文共分五章,主要內(nèi)容概要如下:

8、第1章首先介紹了directshow視頻采集原理,directshow是微軟公司在activemovie和video for windows的基礎(chǔ)上推出的新一代基于com的流媒體處理的開(kāi)發(fā)包,主要用于視頻采集。第2章主要介紹了系統(tǒng)的一個(gè)開(kāi)發(fā)平臺(tái)opencv,opencv是英特爾公司開(kāi)發(fā)的,是面向應(yīng)用程序開(kāi)發(fā)者開(kāi)發(fā)的計(jì)算機(jī)視覺(jué)庫(kù),它由一系列c函數(shù)和少量c+構(gòu)成,opencv函數(shù)庫(kù)不僅對(duì)圖像進(jìn)行過(guò)濾,統(tǒng)計(jì),分類(lèi)等基本操作,而且現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,主要用于人臉的檢測(cè)。第3章摘要介紹了快速人臉檢測(cè)算法,本算法是viola提出了基于積分圖像與adaboost訓(xùn)練的快速人臉檢測(cè)方法

9、,其中利用積分圖像計(jì)算矩形特征,再用adaboost方法訓(xùn)練這些矩形特征組成強(qiáng)分類(lèi)器,由于可以在積分圖像上快速的計(jì)算這些矩形特征從而使分類(lèi)器的速度大大提高。第4章主要介紹了系統(tǒng)環(huán)境的搭建,主要包括軟硬件兩個(gè)部分以及c+庫(kù)函數(shù)的路徑配置。第5章主要介紹了系統(tǒng)的實(shí)現(xiàn)主要介紹了實(shí)現(xiàn)視頻采集與人臉檢測(cè)的一些重要函數(shù)。人臉檢測(cè)所存在的主要問(wèn)題:1.實(shí)時(shí)性問(wèn)題,在實(shí)際應(yīng)用中,特別是在數(shù)字視頻監(jiān)視系統(tǒng)中,人們往往對(duì)于系統(tǒng)的實(shí)時(shí)性要求更高,當(dāng)有人走進(jìn)監(jiān)控器的監(jiān)視范圍之內(nèi)時(shí),要求能夠?qū)崟r(shí)、準(zhǔn)確地檢測(cè)到人臉的位置,并能跟蹤它的運(yùn)動(dòng)軌跡及大小變化,直到離開(kāi)所監(jiān)控的范圍。眾所周知,在算法設(shè)計(jì)時(shí),一方面為了提高實(shí)時(shí)性,

10、需要減少目標(biāo)特征的數(shù)量和復(fù)雜度;另一方面為了提高準(zhǔn)確度,需要同時(shí)使用多個(gè)特征進(jìn)行綜合判斷,實(shí)時(shí)性和準(zhǔn)確度往往難以同時(shí)滿(mǎn)足。此外,由于圖像本身數(shù)據(jù)量大,僅僅為了計(jì)算某一個(gè)特征往往也需要花費(fèi)大量的時(shí)間。在實(shí)時(shí)性與準(zhǔn)確度之間尋找一個(gè)合理的折衷,是許多算法設(shè)計(jì)的一個(gè)主要目標(biāo)。2.遮擋處理問(wèn)題,目前,大部分人臉檢測(cè)、運(yùn)動(dòng)跟蹤系統(tǒng)都不能很好地解決目標(biāo)之間互遮擋和人體自遮擋等問(wèn)題,尤其是在擁擠狀態(tài)下,多人臉檢測(cè)和跟蹤問(wèn)題更是難于處理。遮擋時(shí),人體只有部分是可見(jiàn)的,簡(jiǎn)單依賴(lài)于背景減除進(jìn)行運(yùn)動(dòng)分割的技術(shù)此時(shí)將不再可靠,為了減少遮擋或深度所帶來(lái)的歧義性問(wèn)題,必須開(kāi)發(fā)更好的模型來(lái)處理遮擋時(shí)特征與身體各部分之間的準(zhǔn)確

11、對(duì)應(yīng)問(wèn)題。本論文所做的主要工作:本設(shè)計(jì)的目的是在學(xué)習(xí)visual c+的同時(shí),熟悉vc的編程環(huán)境,了解和學(xué)習(xí)編程的相關(guān)知識(shí),并熟悉了一個(gè)工程項(xiàng)目的實(shí)現(xiàn)過(guò)程。本設(shè)計(jì)對(duì)比了幾種人臉檢測(cè)算法,選擇了實(shí)時(shí)性與準(zhǔn)確度相對(duì)較好的快速人臉檢測(cè)adaboost算法。本文所研究的主要是在directshow和opencv支持下的視頻采集與檢測(cè)。第1章 directshow視頻采集原理1.1 ddiectx簡(jiǎn)介directx是一種應(yīng)用程序接口,directx是由很多api組成的,按照性質(zhì)分類(lèi),可以分為四大部分,顯示部分、聲音部分、輸入部分和網(wǎng)絡(luò)部分。 顯示部分擔(dān)任圖形處理的關(guān)鍵,分為directdraw(ddra

12、w)和direct3d(d3d),前者主要負(fù)責(zé)2d圖像加速。它包括很多方面:我們播放mp3、dvd電影、看圖、玩小游戲等等都是用的ddraw,你可以把它理解成所有劃線的部分都是用的ddraw。后者則主要負(fù)責(zé)3d效果的顯示,比如cs中的場(chǎng)景和人物、fifa中的人物等等,都是使用了directx的direct3d。directx并不是一個(gè)單純的圖形api1,它是由微軟公司開(kāi)發(fā)的用途廣泛的api,它包含有direct graphics(direct 3d+direct draw)、direct input、direct play、direct sound、direct show、direct set

13、up、direct media objects等多個(gè)組件,它提供了一整套的多媒體接口方案。只是其在3d圖形方面的優(yōu)秀表現(xiàn),讓它的其它方面顯得暗淡無(wú)光。directx開(kāi)發(fā)之初是為了彌補(bǔ)windows 3.1系統(tǒng)對(duì)圖形、聲音處理能力的不足,而今已發(fā)展成為對(duì)整個(gè)多媒體系統(tǒng)的各個(gè)方面都有決定性影響的接口。 directx 是一組低級(jí)“應(yīng)用程序編程接口”,可為 windows 程序提供高性能的硬件加速多媒體支持。windows 支持 directx 8.0,它能增強(qiáng)計(jì)算機(jī)的多媒體功能。使用 directx 可訪問(wèn)顯卡與聲卡的功能,從而使程序可提供逼真的三維圖形與令人如醉如癡的音樂(lè)與聲音效果。 direc

14、tx 使程序能夠輕松確定計(jì)算機(jī)的硬件性能,然后設(shè)置與之匹配的程序參數(shù)。該程序使得多媒體軟件程序能夠在基于 windows 的具有 directx 兼容硬件與驅(qū)動(dòng)程序的計(jì)算機(jī)上運(yùn)行,同時(shí)可確保多媒體程序能夠充分利用高性能硬件。 directx 包含一組 api,通過(guò)它能訪問(wèn)高性能硬件的高級(jí)功能,如三維圖形加速芯片和聲卡。這些 api 控制低級(jí)功能、支持輸入設(shè)備并控制著混音及聲音輸出。構(gòu)成 directx 的下列組件支持低級(jí)功能: microsoft directdraw microsoft directdraw api 支持快速訪問(wèn)計(jì)算機(jī)視頻適配器的加速硬件功能。它支持在所有視頻適配器上顯示圖形

15、的標(biāo)準(zhǔn)方法,并且使用加速驅(qū)動(dòng)程序時(shí)可以更快更直接地訪問(wèn)。directdraw 為程序以及 windows 系統(tǒng)組件提供了一種獨(dú)立于設(shè)備之外的方法來(lái)訪問(wèn)特定顯示設(shè)備的功能,而不要求用戶(hù)提供設(shè)備功能的其它信息。 2002年底,微軟發(fā)布directx9.0。directx 9中ps單元的渲染精度已達(dá)到浮點(diǎn)精度,傳統(tǒng)的硬件t&l單元也被取消。全新的vertexshader編程將比以前復(fù)雜得多,新的vertexshader標(biāo)準(zhǔn)增加了流程控制,更多的常量,每個(gè)程序的著色指令增加到了1024條。 ps 2.0具備完全可編程的架構(gòu),能對(duì)紋理效果即時(shí)演算、動(dòng)態(tài)紋理貼圖,還不占用顯存,理論上對(duì)材質(zhì)貼圖的分辨率的精

16、度提高無(wú)限多;另外ps1.4只能支持28個(gè)硬件指令,同時(shí)操作6個(gè)材質(zhì),而ps2.0卻可以支持160個(gè)硬件指令,同時(shí)操作16個(gè)材質(zhì)數(shù)量,新的高精度浮點(diǎn)數(shù)據(jù)規(guī)格可以使用多重紋理貼圖,可操作的指令數(shù)可以任意長(zhǎng),電影級(jí)別的顯示效果輕而易舉的實(shí)現(xiàn)。 vs 2.0通過(guò)增加vertex程序的靈活性,顯著的提高了老版本的vs性能,新的控制指令,可以用通用的程序代替以前專(zhuān)用的單獨(dú)著色程序,效率提高許多倍;增加循環(huán)操作指令,減少工作時(shí)間,提高處理效率;擴(kuò)展著色指令個(gè)數(shù),從128個(gè)提升到256個(gè)。 增加對(duì)浮點(diǎn)數(shù)據(jù)的處理功能,以前只能對(duì)整數(shù)進(jìn)行處理,這樣提高渲染精度,使最終處理的色彩格式達(dá)到電影級(jí)別。突破了以前限制p

17、c圖形圖像質(zhì)量在數(shù)學(xué)上的精度障礙,它的每條渲染流水線都升級(jí)為128位浮點(diǎn)顏色,讓游戲程序設(shè)計(jì)師們更容易更輕松的創(chuàng)造出更漂亮的效果,讓程序員編程更容易。 1.2 directx 9.0c與過(guò)去的directx 9.0b和shader model 2.0相比較,directx 9.0c最大的改進(jìn),便是引入了對(duì)shader model 3.0(包括pixel shader 3.0 和vertex shader 3.0兩個(gè)著色語(yǔ)言規(guī)范)的全面支持。舉例來(lái)說(shuō),directx 9.0b的shader model 2.0所支持的vertex shader最大指令數(shù)僅為256個(gè),pixel shader最大指

18、令數(shù)更是只有96個(gè)。而在最新的shader model 3.0中,vertex shader和pixel shader的最大指令數(shù)都大幅上升至65535個(gè),全新的動(dòng)態(tài)程序流控制、 位移貼圖、多渲染目標(biāo)、次表面散射、柔和陰影、環(huán)境和地面陰影、全局照明等新技術(shù)特性,使得geforce 6、geforce7系列以及radeon x1000系列立刻為新一代游戲以及具備無(wú)比真實(shí)感、幻想般的復(fù)雜的數(shù)字世界和逼真的角色在影視品質(zhì)的環(huán)境中活動(dòng)提供強(qiáng)大動(dòng)力。因此directx 9.0c和shader model 3.0標(biāo)準(zhǔn)的推出,可以說(shuō)是directx發(fā)展歷程中的重要轉(zhuǎn)折點(diǎn)。在directx 9.0c中,sha

19、der model 3.0除了取消指令數(shù)限制和加入位移貼圖等新特性之外,更多的特性都是在解決游戲的執(zhí)行效率和品質(zhì)上下功夫,shader model 3.0誕生之后,人們對(duì)待游戲的態(tài)度也開(kāi)始從過(guò)去單純地追求速度,轉(zhuǎn)變到游戲畫(huà)質(zhì)和運(yùn)行速度兩者兼顧。因此shader model 3.0對(duì)游戲產(chǎn)業(yè)的影響可謂深遠(yuǎn)。1.3 directshowdirectshow是微軟公司在activemovie和video for windows的基礎(chǔ)上推出的新一代基于com的流媒體處理的開(kāi)發(fā)包2,與directx開(kāi)發(fā)包一起發(fā)布。目前,directx最新版本為9.0。directshow為多媒體流的捕捉和回放提供了強(qiáng)有

20、力的支持。運(yùn)用directshow,我們可以很方便地從支持wdm驅(qū)動(dòng)模型的采集卡上捕獲數(shù)據(jù),并且進(jìn)行相應(yīng)的后期處理乃至存儲(chǔ)到文件中。這樣使在多媒體數(shù)據(jù)庫(kù)管理系統(tǒng)(mdbms)中多媒體數(shù)據(jù)的存取變得更加方便。 directshow是微軟公司提供的一套在windows平臺(tái)上進(jìn)行流媒體處理的開(kāi)發(fā)包,與directx開(kāi)發(fā)包一起發(fā)布。 運(yùn)用directshow,我們可以很方便地從支持wdm驅(qū)動(dòng)模型的采集卡上捕獲數(shù)據(jù),并且進(jìn)行相應(yīng)的后期處理乃至存儲(chǔ)到文件中。它廣泛地支持各種媒體格式,包括asf、mpeg、avi、dv、mp3、wave等等,使得多媒體數(shù)據(jù)的回放變得輕而易舉。另外,directshow還集成

21、了directx其它部分的技術(shù),直接支持dvd的播放,視頻的非線性編輯,以及與數(shù)字?jǐn)z像機(jī)的數(shù)據(jù)交換。更值得一提的是,directshow提供的是一種開(kāi)放式的開(kāi)發(fā)環(huán)境,我們可以根據(jù)自己的需要定制自己的組件。1.4 directshow基本原理directshow的基本原理是多媒體數(shù)據(jù)在過(guò)濾器圖表(filter graph)中流動(dòng),通過(guò)過(guò)濾器圖表中各過(guò)濾器(filter)實(shí)現(xiàn)在功能,最終實(shí)現(xiàn)多媒體數(shù)據(jù)在渲染過(guò)濾器(vendering filters)中的顯示和回放。我們知道,一般過(guò)濾器可分為三類(lèi):源過(guò)濾器(source filters)、轉(zhuǎn)換過(guò)濾器(transform filters)、渲染過(guò)濾器

22、(vendering filters)。它們分別完成數(shù)據(jù)提供、數(shù)據(jù)格式轉(zhuǎn)換(壓縮編碼等)和數(shù)據(jù)渲染和回放功能。所以,為了實(shí)現(xiàn)在win32系統(tǒng)下的視頻采集,我們首先要構(gòu)造出一個(gè)適當(dāng)?shù)倪^(guò)濾器圖表,然后通過(guò)應(yīng)用程序?qū)^(guò)濾器圖表的管理來(lái)完成視頻采集的功能。 這里我們一般需要2至3個(gè)過(guò)濾器。為什么這個(gè)數(shù)字會(huì)不準(zhǔn)確呢?那是因?yàn)橐环矫嫦到y(tǒng)采集設(shè)備的驅(qū)動(dòng)模型是不確定的(一般有wdm和vfw兩種);另一方面同一采集設(shè)備它們的filter會(huì)由于驅(qū)動(dòng)程序的差異造成filter中引腳(pin)的不一致;還有就 是不同總線的采集設(shè)備(pci、usb、agp)它們的filter也是不一致的。比如:同為usb攝像頭,有些f

23、ilter有兩個(gè)輸出引腳(capture和preview);而有些filter則只有一個(gè)輸出引腳(capture)。這里preview引腳用來(lái)將做視頻預(yù)覽,capture引腳用來(lái)將輸入數(shù)據(jù)以供編碼、保存等用處。這幾個(gè)過(guò)濾器分別是:a.video capture filter 采集設(shè)備filterb.smart tee filter 將沒(méi)有preview引腳filter的capture引腳分為兩支數(shù)據(jù)流c.video venderer 視頻渲染及回放filter通過(guò)上面3個(gè)過(guò)濾器,我們可以構(gòu)造出一個(gè)完整的視頻采集過(guò)濾器圖(如圖1-1) 圖1-1視頻采集過(guò)濾器我們也可以對(duì)上面的過(guò)濾器圖表稍做修改,

24、將它變?yōu)橐粋€(gè)既可以預(yù)覽視頻,又可以將視頻保存為媒體文件的圖(如圖1-2)。 圖1-2將視頻保存為媒體圖表構(gòu)造出來(lái)后,接下來(lái)就午剩下具體的實(shí)現(xiàn)了,我們只需依次構(gòu)造每個(gè)filter,然后將各信filter的pin按序相連即可完成圖表的構(gòu)造。最后,我們通過(guò)應(yīng)用程序向圖表發(fā)送命令(通過(guò)圖表管理器完成)來(lái)控制整個(gè)視頻采集的流程。1.5系統(tǒng)環(huán)境及開(kāi)發(fā)環(huán)境a.系統(tǒng)支持directxb.vc+ 6.0安裝有directx sdk9.0c.視頻采集設(shè)備天敏25001.6 用directshow實(shí)現(xiàn)視頻采集directshow作為directx的一個(gè)子集,它為用戶(hù)提供了強(qiáng)大、方便的多媒體開(kāi)接口,并且它擁有直接操作

25、硬件的能力,這使得它的效率遠(yuǎn)勝于用gdi等圖形方式編寫(xiě)的多媒體程序。這里結(jié)合實(shí)踐中運(yùn)用directshow實(shí)現(xiàn)視頻采(win32) 來(lái)加深對(duì)directshow的理解和操作能力。視頻采集具體實(shí)現(xiàn)程序見(jiàn)附錄。第2章 開(kāi)發(fā)平臺(tái)opencv2.1 opencv簡(jiǎn)介opencv(intel open source computer vision library)是英特爾公司1999年在俄羅斯設(shè)立的軟件開(kāi)發(fā)中心開(kāi)發(fā)的,是面向應(yīng)用程序開(kāi)發(fā)者開(kāi)發(fā)的計(jì)算機(jī)視覺(jué)庫(kù),它由一系列c函數(shù)和少量c+構(gòu)成,opencv函數(shù)庫(kù)不僅對(duì)圖像進(jìn)行過(guò)濾,統(tǒng)計(jì),分類(lèi)等基本操作,而且現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,例如運(yùn)動(dòng)

26、分析和跟蹤、人識(shí)別、目標(biāo)識(shí)別、特征檢測(cè)與跟蹤、形狀分析(幾何形狀處理)、3d重構(gòu),象分離與檢測(cè)等3。opencv函數(shù)庫(kù)定義了在圖像處理領(lǐng)域中的特定的數(shù)據(jù)類(lèi)和操作模型。它和對(duì)數(shù)字圖像底層操作的ipl(intel image processing libra兼容。算法的是基于與ipl數(shù)據(jù)結(jié)構(gòu)兼容的高度靈活的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),超過(guò)半以上的函數(shù)都在使用intel處理器的時(shí)候得到優(yōu)化。相對(duì)于其它圖像函數(shù)庫(kù),opencv是一種源碼開(kāi)放式的函數(shù)庫(kù),開(kāi)發(fā)者以自由地調(diào)用函數(shù)庫(kù)中的相關(guān)處理函數(shù)。opencv中包含300多個(gè)跨平臺(tái)的中高層api函數(shù),具備強(qiáng)大的圖像和矩陣運(yùn)算能力,可以大大減少開(kāi)發(fā)者的程工作量,有效提高開(kāi)

27、發(fā)效率和程序運(yùn)行的可靠性。另外,由于opencv有很好的移植性,開(kāi)發(fā)者可以根據(jù)需要在ms-windows和linux兩種平臺(tái)進(jìn)開(kāi)發(fā)。opencv將以公開(kāi)源碼的方式提供,也就是接受方有權(quán)在修改之后另向第三方提供,對(duì)非商業(yè)用途和商業(yè)用途都是免費(fèi)的。這個(gè)軟件運(yùn)行在使intel架構(gòu)處理器的計(jì)算機(jī),而操作系統(tǒng)可以是widows95、2000、xp等。由于opencv的在圖像處理方面的強(qiáng)大能力,本程序主要建立在opencv圖像庫(kù)的基礎(chǔ)上的。 2.2 opencv圖像處理庫(kù) opencv是英特爾公司于1999年在俄羅斯設(shè)立的軟件開(kāi)發(fā)中心“software development center”開(kāi)發(fā)的,該公司

28、一直致力于基于個(gè)人電腦的計(jì)算機(jī)視覺(jué)應(yīng)用的開(kāi)發(fā),可以實(shí)時(shí)追蹤的視覺(jué)用戶(hù)接口技術(shù)的普及為目標(biāo)。初步擬定應(yīng)用于human-computer interaction (hci,人機(jī)互動(dòng))、物體確定、面孔識(shí)別、表情識(shí)別,移動(dòng)物體追蹤、自主運(yùn)動(dòng)(ego-motion)、移動(dòng)機(jī)器人等領(lǐng)域。因此,將opencv圖像處理庫(kù)提供給玩具制造商及機(jī)器人制造商等從事計(jì)算機(jī)視覺(jué)相關(guān)技術(shù)的各類(lèi)企業(yè)/團(tuán)體(英特爾公司)。opencv是intel公司開(kāi)發(fā)的圖像處理和計(jì)算機(jī)視覺(jué)函數(shù)庫(kù),它有以下特點(diǎn): 1)開(kāi)放c源碼 2)基于intel處理器指令集開(kāi)發(fā)的優(yōu)化代碼 3)統(tǒng)一的結(jié)構(gòu)和功能定義 4)強(qiáng)大的圖像和矩陣運(yùn)算能力 5)方便靈活

29、的用戶(hù)接口 6)同時(shí)支持ms-windows, linux平臺(tái) 作為一個(gè)基本的計(jì)算機(jī)視覺(jué)、圖像處理和模式識(shí)別的開(kāi)源項(xiàng)目, opencv可以直接應(yīng)用于很多領(lǐng)域,作為第二次開(kāi)發(fā)的理想工具。速度更高的微處理器、廉價(jià)的數(shù)碼相機(jī)以及usb 2等技術(shù)使高速視頻捕獲(video capture)成為可能,因此,基于普通個(gè)人電腦的實(shí)時(shí)計(jì)算機(jī)視覺(jué)將可以實(shí)現(xiàn)。而且opencv和matlab類(lèi)似,卻比matlab快n倍,并對(duì)intel處理器進(jìn)行優(yōu)化。2.3 opencv中的常用結(jié)構(gòu) 在opencv函數(shù)庫(kù)4的編程過(guò)程中,常常需要用到一些常用的結(jié)構(gòu),了解這些結(jié)構(gòu)能夠很好地用opencv函數(shù)庫(kù),下面分別對(duì)cvsize和i

30、plimage兩個(gè)結(jié)構(gòu)進(jìn)行介紹。23.1 cvsize結(jié)構(gòu)cvsize結(jié)構(gòu)表示矩形尺寸的結(jié)構(gòu),結(jié)構(gòu)體中分別定義了矩形的寬度和高度,具體定義如下:typedef struct cvsize int width;/*矩形寬度,單位為象素*/ int height;/*矩形高度,單位為象素*/ cvsize; 與cvsize結(jié)構(gòu)相關(guān)的是其構(gòu)造函數(shù):inline cvsize cvsize( int width, int height );在定義cvsize結(jié)構(gòu)變量時(shí),可以按照如下方式定義:cvsize size=cvsize(400,300); /*定義寬為400象素,高為300象素的矩形*/cvs

31、ize結(jié)構(gòu)用來(lái)設(shè)置矩形區(qū)域大小,在一些復(fù)雜高級(jí)的結(jié)構(gòu)體常常能夠看到它,如下面將要介紹的iplimage結(jié)構(gòu)。23.2 iplimage結(jié)構(gòu)由于opencv主要針對(duì)的是計(jì)算機(jī)視覺(jué)方面的處理,因此在函數(shù)庫(kù)中,最重要的結(jié)構(gòu)體是iplimage結(jié)構(gòu)。iplimage結(jié)構(gòu)來(lái)源于intel的另外一個(gè)函數(shù)庫(kù)image processing library (ipl),該函數(shù)庫(kù)主要是針對(duì)圖像處理。iplimage結(jié)構(gòu)具體定義如下:typedef struct_ iplimage int nsize; /* iplimage大小*/ int id;/*版本(=0)*/ int nchannels;/*大多數(shù)op

32、encv函數(shù)支持1,2,3或4個(gè)通道*/ int alphachannel;/*被opencv忽略*/ int depth;/*像素的位深度,主要有以下支持格式: ipl depth 8u, ipl depthse 8s, iplee depth 16u,ipl_ depth-16s, iples depthee 32s,iplee depth 32f和ipl depth 64f*/ char colormodel4;/*被opencv忽略*/ char channelseq4;/*同上*/ int dataorder; /* 0一交叉存取顏色通道,1一分開(kāi)的顏色道.只有cvcreatelma

33、ge可以創(chuàng)建交叉存取圖像*/ int origin;/*圖像原點(diǎn)位置:0表示頂一左結(jié)構(gòu),,1表示底一左結(jié)構(gòu)*/ int align;/*圖像行排列方式(4 or 8),在opencv被忽略,使用widthstep代替*/ int width;/*圖像寬像素?cái)?shù)*/ int height;/*圖像高像素?cái)?shù)*/ struct一p1roi *roi;/*圖像感興趣區(qū)域,當(dāng)該值非空時(shí),只對(duì)該區(qū)域進(jìn)行處理*/ struct一limage *maskroi; /*在opencv中必須為null */ void *imageld;/*同上*/ structjpltileinfo/*tilelnfo; /*同上

34、*/ int imagesize;/*圖像數(shù)據(jù)大小(在交叉存取格式下imagesize=image- height* image-widthstep ),單位字節(jié)*/ char *imagedata;/*指向排列的圖像數(shù)據(jù)*/ int widthstep;/*排列的圖像行大小,以字節(jié)為單位*/ int bordermode4;/*邊際結(jié)束模式,在opencv被忽略*/ int borderconst4; /*同上*/ char *imagedataorigin; /*指針指向一個(gè)不同的圖像數(shù)據(jù)結(jié)構(gòu)(不是必須排列的),是為了糾正圖像內(nèi)存分配準(zhǔn)備的*/ iplimage; iplimage結(jié)構(gòu)體是

35、整個(gè)opencv函數(shù)庫(kù)的基礎(chǔ),在定義該結(jié)構(gòu)變量時(shí)需要用到函數(shù)cvcreatimage,變量定義方法如下:iplimage* src -cvcreateimage(cvsize(400,300), ipl depth 8u,3); 上句定義了一個(gè)iplimage指針變量src,圖像的大小是400 x 300,圖像顏色深度8位,3通道圖像。下面就算法的流程進(jìn)行討論: 如流程圖2-1所示,對(duì)每一幀圖像,圖像首先被轉(zhuǎn)化為hsv顏色空間來(lái)描述,然后根據(jù)要被跟蹤的目標(biāo)的直方圖模型求其色彩概率分布,目標(biāo)的質(zhì)心和大小通過(guò)camshift算法對(duì)色彩概率分布進(jìn)行處理后被找到,虛線框?yàn)檫M(jìn)行meanshift的核心部

36、分。當(dāng)前的運(yùn)動(dòng)目標(biāo)的位置和大小求得去調(diào)整下一幀的位置和大小,這樣不停的重復(fù)達(dá)到對(duì)運(yùn)動(dòng)目標(biāo)的跟蹤。 圖2-1基于opencv的自動(dòng)跟蹤算法流程圖第3章 快速人臉檢測(cè)viola提出了基于積分圖像與adaboost訓(xùn)練的快速人臉檢測(cè)方法5,其中利用積分圖像計(jì)算矩形特征,再用adaboost方法訓(xùn)練這些矩形特征組成強(qiáng)分類(lèi)器,由于可以在積分圖像上快速的計(jì)算這些矩形特征從而使分類(lèi)器的速度大大提高。此外,構(gòu)造層疊分類(lèi)器,首先簡(jiǎn)單的強(qiáng)分類(lèi)器排除大多數(shù)非人臉窗口,減輕復(fù)雜分類(lèi)器的負(fù)擔(dān),進(jìn)而提高速度;另外,層疊分類(lèi)器訓(xùn)練時(shí)下一層分類(lèi)器的訓(xùn)練在上一層分類(lèi)器劃分的子空間中進(jìn)行。viola的方法使在保留統(tǒng)計(jì)學(xué)習(xí)方法所具

37、有的魯棒性情況下使人臉檢測(cè)的速度大大提高。該方法的分類(lèi)器基于簡(jiǎn)單的矩形特征(rectangle feature),區(qū)別于傳統(tǒng)學(xué)習(xí)方法是基于象素的。如圖3-1就是viola采用的4種矩形特征。圖3-1viola使用的4種矩形特征 特征值就是大矩形內(nèi)陰影部分的灰度累加減去白色部分的灰度累加。這當(dāng)中每個(gè)小矩形都是相同大小的。對(duì)于2424的圖像窗口,全部特征的數(shù)目超過(guò)180000個(gè)。通過(guò)引入積分圖像,這些矩形特征可以在常數(shù)時(shí)間內(nèi)快速計(jì)算。積分圖像中對(duì)應(yīng)每個(gè)點(diǎn)計(jì)算其積分圖像值。在(x,y)的積分圖像值就是在(x,y)左上角所有灰度的和,即: (3-1)其中是(x,y)點(diǎn)的積分圖像值,是(x,y)的原始圖

38、像灰度值。矩形特征就是矩形區(qū)域象素灰度累加的差,而通過(guò)積分圖像,任何矩形的象素灰度累加可以通過(guò)4個(gè)點(diǎn)積分圖像值的加減計(jì)算完成(如圖3-2),所以矩形特征可以用積分圖像在參數(shù)時(shí)間內(nèi)快速計(jì)算。 a b124c d3 圖3-2矩形d的像素灰度累加為4+1-(2+3)boosting算法是近幾年中分類(lèi)算法的發(fā)展中最重要的成果之一。boosting算法是一種現(xiàn)代統(tǒng)計(jì)方法,理論上可以用來(lái)改進(jìn)任何學(xué)習(xí)算法的性能。schapire在pac學(xué)習(xí)框架中開(kāi)發(fā)了第一個(gè)簡(jiǎn)單的boosting算法。boosting在很多的計(jì)算機(jī)學(xué)習(xí)理論文獻(xiàn)中都有所提及,并越來(lái)越受到關(guān)注。adaboost是一種自適應(yīng)的boosting算法

39、,主要用途是將若干個(gè)弱分類(lèi)器整合為一個(gè)強(qiáng)分類(lèi)器,其中弱分類(lèi)器指的是那些性能比隨機(jī)分類(lèi)略好一點(diǎn)的分類(lèi)器。viola通過(guò)adaboost學(xué)習(xí)的方法選擇少量有效的矩形特征構(gòu)造強(qiáng)分類(lèi)器。對(duì)于2424的圖像窗口有180000個(gè)矩形特征,現(xiàn)在的問(wèn)題就是通過(guò)訓(xùn)練找到少量有效的特征構(gòu)成一個(gè)有效的分類(lèi)器。adaboost就是用于選擇有效的特征、并訓(xùn)練分類(lèi)器。adaboost通過(guò)組合弱分類(lèi)器構(gòu)成強(qiáng)分類(lèi)器。所謂弱分類(lèi)器,就是它不期望能很好的進(jìn)行分類(lèi),只要達(dá)到大于50%的正確率就可以了(而這總是可以保證的)。在這里每個(gè)特征對(duì)應(yīng)構(gòu)造一個(gè)弱分類(lèi)器。具體而言,特征jf對(duì)應(yīng)的弱分類(lèi)器如下: (3-2)其中,是在訓(xùn)練樣本上最小

40、錯(cuò)誤分類(lèi)的閾值,是表示不等式的方向。無(wú)論如何,總是可以保證正確分類(lèi)率大于50%。人臉檢測(cè)viola的方法6的分類(lèi)器的構(gòu)造過(guò)程中的特征選取是自動(dòng)進(jìn)行的,在所有矩形特征中自動(dòng)選取最有效分類(lèi)的特征,不像基于特征的方法需要人為總結(jié)啟發(fā)式規(guī)則。其次,其類(lèi)似分階段設(shè)計(jì)的層疊分類(lèi)器構(gòu)造時(shí),是通過(guò)目標(biāo)驅(qū)動(dòng)自動(dòng)構(gòu)造的,不像一般的分階段的分類(lèi)器設(shè)計(jì)方法每個(gè)階段(層次)的分類(lèi)器都得人工設(shè)計(jì)?;谏厦娴膬蓚€(gè)優(yōu)勢(shì),viola的方法對(duì)一般模式分類(lèi)問(wèn)題具有普遍意義,更接近于人類(lèi)的學(xué)習(xí)與分類(lèi)模式。viola通過(guò)實(shí)驗(yàn)表明,在700mhz pentium iii中該檢測(cè)算法能夠以0.067秒的平均速度處理一幅384*288的圖像

41、。其檢測(cè)效果如圖3-3:圖3-3人臉檢測(cè)效果圖第4章 人臉檢測(cè)開(kāi)發(fā)環(huán)境搭建視頻采集與人臉實(shí)時(shí)檢測(cè)系統(tǒng)主要包括兩個(gè)方面:硬件的連接和軟件環(huán)境的搭建。4.1硬件安裝1攝像頭:圖4-1攝像頭 ib-3535f制式:pal/ntsc 視頻輸出:1.0vp-p/75bnc 紅外波長(zhǎng):850nm 紅外距離:30m 2天敏vc4000卡:圖4-2天敏vc4000卡-四路卡接口類(lèi)型:pci,支持一機(jī)多卡,一卡四路,支持pal/ntsc,各通道同時(shí)工作互不干擾。支持overlay多路同時(shí)預(yù)覽,cpu占用率極低。提供mpeg4壓縮引擎,可對(duì)多路視頻圖像進(jìn)行壓縮。支持壓縮流/預(yù)覽流疊加,提供動(dòng)態(tài)avi圖像捕獲。wi

42、ndows會(huì)檢測(cè)到四次新發(fā)現(xiàn)硬件,利用硬件所帶光盤(pán),或到其主頁(yè)去下載驅(qū)動(dòng)程序,選擇sdk3000(這是個(gè)問(wèn)題,尚未解決)繼續(xù)安裝。3sdk2500卡:圖4-3天敏sdk2500卡-單路卡pci總線,兼容windows即插即用(pnp),安裝簡(jiǎn)易,示畫(huà)面流暢不間斷,每秒可達(dá)30(ntsc)幀、25(pal)幀,持ntsc和pal .secam制式,示分辨率可達(dá)720x576(pal),供動(dòng)態(tài)avi圖像捕獲。windows自動(dòng)檢測(cè),注意防止中斷沖突,比較可靠的方法是拔掉所有非必要的卡,然后優(yōu)先插入sdk2500卡,直到發(fā)生沖突(檢查硬件資源)。4像頭與電源:是有緣攝像頭,通過(guò)同軸電纜與視頻采集卡相

43、連即可。5安裝demo程序,即可觀察到視頻采集結(jié)果。6持directshow的標(biāo)準(zhǔn)視頻輸入:程序也可使用其他支持directshow的視頻采集設(shè)備7。4.2 directx sdk 開(kāi)發(fā)包下載安裝1.directshow是基于windows平臺(tái)的流媒體處理開(kāi)發(fā)包,它與directx一起發(fā)布。使用它可以在基于wdm驅(qū)動(dòng)的采集卡上進(jìn)行數(shù)據(jù)捕捉。2.下載directx9sdk,需要下載b版本的。這是directx的一個(gè)完整版本,一些教新的版本只有updating部分,不完整。3.雙擊安裝到選定目錄即可。4.3 opencv下載與安裝1.opencv是intel開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)。它由一系列 c 函數(shù)和

44、少量 c+ 類(lèi)構(gòu)成,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。2.下載地址:3.雙擊安裝opencv,將得到相關(guān)的include文件、lib文件和dll及例子等。4.4 microsoft visual c+環(huán)境配置1.為了利用directshow和opencv提供的功能,需要配置其include文件和lib文件的路徑8(以下$dx_home$代表directx的安裝目錄;$opencv_home$代表opencv的安裝目錄)2.include文件路徑:tools | options | directories | “include files”i.$dx_home$includeii.$

45、dx_home$samplesc+directshowbaseclassesiii.$opencv_home$cvincludeiv.$opencv_home$cxcoreincludev.$opencv_home$otherlibshighguic)lib文件路徑:tools | options | directories | “l(fā)ibrary files”i.$dx_home$libii.$opencv_home$lib4.5 vc項(xiàng)目的建立1.建立一個(gè)基于對(duì)話框的mfc程序項(xiàng)目,設(shè)工程名為peoplecount2.創(chuàng)建類(lèi)cshowpic,它是cstatic的一個(gè)子類(lèi),這個(gè)類(lèi)用于顯示位圖。

46、i.insert | new class ii.class type = mfc class; base class = cstatic; name=cshowpiciii.檢查文件showpic.cpp/h,看自動(dòng)生成了哪些代碼iv.參照我的文件修改showpic.cpp/h,注意其中添加部分和注釋3.添加兩個(gè)picture控件,用于顯示視頻采集結(jié)果和處理結(jié)果。將其type設(shè)為bitmap,styles中設(shè)置“center image”。i.右上角那個(gè)即是picture控件 ii.在新添加的控件上單擊右鍵,選擇屬性iii.general欄下type=bitmap;ididc_video_in

47、putiv.styles欄下選中center imagev.拉大picture控件使其足夠顯示視頻圖像vi.對(duì)第二個(gè)可采用復(fù)制的方式,但需修改其ididc_video_result4.為這兩個(gè)控件添加成員變量,類(lèi)型為cshowpic。i.在控件上單擊右鍵,選擇classwizardii.切換到member variables頁(yè)面,projectpeople,classnamecpeoplecountdlgiii.雙擊idc_video_input和idc_video_result,令categorycontrol,variable typecshowpic,自己起個(gè)名。比如m_inputvid

48、eownd、m_resultvideownd。注意在cpeoplecountdlg.h中添加#include “showpic.h”頭文件iv.檢查以下peoplecount.h中是否添加了剛才的兩個(gè)成員變量5.創(chuàng)建arframegrabber類(lèi),它基于directshow來(lái)實(shí)現(xiàn)對(duì)視頻的采集。方法是直接將arframegrabber.h和arframegrabber.cpp拷貝到你的工程目錄下。然后將其添加到工程中(雖在目錄下,但還未添加其信息):project | add to project | files,然后選擇這兩個(gè)文件即可。注意是否有新類(lèi)添加到左側(cè)列表中。這是directshow編

49、程的核心部分,以后要仔細(xì)分析。在peoplecountdlg.h的類(lèi)聲明中添加arframegrabber對(duì)象,用來(lái)采集圖像i.arframegrabber m_framegrabber; /負(fù)責(zé)圖像幀的采集ii.uint m_grabtimerid; /定時(shí)器idiii.記的要#include arframegrabber.h添加三個(gè)buttons,分別對(duì)應(yīng)初始化、開(kāi)始和停止(添加過(guò)程也很簡(jiǎn)單,最好能給id起個(gè)好名字)。1.m_framegrabber.init(3, true);/設(shè)置支持directshow的設(shè)備編號(hào),從0開(kāi)始2.m_framegrabber.setflippedimag

50、e( true ); /設(shè)置圖像需要上下翻轉(zhuǎn)iii.在開(kāi)始對(duì)應(yīng)的函數(shù)中啟動(dòng)定時(shí)器:m_grabtimerid=settimer(100,200,null );可自己查一下settimer函數(shù)的聲明iv.在peoplecount.cpp中添加1.#include cv.h2.#include highgui.h3.static cvmemstorage* storage = 0;4.static cvhaarclassifiercascade* cascade = 0;5.const char* cascade_name = .datahaarcascade_frontalface_alt.xm

51、l;6.聲明并定義void detect_and_draw( iplimage* img );v.在構(gòu)造函數(shù)中添加1.m_grabtimerid = 0;2.cascade = (cvhaarclassifiercascade*)cvload( cascade_name, 0, 0, 0 );/ 調(diào)用分類(lèi)函數(shù)/3.if( ! cascade )4.afxmessagebox( fail to load the harr data file!);/調(diào)用濾波器函數(shù)/5. return;6.storage = cvcreatememstorage( 0 );i)添加lib文件信息 i.project

52、 | settings | linkii.object/library modules = strmiids.lib strmbasd.lib strmbase.lib quartz.lib cxcore.lib cv.lib highgui.lib至此,已經(jīng)完成了系統(tǒng)軟硬件的安裝,接下通過(guò)程序?qū)崿F(xiàn)系統(tǒng)功能第5章 系統(tǒng)實(shí)現(xiàn)5.1系統(tǒng)組成該系統(tǒng)主要分為兩個(gè)大模塊:硬件部分和軟件部分硬件部分包括:攝像頭、視頻采集卡、相應(yīng)的數(shù)據(jù)連接線等。軟件結(jié)構(gòu)主要分為三大部分。第一部分是視頻信息的獲取,通過(guò)計(jì)算機(jī)來(lái)控制攝像頭的拍攝和視頻數(shù)據(jù)讀取過(guò)程。第二部分是算法的核心,即通過(guò)運(yùn)動(dòng)信息提取、人臉檢測(cè)和人臉檢測(cè)的結(jié)

53、合,確定場(chǎng)景中人的數(shù)目、位置和姿態(tài)及其運(yùn)動(dòng)軌跡。第三部分是統(tǒng)計(jì)分析,結(jié)合視頻分析結(jié)果和主觀評(píng)價(jià)反饋,通過(guò)機(jī)器學(xué)習(xí)的方法,建立一個(gè)自動(dòng)評(píng)估專(zhuān)家系統(tǒng)。除此之外,為了檢驗(yàn)視頻分析的準(zhǔn)確性,還需要在顯示部分實(shí)時(shí)顯示出對(duì)人臉檢測(cè)和跟蹤的結(jié)果。5.2人臉檢測(cè)的實(shí)現(xiàn)5.2.1 人臉檢測(cè)人臉作為圖像與視頻中最重要的視覺(jué)對(duì)象(visual object)9之一,在計(jì)算機(jī)視覺(jué)、模式識(shí)別、多媒體技術(shù)研究中占有重要的地位。人臉的檢測(cè)與檢索是人臉信息處理及基于內(nèi)容的檢索研究中的一個(gè)焦點(diǎn)問(wèn)題,是近年來(lái)研究十分活躍的一個(gè)方向,它在智能人機(jī)接口、基于內(nèi)容的檢索、數(shù)字視頻處理、保安等領(lǐng)域有著極為廣泛的應(yīng)用價(jià)值。最初人臉研究主要

54、集中在人臉識(shí)別領(lǐng)域,而且早期的人臉識(shí)別算法都是在認(rèn)為已經(jīng)得到了一個(gè)正面人臉或者人臉很容易獲得的前提下進(jìn)行的。但是隨著人臉應(yīng)用范圍的不斷擴(kuò)大和開(kāi)發(fā)實(shí)際系統(tǒng)需求的不斷提高,這種假設(shè)下的研究不再能滿(mǎn)足需求。人臉檢測(cè)開(kāi)始作為獨(dú)立的研究?jī)?nèi)容發(fā)展起來(lái)。目前,國(guó)內(nèi)外的文獻(xiàn)中所涉及的人臉檢測(cè)算法已經(jīng)有很多種,許多重要的國(guó)際會(huì)議和期刊都也都涉及到人臉檢測(cè)問(wèn)題研究論題。人臉檢測(cè)開(kāi)始廣泛應(yīng)用到全新人機(jī)界面、基于內(nèi)容的檢索、數(shù)字視頻處理、視覺(jué)監(jiān)測(cè)等許多領(lǐng)域。5.2.2 快速人臉檢測(cè)中的主要函數(shù)1.haar濾波器調(diào)用10cascade = (cvhaarclassifiercascade*)cvload( cascade_name, 0, 0, 0 );if( ! cascade )afxmessagebox( fail to load the harr data file!);return;storage = cvcreatememstorage( 0 );通過(guò)這個(gè)函數(shù)調(diào)用opencv中的haar濾波器分類(lèi)函數(shù),實(shí)現(xiàn)對(duì)濾波器的調(diào)用。2.采集控制函數(shù)void cpeoplecountdlg:onbtninit() m_framegrabber.init( 0, true ); /設(shè)置支持directshow的設(shè)備編號(hào),從0開(kāi)始/m_framegrabber.setflippedimage( true )

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論