使用opencv訓練LBP識別模型

2021-08-19 21:08:39 字數 2204 閱讀 4142

import cv2

import os

import numpy as np

def detect_face(img):

gray = cv2.cvtcolor(img, cv2.color_bgr2gray)

face_cascade = cv2.cascadeclassifier('haarcascade_frontalface_default.xml')

faces = face_cascade.detectmultiscale(gray, scalefactor=1.2, minneighbors=5);

if (len(faces) == 0):

return none, none

else:

(x, y, w, h) = faces[0]

return gray[y:y+w, x:x+h], faces[0]

def prepare_training_data(data_folder_path):

dirs = os.listdir(data_folder_path)  #讀取儲存在路徑上的所有資料夾的名稱

faces=

labels=

for dir_name in dirs: #瀏覽每個目錄並閱讀其中的影象

if not dir_name.startswith("s"):

continue

label = int(dir_name.replace("s", ""))

subject_dir_path = data_folder_path + "/" + dir_name

subject_images_names = os.listdir(subject_dir_path)

for image_name in subject_images_names:

if image_name.startswith("."):

continue

image_path = subject_dir_path + "/" + image_name

image = cv2.imread(image_path)

#face, rect = detect_face(image)

face, rect = detect_face(image)

#cv2.imshow("training on image...", face)

#cv2.waitkey(100)

if face is not none:

return faces, labels

print("正在準備資料")

faces, labels = prepare_training_data("s")

#faces, labels = prepare_training_data("dataset")

print("資料完成,準備訓練資料")

#print total faces and labels

print("total faces: ", len(faces))

print("total labels: ", len(labels))

#create our lbph face recognizer 

#face_recognizer = cv2.face.createlbphfacerecognizer()

recognizer = cv2.face.lbphfacerecognizer_create()

#recognizer = cv2.face.eigenfacerecognizer_create()

#recognizer = cv2.face.fishe***cerecognizer_create()

#or use eigenfacerecognizer by replacing above line with 

#face_recognizer = cv2.face.createeigenfacerecognizer()

#or use fishe***cerecognizer by replacing above line with 

#face_recognizer = cv2.face.createfishe***cerecognizer()

recognizer.train(faces, np.array(labels))

recognizer.write('lihao.yml')   #定義生成檔案的名稱

print('資料訓練完成')

opencv 人臉識別 (二)訓練和識別

環境 vs2010 opencv 2.4.6.0 特徵 eigenface input 乙個人臉資料庫,15個人,每人20個樣本 左右 output 人臉檢測,並識別出每張檢測到的人臉。1.為訓練資料預處理 為灰度 對齊 歸一化 void resizeandtogray char dir,int k...

訓練模型 LBP演算法

lbp指區域性二值模式,英文全稱 local binary patterns。最初功能為輔助影象區域性對比度,並不是乙個完整的特徵描述子。中文名線性反投影演算法 外文名local binary patterns 簡 稱 lbp別 名 累加法屬 性 區域性二值模式 1 數字影象處理 2 介紹 3 演算...

opencv 人臉檢測 模型訓練 人臉識別

人臉檢測 模型訓練 人臉識別 2018 08 15 今天給大家帶來一套人臉識別乙個小案例,主要是幫助小夥伴們解決如何入門opencv人臉識別的問題,現在的ai行業比較火熱,ai技術的使用比較廣泛。就拿現在的只能手機來說吧,現在很多智慧型手機都必須有人臉識別解鎖 拍照自動美顏 拍照物體識別等等功能,這...