- 목차
run_mot_challenge.py 실행 관련
개요
- 대상 프로젝트
- 실행할 코드
- run_mot_challenge.py
설치 및 환경설정
- Git URL에서 Master 브랜치에 있는 코드(Download ZIP)를 다운로드 받고 압축 해제.
- Conda를 이용하여 가상환경을 생성 및 실행합니다. (Python 3.7 버전 이상)
- 프롬프트 내에서 TrackEval-master 디렉토리로 경로를 변경합니다.
- 아래의 패키지 들을 설치합니다. (run_mot_challenge.py 실행하는데는 충분함)
- numpy==1.18.1 (버전 주의)
- numpy 1.20 부터 numpy.float 에 Warning
- numpy 1.24 부터 numpy.float 에 Error
- scipy==1.4.1
- matplotlib==3.2.1
테스트 코드 실행해보기
테스트 코드 적용해보기
- ReadMe 경로 : https://github.com/JonathonLuiten/TrackEval/blob/master/docs/MOTChallenge-Official/Readme.md
- "Directories and Data" 부분을 따라한다.
- data.zip 이라고 적힌 링크를 클릭하여 데이터 압축 파일을 다운로드한다.
- TrackEval 프로젝트 폴더 내에 압축을 푼다.
- TrackEval-master/data/gt 또는 TrackEval-master/data/trackers 형식의 디렉토리 구조가 될 것이다.
테스트 데이터 폴더 구조
(파라미터 수정 없음. mot_challenge\MOT17-train 부분만 출력)
E:\TRACKEVAL-MASTER\DATA
├─gt
│ └─mot_challenge
│ ├─MOT17-train
│ │ ├─MOT17-02-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-02-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-02-SDP
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-04-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-04-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-04-SDP
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-05-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-05-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-05-SDP
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-09-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-09-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-09-SDP
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-10-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-10-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-10-SDP
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-11-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-11-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-11-SDP
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-13-DPM
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ ├─MOT17-13-FRCNN
│ │ │ │ seqinfo.ini
│ │ │ │
│ │ │ └─gt
│ │ │ gt.txt
│ │ │
│ │ └─MOT17-13-SDP
│ │ │ seqinfo.ini
│ │ │
│ │ └─gt
│ │ gt.txt
│ │
│ └─seqmaps
│ MOT17-all.txt
│ MOT17-test.txt
│ MOT17-train.txt
│
└─trackers
└─mot_challenge
└─MOT17-train
└─MPNTrack
│ pedestrian_detailed.csv ← 코드 실행 후 출력 결과물
│ pedestrian_plot.pdf ← 코드 실행 후 출력 결과물
│ pedestrian_plot.png ← 코드 실행 후 출력 결과물
│ pedestrian_summary.txt ← 코드 실행 후 출력 결과물
│
└─data
MOT17-02-DPM.txt
MOT17-02-FRCNN.txt
MOT17-02-SDP.txt
MOT17-04-DPM.txt
MOT17-04-FRCNN.txt
MOT17-04-SDP.txt
MOT17-05-DPM.txt
MOT17-05-FRCNN.txt
MOT17-05-SDP.txt
MOT17-09-DPM.txt
MOT17-09-FRCNN.txt
MOT17-09-SDP.txt
MOT17-10-DPM.txt
MOT17-10-FRCNN.txt
MOT17-10-SDP.txt
MOT17-11-DPM.txt
MOT17-11-FRCNN.txt
MOT17-11-SDP.txt
MOT17-13-DPM.txt
MOT17-13-FRCNN.txt
MOT17-13-SDP.txt
실행 결과
아래 이미지들은 아래 명령어(ReadMe에 있는 명령 그대로)를 입력하여 나온 결과
(여기서 MOT17-train의 경우 "TrackEval-master\data\trackers\mot_challenge\MOT17-train\MPNTrack" 폴더 내에 결과 파일 4개가 생성된다.)
python scripts/run_mot_challenge.py --BENCHMARK MOT17 --SPLIT_TO_EVAL train --TRACKERS_TO_EVAL MPNTrack --METRICS HOTA CLEAR Identity VACE --USE_PARALLEL False --NUM_PARALLEL_CORES 1
중요 Parameter 해석
각 python 코드에 설명되어 있다고 한다. 각 파라미터 오른쪽에 있는 값들은 따로 입력하지 않으면 자동으로 설정되는 값을 의미 한다.
주의 사항
- 파라미터 입력시 앞에 대시(--) 두개를 입력 해야됨.
- True, False 입력 시 앞부분은 대문자로 입력해야 된다.
- 예 : --TIME_PROGRESS False
Eval Config
LOG_ON_ERROR : E:\TrackEval-master\error_log.txt
PRINT_RESULTS : True
각 Metric 실행 결과를 출력한다. (HOTA, MOTA 값 등)
PRINT_ONLY_COMBINED : False
True로 설정되면, 종합된 값에 대해서만 실행 결과를 출력한다. (각 데이터의 값들에 대해서는 출력하지 않음). 단, PRINT_RESULTS 값이 False로 설정되면 출력되지 않음.
PRINT_CONFIG : True
각 Metric 코드에서 활용하는 파라미터 정보를 출력한다. 근데 False로 설정해도 "CLEAR" 모듈은 출력된다.
TIME_PROGRESS : True
코드 진행사항 (경과시간)을 출력한다.
DISPLAY_LESS_PROGRESS : False
코드 진행사항 (경과시간)을 시퀀스 단위로 출력한다. [TIME_PROGRESS] 값이 False면 무시된다.
OUTPUT_SUMMARY : True
코드 실행 후, "[CLASSES_TO_EVAL]_summary.txt" 파일을 출력한다.
OUTPUT_EMPTY_CLASSES : True
OUTPUT_DETAILED : True
코드 실행 후, "[CLASSES_TO_EVAL]_detailed.csv" 파일을 출력한다.
PLOT_CURVES : True
코드 실행 후, "[CLASSES_TO_EVAL]_plot.png" 파일 및 "[CLASSES_TO_EVAL]_plot.pdf" 파일을 출력한다. (이겨서는 "pedestrian_plot.png", "pedestrian_plot.pdf" 파일이 된다.)
MotChallenge2DBox Config
PRINT_CONFIG : True
GT_FOLDER : E:\TrackEval-master\data/gt/mot_challenge/
GT 파일이 있는 루트 디렉토리 경로를 설정한다. 경로 해석은 [GT_LOC_FORMAT] 부분에서 해석
TRACKERS_FOLDER : E:\TrackEval-master\data/trackers/mot_challenge/
Track 파일 (테스트 파일)이 있는 루트 디렉토리 경로
- 경로 분석 : E:\TrackEval-master\data\trackers\mot_challenge\MOT17-train\MPNTrack\data\시퀀스명.txt
- [TRACKERS_FOLDER] : E:\TrackEval-master\data\trackers\mot_challenge\
- [BENCHMARK]-[SPLIT_TO_EVAL] : MOT17-train
- [TRACKERS_TO_EVAL] : MPNTrack
- [TRACKER_SUB_FOLDER] : data
- 시퀀스명 : MOT17-train.txt 파일 내용에 정의
OUTPUT_FOLDER : None
None일 경우, [TRACKERS_FOLDER] 값을 따른다고 한다.
건들지 말자. 변경하면 오류 뜬다...
TRACKERS_TO_EVAL : [‘MPNTrack’]
CLASSES_TO_EVAL : [‘pedestrian’]
검출할 객체의 종류 담당하는 파라미터. 여기서는 그냥 유지 할 것. (다른 코드에서는 "Car", "bus" 등 여러 종류를 선택할 수 있는 듯 함.)
BENCHMARK : MOT17
테스트할 데이터 이름이라고 생각하면 된다. [SPLIT_TO_EVAL] 파라미터와 같이 사용된다.
[BENCHMARK]-[SPLIT_TO_EVAL] : "MOT17-train"
SPLIT_TO_EVAL : train
'all', 'test', 'train' 입력 가능하지만, 'train'으로 그냥 유지하는 것이 좋음. [BENCHMARK] 파라미터와 같이 쓰인다.
DO_PREPROC : True
TRACKER_SUB_FOLDER : data
OUTPUT_SUB_FOLDER :
TRACKER_DISPLAY_NAMES : None
SEQMAP_FOLDER : None
정의 하지 않으면 [GT_FOLDER]\seqmaps 경로로 설정
주의! 파라미터 입력 값을 list로 취급하기 때문에 사용하기 위해서는 None → ''로 수정해야됨
SEQMAP_FILE : None
정의하지 않으면 [SEQMAP_FOLDER]\[BENCHMARK]-[SPLIT_TO_EVAL].txt 파일로 설정
주의! 파라미터 입력 값을 list로 취급하기 때문에 사용하기 위해서는 None → ''로 수정해야됨
SEQ_INFO : None
GT_LOC_FORMAT : {gt_folder}/{seq}/gt/gt.txt
- 경로 분석 : E:\TrackEval-master\data\gt\mot_challenge\MOT17-train\MOT17-02-DPM\gt\gt.txt
- {gt_folder} : [GT_FOLDER]\"[BENCHMARK]-[SPLIT_TO_EVAL]"
- {seq} : seqmaps 폴더 내 [BENCHMARK]-[SPLIT_TO_EVAL].txt 파일 내에 명시
SKIP_SPLIT_FOL : False
True로 설정될 경우 gt데이터, track데이터 경로를 판단할 때 중간에 들어가는 "[BENCHMARK]-[SPLIT_TO_EVAL]" 이름의 폴더를 생략하게 된다.
CLEAR Config
METRICS : [‘HOTA’, ‘CLEAR’, ‘Identity’, ‘VACE’]
실행할 Metric 정보. "CLEAR" 를 입력하면 MOTA, MOTP가 출력된다.
THRESHOLD : 0.5
허용 가능한 IOU 최댓값?
%20-%202.png)
.png)
.png)
.png)
.png)
.png)
댓글
댓글 쓰기