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

Adaboost算法及其在實時視頻流中的應(yīng)用

2011-12-31 00:00:00李湘
軟件工程 2011年12期

摘 要:針對Adaboost算法在實時視頻流中的應(yīng)用,本文基于Adaboost算法的人臉檢測原理,即通過提取圖像中的haar特征,在訓(xùn)練過程中選出最優(yōu)特征,轉(zhuǎn)換成弱分類器,優(yōu)化組合于人臉檢測。最終,利用opencv的開發(fā)包,通過VC++軟件編程實現(xiàn)基于Adaboost算法實時視頻流中的人臉檢測。

關(guān) 鍵 詞:人臉檢測;haar特征;Adaboost算法;Opencv

引言

人臉檢測的研究最早可以追溯到20世紀60-70年代。經(jīng)過曲折發(fā)展,已經(jīng)有了一些較為成功的方法,正日趨成熟。一個完整的人臉檢測應(yīng)該包括人臉檢測、特征提取以及匹配識別三大基本過程。

人臉檢測的常用方法有基于知識的人臉檢測、基于特征的人臉檢測、基于模板匹配的人臉檢測以及基于圖像塊的人臉檢測。

1 基于Adaboost算法的人臉檢測

Adaboost算法根據(jù)人臉面部的灰度分布特征,選擇使用haar特征,其是一種基于積分圖像的特征,該特征計算簡單,提取速度較快,從而使得Adaboost檢測算法基本成為當(dāng)前最快的檢測算法之一。Adaboost算法首先提取圖像中的haar特征,然后通過訓(xùn)練過程從中選出最優(yōu)的haar特征,再將訓(xùn)練得到的haar特征轉(zhuǎn)換成弱分類器,最后將得到的弱分類器進行優(yōu)化組合用于人臉檢測。

1.1 基于Adaboost算法的人臉檢測原理

(1) 提取haar特征

提取haar特征,即提取較好的haar特征對人臉圖像灰度分布的特點進行描述。

1)積分圖像

積分圖像是將原圖像中任一點的左上方的全部像素相加作為當(dāng)前點像素值所得到的圖像;積分圖像中每個點(x,y)的值為原圖像中點(x,y)左上部分所有像素值的累加:

(1-1)

其中i為原始圖像,ii為積分圖像。

假設(shè)已經(jīng)求得某一圖像的積分圖像(圖2),利用公式可以迅速計算出原圖像中D區(qū)域內(nèi)的像素的和值。

(1-2)

其中SD是原圖像中D區(qū)域內(nèi)的像素的和值,1、2、3、4分別是積分圖像中點1、點2、點3和點4的值。

2)haar特征

haar特征是根據(jù)區(qū)域灰度的對比特點設(shè)計。如圖3所示,圖中給出了4個常用的haar特征。每個特征分為2個部分,對比兩個部分(黑塊和白塊)的像素和值的大小。

(2)生成弱分類器[1][3]

每個haar特征對應(yīng)一個弱分類器,每個弱分類器根據(jù)其所對應(yīng)的haar特征參數(shù)來定義。弱分類器的定義公式如下:

(1-3)

其中,特征參數(shù)pj表示不等式方向,j表示閾值。

(3)訓(xùn)練過程[4][5]

Adaboost算法的訓(xùn)練過程就是挑選最優(yōu)弱分類器,并賦予其權(quán)重的過程。圖4是Adaboost算法的訓(xùn)練示意圖。

1.2 級聯(lián)分類器的使用

將弱分類器優(yōu)化組合成強分類器,并將若干個強分類器級聯(lián)在一起,其一級比一級復(fù)雜,一級比一級嚴格。Adaboost算法引入級聯(lián)分類器,其檢測示意圖如圖5所示。由于非人臉圖像被前幾級快速排除,因此加快了Adaboost算法的檢測速度。

2 實時視頻流中人臉檢測的實現(xiàn)

