新聞中心
人臉檢測是 OpenCV 的一個很不錯的功能,它是人臉識別的基礎(chǔ)。人臉識別其實就是一個程序能識別給定圖像或視頻中的人臉。

成都創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!成都創(chuàng)新互聯(lián)具備承接各種類型的成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)項目的能力。經(jīng)過十年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
人臉識別模塊特征
1、是用一系列分好類的圖像來“訓(xùn)練”程序,并基于這些圖像來進行識別。這就是OpenCV 及其人臉識別模塊進行人臉識別的過程。
2、每個識別都具有轉(zhuǎn)置信(confidence)評分,因此可在實際應(yīng)用中通過對其設(shè)置閾值來進行篩選。
人臉識別兩種方式
1、自己獲得圖像或從人臉數(shù)據(jù)庫免費獲得可用的人臉圖像。
2、互聯(lián)網(wǎng)上有許多人臉數(shù)據(jù)庫:為了對這些樣本進行人臉識別,必須要在包含人臉的樣本圖像上進行人臉識別。這是一 個學(xué)習(xí)的過程,但并不像自己提供的圖像那樣令人滿意。
python中OpenCV的人臉檢測功能操作實例
import os
import cv2
from PIL import Image
import numpy as np
def getImageAndLabels(path):
facesSamples = []
ids = []
imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
# 檢測人臉
# 加載特征數(shù)據(jù)
face_detector = cv2.CascadeClassifier(
'D:/Python/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')
# 參數(shù): scaleFactor(比例因子):圖片縮放多少,minNeighbors:至少檢測多少次,minSize maxSize:當前檢測區(qū)域的最小面積
# scaleFactor=1.01, minNeighbors=3, maxSize=(33, 33), minSize=(28, 28)
# 遍歷列表中的圖片
for imagePath in imagePaths:
# 打開當前圖片
PIL_img = Image.open(imagePath).convert('L')
# 將圖片轉(zhuǎn)化為數(shù)組
img_numpy = np.array(PIL_img, 'uint8')
faces = face_detector.detectMultiScale(img_numpy)
# 獲取每張圖片的id
id = int(os.path.split(imagePath)[1].split('.')[0])
# 獲取人臉區(qū)域
for x, y, w, h in faces:
# 進行切片處理,獲取圖像數(shù)組和id
facesSamples.append(img_numpy[y:y+h, x:x+w])
ids.append(id)
return facesSamples, ids
if __name__ == '__main__':
# 圖片路徑
path = './data/jm/'
# 獲取圖像數(shù)組和id標簽數(shù)組
faces, ids = getImageAndLabels(path)
# 獲取循環(huán)對象
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(faces, np.array(ids))
# 保存文件
recognizer.write('trainer/trainer.yml') 新聞標題:創(chuàng)新互聯(lián)Python教程:python中OpenCV的人臉檢測功能
網(wǎng)頁鏈接:http://m.fisionsoft.com.cn/article/dpdoiop.html


咨詢
建站咨詢
