DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

Python/Python

[Python] SORT (Simple Online Real time Tracker) 구현하기 (깃허브 소스 코드)

Jongwon Kim 2021. 2. 26. 14:27
반응형

Concept

 

컴퓨터 비전 분야에서 응용되는 대표적인 딥러닝 기술은 객체 탐지(Object Detection)입니다. 객체 탐지는 Faster-RCNN, SDD, YOLO 등이 제안되면서 최근 객체 탐지 기술은 꽤 높은 수준으로 상향 평준화되어있습니다.

 

탐지 기술은 발전하고 있지만, 단순히 객체를 탐지하는 수준으로는 실제 상업적인 비즈니스 단계에서 활용성이 높지 않습니다. Application을 위해 객체를 추적(Tracking) 하고, 인식(Identification) 하고, 객체의 행동(Action Recognition)을 판단하는 기술들이 더해지고 있습니다.  

 

다양한 응용 기술 중에서 탐지된 객체를 추적하고 아이디를 부여하는 Tracking 기술을 다뤄보려 합니다. 이번 포스팅은 다중 객체 탐지 (Multi-Object Tracking)의 뼈대가 된 SORT 알고리즘입니다.

Algorithm

논문 : Simple online and realtime tracking

 

CPU 환경에서의 실시간 동작을 위한 딥러닝 기반 다중 객체 추적 시스템 논문 자료

 

SORT는 탐지된 객체의 경계상자를 이용하여 객체의 속도를 칼만 필터 (Kalman Filter)로 추정하여 다음 프레임에서 객체의 위치를 예측하는 방식으로 사용됩니다.

 

예를 들어, N번째 프레임에서 탐지된 경계상자 F는 칼만 필터로 N+1 번째 프레임에서의 F*를 추정하게 됩니다. 여기서 N+1 번째 프레임에서 새롭게 탐지된 객체 정보 F'와 예측된 F*의 유사도를 IOU의 거리값 그리고 헝가리안 알고리즘 등을 통해 정렬하고 매칭하여 N 번째에서 탐지된 객체의 정보를 N+1에서 이어나갈  수 있게 합니다.   

 

심플한 아이디어지만 빠른 속도와 실시간 가능성을 확보할 수 있으며, 객체 탐지 단계에서 탐지율이 보장만 된다면 기본적인 객체 트레킹 성능은 보장되는 장점을 가지고 있습니다.  

 

SourceCode

github.com/abewley/sort.git

 

abewley/sort

Simple, online, and realtime tracking of multiple objects in a video sequence. - abewley/sort

github.com

git clone https://github.com/abewley/sort.git
cd sort
pip install -r requirements.txt

MOT15 TEST SET 평가 데이터 검증하기

깃허브 소스 파일에 MOT15의 DET 데이터를 포함하고 있으므로, 코드 수정없이 sort.py 코드 실행을 하면 10초 이내 전체 데이터에 대한 검증 결과가 output 폴더 내 txt 파일로 저장됩니다. 출력된 파일의 형식은 아래 표와같습니다.

 

테스트 데이터에 대한 성능평가 지표 검증은 다음 포스팅에서 정리하도록 하겠습니다.

python sort.py
frame id x y w h score 3D 평가 지표 (무시)
1 3640 1800 483 94 214 1 -1 -1 -1

 

그림 1. 출력되는 Tracking 결과값

실시간 Tracking 결과 확인하기

MOT15 데이터에 대한 Tracking 결괏값을 영상으로 확인하기 위해서는 이미지 데이터가 필요합니다. 이전 포스팅을 참고하시면 쉽게 다운로드할 수 있습니다.

 

deep-eye.tistory.com/66

 

[Python] MOT(Multi-Object Tracking) 평가를 위한 데이터 다운로드

Concept 컴퓨터 비전 기반 딥러닝 기술의 성장과 함께 객체 추적(Tracking) 알고리즘이 발전하고 있습니다. 특히, 객체 탐지 성능이 좋아지며 최근에는 단일 객체가 아닌, 다중 객체 추적 (MOT : Multi - O

deep-eye.tistory.com

SORT가 설치된 폴더 내 'mot_benchmark' 폴더를 생성 합니다. 이후, 다운로드 한 MOT15 데이터를 해당 경로에 압축해제 한 다음 명령어를 실행해주면 실시간으로 Tracking 결과가 출력됩니다.

python sort.py --display

 

알고리즘에 대한 자세한 설명은 여기를 참고하시면 좋을것 같습니다. SORT는 객체 속도를 예측하는 방식으로 트레킹을 시도한 알고리즘으로서, 최신 기법의 기반이 되는 기술이지만 객체의 특징을 판단하지 못한다는 점에서 겹침문제나 장애물 등으로 인한 가림 문제 등에는 대응하지 못하는 단점이 존재합니다. 다음 포스팅에서는 SORT와 함께 비교되었던 기반 알고리즘 IOU Tracker를 소개하겠습니다.

 

Your Best AI Partner DEEP.I
AI 바우처 공급 기업
객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발

인공지능 프로젝트 개발 외주 및 상담
E-mail: contact@deep-i.ai
Site: www.deep-i.ai

 

딥아이 DEEP.I | AI 기반 지능형 기업 솔루션

딥아이는 AI 기술의 정상화라는 목표를 갖고, 최첨단 딥러닝 기술 기반의 기업 솔루션을 제공하고 있으며, 이를 통해 고도의 AI 기반 객체 탐지, 분석, 추적 기능을 통합하여 다양한 산업 분야에

deep-i.ai

 

반응형