๊ฐœ์š”

SORT(Simple Online and Realtime Tracking)์€ ๋งค์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ„๋‹จํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ด๊ณ  ์‹ค์šฉ์ ์ธ ๋‹ค์ค‘ ๋Œ€์ƒ ์ถ”์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. IOU๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”์ ๋œ ๋ฌผ์ฒด์— ๋Œ€ํ•ด association(ํ• ๋‹น)์„ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋น ๋ฅด๋‹ค. ํ•˜์ง€๋งŒ Id Switching(์›๋ž˜์˜ ํƒ€๊ฒŸ์„ ์žก์ง€ ๋ชปํ•˜๊ณ  ๋‹ค๋ฅธ id๋ฅผ ๋ฐฐ์ •ํ•˜๋Š” ๋ฌธ์ œ)๊ฐ€ ์—ฌ์ „ํžˆ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. IoU๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งค์นญํ•  ๊ฒฝ์šฐ ์—ฌ๋Ÿฟ ๋ฌธ์ œ์ ์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค.

  1. ๋ฌผ์ฒด๊ฐ€ ๋น ๋ฅด๊ฒŒ ์›€์ง์˜€์„ ๊ฒฝ์šฐ IoU๋Š” ์ž‘๊ฒŒ ํŒ๋‹จ๋  ์ˆ˜ ์žˆ๋‹ค.
  2. Occulusion(๊ฐ€๋ ค์ง)์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Detector๊ฐ€ Box๋ฅผ ์ž‘๊ฒŒ ํƒ์ง€ํ–ˆ๋‹ค๋ฉด IoU๊ฐ€ ์ž‘๊ฒŒ ๋‚˜์™€ ๊ฒฐ๊ณผ๊ฐ€ ๋ฌด์‹œ๋  ์ˆ˜ ์žˆ๋‹ค.

Deep Sort(SORT with A Deep Association Metric)์—์„œ๋Š” SORT์— ๋น„ํ•ด ๋ช…๋ฐฑํ•œ ์ •๋ณด๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ SORT์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ์ด ํ™•์žฅ๋œ ๋ฐฉ๋ฒ•์€ ํƒ€๊ฒŸ์ด ์žฅ๊ธฐ๊ฐ„ ๊ฐ€๋ ค์กŒ์„ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๋” ์ž˜ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ๋‹ค. Id Switching์€ 45% ๊ฐ์†Œํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์˜€๋‹ค.

SORT

DeepSort์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € SORT ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๊ฐœ๋žต์ ์ธ ๋‚ด์šฉ์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. ์‹ค์šฉ์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์˜ ํ•˜๋‚˜์ด๋‹ค. ํ•ต์‹ฌ์€ ์นผ๋งŒ ํ•„ํ„ฐ์™€ ํ—๊ฐ€๋ฆฌ์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

Kalman Filter

์นผ๋งŒ ํ•„ํ„ฐ๋Š” ๋ณดํ†ต ์ œ์–ด ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํ•„ํ„ฐ์ด๋‹ค. ํฌ๊ฒŒ ์˜ˆ์ธก์„ ๋‹ด๋‹นํ•˜๋Š” ๋ชจ์…˜ ๋ชจ๋ธ๊ณผ ์‹ค์ œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ์ธก์ • ๋ชจ๋ธ, ๊ทธ๋ฆฌ๊ณ  ์ด ๋‘๊ฐœ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•˜๋Š” ์—…๋ฐ์ดํŠธ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ํ•˜๋‚˜ํ•˜๋‚˜ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•ด๋ณด์ž.

Motion Model

1์ฐจ์› ๊ณต๊ฐ„์ด ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์ €๊ธฐ ๋ฉ€๋ฆฌ ๊ฐ•์•„์ง€๊ฐ€ ๊ณต์„ ์ฃผ์œผ๋Ÿฌ ๋‹ฌ๋ ค๊ฐ€๊ณ  ์žˆ๋‹ค. ์ด์ „์— ์ด๋…€์„์ด ๋›ฐ๋Š” ๊ฐ€๋‹ค๋ฅผ ๋ณด๋‹ˆ, ๋‚ด ๋จธ๋ฆฌ์†์œผ๋กœ ๋ณด์•˜์„ ๋•Œ ๊ฐ•์•„์ง€์˜ ์œ„์น˜๋Š” 1์ดˆ ๋’ค์— ์•ฝ 1m์ •๋„ ์•ž์— ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด ํŒ๋‹จ ์—ญ์‹œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค์ฐจ ๋ฒ”์œ„ 5%์ด๋‚ด์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ค์ฐจ๋Š” ๊ณง ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ™•๋ฅ  ๋ถ„ํฌ(๋ณดํ†ต ์ •๊ทœ๋ถ„ํฌ)๋กœ ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ ๋งํ•œ ๋ถ€๋ถ„์ด ์นผ๋งŒ ํ•„ํ„ฐ์˜ Motion Model ์ด๋‹ค. ์ฆ‰ ์˜ˆ์ธก์ด๋‹ค.

