在OpenCV中使用Haar特征檢測人臉,那么需要使用OpenCV提供的xml文件(級聯(lián)表)在haarcascades目錄下。這張級聯(lián)表有一個訓(xùn)練好的AdaBoost訓(xùn)練集。首先要采用樣本的Haar特征訓(xùn)練分類器,從而得到一個級聯(lián)的AdaBoost分類器。Haar特征值反映了圖像的灰度變化情況。例如:臉部的一些特征能由矩形特征簡單的描述,如:眼睛要比臉頰顏色要深,鼻梁兩側(cè)比鼻梁顏色要深,嘴巴比周圍顏色要深等。 當(dāng)安裝好后OpenCV3,有個/haarcascades文件夾,包含了所有OpenCV的人臉檢測XML文件。 haarcascade_eye.xml haarcascade_eye_tree_eyeglasses.xml haarcascade_frontalcatface.xml haarcascade_frontalcatface_extended.xml haarcascade_frontalface_alt.xml haarcascade_frontalface_alt_tree.xml haarcascade_frontalface_alt2.xml haarcascade_frontalface_default.xml haarcascade_fullbody.xml haarcascade_lefteye_2splits.xml haarcascade_licence_plate_rus_16stages.xml haarcascade_lowerbody.xml haarcascade_profileface.xml haarcascade_righteye_2splits.xml haarcascade_russian_plate_number.xml haarcascade_smile.xml haarcascade_upperbody.xml 上述xml分別是人臉不同的部位模型,我們使用如下模型來識別人臉 haarcascade_frontalface_alt.xml 本期分享一下如何使用此模型來識別圖片中的人臉 import cv2 # 導(dǎo)入 img = cv2.imread(r'D:\foxtable\example\image\li.jpg') # 導(dǎo)入圖片 face = cv2.CascadeClassifier(r'D:\Program Files (x86)\Anaconda3\pkgs\libopencv-3.4.1-h875b8b8_3\Library\etc\haarcascades\haarcascade_frontalface_alt.xml') # 導(dǎo)入人臉模型 gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) # 灰度 faces = face.detectMultiScale(gray) for (x, y, w, h) in faces: # 5個參數(shù),一個參數(shù)圖片 ,2 坐標(biāo)原點(diǎn),3 識別大小,4,顏色5,線寬 cv2.rectangle(img, (x, y), (x w, y h), (0, 255, 0), 2) cv2.namedWindow('powers') # 創(chuàng)建窗口 cv2.imshow('powers_li', img) # 顯示圖片 cv2.waitKey(0) # 暫停窗口 cv2.destroyWindow() # 關(guān)閉窗口 # 關(guān)閉窗口 cv2.destroyAllWindows() 使用OpenCV的自帶的模型庫檢測人臉很容易實(shí)現(xiàn),下期我們分享一下如何從視頻中檢測到人臉 |
|