VisionCourt๋ CV ๊ธฐ์ ์ ํ์ฉํด ๋๊ตฌ ๊ฒฝ๊ธฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ถ์ํ๊ณ , ์ฃผ์ ์ด๋ฒคํธ๋ฅผ ์๋์ผ๋ก ํ๋ณํ์ฌ ๊ฒฝ๊ธฐ ๊ธฐ๋ก์ ์์ฑํ๋ ์๋ํ ์์คํ ์ ๋๋ค. ์๋ง์ถ์ด ๋ฐ ๋ํธํ ๋๊ตฌ์์ ๋ฐ์ํ๋ ๊ธฐ๋ก ์ธ๋ ฅ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ ์๋ค์๊ฒ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ๊ฒฝ๊ธฐ ๋ถ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ๋ฌธ์ ์ ์
- ๊ฒฐ๊ณผ ๋ฐ ์ฃผ์ ๊ธฐ๋ฅ
- ์์คํ ์ํคํ ์ฒ
- ํต์ฌ ๋ถ์ ๋ก์ง
- ์ฌ์ฉ ๋ชจ๋ธ
- ํ๊ณ์ ๋ฐ ๊ธฐ๋ํจ๊ณผ
- ํ์
์๋ง์ถ์ด, ๋ํธํ, ๋ํ ๋ฆฌ๊ทธ ๋ฑ ์๊ท๋ชจ ๋๊ตฌ ๊ฒฝ๊ธฐ์์๋ ๊ฒฝ๊ธฐ ๊ธฐ๋ก์์ ๊ตฌํ๊ธฐ ์ด๋ ต์ต๋๋ค. ํ ์ฌ๋์ด ๊ฒ์ ํด๋ฝ, ์ทํด๋ฝ, ์ ํ์ ์ ์์ ํ์ธ ๋ฑ ์๋ง์ ์ ๋ณด๋ฅผ ๋์์ ๊ด๋ฆฌํ๊ณ ๊ธฐ๋กํด์ผ ํ๋ ๋ถ๋ด์ด ํฝ๋๋ค. ์ด๋ ๊ธฐ๋ก ๋๋ฝ์ด๋ ์ค๋ฅ๋ก ์ด์ด์ง๊ธฐ ์ฝ์ต๋๋ค.
์ฌ์ง์ด ์ธ๊ณ ์ต๊ณ ์์ค์ ๋ฆฌ๊ทธ์ธ NBA์กฐ์ฐจ ๊ฒฝ๊ธฐ ๊ธฐ๋ก์ ์ํด ์ค์ฝ์ด๋ฌ 1๋ช ๊ณผ ํ์ด๋จธ 2๋ช , ์ด 3๋ช ์ ์ธ๋ ฅ์ ํฌ์ ํ๊ณ ์์ต๋๋ค. ์ด์ฒ๋ผ ์ ํํ ๊ฒฝ๊ธฐ ๊ธฐ๋ก์ ์๋นํ ์ธ์ ์์์ ํ์๋ก ํ๋ ์์ ์ ๋๋ค.
VisionCourt๋ ์ปดํจํฐ ๋น์ ๊ธฐ์ ์ ํตํด ์ด๋ฌํ ๊ธฐ๋ก ๊ณผ์ ์ ์๋ํํ์ฌ ํด๋จผ ์๋ฌ๋ฅผ ์ต์ํํ๊ณ , ์ธ๋ ฅ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ์์๋์์ต๋๋ค.
VisionCourt๋ ์ค์๊ฐ ๊ฒฝ๊ธฐ ์์๊ณผ ๊ธฐ๋ณธ์ ์ธ ํ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ์๋์ผ๋ก ์ ์ด๋๋ ์ค์ฝ์ด๋ณด๋์ ์์ธ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
-
์ค์๊ฐ ๊ฒฝ๊ธฐ ๋ถ์ ๋ฐ ์ค์ฝ์ด๋ณด๋ ์๋ ์ ๋ฐ์ดํธ
- ๊ฒฝ๊ธฐ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ดฌ์ํฉ๋๋ค. WebRTC๋ฅผ ํตํด ์์ ์คํธ๋ฆผ์ ํ๋ ์ ๋จ์๋ก ๋ถ์ํ์ฌ ๊ฒฝ๊ธฐ ์ํฉ์ ํ์ ํฉ๋๋ค.
- ๋์ , ์์ ๊ถ ๋ณ๊ฒฝ, ๋ฆฌ๋ฐ์ด๋ ๋ฑ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด WebSocket ํต์ ์ ํตํด ์ค์ฝ์ด๋ณด๋๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ ์ทํด๋ฝ์ ์๋์ผ๋ก ๋ฆฌ์ ํฉ๋๋ค.
-
์ฃผ์ ์ด๋ฒคํธ ์๋ ๊ฐ์ง
- ๋ ์์ ์ธ ๋ก์ง์ ํตํด ์์ ๊ถ, ์, ๋์ , ๋ฆฌ๋ฐ์ด๋, ์ด์์คํธ ๋ฑ ๋๊ตฌ์ ํต์ฌ ์ด๋ฒคํธ๋ฅผ ์๋์ผ๋ก ๊ฐ์งํ๊ณ ๊ธฐ๋กํฉ๋๋ค.
-
ํ ๋ฐ ์ ์ ์๋ณ
- ์ ์ ์ ๋ํผ ์์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก K-Means ํด๋ฌ์คํฐ๋ง์ ์ ์ฉํ์ฌ ๋ ํ์ ๊ตฌ๋ถํฉ๋๋ค.
- ๊ฒฝ๊ธฐ ์ข ๋ฃ ํ์๋ ์ ์ Tracking ๋ชจ๋ธ์ ํตํด ๊ฐ ์ ์์ ๊ณ ์ ID๋ฅผ ๋ถ์ฌํ๊ณ , ๋์ ๊ณผ ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ํน์ ์ ์์ ๋งคํํ์ฌ ๊ฐ์ธ ๊ธฐ๋ก์ ์์ฑํฉ๋๋ค.
-
์ฌํ์ฉ ์ปจํธ๋กค๋ฌ ํ์ด์ง
- CV ํน์ ๋ก์ง์ผ๋ก ํ๋จํ๊ธฐ ์ด๋ ค์ด ํ์ธ์ด๋ ๊ฒฝ๊ธฐ ์ค๋จ/์ฌ๊ฐ๋ ์ฌํ์ด ๋ชจ๋ฐ์ผ ์น ํ์ด์ง๋ฅผ ํตํด ์ง์ ์ ์ดํ ์ ์์ต๋๋ค. ์ด ์ปจํธ๋กค๋ฌ๋ ์ค์ฝ์ด๋ณด๋์ ์ฐ๋๋์ด ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ์๋ฉ๋๋ค.
-
๊ฒฝ๊ธฐ ํ ์์ธ ๋ฐ์ดํฐ ์ ๊ณต
- ๊ฒฝ๊ธฐ๊ฐ ๋๋๋ฉด ํ์ ์ด ๋์ ๋ฟ๋ง ์๋๋ผ, ์ ์๋ณ ๋์ ๋ฐ ์ด๋ฒคํธ ๋ฐ์ ํ์์คํฌํ ๋ฑ ์์ธํ ํต๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ์ฌ ๊ฒฝ๊ธฐ ๋ฆฌ๋ทฐ ๋ฐ ๋ถ์์ ํ์ฉํ ์ ์์ต๋๋ค.
VisionCourt์ ์ ์ฒด ํ๋ก์ธ์ค๋ **'๊ฒฝ๊ธฐ ์ค ์ค์๊ฐ ์ฒ๋ฆฌ'**์ **'๊ฒฝ๊ธฐ ํ ์์ธ ๋ถ์'**์ผ๋ก ๋๋ฉ๋๋ค.
-
Front-end (React.js)
- ์ฌ์ฉ์๊ฐ ๊ฒฝ๊ธฐ ์์์ ์ ๋ก๋ํ๊ณ , ์ค์๊ฐ ์ค์ฝ์ด๋ณด๋๋ฅผ ํ์ธํ๋ฉฐ, ์ฌํ์ฉ ํ์ด์ง๋ฅผ ํตํด ๊ฒฝ๊ธฐ๋ฅผ ์ ์ดํ๋ ์ธํฐํ์ด์ค ์ญํ ์ ํฉ๋๋ค.
-
Back-end
- ์น์์ผ์ ํตํด ํ๋ก ํธ์๋๋ก๋ถํฐ ์์ ํ๋ ์์ ์ ๋ฌ๋ฐ์ต๋๋ค.
- YOLOv8๊ณผ BoT-SORT ๋ชจ๋ธ์ ์ด์ฉํด ๊ฐ์ฒด(์ ์, ๊ณต, ๋ฆผ)๋ฅผ ๊ฐ์งํ๊ณ ์ถ์ ํฉ๋๋ค.
- ํต์ฌ ๋ถ์ ๋ก์ง์ ํตํด ์์ ๊ถ, ์, ๋์ ๋ฑ์ ์ด๋ฒคํธ๋ฅผ ํ๋จํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ DB์ ์ ์ฅํจ๊ณผ ๋์์ ํ๋ก ํธ์๋๋ก ์ ์กํ์ฌ ์ค์ฝ์ด๋ณด๋๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
-
Database
- ๊ฒฝ๊ธฐ ์ ๋ณด, ํ/์ ์ ์ ๋ณด, ํ๋ ์๋ณ ํ์ง ๊ฒฐ๊ณผ, ์ด๋ฒคํธ ๋ฐ์ ๊ธฐ๋ก ๋ฑ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ์ค์๊ฐ ์ฒ๋ฆฌ์ ๊ฒฝ๊ธฐ ํ ์์ธ ๋ถ์์ ๋ชจ๋ ์ง์ํ ์ ์๋๋ก ํจ์จ์ ์ธ ๊ตฌ์กฐ๋ก ์ค๊ณ๋์์ต๋๋ค.
Detection ๋ฐ Tracking ๋ชจ๋ธ์์ ๋์จ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ์ค์ ๋๊ตฌ ์ด๋ฒคํธ๋ฅผ ํ๋ณํ๋ ๋ก์ง์ ๋๋ค. (๋ชจ๋ ์ขํ ๋ฐ ๊ฑฐ๋ฆฌ๋ 0~1 ์ ๊ทํ ๊ธฐ์ค)
- ๋น ๋ฅธ ์์ง์์ผ๋ก ์ธํด ๋ชจ๋ธ์ด ๊ณต์ ๋์น๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค.
- ๊ณต ํ์ง๊ฐ ๋๋ฝ๋ ๊ตฌ๊ฐ์, ์ต๊ทผ 7๊ฐ ํ๋ ์์ ๊ณต ์ขํ๋ฅผ ๋ฐํ์ผ๋ก 2์ฐจ ํ๊ท ๋ถ์์ ์ํํ์ฌ ๊ฐ์์ ๊ณต ๊ถค์ ์ ์์ธกํ๊ณ .
- ๋งค ํ๋ ์๋ง๋ค ๊ณต๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ์ฐพ์ต๋๋ค.
- ์ด ์ ์์ ์์ํ(
team_id
)์ด 15ํ๋ ์ ์ด์ ์ฐ์์ผ๋ก ๊ณต๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ธ ๊ฒฝ์ฐ, ํด๋น ํ์ ์์ ๊ถ์ผ๋ก ํ์ ํฉ๋๋ค.
- ๊ณต์ ๋ฐ์ด๋ฉ ๋ฐ์ค๊ฐ ๋ฆผ(๊ณจ๋)์ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ์ฒ์์ผ๋ก ๊ฒน์น๋ ์๊ฐ์ '์'์ผ๋ก ๊ฐ์งํฉ๋๋ค.(์ด์ ํ๋ ์์์๋ ๊ฒน์น์ง ์์์ผ ํจ)
- ์์ ์๋ํ ํ์ ํด๋น ์์ ์ง์ ์ ์์ ๊ถ ํ์ผ๋ก ๊ธฐ๋ก๋ฉ๋๋ค.
- ์ ๋์ ์ดํ, ๊ณต์ด ๋ฆผ์ ํต๊ณผํ๋ฉฐ ํ์ง์์ ์ ์ ์ฌ๋ผ์ก๋ค๊ฐ ๋ค์ ๋ํ๋๋ ํจํด์ ์ด์ฉํฉ๋๋ค.
- ๊ณต์ด ์ฌ๋ผ์ง๊ธฐ ์ง์ ์ ๋ง์ง๋ง ์์น์ ๋ค์ ๋ํ๋ ์ฒซ ์์น๋ฅผ ์ง์ ์ผ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
- ์ด ์ง์ ๊ณผ ๋ฆผ์ ์ค์ฌ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ๋ฏธ๋ฆฌ ์ค์ ๋ ์๊ณ๊ฐ(0.005) ์ดํ์ผ ๊ฒฝ์ฐ '๋์ '์ผ๋ก ํ์ ํฉ๋๋ค. ์ด ๊ฑฐ๋ฆฌ๋
ball_rim_dist
๋ก ๊ธฐ๋ก๋ฉ๋๋ค.
- ๋ฆฌ๋ฐ์ด๋: ์์ด ๋์ ์ผ๋ก ์ด์ด์ง์ง ์๊ณ , ๋ค์ ์์ ๊ถ์ด ๊ณต๊ฒฉํ์ด ์๋ ์๋นํ์ผ๋ก ๋์ด๊ฐ์ ๋ ๋ฆฌ๋ฐ์ด๋๋ก ๊ธฐ๋กํฉ๋๋ค.
- ์ด์์คํธ: ๋์ ์ง์ ์ ๋ง์ง๋ง์ผ๋ก ๊ณต์ ์์ ํ๋ ์ ์๊ฐ ๋์ ํ ์ ์์ ๊ฐ์ ํ ์์์ผ ๊ฒฝ์ฐ ์ด์์คํธ๋ก ๊ธฐ๋กํฉ๋๋ค.
- ์, ๋์ , ๋ฆฌ๋ฐ์ด๋, ์์ ๊ถ ๋ณ๊ฒฝ ๋ฑ ์ฃผ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์ทํด๋ฝ(Shot Clock)์ 12์ด๋ก ๋ฆฌ์ ํฉ๋๋ค.
- ๋ฉ์ธ ํด๋ฝ(Main Clock)์ ํ๋ ์ ์์ ๋ง์ถฐ ์๋์ผ๋ก ๊ฐ์ํฉ๋๋ค.
- ์ญํ : ํ๋ ์ ๋จ์๋ก
RIM
,BALL
,PLAYER
๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค[cite: 178]. - ๋ชจ๋ธ: YOLOv8 ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ์ ๋๊ตฌ ํนํ ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ธํ๋(Fine-tuning)ํ์ฌ ์ฑ๋ฅ์ ํฅ์์์ผฐ์ต๋๋ค.
- Input: ๊ฐ ํ๋ ์ ์ด๋ฏธ์ง
- Output: ๊ฐ ๊ฐ์ฒด์ ํด๋์ค์ ์ขํ (x, y, w, h)
- ์ญํ : ์ ์ ๊ฐ๊ฐ์ธ์ ์๋ณํ๊ณ ๊ฒฝ๊ธฐ ๋ด๋ด ์ถ์ ํ์ฌ ๊ณ ์ ID๋ฅผ ๋ถ์ฌํฉ๋๋ค(Re-ID).
- ๋ชจ๋ธ: BoT-SORT ํธ๋ํน ์๊ณ ๋ฆฌ์ฆ๊ณผ Re-ID ๋ชจ๋ธ์ ๊ฒฐํฉํ์ฌ ๋ค์ค ๊ฐ์ฒด ์ถ์ (MOT)์ ์ํํฉ๋๋ค. ID ์ ์ง ์ ํ๋๋ ์ฝ 90% ์ด์์ ๋๋ค.
- Input: ๊ฐ์ง ๋ชจ๋ธ์ด ์ถ๋ ฅํ ํ๋ ์๋ณ ๊ฐ์ฒด ์ขํ
- Output: ๊ฐ ๊ฐ์ฒด์ ์์น์ ๊ณ ์ ID
- ํ์ฉ: ์ด ๋ชจ๋ธ ๋๋ถ์ '์ด๋ค ์ ์'๊ฐ ๋์ ํ๋์ง ์๋ณํ๊ณ ๊ฐ์ธ๋ณ ๊ธฐ๋ก์ ์ง๊ณํ ์ ์์ต๋๋ค.
- ์ธ๋ ฅ ๋ฌธ์ ํด๊ฒฐ: ์๋ง์ถ์ด/๋ํธํ ๊ฒฝ๊ธฐ์ ๊ธฐ๋ก ์ธ๋ ฅ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ฌ ๊ฒฝ๊ธฐ ์ด์ ๋ถ๋ด์ ์ค์ผ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ๊ธฐ๋ก ๋ฐ ๋ณด์กด: ๋ชจ๋ ๊ฒฝ๊ธฐ๊ฐ ๋์งํธ ๋ฐ์ดํฐ๋ก ์๋ ๊ธฐ๋ก๋์ด, ๊ฒฝ๊ธฐ ๋ฆฌ๋ทฐ ๋ฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ์ ๋ต ๋ถ์์ด ๊ฐ๋ฅํด์ง๋๋ค.
- ์๋ง์ถ์ด ์คํฌ์ธ ํ์ฑํ: ์ ์๋ค์๊ฒ ํ๋ก ์์ค์ ๋ฐ์ดํฐ ๋ถ์ ๊ฒฝํ์ ์ ๊ณตํจ์ผ๋ก์จ ํ๋ จ์ ์ง์ ๋์ด๊ณ ๋๊ธฐ๋ฅผ ๋ถ์ฌํ ์ ์์ต๋๋ค.
- ์์ ๊ถ ํ์ง์ ์ด๋ ค์: ๋จ์ผ ์นด๋ฉ๋ผ ์ต๊ธ๋ก๋ ์ ์๋ค์ด ๊ฒน์ณ ์์ ๋ ์๋ฒฝํ ์์ ๊ถ ํ๋ณ์ด ์ด๋ ต์ต๋๋ค.
- ํ์ธ ์ธ์ ๋ถ๊ฐ: ์ ์ฒด ์ ์ด๊ณผ ๊ฐ์ ๋ณต์กํ ์ํธ์์ฉ์ ํ๋จํด์ผ ํ๋ ํ์ธ์ ํ์ฌ ๋ชจ๋ธ๋ก ์๋ ์ธ์์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค[cite: 380]. (โ ์ฌํ์ฉ ์ ์ด ์ฑ์ผ๋ก ๋ณด์)
- ์ปดํจํ ์์: ์ค์๊ฐ ์์ ์ฒ๋ฆฌ๋ฅผ ์ํด์๋ ๊ณ ์ฌ์์ ์ปดํจํ ์์์ด ํ์ํ๋ฉฐ, ํ์ฌ EC2 ํ๊ฒฝ์์๋ ์ค์๊ฐ์ฑ ํ๋ณด์ ์ด๋ ค์์ด ์์์ต๋๋ค.
์ด๋ฆ | ์ญํ | ํ |
---|---|---|
์ ์ค์ | ํ์ฅ, detection logic | DA 25 |
๊น๋ฏผ์ | UX/UI, FrontEnd | DA 25 |
์์คํฌ | DataBase | DE 26 |
์ด์ํ | WebRTC | DE 26 |
์ ์ด์ญ | BackEnd | DE 25 |
์ ์ฌ๋น | Modeling | DS 25 |
์กฐํ์ฐ | Modeling | DA 26 |