Measurement Model

๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ ์ธก์ •ํ•ด๋ณด๋‹ˆ ์–˜๊ฐ€ ์ข€ ํž˜๋“ค์–ด์„œ ์ธ์ง€ 0.8๋ฏธํ„ฐ ๋ฐ–์— ๊ฐ€์ง€ ์•Š์•˜๋‹ค๊ณ  ๋‚ด ๋ ˆ์ด๋” ์ธก์ •๊ธฐ๊ฐ€ ๋งํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ชจ๋“  ๊ธฐ๊ณ„๋Š” ์˜ค์ฐจ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ๋ฐ–์— ์—†์œผ๋ฏ€๋กœ ๊ธฐ๊ณ„๋กœ ์ธก์ •ํ•œ ๊ฒฐ๊ณผ ์—ญ์‹œ ํ™•๋ฅ  ๋ถ„ํฌ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ์ด ๋ถ€๋ถ„์ด ์ธก์ • ๋‹จ๊ณ„์ด๋‹ค.

Update

๊ทธ๋ ‡๋‹ค๋ฉด ์‹ค์ œ๋กœ ๋‚ด ๊ฐ•์•„์ง€๋Š” ์–ด๋””์— ์œ„์น˜ํ•  ํ™•๋ฅ ์ด ๊ฐ€์žฅ ๋†’์„๊นŒ? ์ง€๊ธˆ ์ƒํ™ฉ์—์„œ๋Š” ๊ฐ•์•„์ง€๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์–ด๋Š์ •๋„ ์ธก์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธก์ • ๊ฐ’์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŽ์ด ๋ฐ˜์˜ํ•˜์—ฌ 0.8m ์œ„์น˜์— ๋ณด๋‹ค ๊ฐ€์ค‘์น˜๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ๋ ˆ์ด๋”์˜ ๊ฒฐ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด ์–ด๋–จ๊นŒ? ๋‚ด ์˜ˆ์ธก์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ•์•„์ง€์˜ ์œ„์น˜๋ฅผ ์‚ฐ์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.

Summary

๊ฒฐ๊ณผ์ ์œผ๋กœ ์นผ๋งŒ ํ•„ํ„ฐ๋Š” ๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ๊ฒฐ๊ณผ์™€ ์‹ค์ œ ์ธก์ •๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ์ตœ์ ์œผ๋กœ ํŒ๋‹จํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด์„œ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ•˜๊ณ  ์ง€๊ธˆ์€ ํ๋ฆ„๋งŒ ๋”ฐ๋ผ๊ฐ€์ž.

Hungarian Algorithm

ํ—๊ฐ€๋ฆฌ์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ์ ์˜ ๋งค์นญ์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ž์„ธํ•œ ๊ตฌํ˜„๋ณด๋‹ค๋Š” ์˜๋ฏธ์— ์ค‘์ ์„ ๋‘๊ฒ ๋‹ค.

Assignment Problem

๋‚˜๋Š” ์„œ๋น„์Šค ์„ผํ„ฐ๋ฅผ ์šด์˜ํ•˜๋Š” ์„ผํ„ฐ์˜ ์„ผํ„ฐ์žฅ์ด๋‹ค. ๋ƒ‰์žฅ๊ณ ๊ฐ€ ๊ณ ์žฅ๋‚ฌ๋‹ค๋Š” ์—ฐ๋ฝ์ด 10๊ฑด์ด ๋“ค์–ด์™”๋‹ค. ํ˜„์žฌ ๋‚˜๋Š” 12๋ช…์˜ ๊ธฐ์‚ฌ๋‹˜์„ ์šด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ธฐ์‚ฌ๋‹˜์€ ๋‹ค๋ฅธ ์ง€์—ญ์— ์žˆ๊ณ , ๊ณ ์น˜๋Š” ๋Šฅ๋ ฅ์ด ๋ชจ๋‘ ์ƒ์ดํ•˜๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ตœ์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„๊นŒ?

