๋ฐ์ด๋( RT-DETR): ๋น์ ํธ๋์คํฌ๋จธ ๊ธฐ๋ฐ ์ค์๊ฐ ๋ฌผ์ฒด ๊ฐ์ง๊ธฐ
๊ฐ์
๋ฐ์ด๋๊ฐ ๊ฐ๋ฐํ ์ค์๊ฐ ๊ฐ์ง ํธ๋์คํฌ๋จธ(RT-DETR)๋ ๋์ ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์ ์ค์๊ฐ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์ต์ฒจ๋จ ์๋ํฌ์๋ ๊ฐ์ฒด ๊ฐ์ง๊ธฐ์ ๋๋ค. ์ค์๊ฐ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ปจ๋ฒํ ๊ธฐ๋ฐ ๋ฐฑ๋ณธ๊ณผ ํจ์จ์ ์ธ ํ์ด๋ธ๋ฆฌ๋ ์ธ์ฝ๋๋ฅผ ๋์ ํ๋ ํํธ, NMS๊ฐ ํ์ ์๋ ํ๋ ์์ํฌ์ธ DETR์ ์์ด๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. RT-DETR )๋ ๊ท๋ชจ ๋ด ์ํธ ์์ฉ๊ณผ ๊ท๋ชจ ๊ฐ ์ตํฉ์ ๋ถ๋ฆฌํ์ฌ ๋ฉํฐ์ค์ผ์ผ ๊ธฐ๋ฅ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋ชจ๋ธ์ ์ ์์ฑ์ด ๋ฐ์ด๋ ์ฌํ์ต ์์ด ๋ค์ํ ๋์ฝ๋ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์๋๋ฅผ ์ ์ฐํ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค. RT-DETR ์ CUDA ๊ณผ ๊ฐ์ ๊ฐ์ ๋ฐฑ์๋์์ ๋ค๋ฅธ ๋ง์ ์ค์๊ฐ ๊ฐ์ฒด ๊ฐ์ง๊ธฐ๋ณด๋ค ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค( TensorRT).
Watch: ์ค์๊ฐ ๊ฐ์ง ํธ๋์คํฌ๋จธ (RT-DETR)
๋ฐ์ด๋์ ๊ฐ์ RT-DETR. RT-DETR ๋ชจ๋ธ ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ์ ์ธ์ฝ๋์ ๋ํ ์ ๋ ฅ์ผ๋ก ๋ฐฑ๋ณธ์ ๋ง์ง๋ง ์ธ ๋จ๊ณ {S3, S4, S5}๋ฅผ ๋ณด์ฌ์ค๋๋ค. ํจ์จ์ ์ธ ํ์ด๋ธ๋ฆฌ๋ ์ธ์ฝ๋๋ ์ค์ผ์ผ ๋ด ํน์ง ์ํธ ์์ฉ(AIFI)๊ณผ ์ค์ผ์ผ ๊ฐ ํน์ง ์ตํฉ ๋ชจ๋(CCFM)์ ํตํด ๋ฉํฐ์ค์ผ์ผ ํน์ง์ ์ด๋ฏธ์ง ํน์ง ์ํ์ค๋ก ๋ณํํฉ๋๋ค. IoU ์ธ์ ์ฟผ๋ฆฌ ์ ํ์ ๋์ฝ๋์ ์ด๊ธฐ ์ค๋ธ์ ํธ ์ฟผ๋ฆฌ๋ก ์ฌ์ฉํ ๊ณ ์ ๋ ์์ ์ด๋ฏธ์ง ํน์ง์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก, ๋ณด์กฐ ์์ธก ํค๋๊ฐ ์๋ ๋์ฝ๋๋ ๊ฐ์ฒด ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ต์ ํํ์ฌ ๋ฐ์ค ๋ฐ ์ ๋ขฐ ์ ์(์ถ์ฒ).
์ฃผ์ ๊ธฐ๋ฅ
- ํจ์จ์ ์ธ ํ์ด๋ธ๋ฆฌ๋ ์ธ์ฝ๋: ๋ฐ์ด๋์ RT-DETR ๋ ํจ์จ์ ์ธ ํ์ด๋ธ๋ฆฌ๋ ์ธ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ผ์ผ ๋ด ์ํธ ์์ฉ๊ณผ ์ค์ผ์ผ ๊ฐ ์ตํฉ์ ๋ถ๋ฆฌํ์ฌ ๋ฉํฐ์ค์ผ์ผ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋ ํนํ ๋น์ ํธ๋์คํฌ๋จธ ๊ธฐ๋ฐ ์ค๊ณ๋ ๊ณ์ฐ ๋น์ฉ์ ์ ๊ฐํ๊ณ ์ค์๊ฐ ๋ฌผ์ฒด ๊ฐ์ง๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- IoU ์ธ์ ์ฟผ๋ฆฌ ์ ํ: Baidu์ RT-DETR ๋ IoU ์ธ์ ์ฟผ๋ฆฌ ์ ํ์ ํ์ฉํ์ฌ ๊ฐ์ฒด ์ฟผ๋ฆฌ ์ด๊ธฐํ๋ฅผ ๊ฐ์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ชจ๋ธ์ด ์ฅ๋ฉด์์ ๊ฐ์ฅ ๊ด๋ จ์ฑ์ด ๋์ ๊ฐ์ฒด์ ์ง์คํ์ฌ ๊ฐ์ง ์ ํ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
- ์ ์ํ ์ถ๋ก ์๋: ๋ฐ์ด๋์ RT-DETR ๋ ์ฌ๊ต์ก ์์ด๋ ๋ค์ํ ๋์ฝ๋ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์๋๋ฅผ ์ ์ฐํ๊ฒ ์กฐ์ ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ด๋ฌํ ์ ์์ฑ ๋๋ถ์ ๋ค์ํ ์ค์๊ฐ ๊ฐ์ฒด ๊ฐ์ง ์๋๋ฆฌ์ค์์ ์ค์ ์ ์ฉ์ด ์ฉ์ดํฉ๋๋ค.
์ฌ์ ํ์ต๋ ๋ชจ๋ธ
Ultralytics Python API๋ ๋ค์ํ ์ค์ผ์ผ๋ก ์ฌ์ ํ์ต๋ PaddlePaddle RT-DETR ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค:
- RT-DETR-L: COCO val2017์์ 53.0% AP, T4์์ 114 FPS GPU
- RT-DETR-X: COCO val2017์์ 54.8% AP, T4์์ 74 FPS GPU
์ฌ์ฉ ์
์ด ์๋ ๊ฐ๋จํ RT-DETR ํ์ต ๋ฐ ์ถ๋ก ์์ ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ ๋ฐ ๊ธฐํ ๋ชจ๋์ ๋ํ ์ ์ฒด ์ค๋ช ์๋ ์์ธก, ํ์ต, Val ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
์ง์๋๋ ์์ ๋ฐ ๋ชจ๋
์ด ํ์๋ ๋ชจ๋ธ ์ ํ, ์ฌ์ ํ์ต๋ ํน์ ๊ฐ์ค์น, ๊ฐ ๋ชจ๋ธ์ด ์ง์ํ๋ ์์ ๋ฐ ์ง์๋๋ ๋ค์ํ ๋ชจ๋(ํ์ต, Val, ์์ธก, ๋ด๋ณด๋ด๊ธฐ)๊ฐ โ ์ด๋ชจํฐ์ฝ์ผ๋ก ํ์๋์ด ์์ต๋๋ค.
๋ชจ๋ธ ์ ํ | ์ฌ์ ํ์ต๋ ๊ฐ์ค์น | ์ง์๋๋ ์์ | ์ถ๋ก | ์ ํจ์ฑ ๊ฒ์ฌ | ๊ต์ก | ๋ด๋ณด๋ด๊ธฐ |
---|---|---|---|---|---|---|
RT-DETR ๋ํ | rtdetr-l.pt | ๋ฌผ์ฒด ๊ฐ์ง | โ | โ | โ | โ |
RT-DETR ์ด๋ํ | rtdetr-x.pt | ๋ฌผ์ฒด ๊ฐ์ง | โ | โ | โ | โ |
์ธ์ฉ ๋ฐ ๊ฐ์ฌ
์ฐ๊ตฌ ๋๋ ๊ฐ๋ฐ ์์ ์ Baidu์ RT-DETR ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ณธ ๋ ผ๋ฌธ์ ์ธ์ฉํด ์ฃผ์ธ์:
์ปดํจํฐ ๋น์ ์ปค๋ฎค๋ํฐ์ ๊ท์คํ ๋ฆฌ์์ค๋ฅผ ์ ์ํ๊ณ ์ ์ง ๊ด๋ฆฌํด ์ฃผ์ Baidu์ PaddlePaddle์ปดํจํฐ ๋น์ ์ปค๋ฎค๋ํฐ๋ฅผ ์ํด ์ด ๊ท์คํ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ณ ์ ์ง ๊ด๋ฆฌํด ์ฃผ์ ํ์๊ฒ ๊ฐ์ฌ์ ๋ง์์ ์ ํฉ๋๋ค. ๋น์ ํธ๋์คํฌ๋จธ ๊ธฐ๋ฐ ์ค์๊ฐ ๋ฌผ์ฒด ๊ฐ์ง๊ธฐ( RT-DETR)๋ฅผ ๊ฐ๋ฐํ์ฌ ์ด ๋ถ์ผ์ ๊ธฐ์ฌํ ๊ทธ๋ค์ ๋ ธ๊ณ ์ ๊น์ ๊ฐ์ฌ๋ฅผ ํํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋ฐ์ด๋์ RT-DETR ๋ชจ๋ธ์ด๋ ๋ฌด์์ด๋ฉฐ ์ด๋ป๊ฒ ์๋ํ๋์?
๋ฐ์ด๋์ RT-DETR (์ค์๊ฐ ๊ฐ์ง ํธ๋์คํฌ๋จธ)๋ ๋น์ ํธ๋์คํฌ๋จธ ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๊ณ ๊ธ ์ค์๊ฐ ๋ฌผ์ฒด ๊ฐ์ง๊ธฐ์ ๋๋ค. ํจ์จ์ ์ธ ํ์ด๋ธ๋ฆฌ๋ ์ธ์ฝ๋๋ฅผ ํตํด ์ค์ผ์ผ ๋ด ์ํธ ์์ฉ๊ณผ ์ค์ผ์ผ ๊ฐ ์ตํฉ์ ๋ถ๋ฆฌํ์ฌ ๋ฉํฐ์ค์ผ์ผ ๊ธฐ๋ฅ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋ชจ๋ธ์ IoU ์ธ์ ์ฟผ๋ฆฌ ์ ํ์ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ๊ด๋ จ์ฑ์ด ๋์ ๊ฐ์ฒด์ ์ง์คํจ์ผ๋ก์จ ๊ฐ์ง ์ ํ๋๋ฅผ ๋์ ๋๋ค. ์ฌ๊ต์ก ์์ด ๋์ฝ๋ ๋ ์ด์ด๋ฅผ ์กฐ์ ํ์ฌ ์ถ๋ก ์๋๋ฅผ ์กฐ์ ํ ์ ์์ผ๋ฏ๋ก RT-DETR ๋ค์ํ ์ค์๊ฐ ๊ฐ์ฒด ๊ฐ์ง ์๋๋ฆฌ์ค์ ์ ํฉํฉ๋๋ค. RT-DETR ๊ธฐ๋ฅ์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
Ultralytics ์์ ์ ๊ณตํ๋ ์ฌ์ ํ์ต๋ RT-DETR ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
Ultralytics Python API๋ฅผ ํ์ฉํ์ฌ ์ฌ์ ํ์ต๋ PaddlePaddle RT-DETR ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, COCO val2017์์ ์ฌ์ ํ์ต๋ RT-DETR-l ๋ชจ๋ธ์ ๋ก๋ํ๊ณ T4 GPU ์์ ๋์ FPS๋ฅผ ๋ฌ์ฑํ๋ ค๋ฉด ๋ค์ ์์ ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค:
์
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
๋ค๋ฅธ ์ค์๊ฐ ๋ฌผ์ฒด ๊ฐ์ง๊ธฐ๊ฐ ์๋ Baidu์ RT-DETR ์ ์ ํํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
๋ฐ์ด๋์ RT-DETR ๋ ํจ์จ์ ์ธ ํ์ด๋ธ๋ฆฌ๋ ์ธ์ฝ๋์ IoU ์ธ์ ์ฟผ๋ฆฌ ์ ํ์ผ๋ก ๋์ ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์ ๊ณ์ฐ ๋น์ฉ์ ๋ํญ ์ ๊ฐํ ์ ์๋ ์ ์ด ๋๋ณด์ ๋๋ค. ์ฌ๊ต์ก ์์ด ๋ค์ํ ๋์ฝ๋ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์๋๋ฅผ ์กฐ์ ํ ์ ์๋ ๊ณ ์ ํ ๊ธฐ๋ฅ์ผ๋ก ์๋นํ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ CUDA ์ ๊ฐ์ ๊ฐ์ํ๋ ๋ฐฑ์๋์์ ์ค์๊ฐ ์ฑ๋ฅ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ ๋ฆฌํ๋ฉฐ, ๋ค๋ฅธ ๋ง์ ์ค์๊ฐ ๊ฐ์ฒด ํ์ง๊ธฐ๋ฅผ ๋ฅ๊ฐํ๋ TensorRT ์ ์ ๊ณตํฉ๋๋ค.
RT-DETR ์ ๋ค์ํ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ์ถ๋ก ์๋๋ฅผ ์ด๋ป๊ฒ ์ง์ํ๋์?
๋ฐ์ด๋์ RT-DETR ์์๋ ์ฌ๊ต์ก ์์ด๋ ๋ค์ํ ๋์ฝ๋ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์๋๋ฅผ ์ ์ฐํ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ์์ฑ์ ๋ค์ํ ์ค์๊ฐ ๊ฐ์ฒด ๊ฐ์ง ์์ ์์ ์ฑ๋ฅ์ ํ์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ฎ์ ์ ๋ฐ๋๋ฅผ ์ํด ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ , ๋ ๋๋ฆฌ๊ณ ์ ํํ ๊ฐ์ง๊ฐ ํ์ํ๋ , RT-DETR ์ ํน์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋๋ก ๋ง์ถคํํ ์ ์์ต๋๋ค.
RT-DETR ๋ชจ๋ธ์ ๊ต์ก, ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ๋ด๋ณด๋ด๊ธฐ์ ๊ฐ์ ๋ค๋ฅธ Ultralytics ๋ชจ๋์ ํจ๊ป ์ฌ์ฉํ ์ ์๋์?
์, RT-DETR ๋ชจ๋ธ์ ํ์ต, ๊ฒ์ฆ, ์์ธก, ๋ด๋ณด๋ด๊ธฐ ๋ฑ ๋ค์ํ Ultralytics ๋ชจ๋์ ํธํ๋ฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ง์นจ์ ๊ฐ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์: ํ๋ จ, Val, ์์ธก, ๋ด๋ณด๋ด๊ธฐ. ์ด๋ฅผ ํตํด ๊ฐ์ฒด ๊ฐ์ง ์๋ฃจ์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํ ํฌ๊ด์ ์ธ ์ํฌํ๋ก์ฐ๋ฅผ ๋ณด์ฅํฉ๋๋ค.