파이썬과 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를 활용하여 동영상에서 사람 동작을 인식하는 방법을 살펴보았습니다. 이를 응용하여 보다 복잡한 동작 인식 알고리즘을 개발할 수 있으며, 이를 활용해 다양한 분야에서 활용할 수 있습니다.
참고 자료:
- OpenCV 공식 문서: https://docs.opencv.org/
- OpenCV의 HOGDescriptor: https://docs.opencv.org/2.4/modules/gpu/doc/object_detection.html
- SVM 분류기: https://scikit-learn.org/stable/modules/svm.html
#python #opencv