[python] 파이썬을 이용한 동영상에서의 얼굴 인식 및 추적
이 블로그 포스트에서는 파이썬을 사용하여 동영상 속 얼굴을 인식하고 추적하는 방법에 대해 살펴보겠습니다. 우리가 다루게 될 기술적인 주제는 컴퓨터 비전과 머신 러닝입니다.
1. 얼굴 인식
얼굴 인식은 컴퓨터 비전 기술을 사용하여 이미지나 비디오에서 얼굴을 인식하는 작업입니다. 파이썬에서는 OpenCV(Open Source Computer Vision Library)를 사용하여 얼굴을 인식할 수 있습니다.
다음은 얼굴을 인식하기 위한 간단한 파이썬 코드의 예시입니다.
import cv2
# 얼굴 인식을 위한 분류기 로드
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 이미지 로드
img = cv2.imread('img.jpg')
# 이미지를 그레이스케일로 변환
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 얼굴 인식
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
# 얼굴 주위에 사각형 그리기
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
# 결과를 보여주기
cv2.imshow('img', img)
cv2.waitKey()
이 코드를 실행하면 이미지에서 인식된 얼굴 주위에 사각형이 그려진 이미지가 나타납니다.
2. 얼굴 추적
얼굴 추적은 동영상이나 실시간 비디오에서 얼굴을 지속적으로 추적하는 작업입니다. 파이썬에서는 dlib과 OpenCV를 사용하여 얼굴을 추적할 수 있습니다.
다음은 얼굴 추적을 위한 간단한 파이썬 코드의 예시입니다.
import dlib
import cv2
# 얼굴 검출을 위한 얼굴 탐지기
detector = dlib.get_frontal_face_detector()
# 비디오 스트림 열기
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 얼굴 검출
faces = detector(gray)
for face in faces:
x1 = face.left()
y1 = face.top()
x2 = face.right()
y2 = face.bottom()
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 3)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
이 코드를 실행하면 웹캠을 통해 실시간으로 인식된 얼굴 주위에 사각형이 그려지는 동영상이 나타납니다.
이와 같이 파이썬을 사용하여 동영상 속 얼굴을 인식하고 추적하는 방법에 대해 알아보았습니다. 이러한 기술은 보안 시스템부터 실시간 감지 시스템에 이르기까지 다양한 분야에서 활용될 수 있습니다.