中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現圖片人臉檢測識別

發布時間:2021-08-26 11:09:29 來源:億速云 閱讀:169 作者:小新 欄目:開發技術

小編給大家分享一下Python如何實現圖片人臉檢測識別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

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

識別

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

代碼實現:

# -*-coding:utf8-*-#
import os
import cv2
from PIL import Image, ImageDraw
from 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 += 1


if __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

以上是“Python如何實現圖片人臉檢測識別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建平县| 云阳县| 彭山县| 安丘市| 姜堰市| 凌海市| 洛浦县| 伊吾县| 蓝山县| 江西省| 苏尼特左旗| 永德县| 灵璧县| 延庆县| 武冈市| 清水县| 全椒县| 文山县| 盈江县| 屯留县| 台安县| 吉安市| 阜宁县| 汝阳县| 鹿邑县| 内乡县| 铜山县| 金溪县| 威宁| 定日县| 涟源市| 平度市| 宝山区| 本溪市| 麻江县| 新建县| 西青区| 拜城县| 嘉定区| 赤水市| 普陀区|