[파이썬] opencv-python 얼굴 인식 및 추적
이번 포스트에서는 OpenCV-Python을 사용하여 얼굴을 인식하고 추적하는 방법을 알아보겠습니다.
OpenCV-Python은 오픈소스 컴퓨터 비전 라이브러리인 OpenCV의 파이썬 버전입니다. 이 라이브러리를 사용하면 이미지나 동영상에서 얼굴을 인식하고 추적하는 기능을 구현할 수 있습니다.
1. OpenCV-Python 설치하기
먼저 OpenCV-Python을 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.
pip install opencv-python
2. 이미지에서 얼굴 인식하기
먼저, 이미지에서 얼굴을 인식하는 방법을 알아보겠습니다. 아래 코드는 이미지에서 얼굴을 인식하고 사각형으로 표시하는 예제입니다.
import cv2
def detect_face(image_path):
# Haar Cascade 분류기 로드
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 이미지 로드
image = cv2.imread(image_path)
# 그레이스케일로 변환
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 얼굴 인식
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30))
# 얼굴에 사각형 그리기
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 결과 이미지 출력
cv2.imshow('Face Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 이미지 파일 경로
image_path = 'face_image.jpg'
# 얼굴 인식
detect_face(image_path)
3. 비디오에서 얼굴 인식 및 추적하기
이제 비디오에서 얼굴을 인식하고 추적하는 방법에 대해 알아보겠습니다. 아래 코드는 비디오에서 얼굴을 인식하고 추적하는 예제입니다.
import cv2
def detect_and_track_faces(video_path):
# Haar Cascade 분류기 로드
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 비디오 캡처 객체 생성
cap = cv2.VideoCapture(video_path)
# 얼굴 추적용 Tracker 생성
tracker = cv2.TrackerCSRT_create()
# 첫 프레임 읽기
ret, frame = cap.read()
# 얼굴 좌표 초기화
faces = face_cascade.detectMultiScale(frame, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30))
for (x, y, w, h) in faces:
tracker.init(frame, (x, y, w, h))
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 추적 시작
while True:
ret, frame = cap.read()
if not ret:
break
# 얼굴 추적
success, box = tracker.update(frame)
# 추적 결과 표시
if success:
(x, y, w, h) = [int(v) for v in box]
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 프레임 출력
cv2.imshow('Face Tracking', frame)
# 'q' 키로 종료
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 비디오 종료
cap.release()
cv2.destroyAllWindows()
# 비디오 파일 경로
video_path = 'face_video.mp4'
# 얼굴 인식 및 추적
detect_and_track_faces(video_path)
이와 같이 OpenCV-Python을 사용하여 이미지나 비디오에서 얼굴을 인식하고 추적할 수 있습니다.
더 자세한 내용은 OpenCV-Python 공식 문서를 참조하시기 바랍니다.