智能圖像處理:Python和OpenCV實(shí)現(xiàn)-課件 13.2 人臉檢測_第1頁
智能圖像處理:Python和OpenCV實(shí)現(xiàn)-課件 13.2 人臉檢測_第2頁
智能圖像處理:Python和OpenCV實(shí)現(xiàn)-課件 13.2 人臉檢測_第3頁
智能圖像處理:Python和OpenCV實(shí)現(xiàn)-課件 13.2 人臉檢測_第4頁
智能圖像處理:Python和OpenCV實(shí)現(xiàn)-課件 13.2 人臉檢測_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

13.2人臉檢測目錄13.2.1人臉檢測簡介13.2.2圖像預(yù)處理13.2.3Haar特征分類器13.2.4人臉檢測程序人臉檢測

人臉檢測與識別,是基于人的臉部特征信息進(jìn)行身份識別的一種生物識別技術(shù)。用攝像機(jī)或相機(jī)采集含有人臉的視頻流或圖像,并自動在圖像中檢測和跟蹤人臉,進(jìn)而對檢測到的人臉進(jìn)行臉部識別的一系列相關(guān)技術(shù),通常也叫做人像識別、面部識別。13.2.1人臉檢測簡介1.加載分類器,找到分類器的位置,如*\opencv\sources\data\haarcascades(harr分類器)。2.調(diào)用detectMultiScale()函數(shù)進(jìn)行檢測,調(diào)整函數(shù)的參數(shù)可以使檢測結(jié)果更加精確。3.

把檢測到的人臉等用矩形(或者圓形等其他圖形)標(biāo)記出來。13.2.1人臉檢測簡介

調(diào)用OpenCV訓(xùn)練好的分類器和自帶的檢測函數(shù)檢測人臉、人眼等的步驟如下:010302

圖像預(yù)處理,先把圖像轉(zhuǎn)化為灰度圖像。使用的OpenCV函數(shù)是:gray=cv2.cvtColor(image,cv.COLOR_BGR2GRAY)這樣的轉(zhuǎn)化可能會造成圖像的灰度值分布不均勻,通常認(rèn)為,對所有可用像素強(qiáng)度值都均衡使用,才是一副高質(zhì)量的圖像。所以我們需要讓圖像的灰度直方圖盡可能的平穩(wěn),OpenCV提供了一個簡單好用的均衡化函數(shù)。提高對比度和增加亮度使用的OpenCV函數(shù)是new_img=cv2.addWeighted(img,c,new_img,1-c,b)

