cleanUrl: "paper/DeepSORT"

๋
ผ๋ฌธ๋ช
: SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC
์ ์ : Nicolai Wojkeโ , Alex Bewley, Dietrich Paulusโ
ย
Abstract0. FlowChartSORTDeepSORT1. Introduction2. Sort With Deep Association Metric2.1. Track Handling and State Estimation2.2. Assignment Problem2.3. Matching Cascade2.4. Deep Appearance Descriptor3. Experiments4. ConclusionReference์ ์ฉ ๋ฐ ์ฝ๋
Abstract
SORT(Simple Online and Realtime Tracking)๋ ๋จ์ํ๋ฉด์๋ ํจ์จ์ ์ด๊ณ ์ค์ฉ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ค์ค ๊ฐ์ฒด๋ฅผ ์ถ์ ํฉ๋๋ค. ํด๋น ๋
ผ๋ฌธ์์๋ SORT์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด์ ์ธํ ์ ๋ณด(Appearance Information)๋ฅผ ํตํฉ์ํต๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ๊ฐ์ ์ ๊ฐ์ฒด๊ฐ ์ฅ์ ๋ฌผ์ ๊ฐ๋ ค์ง๋ ์๊ฐ์ด ๊ธธ์ด์ ธ๋ ๊ฐ์ฒด๋ฅผ ์ถ์ ํ ์ ์๊ณ , ํจ๊ณผ์ ์ผ๋ก identity switch๋ฅผ ์ค์ฌ๋๊ฐ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ์กด ๋ชจ๋ธ์ ํ๋ ์์ํฌ์์ computational complexity๋ฅผ offline ์ฌ์ ํ์ต๋จ๊ณ์ ๋ฐฐ์นํ์ฌ, ๋์ฉ๋์ ์ฌ๋ ์ฌ์๋ณ ๋ฐ์ดํฐ์
์ ๋ํ์ฌ deep association metric์ ํ์ตํฉ๋๋ค.
online์ ์ ์ฉํ๋ ๋์์, ์๊ฐ์ ํ์์ด ์๋ ๊ณต๊ฐ์์ NN(Nearest Neighbor,๊ทผ์ ์ด์) query๋ฅผ ์ด์ฉํ์ฌ measurement-to-track association์ ์ธ์ ์ต๋๋ค. ์คํํ๊ฐ์์๋ ์ฐ๋ฆฌ์ ํ์ฅ์ด identity switch๋ฅผ 45%๋ฅผ ๊ฐ์์์ผฐ๊ณ , ๋์ ํ๋ ์๋ฅ ๋ก ์ ๋ฐ์ ์ธ ๊ฒฝ์์ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค.
identity switch :
๋ค์ํ ๊ฐ์ฒด๋ค์ด ์์ง์ผ ๋, ์๋ก์ ID ์ถ์ ์ด ๋ณ๊ฒฝ๋๋ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
deep association metric :
association metric์ deep learning(CNN)์ ์ ์ฉํ ๊ฒ์ผ๋ก, ์์ธํ ์ค๋ช
์ 2.4์ ์ ๋์์์ต๋๋ค.
0. FlowChart
SORT
SORT
SORT๋?
- ์ค์๊ฐ ์ถ์ ์ ์ํด Object๋ค์ ํจ์จ์ ์ผ๋ก ์ฐ๊ด(Associate)์ง์ด์ฃผ๋ MOT(Multi Object Tracking) ์ ๋๋ค.
- MOT๋?
A. ๋ค์์ ๊ฐ์ฒด๋ค ์ถ์ ์ ์ํด ํ์ง๋ ๊ฐ์ฒด๋ค(Detected Objects) ๊ฐ ์ฐ๊ด์ง์ด์ฃผ๋ ๊ณผ์ ์ ๋ปํฉ๋๋ค.
ย
- ์ ํํ SORT ์์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋๊ฑด๊ฐ์?
- Detection : ํ๋ ์์์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- Estimation : Kalman Filter๋ฅผ ํตํด ์ถ์ ์ ์ํ ์ธก์ ์น ์์ธก, ์ ๋ฐ์ดํธ ๊ณผ์ ์ ์งํํฉ๋๋ค.
- Data Association :
- IoU ์ ์ฌ๋๋ฅผ ๊ตฌํฉ๋๋ค.
- ์ถ์ ๋๊ณ ์๋ ๊ฐ์ฒด์
์ถ์ ๋์ง ์๋ ๊ฐ์ฒด(์ฌ๋ผ์ง ๊ฐ์ฒด, New ๊ฐ์ฒด)๋ฅผ ๋ถ๋ฅํฉ๋๋ค.
b-1. ์ถ์ ๋๊ณ ์๋ ๊ฐ์ฒด๋ ๋ค์ Kalman Filter๋ฅผ ํตํด ๋ค์ ์์ธก ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
b-2. ์ฌ๋ผ์ง ๊ฐ์ฒด(Unmatched Tracks)๋ ์ผ์ ์๊ฐ ์ดํ ์ญ์ ๋๋ฉฐ, New ๊ฐ์ฒด(Unmatched Detections)๋ ์๋กญ๊ฒ Track ์์ฑ ํ Track์ ์ถ๊ฐ๋ฉ๋๋ค.
ย
- Limitations of SORT
- Occlusion(ํ์, ๊ฐ๋ ค์ง) ๋ฌธ์ ์ ์ทจ์ฝํฉ๋๋ค.
- ID Switching : ๋ค์ํ ๊ฐ์ฒด๋ค์ด ์์ง์ผ ๋, ์๋ก์ ID ์ถ์ ์ด ๋ณ๊ฒฝ๋๋ ID Switching์ ์ทจ์ฝํฉ๋๋ค.
ย
DeepSORT
1. Introduction
๊ฐ์ฒด ํ์ง์์ ์ต๊ทผ์ ํ๋ณด๋ก ์ธํด, tracking-by-detection์ ๋ค์ค๊ฐ์ฒด์ถ์ ์ ์ด๋๋ ํจ๋ฌ๋ค์์ด ๋์์ต๋๋ค. ์ด ํจ๋ฌ๋ค์์์, ๊ฐ์ฒด์ trajectory(๊ถค๋)๋ค์ ๋ณดํต video batch ์ ์ฒด๋ฅผ ํ๋ฒ์ ์ฒ๋ฆฌํ๋ global optimization ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ batch ์ฒ๋ฆฌ๋ฐฉ์ ๋๋ฌธ์ flow network formulation๊ณผ ํ๋ฅ ์ ๊ทธ๋ํ ๋ชจ๋ธ๊ณผ ๊ฐ์ ๋ฐฉ์์ target์ identity์ ๋ํด ๊ฐ time step๋ง๋ค ํ์ธ์ด ๊ฐ๋ฅํด์ผ ํ๊ณ , ์ด์ ๋ฐ๋ผ online ์์์ ์ ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
SORT๋ ์ด๋ฏธ์ง ๊ณต๊ฐ ์์์ Kalman filtering์ ์ํํ๊ณ , Bounding box์ overlap์ ์ธก์ ํ๋ association metric๊ณผ ํจ๊ป Hungarian method๋ฅผ ์ฌ์ฉํ์ฌ frame-by-frame data association์ ์ํํ๋ ๋์ฑ ๋จ์ํ ํ๋ ์์ํฌ์
๋๋ค. ์ด๋ ๊ฒ ๋จ์ํ ์ ๊ทผ์ ๋์ ํ๋ ์๋ฅ ๋ก ์ ๋ฆฌํ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
MOT challenge dataset์์, sota์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์ฌ๋ ๊ฒ์ถ๊ธฐ SORT๋ ํ์ค ๊ฒ์ถ๊ธฐ์ MHT๋ณด๋ค ํ๊ท ์ ์ผ๋ก ๋์ ์์๋ฅผ ์ฐจ์งํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ์ ๋ฐ์ ์ธ ์ถ์ ๊ฒฐ๊ณผ์์ ๋ฌผ์ฒด ๊ฒ์ถ๊ธฐ ์ฑ๋ฅ์ ์ํฅ๋ ฅ์ ๊ฐ์กฐํ ๋ฟ ์๋๋ผ, ์ ๋ฌธ๊ฐ์ ์
์ฅ์์ ๋ดค์ ๋ ๊ต์ฅํ ์ค์ํ ํต์ฐฐ๋ ฅ์ด๊ธฐ๋ ํฉ๋๋ค.
SORT๋ tracking precision๊ณผ accuracy ์ธก๋ฉด์์ ์ ๋ฐ์ ์ผ๋ก ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๊ธด ํ์ง๋ง, ์๋์ ์ผ๋ก ๋ง์ identity switch๊ฐ ๋ฐ์ํ๋๋ฐ, ์ด๋ ์ฌ์ฉ๋ association metric์ด state estimation ๋ถํ์ค์ฑ์ด ๋ฎ์ ๋์๋ง ์ ํํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, SORT๋ ๋ณดํต ์นด๋ฉ๋ผ๊ฐ ์ ๋ฉด์ ํฅํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ occlusion์ ์ถ์ ํ๋๋ฐ ๊ฒฐํจ์ด ์์ต๋๋ค. ํด๋น ๋
ผ๋ฌธ์์๋ ์ด๋ฌํ ์ด์๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด association metric์ ์์ง์๊ณผ appearance ์ ๋ณด๋ฅผ ๊ฒฐํฉํ์ฌ ์ข ๋ ์ ๋ณด์ ์
๊ฐํ metric์ผ๋ก ๋์ฒดํ์์ต๋๋ค. ํนํ, ๋์ฉ๋์ ์ฌ๋ ์ฌ์ธ์ ๋ฐ์ดํฐ์
์ ๋ํ์ฌ ๋ณดํ์๋ฅผ ๊ตฌ๋ณํด๋ด๋๋ก ํ๋ จ๋ CNN๋ชจ๋ธ์ ์ฌ์ฉํ์์ต๋๋ค. ์ด๋ฌํ ๋คํธ์ํฌ์ ํตํฉ์ ํตํด ์์คํ
์ ์ ์ฉํ๊ธฐ ์ฝ๊ณ , ํจ๊ณผ์ ์ด๊ณ , online ์์ ์ ์ฉํ๊ธฐ ์ข๊ฒ ์ ์งํ๋ฉด์๋ misses๋ occlusion๋ค์ ๋ํ ๊ฒฌ๊ณ ํจ์ ์ฆ๊ฐ์ํต๋๋ค. ์ฝ๋์ ์ฌ์ ํ์ต CNN ๋ชจ๋ธ์ ๊ฐ๋ฐ์ ์ฉ์ด์ฑ์ ์ํด ๊ณต๊ฐํด๋์์ต๋๋ค.
ย
2. Sort With Deep Association Metric
Kalman filtering๊ณผ frame๋ณ ๋ฐ์ดํฐ ์ฐ๊ด์ฑ์ ๊ฐ์ง ์ ํต์ ์ธ ๋จ์ผ ๊ฐ์ค ์ถ์ ๋ฐฉ๋ฒ์ ์ฑํํ์์ต๋๋ค. ๋ค์ ์น์
์์ ์ข ๋ ์์ธํ๊ฒ ์ค๋ช
ํด๋ณด๊ฒ ์ต๋๋ค.
Kalman filter :
- ์ด์ ํ๋ ์(๋๋ stage)์ ๋ฑ์ฅํ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๋ค์ ํ๋ ์ ๊ฐ์ฒด์ ์์น๋ฅผ ์์ธกํ๊ณ ์ธก์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
ย
- ์ด๋ป๊ฒ Kalman Filter๋ฅผ ์ฌ์ฉํ ๊น์?
- ์์ธก์ ์ด๋ป๊ฒ??
- ์ด์ ํ๋ ์์ ์์ธก๊ฐ์ ๋ถํฌ(Predicted state estimate) + ํ์ฌ ํ๋ ์์ ์ธก์ ๊ฐ ๋ถํฌ(Measurement) โ ์ต์ ์ถ์ ๊ฐ(Optimal State Estimate)
์์ธก
๊ณผ ์์ธก๊ฐ์ ํ๋ฅ ๋ถํฌ
+ ์ผ์๊ฐ
๊ณผ ์ผ์๊ฐ์ ํ๋ฅ ๋ถํฌ
โ ํ๋ฅ ๋ถํฌ์ ๊ต์งํฉ์ ํตํ
์ต์ ์ถ์ ๊ฐ
โ ํ์ฌ์ ์์น,์๋,๊ฐ์๋๋ฅผ ํตํด 1์ด ํ์ ์์น,์๋,๊ฐ์๋๋ฅผ ์ถ์ ํ ์ ์์
โ ์์ธก๊ฐ๊ณผ ์ธก์ ๊ฐ์ ๊ฐ๊ฐ์ Gaussian Distribution์ ์ด์ฉํด ์ํ๋ฅผ ์
๋ฐ์ดํธ ํด ์ต์ ์ ์ถ์ ๊ฐ์ ์ป์ต๋๋ค.
ย
- ์ฐ๋ฆฌ๋ ์ DeepSORT์ KalmanFilter๋ฅผ ์ฌ์ฉํ ๊น์?
A. Sensor(Camera)๋ก ๋ฐ์๋ค์ด๋ Measurement ๊ฐ ์ญ์ Noise๋ฅผ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ Kalman Filter๋ก ์ฒ๋ฆฌํ๋๋ฐ ํจ๊ณผ์ ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ํ Tracking์ ์ํ ์์์์๋ ๋ฌผ์ฒด์ ์ด๋์ด ์ ํ์ (๊ฐ์๊ธฐ ์ฌ๋ผ์ง๊ฑฐ๋ ๋ํ๋์ง ์์)์ด๊ธฐ ๋๋ฌธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฒ๋ฆฌ์ ์ฉ์ดํฉ๋๋ค.
ย
2.1. Track Handling and State Estimation
track handling๊ณผ Kalman filtering ํ๋ ์์ํฌ๋ ๊ฑฐ์ ๋๋ถ๋ถ SORT ์๊ณ ๋ฆฌ์ฆ์ ์๋ ๊ณต์๊ณผ ๋์ผํฉ๋๋ค. ์นด๋ฉ๋ผ๋ ๋ณด์ ๋์ง ์์, ์ด์ฉํ ์ ์๋ ego-motion์ ๋ณด๊ฐ ์๋ ๋งค์ฐ ์ผ๋ฐ์ ์ธ tracking ์๋๋ฆฌ์ค๋ฅผ ๊ฐ์ ํด๋ด
์๋ค. ์ด๋ฌํ ์ํฉ์ filtering ํ๋ ์์ํฌ์ ๋ํ์ฌ ๋์ ์ ์ผ ์๋ ์์ง๋ง, ์ต๊ทผ์ ๋ค์ค๊ฐ์ฒด ์ถ์ benchmark์์๋ ๋งค์ฐ ํํ ์ค์ ์
๋๋ค.
ego-motion :
์นด๋ฉ๋ผ์ ์ด๋์ ์นด๋ฉ๋ผ์ ์ํด ์บก์ณ๋ ์ผ๋ จ์ ์ด๋ฏธ์ง๋ค์ ๊ธฐ์ดํ์ฌ ์ถ์ ํ๋ ๊ฒ์
๋๋ค.
ย
tracking ์๋๋ฆฌ์ค๋ bounding box์ ์ค์ฌ ์ขํ, ๊ฐ๋ก์ธ๋ก ๋น์จ , ๋์ด , ๊ทธ๋ฆฌ๊ณ ์ด๋ค์ ๋ํ์ฌ ์์ ์ขํ๊ณ์์์ ์๋์ ์ธ ์๋๊ฐ์ ํฌํจํ 8์ฐจ์์ state ๊ณต๊ฐ์์ ์ ์๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฑ์ ์ด๋๊ณผ ์ ํ ๊ด์ธก ๋ชจ๋ธ์ ๊ฐ์ง ํ์ค Kalman filter๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ์ฒด์ ๋ํด ์ง์ ์ ์ผ๋ก ๊ด์ธกํ์ฌ ๋ํ๋ธ bounding box์ ์ขํ์ธ ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ฐ track์ธ k์ ๋ํด ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ์ฑ๊ณตํ measurement association, ์ดํ์ frame ์๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ด ์นด์ดํฐ๋ Kalman filter ์์ธก ๋์ ์ฆ๊ฐ๋๊ณ track์์ ๋ค์ measurement association์ด ๋ฐ์ํ๋ฉด 0์ผ๋ก ๋ฆฌ์
๋ฉ๋๋ค. ์ฌ์ ์ ์ ์๋ ์ต๋ age, ๋ฅผ ์ด๊ณผํ๋ track์ scene์ ๋ ๋ฌ๋ค๊ณ ๊ฐ์ฃผ๋์ด track set์์ ์ญ์ ๋ฉ๋๋ค. ์๋ก์ด track ๊ฐ์ค์ ๊ฒฝ์ฐ, ๊ธฐ์กด์ ํธ๋๊ณผ ์ฐ๊ด์ง์ด์ง ์ ์๋ค๊ณ ํ๋จํ๊ณ ๊ฐ detection๋ง๋ค ์ด๊ธฐํ๋ ์๋ก์ด track์ ์์ฑํฉ๋๋ค. ์ด ์๋ก์ด track๋ค์ ์ฒซ 3 ํ๋ ์๋์ ์ ์ ์ ์ํ(tentative)๋ก ๋ถ๋ฅ๋ฉ๋๋ค. ์ด ์๊ฐ๋์ ๊ฐ ๋จ๊ณ๋ง๋ค measurement์์ ์ฑ๊ณต์ ์ธ association์ ๊ธฐ๋ํ๋๋ฐ, ์ฑ๊ณต์ ์ผ๋ก measurement์ ์ฐ๊ฒฐ๋์ง ์์ track๋ค์ ์ญ์ ๋ฉ๋๋ค.
ย
2.2. Assignment Problem
์์ธก๋ Kalman states์ ์๋กญ๊ฒ ๋์ฐฉํ measurement ์ฌ์ด์ ์ฐ๊ด์ฑ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ ํต์ ์ธ ๋ฐฉ์์ Hungarian algorithm์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ํด๋น ๊ณต์ ์์์, ์ฐ๋ฆฌ๋ ๋๊ฐ์ง์ ์ ์ ํ metrics์ ๊ฒฐํฉํ์ฌ ์์ง์๊ณผ ์ธํ ์ ๋ณด๋ฅผ ํตํฉํฉ๋๋ค.
assignment problem :
- ๋ค์์ ๊ณต๊ธ์ฒ์ ์์์ฒ๊ฐ ์กด์ฌํ๋ฉฐ, ์์ฉ๋น์ฉ์ด ๋ชจ๋ ๋ค๋ฅผ ๋, ์ด ์์ก๋น์ฉ์ ํฉ์ด ์ต์๊ฐ ๋๋ ์ต์ ํด๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ๋๋ค.
- ex. โ๋ ธ๋์(์์ด์ปจ ์๋ฆฌ๊ธฐ์ฌ) = ๊ณต๊ธ์ฒ -> ์์ (์์ด์ปจ ์๋ฆฌ) = ์์์ฒ ์ ๋ํด ๊ฐ์ฅ ์ ์ ๋น์ฉ์ ํด๋ฒโ์ ์ป๋ ์ผ๋ จ์ ๊ณผ์ ์ด๋ผ ํ ์ ์์ต๋๋ค.
ย
- How to Solve Assignment Problem?
- ํ ๋น ๋ฌธ์ ์ ๋ํ์ ์ธ ํด๊ฒฐ๋ฒ์ผ๋ก Hungarian Algorithm์ด ์์ต๋๋ค.
ย
Hungarian algorithm :
ย
์์ง์์ ๋ํ ์ ๋ณด๋ฅผ ํตํฉํ๊ธฐ ์ํด ์์ธก๋ Kalman states์ ์๋กญ๊ฒ ๋์ฐฉํ measurement ์ฌ์ด์ (์ ๊ณฑ) Mahalanobis ๊ฑฐ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
: j๋ฒ์งธ bounding box detection
: i๋ฒ์งธ track ๋ถํฌ์์ ํ๊ท ๊ฐ
: i๋ฒ์งธ track ๋ถํฌ์์์ ๊ณต๋ถ์ฐ ํ๋ ฌ
ย
Mahalanobis ๊ฑฐ๋ฆฌ :
- ํต๊ณํ์์ ์ฌ์ฉํ๋ ๊ฑฐ๋ฆฌ : ํ๊ท ๊ณผ์ ๊ฑฐ๋ฆฌ๊ฐ ํ์ค ํธ์ฐจ์ ๋ช ๋ฐฐ์ธ์ง ๋ํ๋ด๋ ๊ฐ์ ๋๋ค.
- ์ข ๋ ์ง๊ด์ ์ผ๋ก ์ค๋ช ํ์๋ฉด โ์ด๋ค ๊ฒฝํฅ์ด ์์ ๋, ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ์ผ์ด๋๊ธฐ ํ๋ ๊ฐ์ธ์ง?โ ๋ฅผ ๋ํ๋ด์ฃผ๋ ์ฒ๋!
- ๋ ์ฝ๊ฒ ๋งํ๋ฉด
ํ๋ฅ ๋ถํฌ
๋ก๋ถํฐ ์ผ๋ง๋ ๊ฐ๊น์ด์ง! - ex.1 (0,0) ์ผ๋ก๋ถํฐ ๋ค ์ (1,-1), (1,1), (1,-1), (-1,-1) ์ ์ ํด๋ฆฌ๋ ๊ฑฐ๋ฆฌ๋ ๋ชจ๋ ๊ฐ์ง๋ง, Mahalanobis ๊ฑฐ๋ฆฌ๋ (1,-1)๊ณผ (-1,1)์ด ๋งค์ฐ ํฐ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
- ex2.
์ค์ฌ ฮผ1,ฮผ2 ์ผ๋ก๋ถํฐ x๊น์ง์ ์ ํด๋ฆฌ๋์ ๊ฑฐ๋ฆฌ(๊ธฐํํ์ ๊ฑฐ๋ฆฌ) : L1 > L2
์ค์ฌ ฮผ1,ฮผ2 ์ผ๋ก๋ถํฐ x๊น์ง์ ๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ(ํต๊ณํ์ ๊ฑฐ๋ฆฌ) : L1 < L2
- ์ Mahalanobis Distance๋ฅผ ์ฌ์ฉํ ๊น์?
- ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ง์ง ๋ฐ์ดํฐ์ธ์ง, ๊ฐ์ง ๋ฐ์ดํฐ(Noise, False Alarm ๋ฑ)์ธ์ง ๊ตฌ๋ณํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
ย
๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ๋ state estimation ๋ถํ์ค์ฑ์ ์ธก์ ํ๊ณ ๊ณ ๋ คํ๊ธฐ ์ํด ํ์คํธ์ฐจ(detection์ด ํ๊ท track์ ์์น๋ก๋ถํฐ ์ผ๋ง๋ ๋จ์ด์ ธ ์๋์ง)๋ฅผ ์ธก์ ํฉ๋๋ค. ๊ฒ๋ค๊ฐ, ์ด ์ธก์ ์งํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ญ ๋ถํฌ์์ ๊ณ์ฐ๋ 95%์ ์ ๋ขฐ๊ตฌ๊ฐ์ ์ด์ฉํ์ฌ ๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ๋ฅผ thresholdingํ์ฌ, ๊ฐ๋ง์๋ ์ฐ๊ด์ ๋ฐฐ์ ์ํฌ ์๋ ์์ต๋๋ค. ์ด๋ฌํ decision์ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ๋ ์์ง์์ ๋ํ ๋ถํ์ค์ฑ์ด ๋ฎ์ ๋ ์ ์ ํ ์ฐ๊ด์ฑ ์ธก์ ์งํ๊ฐ ๋ ์ ์์ง๋ง, ์ฐ๋ฆฌ์ image-space problem formulation์์๋ Kalman filtering์์ ๊ตฌํด์ง ์์ธก ์ํ๋ถํฌ๋ฅผ ํตํด ๊ฐ์ฒด ์์น์ ๋ํ ๋๋ต์ ์ธ ์ถ์ ์น๋ง ์ ๊ณตํฉ๋๋ค. ํนํ, ์ค๋ช
๋์ง ์์ ์นด๋ฉ๋ผ์ ์์ง์์ ์์ ํ๋ฉด์ ๊ธ๊ฒฉํ ๋ณํ๋ฅผ ์ผ๊ธฐํ ์ ์๊ธฐ ๋๋ฌธ์, ๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ๋ occlusion์ ์ถ์ ํ๋๋ฐ ๋ค์ ๋นํ์์ ์ธ ์ธก์ ์งํ๊ฐ ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ๋๋ฒ์งธ metric์ assignment problem์ ํ ๋น์์ผฐ์ต๋๋ค.
ย
๊ฐ๊ฐ์ bounding box detection์ธ ์ ๋ํ์ฌ ์ฐ๋ฆฌ๋ ์ธ appearance descriptor, ๋ฅผ ๊ณ์ฐํ์์ต๋๋ค. ๋ํ, ๊ฐ ํธ๋ k์ ๋ํ์ฌ ๋ง์ง๋ง 100๊ฐ์ appearance descriptor๋ฅผ ๊ฐ์ง๋ ๊ฐค๋ฌ๋ฆฌ์ธ ๋ฅผ ๋ณด๊ดํ์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด, ์ฐ๋ฆฌ์ ๋๋ฒ์งธ metric์ appearance space์์ i๋ฒ์งธ track๊ณผ j๋ฒ์งธ detection ์ฌ์ด์ ๊ฐ์ฅ ์์ ์ฝ์ฌ์ธ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ ํฉ๋๋ค.
์ฝ์ฌ์ธ ๊ฑฐ๋ฆฌ์ ๋ํด์๋ ์ฐ๊ด์ฑ์ด ํ์ฉ๋๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ์ด์ง ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ถ๋ฆฌ๋ ํ๋ จ ๋ฐ์ดํฐ์
์ ๋ํ์ฌ ์ด indicator๋ฅผ ์ํ ์ ์ ํ threshold ๊ฐ์ ์ฐพ์์ต๋๋ค. ์ค์ ๋ก ์ฌ์ ํ๋ จ๋ CNN์ ์ด์ฉํ์ฌ bounding box์ appearance descriptor๋ฅผ ๊ณ์ฐํ์์ต๋๋ค. ์ด ๋คํธ์ํฌ์ ๊ตฌ์กฐ๋ 2.4.์ ์ ์ค๋ช
๋์ด ์์ต๋๋ค.
๋ ์งํ๋ฅผ ๊ฒฐํฉํ๋ฉด, ๋ metric์ ์๋ก ๋ค๋ฅธ assignment ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์ ์ํธ๋ณด์์ ์ด๋ฃน๋๋ค. ๋จผ์ , ๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ๋ ๋จ๊ธฐ ์์ธก์ ํนํ ์ ์ฉํ ์์ง์์ ๊ธฐ๋ฐํ์ฌ ๋ฌผ์ฒด์ ๊ฐ๋ฅํ ์์น ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ฉด์ ์ฝ์ฌ์ธ ๊ฑฐ๋ฆฌ๋ ๋์์ด ๋ณ๋ฐ ๋ค๋ฅด์ง ์์ ๋ ์ฅ๊ธฐ๊ฐ์ occlusion ์ดํ ๋ฌผ์ฒด์ ๋ํ ๋์ผ์ฑ์ ํ๋ณตํ๋๋ฐ ํนํ ์ ์ฉํ appearance ์ ๋ณด๋ฅผ ๊ณ ๋ คํฉ๋๋ค. Association ๋ฌธ์ ๋ฅผ ์ค๊ณํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ weighted sum์ ์ด์ฉํ์ฌ ๋ metric์ ๋ฌถ์ด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๋ metric ๋ชจ๋์ gating ์์ญ ์์ ์๋ค๋ฉด ์ฐ๊ด์ฑ์ ์ธ์ ํฉ๋๋ค.
๊ฒฐํฉ๋ ์ฐ๊ด์ฑ ๋น์ฉ์ ๋ํ์ฌ ๊ฐ metric์ ์ํฅ๋ ฅ์ hyperparameter์ธ ๋ฅผ ํตํด ์กฐ์ ํ ์ ์์ต๋๋ค. ์คํ์ ์งํํ๋ฉด์ ์นด๋ฉ๋ผ์ ์์ง์์ด ์๋นํ ๊ฒฝ์ฐ ๋ก ์ค์ ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๋ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค. ์ด๋๋ ์ฐ๊ด์ฑ ๋น์ฉ ์์์์ ์ค์ง appearance ์ ๋ณด๋ง์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ๋งํ ๋ผ๋
ธ๋น์ค๋ ์ฌ์ ํ Kalman filter์ ์ํด ์ถ๋ก ๋ ๊ฐ๋ฅํ ๋ฌผ์ฒด ์์น์ ๊ธฐ๋ฐํ์ฌ ์คํ๋ถ๊ฐ๋ฅํ assignment๋ฅผ ๋ฌด์ํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ย
2.3. Matching Cascade
Global assignment ๋ฌธ์ ์์ measurement์ tracking ์ฌ์ด์ ์ฐ๊ด์ฑ์ ํด๊ฒฐํ๊ธฐ๋ณด๋ค๋, ์ผ๋ จ์ ํ์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ cascade๋ฅผ ๋์
ํ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ๊ณ ๋ คํด๋ด
์๋ค.
๊ฐ์ฒด๊ฐ ๋์ฑ ๊ธด ์๊ฐ๋์ ๊ฐ๋ ค์ง๊ฒ ๋๋ฉด, ๋ค์ด์ Kalman filter๋ ๋ฌผ์ฒด์ ์์น์ ๋ํ ๋ถํ์ค์ฑ์ ์ฆ๊ฐ์ํต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ํ๋ฅ ์ง๋์ state space์์ ํผ์ง๋ ๋ชจ์์ ๊ฐ์ง๊ฒ ๋๊ณ ๊ด์ธก ๊ฐ๋ฅ์ฑ์ ๋ ๋พฐ์กฑํด์ง๋๋ค. ์ง๊ด์ ์ผ๋ก, association metric์ measurement-to-track distance๋ฅผ ์ฆ๊ฐ์ํด์ผ๋ก์จ ํผ์ง ํ๋ฅ ์ง๋์ ์ค๋ช
ํด์ผ ํฉ๋๋ค.
๋ฐ๋๋ก ๋๊ฐ์ track์ด ๋์ผํ detection์ ๋ํด ๊ฒฝ์์ ํ ๋์๋, ๋งํ ๋ผ๋
ธ๋น์ค ๊ฑฐ๋ฆฌ๋ ๋ ํฐ ๋ถํ์ค์ฑ์ ์ ํธํ๋๋ฐ, ์ด๋ ์ด๋ ํ detection์ด๋ ํด๋น track์ ํ๊ท ์ ๋ํ ํ์คํธ์ฐจ ๊ฑฐ๋ฆฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ฐ์์์ผ์ฃผ๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ด๋ ํธ๋์ ๋ถ์ด๊ณผ ๋ถ์์ ํ ํธ๋์ ์ฆ๊ฐ๋ฅผ ์ผ๊ธฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋์งํ์ง ์์ ํ๋์
๋๋ค. ๋ฐ๋ผ์, ์ฐ๊ด ๊ฐ๋ฅ์ฑ ํ์ฐ์ ๊ฐ๋
์ ์ธ์ฝ๋ฉํ๊ธฐ ์ํด ๋ ์์ฃผ ๋ณด์ด๋ ๋ฌผ์ฒด์๊ฒ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ matching cascade๋ฅผ ๋์
ํฉ๋๋ค.
ย
input์ผ๋ก track set T, detection index๋ค์ ๋ปํ๋ D, ์ต๋ ๋์ด์ธ ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
1,2 : ๊ด๋ จ ๋น์ฉ matrix์ gate(ํ์ฉ๋ ์ฐ๊ด์ฑ) matrix๋ฅผ ๊ณ์ฐํฉ๋๋ค. ๊ทธ ํ track์ ๋์ด๊ฐ ์ฆ๊ฐํ๋ฉด์ ๋ฐ์ํ๋ ์ ํ ํ ๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด track์ ๋์ด n์ ๋ฐ๋ณตํฉ๋๋ค.
6 : ๊ฐ์ฅ ๋ง์ง๋ง n๋ฒ์งธ ํ๋ ์์์์ detection๊ณผ ์ฐ๊ด๋์ง ์์ track ์ ๋ถ๋ถ์งํฉ์ ์ ํํฉ๋๋ค.
7 : track ๊ณผ ๋งค์นญ๋์ง ์์ detection U ์ฌ์ด์ ์ ํ assignment๋ฅผ ํด๊ฒฐํฉ๋๋ค.
8, 9 : matching set๊ณผ matching ๋์ง ์์ detection์ ์
๋ฐ์ดํธํ๋๋ฐ, ์๋ฃ ํ 11๋ฒ์งธ ๋ผ์ธ์์ ๋ฐํํด์ค ์์ ์
๋๋ค.
์์ ๊ฐ์ matching cascade ๊ธฐ๋ฒ์ ๋ ์ ์ ๋์ด, ์ฆ ์ต๊ทผ์ ๋ ๋ง์ด ๋ฐ๊ฒฌ๋ track๋ค์๊ฒ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ค๋ ๊ฒ์ ์ ์ํด์ผ ํฉ๋๋ค.
๋ง์ง๋ง matching ๋จ๊ณ์์๋ ํ์ธ๋์ง๋, ๋งค์นญ๋์ง๋ ์์ age n=1์ธ track ์งํฉ์ ๋ํ์ฌ ์๋ SORT ์๊ณ ๋ฆฌ์ฆ์์ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ด union association์ ํตํด ๊ต์ฐจ์ ์ ์ด์ํฉ๋๋ค. ์ด๋ ๊ฐ์์ค๋ฌ์ด ์ธํ ๋ณํ(์๋ฅผ ๋ค๋ฉด ์ ์ ์ธ ์ฅ๋ฉด์ ๋ถ๋ถ์ ์ธ occlusion)๋ฅผ ์ค๋ช
ํ๊ฑฐ๋, ์๋ชป๋ ์ด๊ธฐํ์ ๋ํด์ ๊ฒฌ๊ณ ํจ์ ์ฆ๊ฐ์ํค๋๋ฐ ๋์์ด ๋ฉ๋๋ค.
ย
2.4. Deep Appearance Descriptor
์ถ๊ฐ์ ์ธ metric ํ์ต ์์ด ๊ฐ๋จํ Nearest Neighbor ๋ฐฉ์์ ์ฌ์ฉํจ์ผ๋ก์จ, ๋
ผ๋ฌธ์์ ์ ์ํ ๋ฐฉ์์ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉํ๊ธฐ ์ํด์๋ ์ค์ online tracking application ์ ์ offline ์์์ ์ ์ ์๋ feature embedding์ด ์ ํ๋ จ๋์ด์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ํด 1,261๋ช
์ ๋ณดํ์์ 1,100,000์ฅ์ ์ด๋ฏธ์ง๋ฅผ ํฌํจํ๋ ๋์ฉ๋ ์ฌ๋ ์ฌ์ธ์ ๋ฐ์ดํฐ์
(MARS)์ ๋ํด ํ๋ จ๋ CNN์ ์ฌ์ฉํ๊ณ ์๊ณ , ์ด๋ people tracking context์์ deep metric์ ํ์ตํ๋๋ฐ ์ ์ ํฉ๋๋ค.
ย
๋
ผ๋ฌธ์์ ์ ์ํ๋ CNN ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ฝํ์๋ฉด, 2๊ฐ์ convolutional layer์ 6๊ฐ์ residual block์ ๊ฐ์ง ๋์ residual network๋ฅผ ์ฌ์ฉํฉ๋๋ค.
128์ฐจ์์ global feature map์ ๊ฒฝ์ฐ 10๋ฒ์งธ dense layer์์ ๊ณ์ฐ๋ฉ๋๋ค. final batch์ ์ ๊ทํ๋ ํน์ง๋ค์ unit hypersphere์ ์์ฌ์์ผ cosine appearance metric๊ณผ ๋น๊ต๊ฐ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. 2,800,864๊ฐ์ parameter๋ฅผ ๊ฐ์ง๊ณ ์๊ณ Nvidia GeForce GTX 1050 mobile GPU๋ฅผ ์ฌ์ฉํ ๋, 32๊ฐ์ bounding box์ ๋ํ์ฌ 1๋ฒ์ forward pass๋ฅผ ์ ์ฉํ ๊ฒฝ์ฐ 30ms๋ฅผ ์์๋ฉ๋๋ค. ๋ฐ๋ผ์, ์ด ๋คํธ์ํฌ๋ ํ๋์ GPU๊ฐ ์ฃผ์ด์ง๋ค๋ฉด online tracking์ ์ ์ ํฉ๋๋ค.
ํ์ต์ ์ฐจ์ ๋ํ ๋ํ
์ผ์ ํด๋น ๋
ผ๋ฌธ์ ๋ฒ์์์ ๋ฒ์ด๋ฌ์ง๋ง, GitHub์์ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
ย
ย
3. Experiments
MOT16 benchmark์ ๋ํ์ฌ ์ฐ๋ฆฌ์ tracker์ ์ฑ๋ฅ์ ํ๊ฐํฉ๋๋ค. ์ด benchmark๋ 7๊ฐ์ ๋์ ์ ์ธ test sequences์ ๋ํด ์ถ์ ์ฑ๋ฅ์ ํ๊ฐํ๋๋ฐ, ์์ง์ด๋ ์นด๋ฉ๋ผ์ ์ ๋ฉด ์ดฌ์ ์ฅ๋ฉด๊ณผ ์์์ ์๋๋ก ๊ฐ์ํ๋ ์ค์ ๋ํ ํฌํจํ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ํ๋ฅญํ ์ฑ๋ฅ์ ์ ๊ณตํ๊ธฐ ์ํด public, private ๋ฐ์ดํฐ์
์ ๋ชจ์ Faster RCNN์ ํ๋ จ์์ผฐ์ต๋๋ค. ๋๋ฑํ ๋น๊ต๋ฅผ ์ํด, ๋๊ฐ์ detection์ ๋ํด SORT๋ฅผ ์ฌํ์ต์์ผฐ์ต๋๋ค.
test sequence์ ๋ํ ํ๊ฐ์์ ํ๋ ์์ผ๋ก ์ค์ ํ์ต๋๋ค. detection์ ๊ฒฝ์ฐ 0.3์ด๋ผ๋ confidence score์ ๋ํ threshold๋ฅผ ์ค์ ํ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๋ชจ๋ธ์์ ๋จ์ ํ๋ผ๋ฏธํฐ์ ๊ฒฝ์ฐ benchmark์์ ์ ๊ณต๋๋ ๋ถ๋ฆฌ๋ ํ๋ จ sequence์์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ํ๊ฐ metric์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ย
MOTA(Multi-object tracking accuracy) : false positive, false negative, identity switch ์ธก๋ฉด์์์ ์ ๋ฐ์ ์ธ tracking accuracy
MOTP(Multi-object tracking precision) : ground-truth์ ๊ธฐ๋ก๋ ์์น ์ฌ์ด์ bounding box overlap ์ธก๋ฉด์์์ ์ ๋ฐ์ ์ธ tracking accuracy
MT(Mostly Tracked) : ์๋ช
์ฃผ๊ธฐ์ ์ต์ 80%๋ ๋์ผํ ๋ผ๋ฒจ์ ๊ฐ์ง๊ณ ์๋ ground-truth track์ ๋น์จ
ML(Mostly Lost) : ์๋ช
์ฃผ๊ธฐ์ ์ต๋ 20%๋ง ์ถ์ ๋ ground-truth track์ ๋น์จ
ID(Identity Switches) : ground-truth track์ ๊ธฐ๋ก๋ identity switch ํ์
FM(Fragmentation) : missing detection์ ์ํด track์ด ๋ฐฉํด๋ฅผ ๋ฐ์ ํ์
์ฐ๋ฆฌ์ ๋ชจ๋ธ์ธ Deep SORT๋ ์ฑ๊ณต์ ์ผ๋ก identity switch ์๋ฅผ ๊ฐ์์์ผฐ์ต๋๋ค. SORT์ ๋น๊ตํ์ ๋, id switch์ ๊ฒฝ์ฐ 1423์์ 781๋ก ์ฝ 45%๊ฐ ๊ฐ์ํ์์ต๋๋ค. occlusion์ด๋ miss๋ก๋ถํฐ ๊ฐ์ฒด์ identity๋ฅผ ์ ์งํ๊ธฐ ์ํด track ๋ถ์ด์ ๊ฒฝ์ฐ ๋ฏธ์ธํ๊ฒ ์ฆ๊ฐํ์์ต๋๋ค. MT๋ ์๋นํ ์ฆ๊ฐ๋ฅผ, ML์ ๊ฐ์๋ฅผ ๋ณด์์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก, appearance ์ ๋ณด์ ๊ฒฐํฉ์ผ๋ก ๋ฌผ์ฒด์ ๊ฐ๋ ค์ง์์๋ ์ฑ๊ณต์ ์ผ๋ก identity๋ฅผ ์ ์งํ ์ ์์์ต๋๋ค.
์ฐ๋ฆฌ์ ๋ฐฉ์์ ๋ํ ๋ค๋ฅธ online tracking ํ๋ ์์ํฌ์ ๋ํ์ฌ ๊ฐ๋ ฅํ ๊ฒฝ์์์ด๊ธฐ๋ ํฉ๋๋ค. ํนํ, ์ฐ๋ฆฌ์ ์ ๊ทผ ๋ฐฉ์์ ๋ชจ๋ online ๋ฐฉ์ ์ค์์ ๊ฒฝ์๋ ฅ์๋ MOTA score, track fragmentation, false negative๋ฅผ ์ ์งํ๋ฉด์๋, ๊ฐ์ฅ ์ ์ identity switch๋ฅผ ๋ฐํํฉ๋๋ค. ๊ธฐ๋ก๋ tracking accuracy๋ ๋ง์ ์์ false positive๋ก ์ธํด ๋๋ถ๋ถ ์์๋ฉ๋๋ค. MOTA score์ ๋ํ ์ ๋ฐ์ ์ธ ์ํฅ๋ ฅ์ด ์ฃผ์ด์ก์ ๋, detection์ ํฐ confidence threshold๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ฌ์ ์ผ๋ก ํฐ ๋ง์ง์ ์ํด ์ฐ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ก๋ ์ฑ๋ฅ์ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋, tracking output์ ์๊ฐ์ ์ผ๋ก ์ ๊ฒํ๋ ๊ฒ์ ์ด๋ฌํ false positives๋ค์ด ๋๋ถ๋ถ ์ ์ ์ธ ์ฅ๋ฉด์์ ๊ณ ๋ฆฝ๋ detector ์๋ต๋ค๋ก๋ถํฐ ์์ฑ๋๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์๋์ ์ผ๋ก ํฐ track์ ์ต๋ ํ์ฉ ๋์ด ๋๋ฌธ์ ์ข
์ข
๋ฌผ์ฒด์ ๋ํ trajectory์ ๋ ํํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ๋์์, ์ฐ๋ฆฌ๋ ์๋ชป๋ ์๋ฆผ์ผ๋ก๋ถํฐ ์์ฃผ track jumping์ด ๋ฐ์ํ์ง ์์์ต๋๋ค. ๋์ ์, ๊ธฐ๋ก๋ ๊ฐ์ฒด์ ์์น์์ ์๋์ ์ผ๋ก ์์ ์ ์ด๊ณ ๋ณํ๊ฐ ์๋ track๋ค์ ์ฃผ๋ก ์์ฑํด๋์ต๋๋ค. ์ฐ๋ฆฌ์ ์คํ์ feature๋ฅผ ์์ฑํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ฑฐ์ ์ ๋ฐ์ธ 20Hz๊ฐ ์์๋์ต๋๋ค. ๋ฐ๋ผ์, ํ๋์ GPU๊ฐ ์ฃผ์ด์ก์ ๋ ์์คํ
์ ๊ณ์ฐ์ด ํจ์จ์ ์ด๊ณ ์ค์๊ฐ์์ ์๋ํ ์ ์์ต๋๋ค.
4. Conclusion
ํด๋น ๋
ผ๋ฌธ์์๋ ์ฌ์ ํ๋ จ๋ association metric์ ํตํด ์ธํ ์ ๋ณด๋ฅผ ํตํฉํ SORT์ ๋ํ ํ์ฅ์ ์ ์ํ์ต๋๋ค. ์ด๋ฅผ ํตํด, ๋ ์ค๋ซ๋์ ๋ฐฉํด๋ฌผ์ ๊ฐ๋ ค์ ธ ์์ด๋ ์ถ์ ํ ์ ์๊ฒ ๋๋ฉด์, SORT๋ฅผ ์จ๋ผ์ธ ์ถ์ ์๊ณ ๋ฆฌ์ฆ์์ SOTA(State Of The Art : ์ฌ์ ํ์ต๋ ํ์ฌ ์ต๊ณ ์์ค์ ์ ๊ฒฝ๋ง)์์ค์ ๊ฐ๋ ฅํ ๊ฒฝ์์๋ก ์๋ฆฌ๋งค๊นํ๊ณ ์์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์คํ์ด ๊ฐํธํ๊ณ , ์ค์๊ฐ ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค.
ย
Reference
SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC https://arxiv.org/pdf/1703.07402.pdf
ย
์ ์ฉ ๋ฐ ์ฝ๋
์ฝ๋
# clone repository for deepsort with yolov4 !git clone https://github.com/theAIGuysCode/yolov4-deepsort # step into the yolov4-deepsort folder %cd yolov4-deepsort/ # download yolov4 model weights to data folder !wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights -P data/ ! pip uninstall tensorflow ! pip install tensorflow==2.3.0 # Convert darknet weights to tensorflow model !python save_model.py --model yolov4 # run DeepSort with YOLOv4 Object Detections as backbone (enable --info flag to see info about tracked objects) !python object_tracker.py --video ./data/video/Seoul.mp4 --output ./outputs/tracker.avi --model yolov4 --dont_show --info # define helper function to display videos import io from IPython.display import HTML from base64 import b64encode def show_video(file_name, width=640): # show resulting deepsort video mp4 = open(file_name,'rb').read() data_url = "data:video/mp4;base64," + b64encode(mp4).decode() return HTML(""" <video width="{0}" controls> <source src="{1}" type="video/mp4"> </video> """.format(width, data_url)) # convert resulting video from avi to mp4 file format import os path_video = os.path.join("outputs","tracker.avi") %cd outputs/ !ffmpeg -y -loglevel panic -i tracker.avi output.mp4 %cd .. # output object tracking video path_output = os.path.join("outputs","output.mp4") show_video(path_output, width=960)
ย
ย