파이썬으로 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를 이용하여 쉽게 구현할 수 있습니다.
참고 자료
- OpenCV 공식 문서: https://docs.opencv.org/
- 파이썬 공식 문서: https://www.python.org/
#python #opencv