【正文】
光線補償(直方圖均衡化)色彩空間選擇膚色建模形態(tài)學處理得出人臉檢測結果輸入圖像人臉檢測圖42對圖像進行人臉檢測具體框圖 人臉檢測的MATLAB實現(xiàn)本文通過對matlab編程,從而給出一個運算速度很快的人臉檢測matlab程序,其中包括視頻文件轉(zhuǎn)化為幀的程序編寫,還有利用膚色特征對圖像進行人臉檢測的程序編寫,最后是圖像轉(zhuǎn)化為視頻的程序的編寫。(1)提取AVI視頻的文件的幀先在matlab輸入一段AVI視頻,然后對其進行編寫程序,實現(xiàn)提取AVI視頻的文件的幀的功能。仿真效果圖如下:(a)AVI幀的播放 (b)幀的圖像圖43為幀的播放截頻圖及其圖像(2)人臉檢測部分效果圖 圖44為單張臉檢測效果圖(3)多張臉檢測效果圖檢測率:75% 漏檢率0% 誤檢率:25%圖45為多張臉檢測效果圖通過對上述人臉檢測分析,我們知道基于膚色的人臉檢測:這種檢測方法相對比較好,首先通過膚色分割排除非膚色區(qū)域,再結合人臉所在圖像中的像素比排除非人臉的膚色區(qū)域,最后再通過算法檢測實現(xiàn)人臉的準確標記。這種方法對張臉的檢測效果還可以,但對多張臉的檢測會有一些誤差,從總體上看,當然,這種方法還是有很多缺陷,比如當圖像的背景比較復雜或者人臉有膚色的情況下,檢測效果就不理想,檢測率只能達到75%。這也是以后的研究中需要改進的地方。通過對上述檢測,然后再把檢測后的圖像轉(zhuǎn)化為視頻播放,基本上實現(xiàn)了基于視頻的人臉檢測的功能,雖然方法沒有什么較大的錯誤,但在技術上有待加強。275 結論在大量閱讀有關人臉檢測的論文和書籍的基礎上,實現(xiàn)了人臉檢測系統(tǒng)。本文系統(tǒng)地闡述了該系統(tǒng)基本上實現(xiàn)基于視頻的人臉檢測。首先先提取視頻文件的幀,然后再對其進行圖像檢測,再還原成視頻。而在圖像檢測中,我們解決了如何將膚色信息應用到人臉檢測中去。提出了將膚色檢測作為人臉檢測的方案,提高了人臉檢測的正確率,降低了漏檢率率。本文主要設計工作如下:(1)提取視頻文件的幀,(2)對圖像進行基于膚色特征的人臉檢測(3)將檢測后的圖像還原視頻,并播放??傮w來說,由于本文中人臉檢測出現(xiàn)誤檢的情況,以下幾個方面需要繼續(xù)研究和改善:(l)運用自適應光照補償方法,對圖像進行更好的光照補償,以便后續(xù)處理。(2)運用自適應膚色分割方法以便更好的分割出膚色區(qū)域提高檢測人臉的準度。(3)針對背景復雜及有遮擋的人臉提出更好的檢測方法致 謝在論文即將完成之際,也預示著我大學生涯告一段落,首先我要感謝幫助過我的老師、同學和朋友們,感謝你們陪我度過這一難忘的歷程。首先我要感謝是的蔣中正老師,他那的治學態(tài)度、腳踏實地的工作態(tài)度、樂觀求實的生活態(tài)度、寬容隨和的待人風格和忘我的奉獻精神,感染了我 ,同時也感動了我,從論文的選題,到最后的定稿都離不開你精心的指導。感謝所有我們系院的的老師們,感謝他們在這段畢設時間對我的指導和關懷。感謝電信082班的同學、對我學習上給予和幫助。感謝我的父母和所有親朋好友對我學習和生活上給給予幫助感謝所有幫助和支持過我的人,祝你們?nèi)f事如意參考文獻[1] 精通MATLAB 張志涌等編著 北京航空航天大學出版社[2] MATLAB 與外部接口 蘇金明等編著 電子工業(yè)出版社、[3][J].電子學報,2001,12 (1):94102.[4] 梁路宏,艾海舟,肖習攀,[J].計算機學報,2002,25(1):2229.[5]、PKrishnan Nallaperumal, Subban Ravi, PC Nelson Kennedy Babu, et detection using color pixel classification with application to face detection: a parative study [C].Proceedings of the International Conference on Computational Intelligence and Multimedia Applications,2007.[6]、姜軍,[J].中國圖象圖形學報,2002,7(1):610[7]、Yang MingHsuan,Kriegman D J, Ahuja Face in Images:A Survey[J]. Pattern Analysis and Machine Intelligence,24(1), 2002:3458.[8]葉艷芳等,一種基于膚色和模板匹配的人臉檢測方法,重慶工學院學報[9]曾憲貴等,基于顏色和模板匹配的人臉檢測,計算機工程與設計附錄膚色分割代碼:function bwycbcr = skincut(imgrgbfile)imgrgb = imread(imgrgbfile)。imgrgb3=rgb2ycbcr(imgrgb)。 [m,n,size1] = size(imgrgb)。y=imgrgb3(:,:,1)。 cb=imgrgb3(:,:,2)。 cr=imgrgb3(:,:,3)。 %====%在Ycbcr色彩空間中分割膚色區(qū)域,cb=double(cb)。 cr=double(cr)。 y=double(y)。 bwycbcr=zeros(m,n)。 for i=1:m for j=1:n if y(i,j)125 cb1=108+(125y(i,j))*10/109。 cr1=154(125y(i,j))*10/109。 wcb=23+(y(i,j)16)*。 wcr=20+(y(i,j)16)*。 cb1=(cb(i,j)cb1)*+cb1。 cr1=(cr(i,j)cr1)*+cr1。 elseif y(i,j)188 cb1=108+(y(i,j)188)*10/47。 cr1=154+(y(i,j)188)*22/47。 wcb=14+(235y(i,j))*。 wcr=10+(235y(i,j))*。 cb1=(cb(i,j)cb1)*+cb1。 cr1=(cr(i,j)cr1)*+cr1。 else cb1=cb(i,j)。 cr1=cr(i,j)。 end x1=[ ]*[。]。 y1=[ ]*[。]。 if ().^2/+().^2/=1 bwycbcr(i,j)=1。 else bwycbcr(i,j)=0。 end endendimshow(bwycbcr)