Programming/python(파이썬)
python용 얼굴탐지, 인식
구차니
2025. 8. 4. 12:47
테스트 해보니 haar 보다 프레임은 안나오고(한 10프레임?)
cpu 점유율은 1개 조지지만, 전체 로드율은 낮은 듯
[링크 : https://github.com/ageitgey/face_recognition]
[링크 : https://wikidocs.net/227902]
[링크 : https://dlib.net/]
haar cascade
[링크 : https://bkshin.tistory.com/entry/컴퓨터-비전-1-하르-캐스케이드-얼굴-검출-Haar-Cascade-Face-Detection]
face_recognition 패키지
import cv2
import face_recognition
webcam = cv2.VideoCapture(0)
if not webcam.isOpened():
print("Could not open webcam")
exit()
while webcam.isOpened():
status, frame = webcam.read()
if status:
face_locations = face_recognition.face_locations(frame)
print(face_locations)
if len(face_locations) > 0:
for iter in face_locations:
cv2.rectangle(frame, (iter[1], iter[0]), (iter[3], iter[2]), (0,255,0), 2)
cv2.imshow("test", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
webcam.release()
cv2.destroyAllWindows()
opencv2 / haar cascade
import cv2
import time
dirname = '/home/falinux/.local/lib/python3.10/site-packages/cv2/data/'
face_cascade = cv2.CascadeClassifier(dirname + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(dirname + 'haarcascade_eye.xml')
cam = cv2.VideoCapture(0)
# cam.set(3, 160) # CV_CAP_PROP_FRAME_WIDTH
# cam.set(4, 120) # CV_CAP_PROP_FRAME_HEIGHT
# cam.set(5, 20) # CV_CAP_PROP_FPS
# print(cam.get(3))
# print(cam.get(4))
# print(cam.get(5))
while True:
ret_val, img = cam.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.05, 5)
print(faces)
for (x, y, w, h) in faces:
img = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex, ey, ew, eh) in eyes:
cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (0, 255, 0), 2)
time.sleep(0.15)
cv2.imshow("Cam Viewer", img)
# cv2.imshow("Cam Viewer gray", gray)
if cv2.waitKey(1) == 27:
break