Instructions to use illimax/YolPe with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use illimax/YolPe with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("illimax/YolPe") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
YolPe: CCTV ์๊ฑฐ๋ฆฌ ์ฌ๋ ์ธ์์ ์ํ YOLO26s
English summary. A person detector for CCTV-like views, where distant people look tiny and crowds overlap.
YOLO26s (COCO-pretrained) was fine-tuned on CrowdHuman for single-class person detection.
On CrowdHuman val (imgsz 1280, conf 0.35), recall for far-away people (box height < 48px) rose
from 0.225 to 0.798 compared with the base YOLO26s, while near-range recall also improved (0.852 โ 0.969).
The smallest reliably detected person height dropped from 128px to 24px.
Training code: https://github.com/lkw-k/YolPe. CrowdHuman is licensed for non-commercial research only.
๊ฐ์
CCTV๋ ๋์ ๊ณณ์์ ๋์ ๋ฒ์๋ฅผ ์ฐ์ต๋๋ค. ๊ทธ๋์ ๊ฐ์ ํ๋ฉด ์์์๋ ๊ฐ๊น์ด ์ฌ๋์ ํฌ๊ฒ, ๋ฉ๋ฆฌ ์๋ ์ฌ๋์ ์์ญ px๋ก ์๊ฒ ๋ณด์ด๊ณ , ์ฌ๋์ด ๋ง์ผ๋ฉด ์๋ก ๊ฒน์นฉ๋๋ค. ํ๋ฉด ์ ์ฌ๋ ์๋ฅผ ์ธ๋ ค๋ฉด ์ด๋ ๊ฒ ์๊ณ ๊ฒน์น ์ฌ๋๊น์ง ๋น ์ง์์ด ์ฐพ์์ผ ํฉ๋๋ค.
COCO๋ก ํ์ต๋ YOLO26 Small(YOLO26s) ์ ๊ฐ๊น์ด ์ฌ๋์ ์ ์ฐพ์ง๋ง, ๋ฉ๋ฆฌ ์๋ ์์ ์ฌ๋๊ณผ ๊ฒน์น ์ฌ๋์ ๋ง์ด ๋์นฉ๋๋ค.
๊ทธ๋์ ๊ตฐ์ค ๋ฐ์ดํฐ์
CrowdHuman์ผ๋ก ํ์ธํ๋ํด ์ฌ๋ ํ ํด๋์ค(0: person) ๋ง ๊ฒ์ถํ๋๋ก ๋ง๋ค์์ต๋๋ค.
๊ทผ๊ฑฐ๋ฆฌ ์ฑ๋ฅ์ ์ ์งํ๋ฉด์ ์๊ฑฐ๋ฆฌ ์ธ์์ ๋์ด์ฌ๋ฆฌ๋ ๊ฒ์ด ๋ชฉํ์
๋๋ค.
- ํ์ต ์ฝ๋: https://github.com/lkw-k/YolPe (๋ฐ์ดํฐ ๋ณํ, ํ์ต, ๊ฑฐ๋ฆฌ๋ณ ํ๊ฐ)
| ํญ๋ชฉ | ๊ฐ |
|---|---|
| ๊ธฐ๋ณธ ๋ชจ๋ธ | Ultralytics YOLO26s (COCO ์ฌ์ ํ์ต) |
| ํด๋์ค | 0: person (๊ฐ๋ ค์ง ๋ถ๋ถ๊น์ง ํฌํจํ ์ ์ฒด ๋ชธ ๋ฐ์ค) |
| ์ ๋ ฅ ํฌ๊ธฐ | 1280 (960์์๋ ํ๊ฐ) |
| ๊ตฌ์กฐ | end-to-end, NMS ์์ |
์ฌ์ฉ๋ฒ
from huggingface_hub import hf_hub_download
from ultralytics import YOLO
path = hf_hub_download("illimax/YolPe", "YolPe.pt")
model = YOLO(path)
results = model.predict("crowd.jpg", imgsz=1280, conf=0.35, max_det=1000)
print(len(results[0].boxes), "๋ช
")
conf=0.35๋ ์๋ ๊ฑฐ๋ฆฌ๋ณ ์ธ์๋ฅ ์ ์ฐ ๊ธฐ์ค๊ฐ์ ๋๋ค. F1์ด ๊ฐ์ฅ ๋์ ๊ฐ์ 0.371์ด๊ณ , ๋ ๊ฐ์ ๊ฒฐ๊ณผ ์ฐจ์ด๋ ์์ต๋๋ค (์๋ ์ฑ๋ฅ ์ฐธ๊ณ ).- ํผ์ก ์ฅ๋ฉด์์๋
max_det=1000์ ๊ผญ ๋๊ธฐ์ธ์. ๊ธฐ๋ณธ๊ฐ 300์ด๋ฉด ์ธ์์ด ์๋ฆฝ๋๋ค. - ONNX/TensorRT๋ก exportํ ๋๋
max_det์ด ๊ทธ๋ํ์ ๊ณ ์ ๋๋ฏ๋กmax_det=1000์ ๋๊ฒจ์ผ ํฉ๋๋ค. yolo26s-ywhob-v1.pt๋YolPe.pt์ ๊ฐ์ ํ์ผ์ ๋๋ค (์์ ์ด๋ฆ, ํธํ์ฉ).
ํ์ต
ํ์ต๊ณผ ํ๊ฐ ์ฝ๋, ์ฌํ ๋ฐฉ๋ฒ์ GitHub lkw-k/YolPe์ ์์ต๋๋ค.
๋ฐ์ดํฐ
- CrowdHuman train 15,000์ฅ์ผ๋ก ํ์ต, val 4,370์ฅ์ผ๋ก ๊ฒ์ฆ
- ๋ผ๋ฒจ: ์ ํจํ ์ฌ๋์ full box(๊ฐ๋ ค์ง ๋ถ๋ถ ํฌํจ)๋ฅผ
person์ผ๋ก ์ฐ๊ณ , ์ด๋ฏธ์ง ๋ฐ์ผ๋ก ๋๊ฐ ๋ถ๋ถ์ ์๋์ต๋๋ค. - ignore ์์ญ ์ฒ๋ฆฌ: CrowdHuman์
mask์์ญ๊ณผignoreํ์๋ ์ฌ๋์ ๋ผ๋ฒจ์์ ๋นผ๊ณ , ์ด๋ฏธ์ง์์ ํ์(114)์ผ๋ก ์น ํ์ต๋๋ค. ๋ผ๋ฒจ๋ง ๋นผ๋ฉด ๋ชจ๋ธ์ด ๊ทธ ์ฌ๋๋ค(์ฃผ๋ก ๋ฉ๋ฆฌ ์๋ ๋นฝ๋นฝํ ๊ตฐ์ค)์ "์ฌ๋ ์์"์ผ๋ก ๋ฐฐ์์ ์๊ฑฐ๋ฆฌ ๊ฒ์ถ์ด ์ฝํด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค. ์น ํ ์์ญ๊ณผ ๊ฒน์น๋ ์ ํจํ ์ฌ๋์ ๋ณด์ด๋ ๋ถ๋ถ์ ์๋ ํฝ์ ๋ก ๋๋๋ ธ์ต๋๋ค.
์ค์
| ํญ๋ชฉ | ๊ฐ | ์ด์ |
|---|---|---|
| imgsz | 1280 | ์๊ฑฐ๋ฆฌ ์์ ์ฌ๋ ๊ฒ์ถ |
| epochs / patience | 50 / 10 | val mAP50-95๊ฐ 10 ์ํญ ๋์ ์ ์ค๋ฅด๋ฉด ์ค๋จ |
| batch | 8 | |
| mosaic / close_mosaic | 1.0 / 10 | ๋ง์ง๋ง 10 ์ํญ์ ๋ชจ์์ดํฌ๋ฅผ ๋๊ณ ์ค์ ์ด๋ฏธ์ง ๋ถํฌ๋ก ๋ง๋ฌด๋ฆฌ |
| scale / fliplr | 0.5 / 0.5 | |
| flipud | 0.0 | ์นด๋ฉ๋ผ ์์ ์ด ๊ณ ์ ์ด๋ผ ์ํ ๋ฐ์ ์ ์ฐ์ง ์์ |
| hsv_v | 0.4 | ์ค๋ด ์กฐ๋ช ๋ณํ |
| max_det | 1000 |
- 47 ์ํญ์์ ์ผ๋ฆฌ ์คํฑ. val mAP50-95๊ฐ ๊ฐ์ฅ ๋์๋ 37 ์ํญ์ ์ฑํํ์ต๋๋ค.
- Ultralytics 8.4.163
์ฑ๋ฅ
CrowdHuman val 4,370์ฅ(์ฌ๋ 99,481๋ช ), imgsz 1280 ๊ธฐ์ค์ ๋๋ค. ๊ธฐ๋ณธ ๋ชจ๋ธ(YOLO26s COCO)์ person ํด๋์ค๋ง ๋จ๊ฒจ์ ๋น๊ตํ์ต๋๋ค.
ํ๊ฐ ์กฐ๊ฑด
์งํ๋ง๋ค ์ฌ๋ ์กฐ๊ฑด์ด ๋ฌ๋ผ์ ์์น๋ฅผ ์ง์ ๋น๊ตํ๋ฉด ์ ๋ฉ๋๋ค.
| ์งํ | conf | ์ ๋ต ๋ฐ์ค | ์ฉ๋ |
|---|---|---|---|
| ๊ฑฐ๋ฆฌ๋ณ ์ธ์๋ฅ (๊ธฐ์ค) | 0.35 | visible box, IoU 0.5 | ์ฌ๋์ ๋ช % ์ฐพ์๋. COCO ๋ชจ๋ธ๊ณผ ๊ณต์ ํ๊ฒ ๋น๊ตํ๋ ค๊ณ ๋ณด์ด๋ ๋ถ๋ถ ๊ธฐ์ค |
| ๊ฒ์ถ ์งํ (P, R, mAP) | 0.371 (์ต๋ F1 ์ง์ ) | full box | Ultralytics ํ์ค ๊ฒ์ฆ |
๊ฑฐ๋ฆฌ๋ณ ์ธ์๋ฅ (conf 0.35)
์ฌ๋ ์๋ฅผ ์ธ๋ ์ฉ๋๋ผ mAP๋ณด๋ค "์ฌ๋์ ๋ช % ์ฐพ์๋"(recall)๋ฅผ ์ฃผ๋ก ๋ดค์ต๋๋ค. ๊ฑฐ๋ฆฌ๋ ํ๋ฉด ์ ์ฌ๋ ๋ฐ์ค ๋์ด(๋ชจ๋ธ ์ ๋ ฅ ๊ธฐ์ค)๋ก ๋๋ด์ต๋๋ค. ์์์๋ก ๋ฉ๋ฆฌ ์๋ ์ฌ๋์ ๋๋ค.
์ ๋ณด์ด๋ ์ฌ๋ (๋ชธ์ 75% ์ด์์ด ๋ณด์ด๋ ์ฌ๋, 48,204๋ช )
| ๊ฑฐ๋ฆฌ | ๋ฐ์ค ๋์ด | ์ฌ๋ ์ | ๊ธฐ๋ณธ YOLO26s | ์ด ๋ชจ๋ธ | ํฅ์ |
|---|---|---|---|---|---|
| ์๊ฑฐ๋ฆฌ | 48px ๋ฏธ๋ง | 5,535 | 0.225 | 0.798 | +0.573 |
| ์ค๊ฑฐ๋ฆฌ | 48~128px | 14,966 | 0.559 | 0.930 | +0.371 |
| ๊ทผ๊ฑฐ๋ฆฌ | 128px ์ด์ | 27,703 | 0.852 | 0.969 | +0.117 |
| ์ ์ฒด | 48,204 | 0.689 | 0.938 | +0.249 |
์ต์ ์ธ์ ํฌ๊ธฐ(์ธ์๋ฅ 0.7 ์ด์์ด ๋๋ ๊ฐ์ฅ ์์ ๋ฐ์ค ๋์ด): ๊ธฐ๋ณธ ๋ชจ๋ธ 128px โ ์ด ๋ชจ๋ธ 24px
๊ฐ๋ ค์ง ์ฌ๋๊น์ง ํฌํจํ ์ ์ฒด (99,481๋ช )
| ๊ฑฐ๋ฆฌ | ์ฌ๋ ์ | ๊ธฐ๋ณธ YOLO26s | ์ด ๋ชจ๋ธ | ํฅ์ |
|---|---|---|---|---|
| ์๊ฑฐ๋ฆฌ | 9,151 | 0.163 | 0.605 | +0.442 |
| ์ค๊ฑฐ๋ฆฌ | 29,321 | 0.380 | 0.661 | +0.281 |
| ๊ทผ๊ฑฐ๋ฆฌ | 61,009 | 0.697 | 0.710 | +0.013 |
| ์ ์ฒด | 99,481 | 0.554 | 0.686 | +0.132 |
์ธ๋ถ ํฌ๊ธฐ๋ณ ์ธ์๋ฅ , imgsz 960 ๊ฒฐ๊ณผ
์ธ๋ถ ํฌ๊ธฐ๋ณ (์ ๋ณด์ด๋ ์ฌ๋)
| ๋ฐ์ค ๋์ด | ๊ธฐ๋ณธ YOLO26s | ์ด ๋ชจ๋ธ |
|---|---|---|
| 16~20px | 0.070 | 0.556 |
| 20~24px | 0.097 | 0.691 |
| 24~32px | 0.143 | 0.762 |
| 32~40px | 0.255 | 0.848 |
| 40~48px | 0.308 | 0.869 |
| 48~64px | 0.420 | 0.903 |
| 64~96px | 0.554 | 0.931 |
| 96~128px | 0.671 | 0.950 |
| 128~192px | 0.770 | 0.959 |
| 192~256px | 0.841 | 0.966 |
| 256px ์ด์ | 0.893 | 0.975 |
imgsz 960์ผ๋ก ์ถ๋ก ํ์ ๋ (์ ๋ณด์ด๋ ์ฌ๋)
| ๊ฑฐ๋ฆฌ | ๊ธฐ๋ณธ YOLO26s | ์ด ๋ชจ๋ธ |
|---|---|---|
| ์๊ฑฐ๋ฆฌ | 0.190 | 0.776 |
| ์ค๊ฑฐ๋ฆฌ | 0.547 | 0.933 |
| ๊ทผ๊ฑฐ๋ฆฌ | 0.856 | 0.970 |
| ์ ์ฒด | 0.624 | 0.921 |
์ต๋ F1 ์ง์ (conf 0.371)์์ ๋ณด๋ฉด
F1์ด ๊ฐ์ฅ ๋์ conf๋ 0.371(F1 0.91)์ ๋๋ค. ์ด ์ง์ ์ Ultralytics ๊ฒ์ถ ์งํ(full box ๊ธฐ์ค)๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
| Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|
| 0.940 | 0.884 | 0.91 | 0.946 | 0.660 |
๊ฐ์ conf 0.371๋ก ๊ฑฐ๋ฆฌ๋ณ ์ธ์๋ฅ ์ ๋ค์ ์ฌ๋ COCO ๋๋น ๊ฒฐ๊ณผ๋ ๊ฑฐ์ ๊ฐ์ต๋๋ค (์ ๋ณด์ด๋ ์ฌ๋, visible box ๊ธฐ์ค).
| ๊ฑฐ๋ฆฌ | ๊ธฐ๋ณธ YOLO26s | ์ด ๋ชจ๋ธ |
|---|---|---|
| ์๊ฑฐ๋ฆฌ | 0.212 | 0.789 |
| ์ค๊ฑฐ๋ฆฌ | 0.542 | 0.927 |
| ๊ทผ๊ฑฐ๋ฆฌ | 0.845 | 0.968 |
| ์ ์ฒด | 0.678 | 0.935 |
| ์ต์ ์ธ์ ํฌ๊ธฐ | 128px | 24px |
๊ฐ์ conf 0.371์ธ๋ฐ๋ ์ Recall์ 0.884์ด๊ณ , ๊ฑฐ๋ฆฌ๋ณ ๋ฐฉ์์ผ๋ก ์ฐ ๊ฐ๋ ค์ง ์ฌ๋ ํฌํจ ์ ์ฒด recall์ 0.683์ ๋๋ค. ์ฐจ์ด๋ conf๊ฐ ์๋๋ผ ์ ๋ต ๋ฐ์ค ๊ธฐ์ค(full box / visible box)๊ณผ ๋งค์นญ ๋ฐฉ์ ๋๋ฌธ์ ๋๋ค.
๊ตฌ๊ฐ๋ณ ์๋ณธ ์์น๋ eval/recall_*.json์ ์์ต๋๋ค (conf 0.371 ๊ฒฐ๊ณผ๋ eval/conf0.371/).
ํ๊ณ
- ์ค์ CCTV ์์์ผ๋ก๋ ์์ง ํ๊ฐํ์ง ์์์ต๋๋ค. CrowdHuman์ ์ฌ๋ ๋๋์ด์์ ์ฐ์ ๊ฑฐ๋ฆฌ ์ฌ์ง์ด ๋ง์์, ์์์ ๋ด๋ ค๋ค๋ณด๋ CCTV ์์ ๊ณผ๋ ๋ค๋ฆ ๋๋ค. ์ค์ ์นด๋ฉ๋ผ ์์์ผ๋ก ๋ค์ ์ฌ ๋ณด๊ณ ์ฐ์ธ์.
- ํ๊ฐ ์์น๊ฐ ์ค์ ๋ณด๋ค ์ข๊ฒ ๋์์ ์ ์์ต๋๋ค. ์ ์์น๋ ๋ชจ๋ CrowdHuman val์์ ์๋๋ฐ, ๊ฐ์ val๋ก ์ต์ ์ํญ๋ ๊ณจ๋์ต๋๋ค. ๋ณ๋ test ์ธํธ ๊ฒฐ๊ณผ๊ฐ ์๋๋๋ค.
- ๋ง์ด ๊ฐ๋ ค์ง ์ฌ๋์ ์ฌ์ ํ ๋์นฉ๋๋ค. ๊ฐ๋ ค์ง ์ฌ๋์ ํฌํจํ ์ ์ฒด ์ธ์๋ฅ ์ 0.686์ด๊ณ , ๊ทผ๊ฑฐ๋ฆฌ์์๋ ๊ธฐ๋ณธ ๋ชจ๋ธ๊ณผ ๊ฑฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค (0.697 โ 0.710). ๋นฝ๋นฝํ ๊ตฐ์ค์์๋ ์ธ์์ด ์ค์ ๋ณด๋ค ์ ๊ฒ ๋์ฌ ์ ์์ต๋๋ค.
- ๊ฐ๋ ค์ง ์ฌ๋์ด ๋ง์ ํฐ ๋ฐ์ค(256px ์ด์)๋ ๊ธฐ๋ณธ ๋ชจ๋ธ๋ณด๋ค ์กฐ๊ธ ๋ฎ์ต๋๋ค (0.795 โ 0.747). ์์ธ์ ์์ง ํ์ธํ์ง ์์์ต๋๋ค. ์ ๋ณด์ด๋ ์ฌ๋๋ง ๋ณด๋ฉด ์ด ๊ตฌ๊ฐ๋ ๊ฐ์ ๋์ต๋๋ค (0.893 โ 0.975).
- 16px๋ณด๋ค ์์ ์ฌ๋์ ๊ฑฐ์ ๋ชป ์ฐพ์ต๋๋ค (์ธ์๋ฅ 0.33 ์ดํ).
- ์ฌ๋์ฒ๋ผ ์๊ธด ๋ฌผ์ฒด๋ฅผ ์ฌ๋์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ignore ์์ญ์ ํ์์ผ๋ก ์น ํด์ ํฌ์คํฐ ์ ์ธ๋ฌผ, ๋ฐ๋ฅ ๋ฐ์ฌ, ๋ง๋คํน์ "์ฌ๋ ์๋"์ผ๋ก ๋ฐฐ์ธ ๊ธฐํ๊ฐ ์์์ต๋๋ค. ์คํ ์์ค์ ์ธก์ ํ์ง ์์์ต๋๋ค.
- imgsz 1280์ผ๋ก๋ง ํ์ตํ์ต๋๋ค. 960 ๊ฒฐ๊ณผ๋ ๊ฐ์ ๊ฐ์ค์น๋ฅผ 960์ผ๋ก ์ถ๋ก ํ ๊ฐ์ ๋๋ค.
- ONNX/INT8 ๋ณํ๊ณผ ์๋ ์ธก์ ์ ์์ง ํ์ง ์์์ต๋๋ค.
๋ผ์ด์ ์ค
- ๊ฐ์ค์น: AGPL-3.0 (Ultralytics YOLO26 ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ)
- ํ์ต ๋ฐ์ดํฐ CrowdHuman์ ๋น์์ ์ฐ๊ตฌ ๋ชฉ์ ์ผ๋ก๋ง ์ธ ์ ์์ต๋๋ค. ์ด ๊ฐ์ค์น๋ฅผ ์ธ ๋๋ CrowdHuman ์ด์ฉ ์กฐ๊ฑด์ ํ์ธํ์ธ์.
์ธ์ฉ
- CrowdHuman: Shao et al., "CrowdHuman: A Benchmark for Detecting Human in a Crowd", arXiv:1805.00123, 2018
- Ultralytics YOLO26: https://github.com/ultralytics/ultralytics
- Downloads last month
- 3