이번 포스트에서는 파이썬과 OpenCV를 사용하여 동영상에서 사람을 트래킹하는 방법에 대해 알아보겠습니다. 사람 트래킹은 컴퓨터 비전 분야에서 매우 중요한 작업 중 하나이며, 객체 추적, 보안 시스템, 동작 인식 등 다양한 응용 분야에 활용됩니다.
1. OpenCV 설치하기
먼저, OpenCV를 설치해야 합니다. 파이썬에서 OpenCV를 사용하기 위해서는 다음의 명령어를 사용하여 설치할 수 있습니다:
pip install opencv-python
2. 동영상 불러오기
사람 트래킹을 위해 먼저 동영상을 불러와야 합니다. OpenCV는 다양한 형식의 동영상을 지원하며, cv2.VideoCapture
함수를 사용하여 동영상을 불러올 수 있습니다.
import cv2
video = cv2.VideoCapture("video.mp4") # 동영상 파일 경로
3. 트래킹 알고리즘 적용
다음으로, 사람 트래킹을 위한 알고리즘을 적용해야 합니다. 여러 가지 트래킹 알고리즘이 있지만, 여기에서는 OpenCV에서 제공하는 트래킹 알고리즘 중 하나인 KCF(Kernelized Correlation Filters)를 사용하도록 하겠습니다.
tracker = cv2.TrackerKCF_create() # KCF 트래커 생성
_, frame = video.read() # 첫 프레임 읽기
bbox = cv2.selectROI(frame, False) # 트래킹할 객체 선택
tracker.init(frame, bbox) # 트래커 초기화
4. 트래킹 수행
트래킹 알고리즘을 초기화한 후에는, 동영상의 모든 프레임을 순회하며 트래킹을 수행해야 합니다. 다음의 코드는 동영상의 모든 프레임을 읽고, 트래킹 결과를 시각화하는 코드입니다.
while True:
_, frame = video.read() # 프레임 읽기
if not _: # 더 이상 프레임이 없을 경우 종료
break
success, bbox = tracker.update(frame) # 트래킹 수행
if success: # 트래킹 성공 시
x, y, w, h = [int(i) for i in bbox]
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) # 객체에 사각형 그리기
cv2.imshow("Tracking", frame) # 프레임 출력
if cv2.waitKey(1) == ord('q'): # 'q' 키 입력 시 종료
break
video.release() # 동영상 해제
cv2.destroyAllWindows() # 창 닫기
5. 실행하기
위의 코드를 실행하여 동영상 트래킹을 수행할 수 있습니다. 실행 시 video.mp4
라는 동영상 파일을 재생하며, 객체 추적 결과를 화면에 표시합니다.
이상으로 파이썬과 OpenCV를 사용하여 동영상에서 사람을 트래킹하는 방법에 대해 알아보았습니다. 사람 트래킹은 다양한 응용 분야에 활용될 수 있으며, 알고리즘의 선택과 튜닝에 따라 트래킹의 정확도와 성능이 달라질 수 있습니다. 추가적인 설정 및 알고리즘 변경을 통해 원하는 결과를 얻을 수 있습니다.
#python #OpenCV