์ปดํ“จํ„ฐ ๊ณตํ•™๊ณผ์ด๊ฑฐ๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•ด๋ณธ ์‚ฌ๋žŒ์ด๋ผ๋ฉด, ์ด ๋ฌธ์ œ๋Š” ํ• ๋‹น ๋ฌธ์ œ์ด๊ณ , ์ด๋ถ„ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ์  ๋งค์นญ์„ ์ฐพ๋Š” ๋ฌธ์ œ์ž„์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ์„œ๋น„์Šค ๊ธฐ์‚ฌ๋‹˜์ด 10๋ช…์ด๋ผ๋ฉด, ์™„์ „ ๋งค์นญ์„ ์ฐพ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜๊ฒ ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ๋ž˜ํ”„์˜ ๊ฐ„์„ ์„ ์ •์˜ํ•˜๋Š” Cost Metric์ด ํ•„์š”ํ•˜๋‹ค.

SORT Algoritm

SORT flowchart

SORT ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์ œ๋Œ€๋กœ ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ๋ฆ„์„ ์ดํ•ดํ•˜๊ธฐ ์ „์— ์šฉ์–ด๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๊ฐ€์ž.

  • Track
    • ํ˜„์žฌ Tracking๋˜๊ณ  ์žˆ๋Š” Object์˜ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
  • Detections
    • ํ˜„์žฌ ์ด๋ฏธ์ง€์—์„œ ํƒ์ง€ํ•œ ๋ฌผ์ฒด์˜ Bounding Box์™€ ๋ฌผ์ฒด์˜ class๋ฅผ ๊ฐ€์ง„๋‹ค.
  • IoU(Intersection of Union)
    • Ground truth bounding box์™€ ํƒ์ง€๋œ Bounding box์™€์˜ ๋น„์œจ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ๊ฒน์ณ์ง„ ๋„“์ด/์ „์ฒด ๋„“์ด
    • ๊ต์ง‘ํ•ฉ/ํ•ฉ์ง‘ํ•ฉ
  • Unmatched Tracks
    • ํ˜„์žฌ ํƒ์ง€๋œ ๊ฒฐ๊ณผ์™€ Track์ด ํ• ๋‹น๋˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    • ์ฆ‰, Track์ด ๋‚จ๋Š”๋‹ค.
    • ์ผ์ • ์‹œ๊ฐ„์ด ํ๋ฅธ ๋’ค์— ํ•ด๋‹น Track์˜ id๋Š” ์‚ญ์ œ๋œ๋‹ค.
  • Unmatched Detections
    • ํ˜„์žฌ ํƒ์ง€๋œ ๊ฒฐ๊ณผ ์ค‘ ๊ธฐ์กด์˜ Track๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์—†๋‹ค.
    • ์ฆ‰, Detection์ด ๋‚จ๋Š”๋‹ค.
    • ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ํŠธ๋ž™์ด ์ƒ์„ฑ๋˜์–ด์„œ Followingํ•ด์•ผ ํ•œ๋‹ค.
  • Matched Track
    • Matching์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค.

Process

  1. Detection
    • ์ด๋ฏธ์ง€๋ฅผ input์œผ๋กœ ๋ฐ›์•„ ์กด์žฌํ•˜๋Š” ๋ฌผ์ฒด์— ๋Œ€ํ•ด Bounding box ์ •๋ณด๋ฅผ ๋ฐ›๋Š”๋‹ค.
  2. Kalman Filter Predict
    • ์นผ๋งŒ ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด, ๊ธฐ์กด์˜ Track ์ •๋ณด๋กœ ๋ถ€ํ„ฐ ๋‹ค์Œ frame์˜ ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
  3. IoU Matching
    • Detections ๊ฒฐ๊ณผ์™€ Predictions์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ• ๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.
    • ์ด ๋ถ€๋ถ„์—์„œ ํ—๊ฐ€๋ฆฌ์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ํ• ๋‹น์„ ์ง„ํ–‰ํ•œ๋‹ค.
    • Metric์œผ๋กœ๋Š” IoU๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  4. Matching result
    1. Unmatched Tracks๋Š” ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„ ์‚ญ์ œํ•œ๋‹ค.
    2. Unmatched Detections๋Š” ์ƒˆ๋กญ๊ฒŒ ํŠธ๋ž™์„ ์ƒ์„ฑํ•˜๊ณ  Tracks์— ๋‹ด๋Š”๋‹ค.
    3. Matched Tracks
  5. Kalman Filter Update
    • ํ˜„์žฌ ๊ฐ€์ง„ Matched Tracks๋ฅผ ๋‹ค์Œ frame์„ ์œ„ํ•ด Bounding box๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
  6. Reculsive
    • ์ด ๊ณผ์ •์„ ์žฌ๊ท€์ ์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