由于使用Adaboost算法進行人臉檢測需要大量的樣本訓(xùn)練,筆者能力有限,只能基于Intel公司開發(fā)的opencv[6]開發(fā)包進行編程。編程者無需編寫算法函數(shù),只需編寫調(diào)用程序,以調(diào)用opencv函數(shù)進行Adaboost算法的視頻人臉檢測。

2.1 關(guān)鍵代碼

(1)獲取視頻文件并加載到一個windows窗口中

//確定是否目標來自文件或攝像頭

if( !input_name || (isdigit(input_name[0]) input_name[1] == '\\0') )

capture = cvCaptureFromCAM( !input_name ? 0 : input_name[0] - '0' );

else capture = cvCaptureFromAVI( input_name );

//建立一個新的window窗口,以result命名

cvNamedWindow( \"result\", 1 );

if( !cvGrabFrame( capture )) //如果capture成功加載,則捕獲一針,并存到圖像中

break;

frame = cvRetrieveFrame( capture );

if( !frame ) break; //如果針不存在,退出循環(huán)

(2)獲取靜態(tài)圖像

//如果捕獲沒有成功,則 else

{//假設(shè)圖像是ftest.jpg 或者特定的輸入

const char* filename = input_name ? input_name : (char*)\"ftest.jpg\";

IplImage* image = cvLoadImage( filename, 1 ); //加載文件圖像

if( image ) //如果圖像成功加載,則調(diào)用處理函數(shù)

{detect_and_draw( image );

cvWaitKey(0);

cvReleaseImage( image ); //釋放內(nèi)存}

else//假定它是一個文檔類的文件包含要被處理圖像名稱,每行一個

{ FILE* f = fopen( filename, \"rt\" ); //以讀的形式打開

if( f )

{char buf[1000+1];

while( fgets( buf, 1000, f ) )//從f中讀取1000個數(shù)據(jù)

{ int len = (int)strlen(buf); //從中移去空格并且確定名字長度

while( len > 0 isspace(buf[len-1]) ) //判斷是否為空格

len--;

buf[len] = '\\0';

image = cvLoadImage( buf, 1 ); //加載確定名字的圖像

if( image ) //如果文件加載成功,則

{//檢測圖像

detect_and_draw( image );

cvWaitKey(0);

cvReleaseImage( image );

}}

fclose(f); //既然打開文件,就要關(guān)閉它

}}}

static CvMemStorage* storage = 0; // 為計算開辟內(nèi)存

static CvHaarClassifierCascade* cascade = 0; //建立一個新的haar 分類器

void detect_and_draw( IplImage* image ); //子函數(shù)聲明從圖像中檢測出物體

const char* cascade_name =\"haarcascade_frontalface_alt.xml\";//建立一個字符串,包含cascade的名字,作為訓(xùn)練的分類器

2.2 操作方法

如果存在外接攝像頭,則程序自動檢測,并將視頻圖像放入一個名為“result”的windows窗口。緊接著程序?qū)⒆詣诱{(diào)用函數(shù)檢測圖像,標記人臉。如果無外接攝像頭,本程序就檢測靜態(tài)圖像。由于在程序中聲明了指定圖像名,因此在程序所在文件夾中須存在名為“ftest.jpg”圖像文件。

3 測試結(jié)果分析

本程序在PC上測試,平臺為windowsXP,軟件環(huán)境為Microsoft Visual C++ 6.0。攝像頭為Hyundai Camera。

從上圖中可以看出本程序可以比較成功的實現(xiàn)在實時視頻中的正面人臉檢測,標記位置十分準確。本程序也可以比較成功的準確標記出視頻中側(cè)面人臉的位置。

4 結(jié)語

人臉檢測技術(shù)的突破性發(fā)展,對人臉識別、表情姿態(tài)的識別、視頻監(jiān)控、身份驗證、多媒體數(shù)據(jù)庫檢索等相關(guān)領(lǐng)域的研究產(chǎn)生巨大推動作用。然而,其本身的復(fù)雜性,加之?dāng)?shù)字圖像采集中易受各種外界因素的干擾,Adaboost算法存在誤檢現(xiàn)象,如何降低誤檢率,將是筆者下一步探索的方向。

參考文獻

[1] 趙麗紅,劉紀紅,徐心和.人臉檢測方法綜述[J].計算機應(yīng)用研究.2004,21(9):1-4.

[2] 張建明,汪大慶.基于Adaboost 算法的多姿態(tài)人臉實時視頻檢測[J].計算機工程與設(shè)計.2010,31(18):4065-4067,4096.

[3] Bo Wu,HaizhouAi,Chang Huan,Shihong Lao.Fast rotation invariant multi-view face detection based on real Adaboost [C]//Sixth IEEE International Conference.Automatic Face and Gesture Recognition. 2004:79-84.

[4] 王海川,張立明.一種新的Adaboost快速訓(xùn)練算法[J].復(fù)旦學(xué)報(自然科學(xué)版).2004,43(1):27-33.

[5] Yong Ma,Xiaoqing Ding.Robust Real-time rotation invariant face detection based on cost-sensitive Adaboost [C]// 4th International Conference on Multimedia and Expo (ICME 2003). 2003: 465-468.

[6] 劉瑞禎,于仕琪.Open CV 教程[M].北京:北京航空航天大學(xué)出社,2007:385-393.

主站蜘蛛池模板: 久久精品亚洲热综合一区二区| 国产在线精彩视频论坛| 萌白酱国产一区二区| 国产伦精品一区二区三区视频优播 | 99re精彩视频| 国产在线一二三区| 欧美精品一区二区三区中文字幕| 国产不卡一级毛片视频| 国产成人AV男人的天堂| 亚洲国产精品无码AV| 一级毛片免费高清视频| 手机成人午夜在线视频| 久久综合一个色综合网| 欧美一级高清免费a| 亚洲AV成人一区国产精品| 97视频免费在线观看| 亚洲色欲色欲www在线观看| 国产欧美在线观看视频| 波多野结衣无码视频在线观看| 国产原创自拍不卡第一页| 亚洲中文字幕国产av| 中文字幕2区| 日本午夜影院| 国产亚洲一区二区三区在线| 亚洲天堂免费在线视频| 亚洲中文字幕久久精品无码一区| 天堂岛国av无码免费无禁网站| 精品乱码久久久久久久| 中文字幕日韩久久综合影院| 99热这里只有免费国产精品| 亚洲欧美自拍中文| 亚洲精品卡2卡3卡4卡5卡区| 亚洲第一网站男人都懂| 5388国产亚洲欧美在线观看| 亚洲大学生视频在线播放| 国产在线拍偷自揄观看视频网站| 亚洲国产清纯| h视频在线观看网站| 日本免费福利视频| 手机成人午夜在线视频| 精品视频福利| 99在线免费播放| 高清无码一本到东京热| 亚洲国产精品国自产拍A| 性激烈欧美三级在线播放| 伊人激情久久综合中文字幕| 2021最新国产精品网站| 黄色网页在线观看| 欧美一区二区三区欧美日韩亚洲| 免费国产黄线在线观看| 无码aaa视频| 色婷婷成人| 亚洲av日韩av制服丝袜| 大香伊人久久| 97se亚洲综合在线韩国专区福利| 日本福利视频网站| 中文字幕永久在线观看| 亚洲精品麻豆| AV色爱天堂网| 国产欧美精品一区aⅴ影院| 91福利一区二区三区| 国产免费观看av大片的网站| 久久免费视频播放| 天天综合网色| 国产国语一级毛片在线视频| 欧美一级黄色影院| 91精品国产情侣高潮露脸| 天天躁夜夜躁狠狠躁躁88| 国产清纯在线一区二区WWW| 青青青国产在线播放| 在线观看亚洲人成网站| 国产成人av大片在线播放| 国产女主播一区| 国产一在线观看| 亚洲首页国产精品丝袜| 日韩美女福利视频| 日韩精品毛片人妻AV不卡| 国产精品久久国产精麻豆99网站| 亚洲欧洲日产国产无码AV| 91年精品国产福利线观看久久| 久久无码高潮喷水| 中文字幕亚洲综久久2021|