国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python學習筆記之圖片人臉檢測識別實例教程

2020-01-04 13:35:21
字體:
來源:轉載
供稿:網友

前言

隨著科技的發展,人臉識別技術在許多領域得到的非常廣泛的應用,手機支付、銀行身份驗證、手機人臉解鎖等等。

識別

廢話少說,這里我們使用 opencv 中自帶了 haar人臉特征分類器,利用訓練好的 haar 特征的 xml 文件,在圖片上檢測出人臉的坐標,利用這個坐標,我們可以將人臉區域剪切保存,也可以在原圖上將人臉框出。

代碼實現:

# -*-coding:utf8-*-#import osimport cv2from PIL import Image, ImageDrawfrom datetime import datetime"""分類器 https://github.com/opencv/opencv/tree/master/data/haarcascades安裝模塊:pip install Pillow pip install opencv-python博客:https://blog.52itstyle.vip/archives/3771/"""def detectFaces(image_name): img = cv2.imread(image_name) face_cascade = cv2.CascadeClassifier(os.getcwd()+"//haarcascade//haarcascade_frontalface_alt.xml") if img.ndim == 3:  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) else:  gray = img # if語句:如果img維度為3,說明不是灰度圖,先轉化為灰度圖gray,如果不為3,也就是2,原圖就是灰度圖 faces = face_cascade.detectMultiScale(gray, 1.2, 5) # 1.3和5是特征的最小、最大檢測窗口,它改變檢測結果也會改變 result = [] for (x, y, width, height) in faces:  result.append((x, y, x + width, y + height)) return result# 保存人臉圖def saveFaces(image_name): faces = detectFaces(image_name) if faces:  # 將人臉保存在save_dir目錄下。  # Image模塊:Image.open獲取圖像句柄,crop剪切圖像(剪切的區域就是detectFaces返回的坐標),save保存。  save_dir = image_name.split('.')[0] + "_faces"  os.mkdir(save_dir)  count = 0  for (x1, y1, x2, y2) in faces:   file_name = os.path.join(save_dir, str(count) + ".jpg")   Image.open(image_name).crop((x1, y1, x2, y2)).save(file_name)   count += 1if __name__ == '__main__': time1 = datetime.now() result = detectFaces(os.getcwd()+"//images//gaoyuanyuan.jpg") time2 = datetime.now() print("耗時:" + str(time2 - time1)) if len(result) > 0:  print("有人存在!!---》人數為:" + str(len(result))) else:  print('視頻圖像中無人??!') drawFaces(os.getcwd()+"//images//", "hanxue.jpg") saveFaces(os.getcwd()+//images//gaoyuanyuan.jpg)

識別效果圖:

Python,圖片,人臉檢測識別

多人識別效果:

Python,圖片,人臉檢測識別

經過測試,最終選用了 haarcascade_frontalface_alt.xml 做人臉識別,識別率最高。

人臉檢測分類器對比:

 

級聯分類器的類型 XML文件名
人臉檢測器(默認) haarcascade_frontalface_default.xml
人臉檢測器(快速的Haar) haarcascade_frontalface_alt2.xml
人臉檢測器(Tree) haarcascade_frontalface_alt_tree.xml
人臉檢測器(Haar_1) haarcascade_frontalface_alt.xml

 

小結

開源的人臉檢測分類器對于標準的人臉識別足夠了,要想精確識別比如,側臉、模糊、光照、遮擋的人臉,只能通過深度機器學習進一步優化識別精度和速度。

源碼

https://gitee.com/52itstyle/Python/tree/master/Day09

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄢陵县| 冀州市| 贵南县| 佛坪县| 陆河县| 呼图壁县| 郴州市| 姚安县| 陇南市| 买车| 温宿县| 故城县| 砚山县| 淳化县| 高要市| 永安市| 府谷县| 通河县| 大荔县| 沧源| 鄄城县| 墨竹工卡县| 石河子市| 陈巴尔虎旗| 宜春市| 邹平县| 澄江县| 乐山市| 龙门县| 盘山县| 原平市| 巴青县| 南丰县| 阜新市| 五指山市| 澜沧| 霍州市| 合作市| 五指山市| 丰顺县| 福泉市|