Limit

๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜์ง€๋งŒ SORT ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํ•˜์ง€๋งŒ Occulusion์— ์•ฝํ•œ ๋ชจ์Šต์„ ๋ณด์ด๊ณ , Id switching์— ์—ฌ์ „ํžˆ ์ทจ์•ฝํ–ˆ๋‹ค. IoU ์—ญ์‹œ ๋ณต์žกํ•œ ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์—๋Š” ๋ถ€์กฑํ–ˆ๋‹ค.

DeepSort

์ด๋Ÿฌํ•œ ๋‹จ์ ์„ DeepSort ์—์„œ๋Š” Apperance infomation์„ ํ†ตํ•ด์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ReID Domain์—์„œ Feature extraction์„ ์ˆ˜ํ–‰ํ•˜๊ณ , Detection๋“ค๊ณผ Tracks๋ฅผ Matchingํ•˜๋Š”๋ฐ ์žˆ์–ด Metric์œผ๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค.

Process

DeepSort flowchart

  1. Detection
    • ์ด๋ฏธ์ง€๋ฅผ input์œผ๋กœ ๋ฐ›์•„ ์กด์žฌํ•˜๋Š” ๋ฌผ์ฒด์— ๋Œ€ํ•ด Bounding box ์ •๋ณด๋ฅผ ๋ฐ›๋Š”๋‹ค.
  2. Kalman Filter Predict
    • ์นผ๋งŒ ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด, ๊ธฐ์กด์˜ Track ์ •๋ณด๋กœ ๋ถ€ํ„ฐ ๋‹ค์Œ frame์˜ ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
  3. Track Check
    • ํ•ด๋‹น Tracks ๋“ค์ด ์ถฉ๋ถ„ํ•œ ๊ทผ๊ฑฐ๋ฅผ ๊ฐ€์ง„ Track์ธ์ง€ ํ™•์ธํ•œ๋‹ค.
    • 3๋ฒˆ ์ด์ƒ ๋ฌผ์ฒด๋ฅผ ํƒ์ง€ํ•˜์—ฌ Track์œผ๋กœ ์ธ์ •๋ฐ›์„ ๊ฒฝ์šฐ โ€œConfirmโ€ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ โ€œTentativeโ€ ์ƒํƒœ๋กœ ํ‘œํ˜„๋œ๋‹ค.
  4. Matching Cascade
    • Confirmed์ธ tracks์— ๋Œ€ํ•ด์„œ ๋งค์นญ์„ ์ง„ํ–‰ํ•œ๋‹ค.
    • ์ด์ „ ๋ณด๋‹ค ์ •ํ™•ํ•œ Track ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด ๋ถ€๋ถ„์€ ์•„๋ž˜์—์„œ ์ƒ์„ธํžˆ ๋‹ค๋ฃจ๋„๋ก ํ•œ๋‹ค.
  5. IoU Matching
    • Match๋˜์ง€ ์•Š์€ Track, Detection๋“ค์— ๋Œ€ํ•ด์„œ ๊ธฐ์กด์˜ SORT์—์„œ ์‚ฌ์šฉํ•œ IoU ๋งค์นญ์„ ์ง„ํ–‰ํ•œ๋‹ค.
    • ์ƒˆ๋กญ๊ฒŒ ๋ฐœ๊ฒฌ๋œ Detection์— ๋Œ€ํ•ด ์ ์šฉ ์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•จ์ด๋‹ค.
    • ๋˜ํ•œ Matchingํ•˜์ง€ ๋ชปํ•œ Track๋“ค์— ๋Œ€ํ•ด ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ๋„ ์žˆ๋‹ค.
  6. Tracking Life Cycle
    • ๋งค์นญ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Track ๊ฐ์ฒด์˜ ์ƒ์• ์ฃผ๊ธฐ๋ฅผ ์ •ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์ด๋‹ค.
    1. Unmatched Tracks
      • ์•„์˜ˆ ์˜คํŒํ•œ ๊ฒฝ์šฐ๋Š” ์‚ญ์ œํ•œ๋‹ค.
      • ๊ธฐ์กด์— Tracker๋กœ ์ž˜ ํ™œ๋™ํ•˜๋Š” ๋…€์„์˜ ๊ฒฝ์šฐ ์ผ๋‹จ ๋Œ€๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ์˜ค๋žœ ์‹œ๊ฐ„ ์‚ด์•„๋‚จ์•„์žˆ์„ ๊ฒฝ์šฐ(age) Tracker์˜ ๋ชฉ์ ์„ ๋‹คํ•œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ณ  ์‚ญ์ œํ•œ๋‹ค.
      • ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌผ์ฒด๊ฐ€ ๋‹ค์‹œ ๋“ฑ์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ Tracks์— ๋‹ค์‹œ ์ถ”๊ฐ€ํ•œ๋‹ค.
        • ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ ์ดํ›„ ํƒ์ง€๋˜์ง€ ๋ชปํ•œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜ time_since_update๋ฅผ 1๋Š˜๋ฆฐ๋‹ค.
    2. Unmatched Detections
    • ์ƒˆ๋กญ๊ฒŒ ํƒ์ง€๋œ ๊ฐ์ฒด์ด๋ฏ€๋กœ Track์„ ์ƒ์„ฑํ•œ๋‹ค.
    • ํ•˜์ง€๋งŒ ์˜คํŒ๋œ ๊ฐ์ฒด์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ƒํƒœ๋Š” โ€œTentativeโ€๋กœ ์„ค์ •ํ•œ๋‹ค.
    1. Matched Tracks
    • ์—…๋ฐ์ดํŠธ ๋œ ์ดํ›„ ์ง€์†๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€์ˆ˜ time_since_update๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  7. Kalman Filter Update
    • ํ˜„์žฌ ๊ฐ€์ง„ Matched Tracks๋ฅผ ๋‹ค์Œ frame์„ ์œ„ํ•ด Bounding box๋ฅผ ์˜ˆ์ธกํ•œ๋‹ค.
    • ์ด ๋•Œ, Track์˜ ์ •๋‹น์„ฑ์„ ์ฃผ๊ธฐ ์œ„ํ•ด, Track์ด ๋“ฑ์žฅํ•œ ํšŸ์ˆ˜(hit)๊ฐ€ 3ํšŒ ์ด์ƒ ๋‚˜์™”์„ ๊ฒฝ์šฐ ์ƒํƒœ๋ฅผ โ€œConfirmedโ€๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
  8. Reculsive
    • ์ด ๊ณผ์ •์„ ์žฌ๊ท€์ ์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

