파이썬과 OpenCV를 사용한 동영상에서 사람 동작 인식하기

인공지능과 컴퓨터 비전 기술의 발전으로 사람 동작 인식 기술은 많은 분야에서 활용되고 있습니다. 이번 글에서는 파이썬과 OpenCV를 사용하여 동영상에서 사람 동작을 인식하는 방법을 알아보겠습니다.

OpenCV 설치하기

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

pip install opencv-python

동영상 로드하기

인식을 위해 동영상을 불러와야 합니다. OpenCV에서 동영상을 로드하기 위해 cv2.VideoCapture() 함수를 사용합니다. 아래의 코드는 video.mp4라는 동영상 파일을 로드하는 예시입니다.

import cv2

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

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

    if ret == True:
        cv2.imshow('Frame', frame)

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

cap.release()
cv2.destroyAllWindows()

사람 동작 인식하기

사람 동작을 인식하기 위해 OpenCV의 cv2.HOGDescriptor() 함수와 SVM(Support Vector Machine) 분류기를 사용할 수 있습니다. 이를 활용하여 사람을 인식하는 예시 코드는 다음과 같습니다.

import cv2

# HOG 디스크립터 초기화
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

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

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

    if ret == True:
        # 사람 인식
        boxes, weights = hog.detectMultiScale(frame)

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

        cv2.imshow('Frame', frame)

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

cap.release()
cv2.destroyAllWindows()

위의 코드에서는 hog.detectMultiScale() 함수를 사용하여 사람을 인식하고, cv2.rectangle() 함수를 사용하여 인식된 사람에 대해 사각형을 그립니다.

결론

이렇게 파이썬과 OpenCV를 활용하여 동영상에서 사람 동작을 인식하는 방법을 살펴보았습니다. 이를 응용하여 보다 복잡한 동작 인식 알고리즘을 개발할 수 있으며, 이를 활용해 다양한 분야에서 활용할 수 있습니다.

참고 자료:

#python #opencv