파이썬으로 OpenCV를 이용하여 동영상에서 얼굴 감지하기

이 블로그 포스트에서는 파이썬과 OpenCV를 사용하여 동영상에서 얼굴을 감지하는 방법에 대해 알아보겠습니다.

1. OpenCV 설치하기

먼저, OpenCV를 설치해야 합니다. 아래 명령어를 사용하여 파이썬에서 OpenCV를 설치할 수 있습니다.

pip install opencv-python

2. 동영상에서 얼굴 감지하기

다음은 OpenCV를 사용하여 동영상에서 얼굴을 감지하는 간단한 예시 코드입니다.

import cv2

# 얼굴 감지를 위한 Haar Cascade 분류기 로드하기
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 동영상 파일 열기
video = cv2.VideoCapture('video.mp4')

while True:
    # 동영상의 프레임 읽어오기
    ret, frame = video.read()
    
    if ret:
        # 프레임을 흑백으로 변환하기
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        
        # 얼굴 감지
        faces = face_cascade.detectMultiScale(gray, 1.1, 4)
        
        # 얼굴 주변에 사각형 그리기
        for (x, y, w, h) in faces:
            cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
        
        # 화면에 프레임 출력하기
        cv2.imshow('Video', frame)
        
        # 'q' 키 입력 시 종료
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# 동영상 재생이 끝난 후 해제
video.release()
cv2.destroyAllWindows()

위의 코드는 주어진 동영상 파일에서 각 프레임을 읽어와 흑백으로 변환하고, Haar Cascade 분류기를 사용하여 얼굴을 감지한 후, 감지된 얼굴 주변에 사각형을 그려주는 예시입니다.

3. 실행하기

위의 코드를 실행하기 전에, haarcascade_frontalface_default.xml 파일을 다운로드하여 같은 디렉토리에 저장해야 합니다. 이 파일은 OpenCV에서 제공하는 얼굴 인식을 위한 분류기입니다.

다음으로, 얼굴을 감지할 동영상 파일을 video.mp4로 변경해야 합니다. 적절한 동영상 파일을 준비하고 파일 이름을 맞추어주세요.

코드를 실행하면 동영상이 재생되며, 얼굴이 감지되면 해당 부분에 사각형이 그려집니다. ‘q’ 키를 눌러 동영상 재생을 종료할 수 있습니다.

4. 마무리

이번 포스트에서는 파이썬과 OpenCV를 사용하여 동영상에서 얼굴을 감지하는 방법을 알아보았습니다. OpenCV를 활용하면 다양한 컴퓨터 비전 작업을 수행할 수 있으며, 얼굴 감지는 그 중 한 가지 예시입니다. 파이썬과 OpenCV를 활용하여 여러분만의 프로젝트를 시작해보세요!

References: