파이썬으로 OpenCV를 이용하여 동영상에서 사람 인식하기

이번 포스트에서는 파이썬과 OpenCV를 사용하여 동영상에서 사람을 인식하는 방법을 알아보겠습니다. OpenCV는 영상 처리와 컴퓨터 비전을 위한 강력한 라이브러리로, 다양한 영상 처리 기능을 제공합니다. 사람 인식은 그 중 하나로, 사람의 특징을 감지하여 인식하는 기능을 제공합니다.

1. OpenCV 설치

먼저, OpenCV를 설치해야 합니다. 파이썬에서는 pip를 이용하여 간단히 설치할 수 있습니다. 아래 명령어를 터미널에 입력하여 OpenCV를 설치해주세요.

pip install opencv-python

2. 동영상 로드하기

인식할 동영상을 불러와야 합니다. cv2.VideoCapture() 함수를 사용하여 동영상을 로드할 수 있습니다. 아래 예제 코드를 참고해주세요.

import cv2

# 동영상 파일을 로드
cap = cv2.VideoCapture('video.mp4')

# 성공적으로 로드되었을 경우 계속 진행
if cap.isOpened():
    while True:
        # 프레임 가져오기
        ret, frame = cap.read()

        # 동영상이 끝나면 종료
        if not ret:
            break

        # 프레임에 대한 처리
        # ...

        # 화면에 출력
        cv2.imshow('Video', frame)

        # 'q' 키를 누르면 종료
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # 사용한 자원 해제
    cap.release()
    cv2.destroyAllWindows()

3. 사람 인식하기

동영상에서 사람을 인식하기 위해 Haar Cascade 분류기를 사용할 수 있습니다. OpenCV에는 미리 학습된 Haar Cascade 파일이 포함되어 있습니다. 아래 예제 코드를 참고해주세요.

import cv2

# 사람 인식을 위한 Haar Cascade 파일 경로
haar_cascade_file = 'haarcascade_fullbody.xml'

# Haar Cascade 분류기 초기화
body_cascade = cv2.CascadeClassifier(haar_cascade_file)

# 동영상 파일을 로드
cap = cv2.VideoCapture('video.mp4')

if cap.isOpened():
    while True:
        ret, frame = cap.read()

        if not ret:
            break

        # 그레이스케일로 변환
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        # 사람 인식
        bodies = body_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

        # 인식된 사람에 사각형 그리기
        for (x, y, w, h) in bodies:
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

        cv2.imshow('Video', frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()

마무리

이제 파이썬과 OpenCV를 이용하여 동영상에서 사람을 인식하는 방법을 알아봤습니다. 이를 기반으로 다양한 응용 프로그램을 개발할 수 있습니다. 참고 자료를 통해 더 자세한 내용을 학습하시기 바랍니다.

참고 자료

#python #OpenCV