파이썬과 OpenCV를 사용하여 동영상에서 사람 검출하기

이번 포스트에서는 파이썬과 OpenCV라이브러리를 활용하여 동영상에서 사람을 검출하는 방법을 알아보겠습니다. 사람 검출은 컴퓨터 비전 분야에서 많이 활용되며, 보안 시스템, 자율주행차 등 다양한 응용분야에서 사용됩니다.

1. OpenCV 설치

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

pip install opencv-python

2. 동영상 불러오기

동영상을 검출하기 위해서는 먼저 해당 동영상을 불러와야 합니다. 예를 들어, video.mp4라는 동영상 파일을 불러오려면 아래의 코드를 사용할 수 있습니다.

import cv2

video = cv2.VideoCapture('video.mp4')

3. 사람 검출하기

동영상에서 사람을 검출하기 위해서는 보행자 검출기(HOG)를 사용할 수 있습니다. OpenCV에는 다양한 사전 훈련된 HOG 모델이 제공되며, cv2.HOGDescriptor_getDefaultPeopleDetector() 함수를 사용하여 해당 모델을 불러올 수 있습니다.

먼저, HOG 모델을 초기화하고, 동영상의 프레임을 반복하여 사람을 검출하는 코드를 작성해보겠습니다.

hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

while True:
    ret, frame = video.read()

    if not ret:
        break

    # 사람 검출
    boxes, weights = hog.detectMultiScale(frame)

    # 검출된 사람들을 사각형으로 표시
    for (x, y, w, h) in boxes:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

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

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

video.release()
cv2.destroyAllWindows()

위의 코드를 실행하면, 동영상에서 검출된 사람들이 사각형으로 표시되는 화면이 출력됩니다. cv2.waitKey(1) == ord('q') 에서는 ‘q’를 누를 때까지 검출 과정을 반복합니다.

결론

본 포스트에서는 파이썬과 OpenCV를 사용하여 동영상에서 사람을 검출하는 방법에 대해 알아보았습니다. 사람 검출은 보안 시스템, 자율주행차 등 다양한 응용 분야에서 사용될 수 있으며, 위의 코드를 활용하여 쉽게 구현할 수 있습니다.

더 자세한 내용은 OpenCV 공식 문서를 참고하시기 바랍니다.

#파이썬 #OpenCV