์ด ๋ถ€๋ถ„์—์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์€ ์—ญ์‹œ Matching Cascade์ด๋‹ค. ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

Matching Cascade

Matching Cascade flowchart

Matching cascade์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ—๊ฐ€๋ฆฌ์•ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ Metric์€ ์œ„์™€ ๊ฐ™๋‹ค. ๊ณผ ์˜ ๊ฐ€์ค‘ ํ‰๊ท ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ์ฐจ๊ทผ์ฐจ๊ทผ ์•Œ์•„๋ณด์ž.

Distance 1

์ฒซ๋ฒˆ์งธ ์€ Motion์— ๊ด€๋ จ๋œ (kalman filter๊ฐ€ ์˜ˆ์ธกํ•˜๋Š” 4๊ฐ€์ง€ ์ง€ํ‘œ) ๋ถ„ํฌ์— ์žˆ์–ด์„œ Metric์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

์ด ๋•Œ ์˜ˆ์ธก ๊ฐ’๊ณผ ์ธก์ • ๊ฐ’์˜ ๋งค์นญ์ •๋„๋ฅผ ํŒŒ์•…ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋งˆํ• ๋ผ๋…ธ๋น„์Šค ๊ฑฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋งˆํ• ๋ผ๋…ธ๋น„์Šค ๊ฑฐ๋ฆฌ๋Š” ๋‘๊ฐœ์˜ ๋ถ„ํฌ ์‚ฌ์ด ๋ถ„์‚ฐ์„ ๊ณ ๋ คํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ๋งํ•œ๋‹ค. ์ข€๋” ์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด ํ‰๊ท ๊ณผ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ํ‘œ์ค€ํŽธ์ฐจ์˜ ๋ช‡ ๋ฐฐ์ธ์ง€๋ฅผ ์ˆ˜์น˜๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฐ’์ด๋‹ค.