其中c是對比度倍數(shù),b是亮度增加數(shù)。13.2.2圖像預(yù)處理cv2.equalizeHist(gray,gray)直方圖均衡化是通過拉伸像素強(qiáng)度分布范圍來增強(qiáng)圖像對比度的一種方法,在一個完全均衡化的直方圖中,圖像中所包含的像素數(shù)量是相等的①Haar特征是浮點(diǎn)數(shù)計(jì)算,LBP特征是整數(shù)計(jì)算;②LBP訓(xùn)練需要的樣本數(shù)量比Haar大;③LBP的速度一般比Haar快;④同樣的樣本Haar訓(xùn)練出來的檢測結(jié)果要比LBP準(zhǔn)確;13.2.3Haar特征分類器利用OpenCV自帶的xml文件,可以實(shí)時檢測攝像頭中人臉Haar特征或LBP特征,它們描述不同的局部信息,Haar描述的是圖像在局部范圍內(nèi)像素值明暗變換信息,LBP描述的是圖像在局部范圍內(nèi)對應(yīng)的紋理信息,Haar與LBP區(qū)別:⑤擴(kuò)大LBP的樣本數(shù)據(jù)可達(dá)到Haar的訓(xùn)練效果13.2.3Haar特征分類器Haar特征分類器是一個xml文件,文件描述了檢測物體的Haar特征值,Haar分類器需要通過大量的數(shù)據(jù)來訓(xùn)練。Haar特征包括三類特征:邊緣特征、線性特征、中心特征和對角線特征,組合成特征模板。特征模板內(nèi)有白色和黑色兩種矩形,并定義該模板的特征值為白色矩形像素和減去黑色矩形像素和。Haar特征值反映了圖像的灰度變化情況,如臉部的一些特征能由矩形特征簡單的描述,如:眼睛要比臉頰顏色要深,鼻梁兩側(cè)比鼻梁顏色要深,嘴巴比周圍顏色要深等。但矩形特征只對一些簡單的圖形結(jié)構(gòu),如邊緣、線段較敏感,所以只能描述特定走向(水平、垂直、對角)的結(jié)構(gòu)。13.2.4人臉檢測程序?qū)D像進(jìn)行人臉特征矩形檢測,符合人臉特征的區(qū)域會被認(rèn)定為人臉。在開始人臉檢測時,需要加載Haar分類器。循環(huán)讀取人臉的矩形對象列表,獲得人臉矩形的坐標(biāo)和寬高,然后在原圖像中畫出該矩形框,調(diào)用的是OpenCV的rectangle方法,其中矩形框的顏色等是可調(diào)整的,putText函數(shù)是在圖像上加文字信息(如文字、位置、字體、大小、顏色、粗細(xì)等)。在人臉檢測中用到的檢測函數(shù)是detectMultiScale(),它可以檢測出圖像中所有的人臉,并將人臉用向量保存各個人臉的坐標(biāo)、大?。ㄓ镁匦伪硎荆?,其語法格式為:objects=cv2.CascadeClassifier.detectMultiScale(image[,scaleFactor[,minNeighbors[,flags[,minSize[,maxSize]]]]])13.2.4人臉檢測程序其中輸入輸出參數(shù)如下:objects:表示被檢測物體的矩形框向量組;image:表示的是要檢測的輸入圖像,一般為灰度圖像,加快檢測速度;scaleFactor:表示在前后兩次相繼的掃描中,搜索窗口的比例系數(shù)。默認(rèn)為1.1即每次搜索窗口依次擴(kuò)大10%;minNeighbors:表示構(gòu)成檢測目標(biāo)的相鄰矩形的最小個數(shù)(默認(rèn)為3個)。如果組成檢測目標(biāo)的小矩形的個數(shù)和小于min_neighbors-1都會被排除。如果min_neighbors為0,則函數(shù)不做任何操作就返回所有的被檢候選矩形框,這種設(shè)定值一般用在用戶自定義對檢測結(jié)果的組合程序上;flags:使用默認(rèn)值,或使用CV_HAAR_DO_CANNY_PRUNING。如果設(shè)置為CV_HAAR_DO_CANNY_PRUNING,那么函數(shù)將會使用Canny邊緣檢測來排除邊緣過多或過少的區(qū)域,這些區(qū)域通常不會是人臉?biāo)趨^(qū)域;minSize為目標(biāo)的最小尺寸,用來限制得到的目標(biāo)區(qū)域的范圍;minSize為目標(biāo)的最大尺寸,用來限制得到的目標(biāo)區(qū)域的范圍。13.2.4人臉檢測程序使用haar分類器對人臉進(jìn)行檢測,并檢測出眼睛和是否微笑。程序代碼如下:importcv2facehaar='C:/ProgramData/anaconda3/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml'eyehaar='C:/ProgramData/anaconda3/Lib/site-packages/cv2/data/haarcascade_eye.xml'smilehaar='C:/ProgramData/anaconda3/Lib/site-packages/cv2/data/haarcascade_smile.xml'

face_detector=cv2.CascadeClassifier(facehaar)#人臉分類器eye_detector=cv2.CascadeClassifier(eyehaar)#眼睛分類器smile_detector=cv2.CascadeClassifier(smilehaar)#微笑分類器

image=cv2.imread('d:/pics/face_smile1.jpg')gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)cv2.equalizeHist(gray,gray)cv2.imshow("Origin_img",image)faces=face_detector.detectMultiScale(gray,1.15,5)print("face",faces)13.2.4人臉檢測程序forx,y,w,hinfaces:cv2.rectangle(image,(x,y),(x+w,y+h),(0,0,255),2)cv2.imshow("face_rect",image)#把臉單獨(dú)拿出來檢測臉face_img=gray[y:y+h,x:w+x]cv2.imshow("face_img",face_img)eyes=eye_detector.detectMultiScale(face_img,1.3,5,0,(40,40))forex,ey,ew,ehineyes:cv2.rectangle(image,(x+ex,y+ey),(x+ex+ew,y+ey+eh),(255,0,0),2)#cv2.imshow("eyes_rect",image)smile=smile_detector.detectMultiScale(face_img,1.16,25,0,(25,25))if(len(smile)>=0):print("檢測到微笑")cv2.putText(image,'Smile',(x,y-20),3,1.3,(0,255,0),2)

cv

溫馨提示

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

評論

0/150

提交評論