import cv2
import numpy as np
import os, glob
# ๋ณ์ ์ค์ --- โ
base_dir = './faces'
train_data, train_labels = [], []
dirs = [d for d in glob.glob(base_dir+"/*") if os.path.isdir(d)]
print('Collecting train data set:')
for dir in dirs:
# name_id ํ์์์ id๋ฅผ ๋ถ๋ฆฌ ---โก
id = dir.split('_')[1]
files = glob.glob(dir+'/*.jpg')
print('\t path:%s, %dfiles'%(dir, len(files)))
for file in files:
img = cv2.imread(file, cv2.IMREAD_GRAYSCALE)
# ์ด๋ฏธ์ง๋ train_data, ์์ด๋๋ train_lables์ ์ ์ฅ ---โข
train_data.append(np.asarray(img, dtype=np.uint8))
train_labels.append(int(id))
# NumPy ๋ฐฐ์ด๋ก ๋ณํ ---โฃ
train_data = np.asarray(train_data)
train_labels = np.int32(train_labels)
# LBP ์ผ๊ตด์ธ์๊ธฐ ์์ฑ ๋ฐ ํ๋ จ ---โค
print('Starting LBP Model training...')
model = cv2.face.LBPHFaceRecognizer_create()
model.train(train_data, train_labels)
model.write('./faces/all_face.xml')
print("Model trained successfully!")