๋ถ„์‚ฐ์ด ํฌ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ’์ด ๋ถˆํ™•์‹คํ•˜๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ํ‰๊ท ๊ณผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ํ‘œ์ค€ํŽธ์ฐจ๋กœ ๋‚˜๋ˆˆ๋‹ค๋ฉด ๋ถ„์‚ฐ์ด ํฐ ๊ฒฝ์šฐ๊ฐ€ ๋ถ„์‚ฐ์ด ์ž‘์€ ๊ฒฝ์šฐ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ๋งˆํ• ๋ผ๋…ธ๋น„์Šค ๊ฑฐ๋ฆฌ๊ฐ€ ์ž‘์€ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ด์ƒํ•œ ๊ฐ’์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.

ํ˜น์€ ์ฒซ๋ฒˆ์งธ ๊ทธ๋ฆผ์—์„œ ์ •๊ทœํ™”๋ฅผ ํ†ตํ•œ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•œ๋‹ค๊ณ  ์ดํ•ดํ•ด๋„ ๋˜๊ฒ ๋‹ค.

์˜ˆ์ธก ๋‹จ๊ณ„์—์„œ ์šฐ๋ฆฌ๋Š” box์˜ ์ค‘์‹ฌ ์œ„์น˜ , aspect ratio ๋†’์ด ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. ์ด ๊ฐ’์€ ๋ถ„ํฌ๋กœ ๋‚˜์˜ค๊ฒŒ ๋˜๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ„์‚ฐ์„ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ ํด๋ฆฌ๋“œ ๊ฑฐ๋ฆฌ๋ณด๋‹ค๋Š” ๋งˆํ• ๋ผ๋…ธ๋น„์Šค ๊ฑฐ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ณด๋‹ค ๋งค์นญ์— ๋งž๋Š” ์ฒ™๋„์ด๋‹ค. ๊ทธ ์ด์œ ๋Š” ๊ฐ๊ฐ์˜ ๋งค์นญ์˜ ์ •๋„๋ฅผ ๋น„๊ตํ•˜๋Š”๋ฐ ์ด์ƒํ•œ ๋งค์นญ์ผ ๊ฒฝ์šฐ ํฐ ๊ฐ’์„ ๋ฑ‰์–ด์ฃผ๋Š” ์ˆ˜์‹์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Distance 2

๋‘๋ฒˆ์งธ ๋Š” ๋ฌผ์ฒด๊ฐ€ ๊ฐ€์ง€๋Š” ๋ชจ์–‘์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค. Neural net์„ ํ†ต๊ณผํ•œ ์ด๋ฏธ์ง€๋Š” ๋๋‹จ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ๋ฌผ์ฒด์˜ ์ถ”์ƒ์  ์ •๋ณด๋ฅผ ๋‹ด๊ฒŒ๋œ๋‹ค. ์ด ์ ์—์„œ ์ฐฉ์•ˆํ•˜์—ฌ, ์ด์ „์— ํƒ์ƒ‰ํ•œ ๋ฌผ์ฒด์˜ Feature๋ฅผ ๊ฐ€์ง„ ์ƒํƒœ๋กœ ์ƒˆ๋กญ๊ฒŒ ํƒ์ง€๋œ ๋ฌผ์ฒด์™€์˜ ์œ ์‚ฌ๋„๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ.

์ด ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, ์˜ˆ์ธก๋œ track์˜ motion์ด ๋™์ผํ•œ ์ •๋„๊ฐ€ ๋†’์„ ๊ฒฝ์šฐ, ์ด๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ์ง€ํ‘œ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ์žฅ๊ธฐ๊ฐ„ occulsion ์ดํ›„ ๋™์ผ์„ฑ์„ ํšŒ๋ณต์‹œํ‚ค๋Š”๋ฐ๋„ ์œ ์šฉํ•˜๋‹ค.

gated matrix

