파이썬으로 OpenCV를 이용하여 동영상에서 물체 추적하기

물체 추적은 컴퓨터 비전 분야에서 매우 중요한 작업 중 하나입니다. 이를 위해 파이썬을 사용하고 OpenCV(오픈 소스 컴퓨터 비전 라이브러리)를 이용하여 동영상에서 물체를 추적하는 방법을 알아보겠습니다.

1. OpenCV 설치하기

첫 번째로, OpenCV를 설치해야 합니다. 다음 명령어를 사용하여 파이썬 패키지 관리자인 pip를 이용하여 OpenCV를 설치할 수 있습니다.

pip install opencv-python

2. 동영상 파일 불러오기

먼저, 추적할 물체가 있는 동영상 파일을 불러와야 합니다. 다음 코드를 사용하여 동영상 파일을 불러올 수 있습니다.

import cv2

# 동영상 파일 경로
video_path = "video.mp4"

# VideoCapture 객체 생성
cap = cv2.VideoCapture(video_path)

3. 추적할 물체 설정하기

물체 추적을 위해서는 추적할 물체의 위치를 사전에 설정해야 합니다. 이를 위해 동영상의 첫 프레임을 사용하여 물체의 초기 위치를 설정하는 코드를 작성합니다.

# 첫 번째 프레임 읽기
ret, frame = cap.read()

# 물체의 초기 위치 설정
bbox = cv2.selectROI("Select Object", frame, False)

# 추적기 초기화
tracker = cv2.TrackerCSRT_create()
tracker.init(frame, bbox)

4. 물체 추적하기

이제 실제로 물체를 추적하는 코드를 작성합니다. 각 프레임마다 추적기를 업데이트하고, 추적 결과를 화면에 표시합니다.

while True:
    # 현재 프레임 읽기
    ret, frame = cap.read()
    
    # 비디오의 끝에 도달하면 종료
    if not ret:
        break
    
    # 추적기 업데이트
    ret, bbox = tracker.update(frame)
    
    if ret:
        # 추적 성공
        x, y, w, h = [int(x) for x in bbox]
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
    else:
        # 추적 실패
        cv2.putText(frame, "Tracking Failed", (100, 80), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
    
    # 추적 결과 화면에 표시
    cv2.imshow("Tracking", frame)
    
    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 리소스 해제
cap.release()
cv2.destroyAllWindows()

5. 실행하기

위의 코드를 작성한 후 동영상 파일의 경로를 올바르게 설정한 후 프로그램을 실행해보세요. 물체의 초기 위치를 설정한 후, 물체가 추적되는 모습을 볼 수 있습니다.

이것으로 파이썬으로 OpenCV를 이용하여 동영상에서 물체를 추적하는 방법을 알아보았습니다. 물체 추적은 영상 처리와 컴퓨터 비전 분야에서 다양한 응용 분야에 사용될 수 있으며, 파이썬과 OpenCV를 이용하여 쉽게 구현할 수 있습니다.

참고 자료

#python #opencv