人工聰明-OpenCV+Python做到人臉辨認(人臉檢測)

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

上期文章我們分享了TensorFlow手寫數字識別的文章TensorFlow手寫數字識別,本期我們簡單了解一下OpenCV的人臉識別之檢測篇,檢測是在圖片或者視頻中識別出人臉

人工智能-OpenCV+Python實現人臉識別(人臉檢測)

在OpenCV中使用Haar特徵檢測人臉,那麼需要使用OpenCV提供的xml文件(級聯表)在haarcascades目錄下。這張級聯表有一個訓練好的AdaBoost訓練集。首先要採用樣本的Haar特徵訓練分類器,從而得到一個級聯的AdaBoost分類器。Haar特徵值反映了圖像的灰度變化情況。例如:臉部的一些特徵能由矩形特徵簡單的描述,如:眼睛要比臉頰顏色要深,鼻梁兩側比鼻梁顏色要深,嘴巴比周圍顏色要深等。

當安裝好後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 # 導入

img = cv2.imread(r’D:\foxtable\example\image\li.jpg’) # 導入圖片

face = cv2.CascadeClassifier(r’D:\Program Files (x86)\Anaconda3\pkgs\libopencv-3.4.1-h875b8b8_3\Library\etc\haarcascades\haarcascade_frontalface_alt.xml’) # 導入人臉模型

gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) # 灰度

faces = face.detectMultiScale(gray)

for (x, y, w, h) in faces: # 5個參數,一個參數圖片 ,2 坐標原點,3 識別大小,4,顏色5,線寬

cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.namedWindow(‘powers’) # 創建窗口

cv2.imshow(‘powers_li’, img) # 顯示圖片

cv2.waitKey(0) # 暫停窗口

cv2.destroyWindow() # 關閉窗口

# 關閉窗口

cv2.destroyAllWindows()

人工智能-OpenCV+Python實現人臉識別(人臉檢測)

使用OpenCV的自帶的模型庫檢測人臉很容易做到,下期我們分享一下如何從視頻中檢測到人臉

人工智能-OpenCV+Python實現人臉識別(人臉檢測)‘,

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!