์ด ๋‘๊ฐ€์ง€ ์ง€ํ‘œ๋ฅผ ๊ฐ€์ค‘ ํ‰๊ท ํ•˜์—ฌ cost matrix๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ถ”๊ฐ€์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๊ณผ์ •์„ ๋” ์ ์šฉํ•œ๋‹ค. ๊ฐ๊ฐ์˜ distance matrix์—์„œ threshold๋ฅผ ๋„˜๋Š” ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” cost๋ฅผ 1๋กœ ๊ณ ์ •ํ•œ๋‹ค. ์ด ๊ฐ๊ฐ์˜ threshold๋Š” ์‹คํ—˜์œผ๋กœ ๊ตฌํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฅผ 0์œผ๋กœ ํ•˜์—ฌ ~~~๊ทธ๋Ÿผ ํž˜๋“ค๊ฒŒ ์™œ ์ฝ์—ˆ์„๊นŒ~~~ appearance distance๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋†’์€ ์„ฑ๋Šฅ์ด ๋‚˜์™”๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ distance2์— ๋Œ€ํ•ด์„œ gate_matrix๋Š” ์‚ฌ์šฉํ–ˆ๋‹ค.

What Cascade means

๊ทธ๋Ÿฐ๋ฐ ์™œ Cascade์ผ๊นŒ? 5๋ฒˆ line์„ ๋ณด๋ฉด, Age_max์ผ ๋•Œ๊นŒ์ง€ loop๋ฅผ ๋Œ๊ณ , track ์ค‘์— ํ•ด๋‹น age์™€ ์ผ์น˜ํ•˜๋Š” track๋ถ€ํ„ฐ ๋งค์นญ์„ ์‹œ์ž‘ํ•œ๋‹ค. ๋จผ์ € age๋Š” ํ•ด๋‹น track์ด ์ƒ์„ฑ๋œ ์ดํ›„๋ถ€ํ„ฐ ๋ช‡๊ฐœ์˜ frame์—์„œ ๋‚˜ํƒ€๋‚ฌ๋Š”์ง€๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ณ€์ˆ˜์ด๋‹ค. ์ฆ‰, ์ƒ์„ฑ๋œ ์ง€๊ฐ€ ์–ผ๋งˆ ์•ˆ๋˜๋ฉด ๋‚˜์ด๊ฐ€ ๊ฐ€์žฅ ์–ด๋ฆฌ๋‹ค.

๊ฐ€์žฅ ์ตœ๊ทผ์— ์ƒ์„ฑ๋œ track๋ถ€ํ„ฐ ๋จผ์ € ํ• ๋‹นํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ๊ฐ€์žฅ ์ตœ๊ทผ์— ํƒœ์–ด๋‚œ ๋…€์„์€ ๋น„๊ต์  ๋ถˆํ™•์‹ค์„ฑ์ด ์ž‘๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ• ๋‹น๋„ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋…€์„ ๋•Œ๋ฌธ์— ์˜ค๋ž˜์ „์— ๋‚˜์˜จ track์˜ ๊ฒฝ์šฐ ๊ฐ€๋ ค์ง์„ ๋‹นํ•ด kalman ํ•„ํ„ฐ๋Š” ์ด๋…€์„์„ ์˜ˆ์ƒํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ํฐ ๋ถˆํ™•์‹ค์„ฑ์„ ๊ฐ€์งˆ ๊ฒƒ์ด๋‹ค. ์ฆ‰ ํฐ ๋ถ„์‚ฐ์„ ๊ฐ–๋Š”๋‹ค.

์œ„์˜ ๋งˆํ• ๋ผ๋…ธ๋น„์Šค ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ๊ฐํ•ด ๋ณผ ๋•Œ, ๋ถ„์‚ฐ์ด ํด ๊ฒฝ์šฐ ๊ฑฐ๋ฆฌ๊ฐ€ ๋” ๊ฐ€๊น๊ฒŒ ํŒ๋‹จํ•  ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด track์ด ๋” ๋งŽ์ด ์ƒ์„ฑ๋œ๋‹ค.(์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ใ… ) ๋”ฐ๋ผ์„œ ์ž์ฃผ ๋ณด์ด๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋จผ์ € ๋งค์นญ์„ ์ง„ํ–‰ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

Class Diagram

์ด ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๋ณด๊ณ  ์ฝ”๋“œ ๋ฆฌ๋”ฉ์„ ํ•˜๋ฉด, ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ตฌํ˜„์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

Reference