Skip to content

Latest commit

ย 

History

68 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

KDT Hackathon - ๋ฐค๋งˆ์‹ค

2026๋…„ ์ œ8ํšŒ K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ ํ•ด์ปคํ†ค (์ง€์ •๊ณผ์ œ: AI ์ „ํ™˜ ์‹œ๋Œ€, ์ธ๊ฐ„์˜ ์—ญ๋Ÿ‰์„ ํ™•์žฅํ•˜๋Š” ๋””์ง€ํ„ธ ์„œ๋น„์Šค ๊ฐœ๋ฐœ)

์ฃผ์ œ

์•ผ๋งน์ฆ ์ €์‹œ๋ ฅ์ž์˜ ์•ผ๊ฐ„ ๋ณดํ–‰์„ ๋•๋Š” ์‹ค์‹œ๊ฐ„ AI ์‹œ๊ฐ๋ณด์กฐ ์„œ๋น„์Šค

๊ด€๋ จ ๋ถ„์•ผ: ์ธ๊ณต์ง€๋Šฅ, ์ปดํ“จํ„ฐ ๋น„์ „

๋ฌธ์„œ ์•ˆ๋‚ด

์ฐพ๋Š” ๊ฒƒ ๋ฌธ์„œ
โ˜…โ˜… ์ง€๊ธˆ ์ƒํƒœ๊ฐ€ ์–ด๋–ค๊ฐ€ โ€” ๊ฐ€์žฅ ๋จผ์ € ์ฝ์„ ๊ฒƒ docs/STATUS.md
๋ฌด์—‡์„ ์–ธ์ œ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€ (์ „์ฒด TODOยท์ˆœ์„œยท๋ณ‘๋ ฌ์„ฑ) docs/TODO.md โ˜…
๋ฌด์—‡์„ยท์™œ ๋งŒ๋“œ๋Š”๊ฐ€ (๊ธฐํš) ์ด ๋ฌธ์„œ 1~5์žฅ
์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ญ˜ ํ•˜๋Š”์ง€ (์ธ๋ฑ์Šค) scripts/README.md
์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ณ  ๋ชจ๋ธ์„ ์–ด๋–ป๊ฒŒ ์ •ํ–ˆ๋‚˜ docs/data.md
โ‘ข ํƒ์ง€ โ€” ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑยทbaselineยท์•ผ๊ฐ„ ๊ฒ€์ฆยทC4b ํŒ์ • docs/detection.md โ˜…
โ‘ก ๊ณ ์ „ ๊ธฐ๋ฒ• โ€” ์ง€ํ‘œยทarm ์ˆœ์œ„ยท์†๋„ยทA3 ์‹œ๊ฐ„์ถ• docs/lowlight_classical.md
โ‘ก ๋ชฉ์  ์ถ•์„ ๋ฌด์—‡์œผ๋กœ ์–ด๋–ป๊ฒŒ ์žฌ๋Š”๊ฐ€ (์ง€ํ‘œ ์ •์˜ยท๊ฒฐํ•จ ์ด๋ ฅ) scripts/metrics.py โ€” uv run python scripts/metrics.py
์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅยท์–‘์žํ™”ยทํผํŒฉํ„ฐ ๊ฒ€ํ†  docs/hardware_inference.md
โ˜… ์ €์กฐ๋„ ๊ณ„๋‹จ ํƒ์ง€๊ฐ€ ์™„๋ฃŒ๋๋Š”๊ฐ€ (์•ผ๊ฐ„/์ฃผ๊ฐ„ยท๋„๋ฉ”์ธ ๊ฒฉ์ฐจยทโ‘ก ์˜คํƒ) notebooks/stairs_night_review.ipynb
์˜ˆ์ธกยทarm ๊ฒฐ๊ณผ๋ฅผ ๋ˆˆ์œผ๋กœ ํ™•์ธ notebooks/ โ€” detect_c4_review ยท lowlight_arms_review ยท lowlight_lol_review ยท stair_hybrid_baseline
์ข…๊ฒฐ๋œ ์‹คํ—˜ยท๊ฒฐ์ •์˜ ์›๋ฌธ docs/archive/
ํ™˜๊ฒฝ ์…‹์—…ยท์‹คํ–‰ ๋ฐฉ๋ฒ• ์ด ๋ฌธ์„œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

์‹คํ–‰ ๋ฐฉ๋ฒ•

0. ์‚ฌ์ „ ์ค€๋น„

winget install astral-sh.uv     # uv ๋ฏธ์„ค์น˜ ์‹œ 1ํšŒ

1. ํ™˜๊ฒฝ ์ƒ์„ฑ

uv sync                         # .venv ์ƒ์„ฑ + ์˜์กด์„ฑ ์„ค์น˜ (uv.lock ๊ธฐ์ค€ ๋™์ผ ํ™˜๊ฒฝ ์žฌํ˜„)

uv sync๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” ์—†์ด .venv๋ฅผ ์ž๋™ ์‚ฌ์šฉํ•œ๋‹ค. ์ดํ›„ ๋ชจ๋“  Python ์‹คํ–‰์€ uv run์œผ๋กœ ํ•œ๋‹ค.

2. ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

uv run python scripts/inspect_datasets.py         # data/ ๋ฐฐ์น˜ ํ›„ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ (์ตœ์ดˆ 1ํšŒ)
uv run python scripts/probe_classical.py          # โ‘ก ๊ณ ์ „ ๊ธฐ๋ฒ• ์†๋„ ํ”„๋กœ๋ธŒ
uv run python scripts/metrics.py                  # โ‘ก ๋ชฉ์  ์ถ• ์ง€ํ‘œ ์ž๊ธฐ๊ฒ€์ฆ (์‹ ยท๊ตฌ ๋Œ€์กฐ)
uv run python scripts/compare_lowlight.py --dataset lol   # โ‘ก arm ๋น„๊ต (์†๋„ยทPSNR/SSIMยท๋…ธ์ด์ฆˆ)
uv run python scripts/night_eval.py --profile-only        # โ‘ก ์•ผ๊ฐ„ ํ‘œ๋ณธ ๋ฐ๊ธฐยทํฌํ™” ํ”„๋กœํŒŒ์ผ๋งŒ
uv run python scripts/night_eval.py                       # โ‘ก ์•ผ๊ฐ„ ํ‘œ๋ณธ ๋ชฉ์  ์ถ• ์ „์ฒด ํ‰๊ฐ€
uv run python scripts/resolution_sweep.py                 # โ‘ก C6 โ€” ํ•ด์ƒ๋„ ร— arm ์†๋„ยท๋ชฉ์  ์ถ• ์Šค์œ•
uv run python scripts/extract_nightowls.py                # NightOwls ์„ ํƒ ํ•ด์ œ ๊ณ„ํš (--run ์œผ๋กœ ์‹คํ–‰)
uv run python scripts/stairnet_to_bbox.py                 # C1 ๊ณ„๋‹จ ์„ ๋ถ„ โ†’ BBox ๋ณ€ํ™˜
uv run python scripts/build_detect_dataset.py             # C4 ์ค€๋น„ โ€” ํ†ตํ•ฉ ํƒ์ง€ ๋ฐ์ดํ„ฐ์…‹
uv run python scripts/build_detect_dataset.py --nightowls # C4b ์ค€๋น„ โ€” NightOwls ํˆฌ์ž…
uv run python scripts/train_detect.py                     # C4 โ€” โ‘ข ํƒ์ง€ baseline ํ•™์Šต
uv run python scripts/eval_nightowls.py --recordings 34 --drop-unlabeled-person
                                                          # โ‘ข ์•ผ๊ฐ„ held-out ์ •์ง ํ‰๊ฐ€
uv run python scripts/compare_detect.py                   # C4b โ€” before/after ์ผ๊ด„ ํŒ์ •
uv run python scripts/arm_detect_eval.py                  # C7 โ€” โ‘ก arm ร— โ‘ข ํƒ์ง€ mAP ํŒ์ •
uv run python scripts/temporal_eval.py                    # W1 โ€” โ‘ก A3 ์‹œ๊ฐ„์ถ•(ํ”Œ๋ฆฌ์ปคยท๊ณ ์ŠคํŒ…)
uv run python scripts/pipeline_demo.py                    # โ‘กโ†’โ‘ขโ†’โ‘ฃ end-to-end ๋ฐ๋ชจ ์˜์ƒ
uv run python scripts/emphasize.py                        # โ‘ฃ ๊ฐ•์กฐ ๋ Œ๋” ๋ฐ๋ชจ (โ‘กโ†’โ‘ขโ†’โ‘ฃ ์—ฐ๊ฒฐ)

3. ๋…ธํŠธ๋ถ ์‹คํ–‰

VS Code์—์„œ .ipynb๋ฅผ ์—ด๊ณ  ์ปค๋„๋กœ .venv(Python 3.13) ๋ฅผ ์„ ํƒํ•œ๋‹ค.

โš ๏ธ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋…ธํŠธ๋ถ์ด ๋“  ํด๋”(notebooks/)๋กœ ์—ด ๊ฒƒ โ€” ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ๋ฅผ ../data๋กœ ์žก๋Š”๋‹ค.

๋…ธํŠธ๋ถ ํ•„์š” ๋ฐ์ดํ„ฐ
lowlight_lol_review.ipynb LOL (1~9์ ˆ) + data/sample_image.png (10์ ˆ)
lowlight_arms_review.ipynb ExDark ยท StairNet ยท LoLI-Street
stair_hybrid_baseline.ipynb StairNet

JupyterLab UI๊ฐ€ ํ•„์š”ํ•˜๋ฉด uv add --dev jupyterlab ํ›„ uv run jupyter lab.

์„ธ๋ถ€ ์‚ฌํ•ญ(uv๋ฅผ ์“ฐ๋Š” ์ด์œ ยท์˜์กด์„ฑ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•ยท๊ฒ€์ฆ๋œ ๋ฒ„์ „ ๊ตฌ์„ฑ)์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ฐธ๊ณ .

ํ˜„์žฌ ์ง„ํ–‰ ์ƒํ™ฉ

๐Ÿ“Œ ํ˜„์žฌ ์ƒํƒœ๋Š” docs/STATUS.md ํ•œ ์žฅ์— ์ •๋ฆฌ๋ผ ์žˆ๋‹ค. ๋‹จ๊ณ„๋ณ„ ์ฑ„ํƒ์•ˆยทํ™•์ • ์ˆ˜์น˜ยท๋ง‰ํžŒ ๊ฒƒยท๋ฐ˜๋ณต๋œ ํ•จ์ •ยท๋ฌธ์„œ ์ง€๋„๊ฐ€ ๋ชจ๋‘ ๊ฑฐ๊ธฐ ์žˆ๋‹ค. 7~8์›” ์ง„ํ–‰ ๋กœ๊ทธ ์›๋ฌธ์€ docs/archive/progress_log_2026-07~08.md.

์š”์•ฝ (2026-09-03) โ€” โ‘ โ‘กโ‘ขโ‘ฃ ์ „๋ถ€ ์ฑ„ํƒ์•ˆ์ด ํ™•์ •๋๊ณ  โ‘ข ๋ฐฐํฌ ๋ชจ๋ธ๋„ ์ตœ์ข… ํ™•์ •๋๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ์‹ค๊ธฐ๊ธฐ ๊ณ„์ธก(C11)๊ณผ ์•ฑ ์ด์‹(๋ณ„๋„ ์ €์žฅ์†Œ)์ด๋‹ค.

๋‹จ๊ณ„ ์ƒํƒœ
โ‘  ๋ˆˆ๋ถ€์‹ฌ ์–ต์ œ D1(Drago) ํ•˜์ด๋ผ์ดํŠธ ์••์ถ•์œผ๋กœ ํ›„๋ณด ํ™•๋ณด โ€” โ‘ก์— ํ†ตํ•ฉํ• ์ง€ ๐Ÿ—ฃ๏ธ ํšŒ์˜ ์•ˆ๊ฑด
โ‘ก ์ €์กฐ๋„ ๊ฐœ์„  ๊ณ ์ „ CV ํ™•์ •(8/1) ยท ํ‘œ์‹œ ๊ฒฝ๋กœ ์ „์šฉ(8/2). ์ž ์ • 1์œ„ D1A1+bf+ts. โš ๏ธ ์†๋„ ๊ฒŒ์ดํŠธ ๊ฒฝ๊ณ„(์‹ค๊ธฐ๊ธฐ ๋ฏธํ™•์ •)
โ‘ข ์œ„ํ—˜์š”์†Œ ํƒ์ง€ โœ… ์ตœ์ข… ํ™•์ •(9/3) โ€” 0 person 1 stairs 2 bollard, c4f_distill_11n_640 INT8(์ง€์‹ ์ฆ๋ฅ˜, 3.15MB). ์‹ค์•ผ๊ฐ„ held-out(rec34) recall 0.195 โ†’ 0.609 โ†’ 0.635 โ†’ mAP50 0.717(์žฌ๋น„๊ต 1๋“ฑ). ONNX 3ํด๋ž˜์Šค ํŒจํ‚ค์ง€ ์•ฑํŒ€ ์ „๋‹ฌ(์ž…์ถœ๋ ฅ ๊ณ„์•ฝ [1,7,8400], ์ด๋ฒˆ ๋ชจ๋ธ ๊ต์ฒด์—๋„ ๊ณ„์•ฝ ๋ถˆ๋ณ€)
โ‘ฃ ์„ ํƒ์  ๊ฐ•์กฐ โœ… ๋ Œ๋”ยท์ƒ‰ ๊ตฌํ˜„ ์™„๋ฃŒ โ€” ์‹ค๊ธฐ๊ธฐ ๊ฐ€๋…์„ฑ ๊ฒ€์ฆ ๋Œ€๊ธฐ
์•ฑ ๋ณ„๋„ ์ €์žฅ์†Œ(ํŒ€์›2) โ€” ์ด ์ €์žฅ์†Œ๋Š” ML/๋ฐ์ดํ„ฐ ํŒŒํŠธ๋งŒ ๋‹ค๋ฃฌ๋‹ค

์ž์„ธํ•œ ํ˜„์žฌ ์ƒํƒœยท๋ง‰ํžŒ ๊ฒƒ์€ docs/STATUS.md, ์ˆœ์„œยท๋ณ‘๋ ฌ์„ฑ์€ docs/TODO.md.


1. ์ถ”์ง„ ๋ฐฐ๊ฒฝ

์ œ์•ˆ ์•„์ด๋””์–ด

  • KDT ํ›ˆ๋ จ๊ณผ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์„ ํ†ตํ•ด ํ•™์Šตํ•œ AIยท์ปดํ“จํ„ฐ๋น„์ „ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•ด, ์•ผ๋งน์ฆ ์ €์‹œ๋ ฅ์ž์˜ ์•ผ๊ฐ„ ๋ณดํ–‰์„ ๋•๋Š” ์‹ค์‹œ๊ฐ„ ์‹œ๊ฐ๋ณด์กฐ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ.
  • ์–ด๋‘์šด ๋ฐค๊ธธ์—์„œ ์œ„ํ—˜ ์š”์†Œ(๊ณ„๋‹จยท๋‹จ์ฐจยท๋ณดํ–‰์ž ๋“ฑ)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹๋ณ„ยท๊ฐ•์กฐํ•ด '์ž”์กด์‹œ๋ ฅ' ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฑท๋„๋ก ์ง€์›.

๋ฐœ๊ตด ๋ฐฐ๊ฒฝ ๋ฐ ๋ฌธ์ œ

  • ์‹œ๊ฐ์žฅ์• ์ธ์˜ ๋‹ค์ˆ˜๋Š” ์ „๋งน์ด ์•„๋‹Œ ์ €์‹œ๋ ฅ์ž„ (๋“ฑ๋ก ์‹œ๊ฐ์žฅ์• ์ธ ์ค‘ ์‹ฌํ•œ ์žฅ์•  ์•ฝ 20% โ€” Kim et al., 2022). ์•ผ๋งน์ฆ์ด ์žˆ์œผ๋ฉด ์•ผ๊ฐ„์— ๋ˆˆ๋ถ€์‹ฌ๊ณผ ์•”ํ‘์ด ๊ฒน์ณ ๊ณ„๋‹จยท๋ณดํ–‰์ž๋ฅผ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•ด ๋ณดํ–‰์ด ์–ด๋ ค์›Œ ์™ธ์ถœ์„ ํšŒํ”ผํ•˜๊ฒŒ ๋จ.
  • ๊ธฐ์กด ๋ณด์กฐ๊ธฐ์ˆ ์€ ์Œ์„ฑ ๋Œ€์ฒด ์ค‘์‹ฌ์ด๊ฑฐ๋‚˜ ๊ณ ๊ฐ€ ์ฐฉ์šฉํ˜•์ด๋ผ ์ ‘๊ทผ์„ฑ์ด ๋‚ฎ์Œ. ์ž”์กด์‹œ๋ ฅ์„ ํ™œ์šฉํ•œ ์•ผ๊ฐ„ ๋ณด์กฐ๋Š” ์ž„์ƒ ์—ฐ๊ตฌ ๋‹จ๊ณ„์— ๋จธ๋ฌผ๋Ÿฌ ์žˆ์–ด, ์ผ๋ฐ˜ ์Šค๋งˆํŠธํฐ์œผ๋กœ ์ฆ‰์‹œ ์“ธ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋Š” ๊ณต๋ฐฑ ์ƒํƒœ.

์ ์šฉ ๋ถ„์•ผ ๋ฐ ํ™œ์šฉ ๋ฐฉ์•ˆ

  • ์‚ฐ์—… ๋ถ„์•ผ: ๋ณด์กฐ๊ณตํ•™ยท๋ณต์ง€(์ €์‹œ๋ ฅ ์žฌํ™œ), ๋ชจ๋ฐ”์ผ ์„œ๋น„์Šค
  • ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ: ๊ฐœ์ธ์šฉ ์•ฑ(๊ตฌ๋…ํ˜•) โ†’ ๋ณต์ง€ยท์žฌํ™œ๊ธฐ๊ด€ B2B ๋ฐ ์žฅ์• ์ธ ๋ณด์กฐ๊ธฐ๊ธฐ ์ •๋ถ€์ง€์›์ œ๋„ ์—ฐ๊ณ„ ๋ณด๊ธ‰ โ†’ ๋””๋ฐ”์ด์Šค ํƒ‘์žฌ ๋ผ์ด์„ ์Šค๋กœ ํ™•์žฅ
  • ์šด์˜ ์‹œ๋‚˜๋ฆฌ์˜ค: ์•ผ๊ฐ„ ๋ณดํ–‰ ์‹œ ์Šค๋งˆํŠธํฐ์œผ๋กœ ์ „๋ฐฉ์„ ๋น„์ถ”๋ฉด ์œ„ํ—˜ ์š”์†Œ๊ฐ€ ์‹ค์‹œ๊ฐ„ ๊ฐ•์กฐ๋˜์–ด ์•ˆ์ „ ๋ณดํ–‰ ์ง€์› (๋ณ„๋„ ์žฅ๋น„ ๋ถˆ์š”)

2. ๊ฐœ๋ฐœ ๋‚ด์šฉ

๊ตฌํ˜„ ๋ชฉํ‘œ

์Šค๋งˆํŠธํฐ ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์•ผ๊ฐ„ ๋ณดํ–‰ ์‹œ๊ฐ๋ณด์กฐ โ€” ์–ด๋‘์šด ๋ฐค๊ธธ ์˜์ƒ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ '๊ฑธ์„ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด'์œผ๋กœ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ์‹œ์—ฐ.

  • ๋ชฉํ‘œ ์„ฑ๋Šฅ: 720p ๊ธฐ์ค€ 15FPS ์ด์ƒ
    • ์‹œ๊ฐ์žฅ์• ์ธ ๋ณดํ–‰ ๋ณด์กฐ ์—ฐ๊ตฌ์˜ ์‹ค์‚ฌ์šฉ ๊ฒ€์ฆ ์ฒ˜๋ฆฌ ์†๋„ ๋Œ€์—ญ(1115fps โ€” Rodrรญguez et al., 2012)์ด์ž ์ž„๋ฒ ๋””๋“œ ๋น„์ „์˜ ํ†ต์ƒ ์‹ค์‹œ๊ฐ„ ์š”๊ตฌ ๋ฒ”์œ„(1530fps โ€” Velez & Otaegui, 2015)์— ํ•ด๋‹น.
    • ํƒ์ง€ ๋ชจ๋ธ์„ ๋งค 2~3ํ”„๋ ˆ์ž„ ์ฃผ๊ธฐ๋กœ ์‹คํ–‰ํ•ด ํ™•๋ณดํ•˜๋ฉฐ, ๋ฏธ๋‹ฌ ์‹œ ํ•ด์ƒ๋„ยทํƒ์ง€ ์ฃผ๊ธฐ๋ฅผ ์กฐ์ •.

4๋‹จ๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ

๋‹จ๊ณ„ ๊ธฐ๋Šฅ ์„ค๋ช…
โ‘  ๋ˆˆ๋ถ€์‹ฌ ์–ต์ œ(๊ธ€๋ ˆ์–ด ์ œ์–ด) ๊ตญ์†Œ ๊ฐ•๊ด‘์› ๊ฒ€์ถœยท๋ฐ๊ธฐ ์ €๊ฐ ๊ฐ€๋กœ๋“ฑยท์ „์กฐ๋“ฑ ๋“ฑ ๊ฐ•ํ•œ ๊ด‘์›์„ ๊ฒ€์ถœํ•ด ๋ฐ๊ธฐ๋ฅผ ๋‚ฎ์ถฐ, ์•ผ๋งน ํ™˜์ž ํŠน์œ ์˜ ๊ด‘๊ณผ๋ฏผ์œผ๋กœ ์ธํ•œ ์‹œ์•ผ ๋ฐฉํ•ด๋ฅผ ์™„ํ™”
โ‘ก ์ €์กฐ๋„ ๊ฐœ์„  ๋ฐ๊ธฐ ๋ณต์›ยท๋Œ€๋น„ ๊ฐ•ํ™” ์–ด๋‘์šด ์˜์—ญ์„ ๋‹จ์ˆœํžˆ ๋ฐํžˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ '๋Œ€๋น„' ์ค‘์‹ฌ์œผ๋กœ ์ฒ˜๋ฆฌ
โ‘ข ์œ„ํ—˜ ์š”์†Œ ํƒ์ง€ AI ๊ฐ์ฒดํƒ์ง€(YOLO ๊ณ„์—ด) โ€” ๋‹จ์ผ ๋ชจ๋ธ ๋ณดํ–‰์žยท๊ณ„๋‹จ์„ ํ•˜๋‚˜์˜ YOLO ๋ชจ๋ธ๋กœ ๊ฒ€์ถœ(stairs ํด๋ž˜์Šค ํ†ตํ•ฉ). ์ €์กฐ๋„ยท์ €ํ•ด์ƒ๋„ ํ™˜๊ฒฝ์— ๋งž์ถฐ ์ตœ์ ํ™”
โ‘ฃ ์„ ํƒ์  ๊ฐ•์กฐ ๊ฒฝ๊ณ„์„  ๋Œ€๋น„ ์ƒ‰ ํ‘œ์‹œ ๊ฒ€์ถœ๋œ ์œ„ํ—˜ ์š”์†Œ์˜ ๊ฒฝ๊ณ„์„ ๋งŒ ๋Œ€๋น„ ์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋‚ด๋ถ€๋Š” ์›๋ณธ ์œ ์ง€ โ€” ์ž”์กด์‹œ๋ ฅ์„ ๊ฐ€๋ฆฌ์ง€ ์•Š์œผ๋ฉด์„œ '๋ด์•ผ ํ•  ๊ฒƒ'๋งŒ ๊ฐ•์กฐ

โ‘ข์˜ ์„ค๊ณ„ ๊ทผ๊ฑฐ: ๊ณ„๋‹จ์€ 'ํ‰ํ–‰ํ•œ ์ˆ˜ํ‰ ์—ฃ์ง€์˜ ๋ฐ˜๋ณต'์ด๋ผ๋Š” ๊ตฌ์กฐ์  ์‚ฌ์ „์ •๋ณด๊ฐ€ ๊ฐ•ํ•ด ๊ณ ์ „ CV(์—ฃ์ง€+๊ธฐํ•˜ ๊ฒ€์ฆ)๋กœ ๋ผ๋ฒจ๋ง ์—†์ด ์ฒ˜๋ฆฌํ•˜๋Š” ์•ˆ์„ ๋จผ์ € ๊ฒ€ํ† ํ•˜๊ณ  ์ •๋Ÿ‰ ๊ฒ€์ฆํ–ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์•ผ๊ฐ„ ์žฌํ˜„์œจ 0.232 ยท ์˜ค๊ฒฝ๋ณด์œจ ์ƒํ•œ 100%๋กœ ์•ˆ์ „ ๊ธฐ์ค€์— ๋ฏธ๋‹ฌํ•ด ๊ธฐ๊ฐํ–ˆ๊ณ , ๋”ฅ๋Ÿฌ๋‹ ๋‹จ์ผ ๋ชจ๋ธ๋กœ ์ „ํ™˜ํ–ˆ๋‹ค. (โ†’ data.md 4์žฅ)

ํ•™์Šต ์ „๋žต: ๊ณต๊ฐœ ์•ผ๊ฐ„ยท์ €์กฐ๋„ ๋ฐ์ดํ„ฐ์…‹(NightOwls, ExDark, LoLI-Street ๋“ฑ) ์‚ฌ์ „ํ•™์Šต + ์ž์ฒด ์ดฌ์˜ ์•ผ๊ฐ„ ๋ฐ์ดํ„ฐ ํŒŒ์ธํŠœ๋‹์˜ 2๋‹จ ๊ตฌ์„ฑ์œผ๋กœ, ์†Œ๊ทœ๋ชจ ์ž์ฒด ๋ฐ์ดํ„ฐ๋กœ๋„ ์ €์กฐ๋„ ์‹คํšจ ์„ฑ๋Šฅ ํ™•๋ณด.

๊ฐœ๋ฐœ ๋ฒ”์œ„

  • ๋Œ€ํ‘œ ์œ„ํ—˜ ์š”์†Œ 2~3์ข…(๊ณ„๋‹จยท๋ณดํ–‰์ž ์ค‘์‹ฌ)์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ํŒŒ์ดํ”„๋ผ์ธ ํ”„๋กœํ† ํƒ€์ž… ๊ตฌํ˜„.
  • ์นด๋ฉ”๋ผ ์ž…๋ ฅ โ†’ ์ฒ˜๋ฆฌ โ†’ ์ถœ๋ ฅ์˜ ํ˜„์žฅ ์‹œ์—ฐ ๋ชฉํ‘œ.
  • (ํ™•์žฅ) ์ผ์ • ์—ฌ์œ  ์‹œ NVIDIA Jetson ์—ฃ์ง€ ์ด์‹, ๋””์Šคํ”Œ๋ ˆ์ดํ˜• ๊ธ€๋ž˜์Šค ๋ฏธ๋Ÿฌ๋ง ์‹œ์—ฐ.

์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๋ฐ ์•„ํ‚คํ…์ฒ˜

                โ”Œโ”€โ†’ [ํƒ์ง€ ๊ฒฝ๋กœ] ์›๋ณธ ๊ทธ๋Œ€๋กœ โ”€โ”€โ†’ โ‘ข ์œ„ํ—˜ ์š”์†Œ ํƒ์ง€ โ”€โ”
                โ”‚                              AI ๊ฐ์ฒดํƒ์ง€(YOLO)   โ”‚  ํƒ์ง€ ๋ฐ•์Šค
์นด๋ฉ”๋ผ ์ž…๋ ฅ โ”€โ”€โ”€โ”€โ”ค                                                  โ†“
 (๋‹จ์•ˆยท์„ผ์„œ ๋ถˆ์š”)โ”‚                                                  โ”‚
                โ””โ”€โ†’ [ํ‘œ์‹œ ๊ฒฝ๋กœ] โ‘  ๋ˆˆ๋ถ€์‹ฌ ์–ต์ œ โ†’ โ‘ก ์ €์กฐ๋„ ๊ฐœ์„  โ†’ โ‘ฃ ์„ ํƒ์  ๊ฐ•์กฐ โ†’ ํ™”๋ฉด ์ถœ๋ ฅ
                                 ๊ธ€๋ ˆ์–ด ์ œ์–ด     ์•”๋ถ€ ๋ณต์›ยท๋Œ€๋น„    ๋Œ€๋น„ ์œค๊ณฝ์„ (๋น„์ฑ„์›€)  (์˜จ-๋””์Šคํ”Œ๋ ˆ์ด)

  ์ „ ๋‹จ๊ณ„ ์˜จ๋””๋ฐ”์ด์Šค ์ถ”๋ก  โ€” ๋ชจ๋ฐ”์ผ: ONNX Runtime / QNN ยท NNAPI ยท Core ML

โ˜… โ‘ โ‘ก๋Š” ํƒ์ง€ ์•ž๋‹จ์— ๋‘์ง€ ์•Š๋Š”๋‹ค (2026-08-02 C7 ํŒ์ •). ์ „์ฒ˜๋ฆฌ๋ฅผ ํƒ์ง€ ์•ž์— ๋ถ™์ด๋ฉด mAP ๊ฐ€ ๋‚ด๋ ค๊ฐ€๊ณ  stairs ์•ผ๊ฐ„ ์˜คํƒ์ด 0.1% โ†’ 5.7% ๋กœ ๋˜์‚ด์•„๋‚œ๋‹ค. ๊ทธ๋ž˜์„œ ํƒ์ง€๋Š” ์›๋ณธ์„ ๋จน๊ณ  โ‘ โ‘ก๋Š” ํ‘œ์‹œ ๊ฒฝ๋กœ ์ „์šฉ์ด๋‹ค. ๋ถ„๋ฆฌ๋Š” ๋น„์šฉ์ด ์•„๋‹ˆ๋ผ ์ด๋“์ด๋‹ค โ€” ๋‘ ๊ฒฝ๋กœ๊ฐ€ ๋…๋ฆฝ์ด๋ผ ๋ณ‘๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ๊ณ  โ‘ก์˜ ์ง€์—ฐ์ด โ‘ข์— ๋”ํ•ด์ง€์ง€ ์•Š๋Š”๋‹ค (โ†’ detection.md 7์žฅ ยท ๋ฐ๋ชจ ๊ตฌํ˜„ scripts/pipeline_demo.py).

  • ์ž…๋ ฅ๋ถ€: ์Šค๋งˆํŠธํฐ ํ›„๋ฉด ์นด๋ฉ”๋ผ์˜ ์‹ค์‹œ๊ฐ„ ์˜์ƒ ์ŠคํŠธ๋ฆผ. ๋‹จ์•ˆ ์นด๋ฉ”๋ผ๋งŒ์œผ๋กœ ๋™์ž‘.
  • ์ฒ˜๋ฆฌ๋ถ€: ํ‘œ์‹œ ๊ฒฝ๋กœ์™€ ํƒ์ง€ ๊ฒฝ๋กœ์˜ 2๊ฐˆ๋ž˜. ๋ˆˆ๋ถ€์‹ฌ ์–ต์ œ(โ‘ )ยท์ €์กฐ๋„ ๊ฐœ์„ (โ‘ก)์€ GPU ์˜์ƒ์ฒ˜๋ฆฌ๋กœ ํ‘œ์‹œ ๊ฒฝ๋กœ์—๋งŒ ๊ฑธ๋ฆฌ๊ณ , ์œ„ํ—˜ ์š”์†Œ ํƒ์ง€(โ‘ข)๋Š” ์›๋ณธ ํ”„๋ ˆ์ž„์„ ๋ฐ›๋Š” ๊ฒฝ๋Ÿ‰ ๊ฐ์ฒดํƒ์ง€ ๋ชจ๋ธ์ด๋‹ค. โ‘ฃ ๊ฐ•์กฐ๋Š” ํ‘œ์‹œ ๊ฒฝ๋กœ์˜ ๊ฒฐ๊ณผ ์œ„์— โ‘ข์˜ ๋ฐ•์Šค๋ฅผ ๊ทธ๋ฆฐ๋‹ค. ์ถ”๋ก ์€ ๋ชจ๋ฐ”์ผ ๋Ÿฐํƒ€์ž„(ONNX Runtime + QNNยทNNAPIยทCore ML EP)์œผ๋กœ ์˜จ๋””๋ฐ”์ด์Šค ์ตœ์ ํ™”. (ํ™•์žฅ) NVIDIA Jetson ์—ฃ์ง€ ์ด์‹ ๋‹จ๊ณ„์—์„œ๋Š” TensorRT ์‚ฌ์šฉ.
  • ์ถœ๋ ฅ๋ถ€: ์ฒ˜๋ฆฌ๋œ ์˜์ƒ์„ ์Šค๋งˆํŠธํฐ ๋””์Šคํ”Œ๋ ˆ์ด์— ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ.
  • ๊ตฌํ˜„ ํ™˜๊ฒฝ: ์ถ”๊ฐ€ ํ•˜๋“œ์›จ์–ด ์—†์ด ์Šค๋งˆํŠธํฐ ๋‹จ๋… ๋™์ž‘. ์˜์ƒ ์ฒ˜๋ฆฌยท์ถ”๋ก ์ด ๋ชจ๋‘ ๊ธฐ๊ธฐ ๋‚ด์—์„œ ์ˆ˜ํ–‰(์„œ๋ฒ„ ์ „์†ก ์—†์Œ). ๋ชจ๋ธ ๊ฒฝ๋Ÿ‰ํ™”(์–‘์žํ™”ยท์ž…๋ ฅ ํ•ด์ƒ๋„ ์กฐ์ •)๋กœ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ ํ™•๋ณด.
  • ํ•˜๋“œ์›จ์–ด ํผํŒฉํ„ฐ(ํ”„๋กœํ† ํƒ€์ž…): ์ƒ์šฉ ์Šค๋งˆํŠธํฐ์„ ๊ณจํŒ์ง€ VR ํ•˜์šฐ์ง•(๊ตฌ๊ธ€ ์นด๋“œ๋ณด๋“œํ˜•)์— ์‚ฝ์ž…ํ•œ pass-through ๋ฐฉ์‹์œผ๋กœ ์‹œ์—ฐ. ๋ณ„๋„ ๋””๋ฐ”์ด์Šค ์ œ์ž‘ ์—†์ด ์ฆ‰์‹œ ์ฐฉ์šฉํ˜• ๋ฐ๋ชจ ๊ตฌํ˜„. ๋ฐœ์—ดยท์ง€์—ฐยท์–‘์žํ™” ๋“ฑ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๊ฒ€ํ† ๋Š” hardware_inference.md ์ฐธ๊ณ .

3. ์ฃผ์š” ํŠน์ง• ๋ฐ ํ•ต์‹ฌ ๊ธฐ์ˆ 

์•„์ด๋””์–ด ์ปจ์…‰

'๊ท ์ผํ•˜๊ฒŒ ๋ฐํžˆ๊ธฐ'๊ฐ€ ์•„๋‹Œ ์„ ํƒ์  ์‹œ๊ฐ์ฆ๊ฐ• โ€” ๋ฌด์—‡์ด ์œ„ํ—˜ํ•œ์ง€ AI๊ฐ€ ํŒ๋‹จํ•ด ๊ฐ•์กฐ

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

ํ™œ์šฉ ๊ธฐ์ˆ 

  1. ๋”ฅ๋Ÿฌ๋‹ ์ €์กฐ๋„ ๊ฐœ์„ (ํ†ค๋งคํ•‘ ๊ธฐ๋ฐ˜)์œผ๋กœ ์–ด๋‘์šด ์žฅ๋ฉด์˜ ๋Œ€๋น„๋ฅผ ๋ณต์›
  2. AI ๊ฐ์ฒดํƒ์ง€(YOLO ๊ณ„์—ด)๋กœ ๋ณดํ–‰ ์œ„ํ—˜ ์š”์†Œ๋ฅผ ์‹ค์‹œ๊ฐ„ ์ธ์‹
  3. ์ถ”๋ก  ์ตœ์ ํ™”(๋ชจ๋ฐ”์ผ: ONNX Runtime + QNNยทNNAPIยทCore ML / ์—ฃ์ง€ ํ™•์žฅ: JetsonยทTensorRT)๋กœ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ ํ™•๋ณด

๊ธฐ์ˆ ์  ํŠน์ง•

๋‹จ์ˆœํžˆ ๋ฐํžˆ๋Š” ์˜์ƒ ์ฒ˜๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ '๋ฌด์—‡์ด ์œ„ํ—˜ํ•œ์ง€'๋ฅผ ํŒ๋‹จํ•˜๋Š” AI๊ฐ€ ํ•ต์‹ฌ. ์ €์กฐ๋„ ๊ฐœ์„ (๊ณ ์ „ ์˜์ƒ์ฒ˜๋ฆฌ๋กœ๋„ ๊ฐ€๋Šฅ)์„ ๋„˜์–ด, ์œ„ํ—˜ ์š”์†Œ๋ฅผ ์ธ์‹ยท์„ ๋ณ„ํ•˜๋Š” ๋ฐ ๋”ฅ๋Ÿฌ๋‹์ด ํ•„์ˆ˜์ ์œผ๋กœ ํ™œ์šฉ๋จ. ๋˜ํ•œ ๋ฐ๊ธฐ๊ฐ€ ์•„๋‹Œ '๋Œ€๋น„' ์ค‘์‹ฌ ์„ค๊ณ„๋กœ ์•ผ๋งนยท์ €์‹œ๋ ฅ์˜ ๋ˆˆ๋ถ€์‹ฌ ์ทจ์•ฝ์„ฑ๊ณผ ๋Œ€๋น„๊ฐ๋„ ์ €ํ•˜๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ คํ•œ ์ฆ์ƒ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ.

์œ ์‚ฌ ์„œ๋น„์Šค ๋Œ€๋น„ ์ฐจ๋ณ„์„ฑ

๊ธฐ์กด ์„œ๋น„์Šค ์ ‘๊ทผ ๋ฐฉ์‹ ๋ณธ ์„œ๋น„์Šค์™€์˜ ์ฐจ์ด
์Œ์„ฑ ์•ˆ๋‚ดํ˜• (์„ค๋ฆฌ๋ฒˆํ”Œ๋Ÿฌ์ŠคยทSeeing AI ๋“ฑ) ์‹œ๊ฐ์„ ์Œ์„ฑ์œผ๋กœ ๋Œ€์ฒด ์ž”์กด์‹œ๋ ฅ์„ ์ง์ ‘ ํ™œ์šฉ
ํ™”๋ฉด ํ™•๋Œ€ยท๋Œ€๋น„ํ˜• (ํ™•๋Œ€๋…์„œ๊ธฐ ๋“ฑ) ๋ฐ์€ ํ™˜๊ฒฝยท์ •์ง€ ๋Œ€์ƒ '์ฝ๊ธฐ' ํŠนํ™” '์•ผ๊ฐ„ร—์ด๋™(๋ณดํ–‰)' ํŠนํ™” + ์œ„ํ—˜ ์šฐ์„  ํŒ๋‹จ
์นด๋ฉ”๋ผ ์•ผ๊ฐ„๋ชจ๋“œ ์‹ฌ๋ฏธ ๋ชฉ์ ์˜ ๊ท ์ผ ์ฆํญ ์ €์‹œ๋ ฅ์ž์˜ '์ธ์ง€' ๋ชฉ์  ์„ ํƒ ๊ฐ•์กฐ

๋…์ฐฝ์„ฑ: ์‹œ๊ฐ์„ ์Œ์„ฑ์œผ๋กœ ๋Œ€์ฒดํ•˜์ง€ ์•Š๊ณ  '๋‚จ์€ ์‹œ๊ฐ์„ ์ง์ ‘ ๊ฐ•ํ™”'. ์ž”์กด์‹œ๋ ฅ ํ™œ์šฉ์˜ ์ด๋™์„ฑ ๊ฐœ์„  ํšจ๊ณผ๊ฐ€ ์ž…์ฆ๋œ ๋ฐฉํ–ฅ(Angelopoulos et al., 2019; Rubegni et al., 2025)์„ ์‹ค์‹œ๊ฐ„ยท๋ชจ๋ฐ”์ผ๋กœ ๊ตฌํ˜„.


4. ๊ธฐ๋Œ€ํšจ๊ณผ ๋ฐ ํ™œ์šฉ๋ฐฉ์•ˆ

  • ์‚ฌํšŒ์ : ์•ผ๋งน์€ ํŠน์ • ์งˆํ™˜(๋ง๋ง‰์ƒ‰์†Œ๋ณ€์„ฑ์ฆยท๋…น๋‚ด์žฅยท๋‹น๋‡จ๋ง๋ง‰๋ณ‘์ฆ ๋“ฑ)๋ถ€ํ„ฐ ๊ณ ๋ น์ธต ์•ผ๊ฐ„ ์‹œ๋ ฅ ์ €ํ•˜๊นŒ์ง€ ํญ๋„“๊ฒŒ ๋ฐœ์ƒ. ์ทจ์•ฝ๊ณ„์ธต์˜ ์•ผ๊ฐ„ ์ด๋™๊ถŒ์„ ํšŒ๋ณตํ•ด ์‚ฌํšŒํ™œ๋™ ์ฐธ์—ฌ ํ™•๋Œ€์— ๊ธฐ์—ฌ.
  • ๊ธฐ์ˆ ์ : GPU ์˜์ƒ์ฒ˜๋ฆฌ ๊ธฐ๋ฐ˜ ์ €์กฐ๋„ ๊ฐœ์„ , AI ๊ฐ์ฒดํƒ์ง€, ์˜จ๋””๋ฐ”์ด์Šค ์ถ”๋ก  ์ตœ์ ํ™”๋ฅผ ์Šค๋งˆํŠธํฐ ํ™˜๊ฒฝ์—์„œ ํ†ตํ•ฉ. ์ €์‚ฌ์–‘ ํ™˜๊ฒฝ์—์„œ ์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ์„ ํ™•๋ณดํ•˜๋Š” ํ†ตํ•ฉยท์ตœ์ ํ™” ๊ตฌ์กฐ๋Š” ๋‹ค๋ฅธ ์˜จ๋””๋ฐ”์ด์Šค ์‹ค์‹œ๊ฐ„ ์˜์ƒ AI ์‘์šฉ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ.
  • ๊ฒฝ์ œ์ : ๊ณ ๊ฐ€์˜ ๊ธฐ์กด ์ €์‹œ๋ ฅ ๋ณด์กฐ๊ธฐ๊ธฐ(80๋งŒ~300๋งŒ์›๋Œ€ ํ™•๋Œ€๋…์„œ๊ธฐ ๋“ฑ โ€” Kim et al., 2022) ๋Œ€๋น„ ์ ‘๊ทผ์„ฑ์ด ๋†’์•„, ๊ฒฝ์ œ์  ๋ถ€๋‹ด ์—†์ด ์ €์‹œ๋ ฅ ๋ณด์กฐ๋ฅผ ๋Œ€์ค‘ํ™”.
  • ๊ตฌํ˜„ ๊ฐ€๋Šฅ์„ฑ: ์ด๋ฏธ ๊ฒ€์ฆ๋œ ๊ณต๊ฐœ ๊ธฐ์ˆ (์ €์กฐ๋„ ๊ฐœ์„  ๋”ฅ๋Ÿฌ๋‹ยทYOLO ๊ณ„์—ด)์˜ ์กฐํ•ฉ์œผ๋กœ, ์‹ ๊ทœ ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์ด ์•„๋‹Œ ํ†ตํ•ฉยท์ตœ์ ํ™” ๊ณผ์ œ. ์ถ”๊ฐ€ ์„ผ์„œ ์—†์ด ์Šค๋งˆํŠธํฐ ์นด๋ฉ”๋ผ๋งŒ์œผ๋กœ ๋™์ž‘.
  • ๋ฐœ์ „ ๋‹จ๊ณ„: 1๋‹จ๊ณ„ ๋ชจ๋ฐ”์ผ ์•ฑ โ†’ 2๋‹จ๊ณ„ ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค ์ตœ์ ํ™”(์ €์ง€์—ฐยท์ €์ „๋ ฅ) โ†’ 3๋‹จ๊ณ„ ์Šค๋งˆํŠธ๊ธ€๋ž˜์Šค ํผํŒฉํ„ฐ ํƒ‘์žฌ.
  • ๊ฐœ์ธ์ •๋ณด: ์˜์ƒ์€ ๊ธฐ๊ธฐ ๋‚ด์—์„œ ์ฒ˜๋ฆฌยท์†Œ๋ฉธ๋˜์–ด ์„œ๋ฒ„ ์ „์†กยท์ €์žฅ์ด ์—†์Œ.

5. ์ถ”์ง„ ์ผ์ •

์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ

์•ผ๊ฐ„ ๋ณดํ–‰ ์˜์ƒ์—์„œ ๋ˆˆ๋ถ€์‹ฌ์„ ์–ต์ œํ•˜๊ณ  ์œ„ํ—˜ ์š”์†Œ(๊ณ„๋‹จยท๋ณดํ–‰์ž ๋“ฑ)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹๋ณ„ยท๊ฐ•์กฐํ•˜๋Š” ์‹œ๊ฐ๋ณด์กฐ ํ”„๋กœํ† ํƒ€์ž…. ๋ณธ์„  ํ˜„์žฅ์—์„œ ์นด๋ฉ”๋ผ ์ž…๋ ฅ โ†’ ์ฒ˜๋ฆฌ โ†’ ํ™”๋ฉด ์ถœ๋ ฅ์˜ ์‹ค์‹œ๊ฐ„ ๋ผ์ด๋ธŒ ์‹œ์—ฐ. ๋ชจ์˜ ์•ผ๊ฐ„ ์ฝ”์Šค ๋ณดํ–‰ ๋น„๊ต๋กœ ๊ฐœ์„  ํšจ๊ณผ์˜ ์ •๋Ÿ‰ ํ™•์ธ ๋ณ‘ํ–‰.

ํŒ€์›๋ณ„ ์—ญํ• 

์—ญํ•  ๋‹ด๋‹น ์ˆ˜ํ–‰ ๋‚ด์šฉ
AI ํŒŒ์ดํ”„๋ผ์ธยท์ด๊ด„ ํŒ€์žฅ 4๋‹จ๊ณ„ ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„ยทํ†ตํ•ฉ, ์ถ”๋ก  ์ตœ์ ํ™”(ONNX)ยท์‹ค์‹œ๊ฐ„ ์„ฑ๋Šฅ ํ™•๋ณด, ํ•™์Šต ํ™˜๊ฒฝยท๋ชจ๋ธ ๊ฒ€์ฆ ์ž๋™ํ™”, ํ”„๋กœ์ ํŠธ ์ด๊ด„ยท๋ฐœํ‘œ
๋ชจ๋ธ ํŒ€์›1 ๊ณ„๋‹จยท๋ณดํ–‰์ž ๊ฒ€์ถœ ๋ชจ๋ธ ์„ค๊ณ„ยทํ•™์ŠตยทํŠœ๋‹(๋กœ์ปฌ GPU), ์ƒ์„ฑํ˜• ์ฆ๊ฐ• ์‹คํ—˜, ์ €์กฐ๋„ ์ •ํ™•๋„ ๊ฐœ์„ ยท๋ชจ๋ธ ๊ฒฝ๋Ÿ‰ํ™”
์•ฑ ํŒ€์›2 ๋ฐ๋ชจ ์•ฑ ๊ตฌ์กฐ ๊ฐœ๋ฐœ, ์นด๋ฉ”๋ผ ์ž…๋ ฅ์ฒ˜๋ฆฌ์ถœ๋ ฅ ์—ฐ๋™ยทUI, ์‹ค๊ธฐ๊ธฐ ์„ฑ๋Šฅ ์•ˆ์ •ํ™”, ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ
๋ฐ์ดํ„ฐยท์‹œ์—ฐ ํŒ€์›3 ์œ„ํ—˜ ์š”์†Œ ์•ผ๊ฐ„ ์ดฌ์˜ยท๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ•ยท๋ผ๋ฒจ๋ง, ์•ผ๊ฐ„ ์‹œ์—ฐ ์˜์ƒยท๋ฐœํ‘œ์ž๋ฃŒ ์ œ์ž‘, ์‚ฌ์ „ ๋…นํ™” ์ž…๋ ฅ ๋ฐ๋ชจ ๋ชจ๋“œ ๊ตฌ์„ฑ

๊ฐœ๋ฐœ ์ผ์ • (7์›” ~ 9์›”)

  • 7์›” ์ดˆยท์ค‘: ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ยท์ธํ„ฐํŽ˜์ด์Šค ์ •์˜, ๋ชจ๋ธ ์„ ์ •ยท๋ฒ ์ด์Šค๋ผ์ธ ํ•™์Šต, ์•ฑ ๊ตฌ์กฐ ์„ค๊ณ„ยทํ™˜๊ฒฝ ์…‹์—…, ์•ผ๊ฐ„ ์ดฌ์˜ยท๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์ถ•
  • 8์›”: ํŒŒ์ดํ”„๋ผ์ธ ๊ฐœ๋ฐœยท์ถ”๋ก  ์ตœ์ ํ™”, ๊ณ„๋‹จยท๋ณดํ–‰์ž ๊ฒ€์ถœ ๋ชจ๋ธ ํ•™์ŠตยทํŠœ๋‹, ์ž…๋ ฅ์ฒ˜๋ฆฌ์ถœ๋ ฅ ์—ฐ๋™ยทUI, ๋ฐ์ดํ„ฐ ๋ผ๋ฒจ๋งยท์ •๋ฆฌ
  • 9์›” ์ดˆ: 4๋‹จ๊ณ„ ํ†ตํ•ฉยทํ”„๋กœํ† ํƒ€์ž… ์™„์„ฑ, ์ €์กฐ๋„ ์ •ํ™•๋„ ๊ฐœ์„ ยท๊ฒฝ๋Ÿ‰ํ™”, ์„ฑ๋Šฅ ์•ˆ์ •ํ™”ยทํ˜„์žฅ ๋ฐ๋ชจ, ์‹œ์—ฐ์˜์ƒยท๋ฐœํ‘œ์ž๋ฃŒยท๋…นํ™” ๋ฐ๋ชจ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋Š” uv๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์˜์กด์„ฑ์€ pyproject.toml์— ์„ ์–ธํ•˜๊ณ  uv.lock์œผ๋กœ ๋ฒ„์ „์„ ๊ณ ์ •ํ•œ๋‹ค.

์…‹์—… (ํŒ€์› ๊ณตํ†ต)

winget install astral-sh.uv     # uv ๋ฏธ์„ค์น˜ ์‹œ 1ํšŒ
uv sync                         # .venv ์ƒ์„ฑ + ์˜์กด์„ฑ ์„ค์น˜ (lock ๊ธฐ์ค€ ๋™์ผ ํ™˜๊ฒฝ ์žฌํ˜„)

์‹คํ–‰

uv run python scripts/xxx.py                # ๊ถŒ์žฅ โ€” ๊ฐ€์ƒํ™˜๊ฒฝ ์ž๋™ ์‚ฌ์šฉ
uv run python scripts/inspect_datasets.py   # ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ (๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ์‹œ๋งˆ๋‹ค)

๋…ธํŠธ๋ถ์€ ipykernel๋งŒ ์„ค์น˜๋ผ ์žˆ๋‹ค. VS Code์—์„œ .ipynb๋ฅผ ์—ด๊ณ  ์ปค๋„๋กœ .venv(Python 3.13) ๋ฅผ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. JupyterLab UI๊ฐ€ ํ•„์š”ํ•˜๋ฉด uv add --dev jupyterlab ํ›„ uv run jupyter lab.

โš ๏ธ ๋…ธํŠธ๋ถ์€ ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ๋ฅผ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ƒ์œ„/data๋กœ ์žก๋Š”๋‹ค. ๋…ธํŠธ๋ถ์ด ๋“ค์–ด ์žˆ๋Š” ํด๋”(scripts/ ๋˜๋Š” notebooks/)๋ฅผ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์—ด์ง€ ์•Š์œผ๋ฉด ์ฒซ ์…€์˜ ๊ฒฝ๋กœ assert๊ฐ€ ์‹คํŒจํ•œ๋‹ค.

์˜์กด์„ฑ ๋ณ€๊ฒฝ

uv add <ํŒจํ‚ค์ง€>                  # pyproject.toml + uv.lock ์ž๋™ ๊ฐฑ์‹ 

pip install์„ ์ง์ ‘ ์“ฐ์ง€ ๋ง ๊ฒƒ โ€” uv.lock๊ณผ ์‹ค์ œ ํ™˜๊ฒฝ์ด ์–ด๊ธ‹๋‚˜ ํŒ€์› ๊ฐ„ ํ™˜๊ฒฝ ์žฌํ˜„์ด ๊นจ์ง„๋‹ค.

uv๋ฅผ ์“ฐ๋Š” ์ด์œ 

  • CUDA ๋นŒ๋“œ ๊ณ ์ •: pyproject.toml์˜ [tool.uv.sources]์—์„œ torchยทtorchvision์„ PyTorch ์ „์šฉ ์ธ๋ฑ์Šค(cu130)์— explicit = true๋กœ ๋ชป๋ฐ•์•„ ๋‘ . ์„ค์น˜ ์ˆœ์„œ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ CPU ๋นŒ๋“œ๊ฐ€ ์„ž์ด์ง€ ์•Š๋Š”๋‹ค. (pip์€ ultralytics๋ฅผ ๋จผ์ € ์„ค์น˜ํ•˜๋ฉด CPUํŒ torch๊ฐ€ ๋”ธ๋ ค์™€ GPU ํ•™์Šต์ด ์ฃฝ๋Š”๋‹ค)
  • ํ™˜๊ฒฝ ์žฌํ˜„: uv.lock์„ ์ปค๋ฐ‹ํ•ด 4์ธ ํŒ€์ด ๋™์ผํ•œ ๋ฒ„์ „ ์กฐํ•ฉ์„ ๊ณต์œ .
  • ์†๋„: torch CUDA ํœ (์•ฝ 1.8GB) ๋“ฑ ๋Œ€์šฉ๋Ÿ‰ ์˜์กด์„ฑ ์„ค์น˜๊ฐ€ ๋น ๋ฆ„.

๊ฒ€์ฆ๋œ ๊ตฌ์„ฑ (2026-07-26)

ํ•ญ๋ชฉ ๋ฒ„์ „
Python 3.13 (requires-python = "==3.13.*")
torch / torchvision 2.13.0+cu130 / 0.28.0+cu130
ultralytics 8.4.106
opencv-python 5.0.0
numpy 2.5.1
onnxruntime-gpu 1.28.0 โ€” CUDAยทTensorRT EP ์ธ์‹ ํ™•์ธ (๋กœ์ปฌ ๊ฒ€์ฆ์šฉ, ํฐ ๋ฐฐํฌ ๊ฒฝ๋กœ์™€ ๋ฌด๊ด€)
ํ•™์Šต GPU NVIDIA RTX 4060 Ti (VRAM 8GB)

VRAM 8GB ์ œ์•ฝ: โ‘ก ์ €์กฐ๋„ ๊ฐœ์„ ์„ 720p ํ’€ํ•ด์ƒ๋„๋กœ ํ•™์Šตํ•˜๋ฉด OOM ์œ„ํ—˜. ํŒจ์น˜ ํ•™์Šต(256~384 ํฌ๋กญ) ์ „์ œ๋กœ ์„ค๊ณ„ํ•  ๊ฒƒ โ€” hardware_inference.md์˜ "๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ํ•ด์ƒ๋„ ํ•˜ํ–ฅ" ๋ฐฉ์นจ๊ณผ๋„ ์ผ์น˜.


์ €์žฅ์†Œ ๊ตฌ์กฐ

โ”œโ”€โ”€ README.md                       ๊ธฐํš + ์ง„ํ–‰ ํ˜„ํ™ฉ + ํ™˜๊ฒฝ (์ด ๋ฌธ์„œ)
โ”œโ”€โ”€ CLAUDE.md                       AI ์–ด์‹œ์Šคํ„ดํŠธ์šฉ ํ”„๋กœ์ ํŠธ ๊ทœ์น™
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ STATUS.md              โ˜… ํ˜„์žฌ ์ƒํƒœ ํ•œ ์žฅ โ€” **์—ฌ๊ธฐ๋ถ€ํ„ฐ ์ฝ๋Š”๋‹ค**
โ”‚   โ”œโ”€โ”€ TODO.md                     ์ „์ฒด ์ž‘์—… TODO โ€” ํฌ๋ฆฌํ‹ฐ์ปฌ ํŒจ์Šคยท๋ณ‘๋ ฌ ํŠธ๋ž™ยท์ผ์ •
โ”‚   โ”œโ”€โ”€ data.md                     ๋ฐ์ดํ„ฐ ํ˜„ํ™ฉ ยท AI Hub ยท ๊ณ„๋‹จ ๋ฐฉ์‹ ๊ฒฐ์ • ๊ทผ๊ฑฐ
โ”‚   โ”œโ”€โ”€ detection.md                โ‘ข ํƒ์ง€ โ€” ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ ยท C4/C4b ํŒ์ • ยท ๊ณ„๋‹จ ๋„๋ฉ”์ธ
โ”‚   โ”œโ”€โ”€ lowlight_classical.md       โ‘ก ๊ณ ์ „ ๊ธฐ๋ฒ• ์ง€ํ˜•๋„ ยท arm ์‹ค์ธก ยท ์ง€ํ‘œ ์žฌ์„ค๊ณ„
โ”‚   โ”œโ”€โ”€ labeling_stairs.md          `stairs` ๋ผ๋ฒจ ์ž‘์—… ๊ฐ€์ด๋“œ (C3 ์ž‘์—…์ž์šฉ)
โ”‚   โ”œโ”€โ”€ hardware_inference.md       ๋ชจ๋ฐ”์ผ ๋Ÿฐํƒ€์ž„ยท์–‘์žํ™” ยท FPS ๋ณ‘๋ชฉ ยท ํผํŒฉํ„ฐ
โ”‚   โ”œโ”€โ”€ share_yolo_c4b_*.md         ํŒ€ ๊ณต์œ  โ€” โ‘ข ๊ฒฐ๊ณผ + ์•ฑํŒ€ ์ธ์ˆ˜์ธ๊ณ„
โ”‚   โ”œโ”€โ”€ archive/                    ๐Ÿ“ฆ ์ข…๊ฒฐ๋œ ์‹คํ—˜ยท๊ฒฐ์ • ์›๋ฌธ (์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์˜ฎ๊ธด๋‹ค)
โ”‚   โ””โ”€โ”€ ์•„์ด๋””์–ด๊ธฐํš์„œ_๋ฐค๋งˆ์‹ค_20260729.pdf    ์›๋ณธ ๊ธฐํš์„œ (์ˆ˜์ • ๊ธˆ์ง€)
โ”œโ”€โ”€ scripts/                        โ†’ ๋ชฉ๋กยท์šฉ๋„๋Š” **scripts/README.md** ์— ์žˆ๋‹ค
โ”œโ”€โ”€ notebooks/
โ”‚   โ”œโ”€โ”€ detect_c4_review.ipynb      โ‘ข ์˜ˆ์ธก ๊ฒฐ๊ณผ ์œก์•ˆ ๊ฒ€ํ†  (์ง€๋ฆ„๊ธธยท์•ผ๊ฐ„ ์‹คํŒจ ๋ถ„์„)
โ”‚   โ”œโ”€โ”€ stairs_night_review.ipynb   โ‘ข ๊ณ„๋‹จ ์•ผ๊ฐ„ ํƒ์ง€๊ฐ€ ์™„๋ฃŒ๋๋Š”๊ฐ€ (๊ทธ๋ฆผ์œผ๋กœ)
โ”‚   โ”œโ”€โ”€ colab_aihub_train.ipynb     โ˜… AIHub โ†’ Colab ํ•™์Šต (GPU ์—†๋Š” PC ์—์„œ๋„)
โ”‚   โ”œโ”€โ”€ lowlight_arms_review.ipynb  โ‘ก arm ์œก์•ˆ ๊ฒ€ํ†  (ํ†ค์ปค๋ธŒยท๊ฐ•๊ด‘์›/์•”๋ถ€ ํ™•๋Œ€)
โ”‚   โ”œโ”€โ”€ lowlight_lol_review.ipynb   โ‘ก arm ์ฐจ์ด ์„ค๋ช… + LOL ๋น„๊ต + ์ž์ฒด ์ดฌ์˜๋ณธ
โ”‚   โ””โ”€โ”€ stair_hybrid_baseline.ipynb ๊ณ„๋‹จ ๊ณ ์ „ CV ์ •๋Ÿ‰ ํ‰๊ฐ€ (โ†’ ๊ธฐ๊ฐ ๊ทผ๊ฑฐ)
โ”œโ”€โ”€ data/                           raw ๋ฐ์ดํ„ฐ (git ๋น„์ถ”์ , **์›๋ณธ ๋ฏธ์ˆ˜์ •**)
โ”œโ”€โ”€ outputs/                        ์‹คํ—˜ ์‚ฐ์ถœ๋ฌผ (git ๋น„์ถ”์ )

data/ ๋ฐฐ์น˜

.gitignore๋กœ ์ถ”์ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํŒ€์›์ด ๊ฐ์ž ์•„๋ž˜ ๊ตฌ์กฐ๋กœ ๋‚ด๋ ค๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๋ฐฐ์น˜ ํ›„ inspect_datasets.py๋กœ ๊ฒ€์ฆํ•  ๊ฒƒ.

data/
โ”œโ”€โ”€ LoLI-Street/LoLI-Street Dataset/   TrainยทVal(low/high) + Test + YOLO Annotations
โ”œโ”€โ”€ LOLdataset/                        our485/ ยท eval15/ (๊ฐ low/high)
โ”œโ”€โ”€ Stair dataset/                     train/ ยท val/ (๊ฐ images/labels)
โ”œโ”€โ”€ ExDark/                            ExDark_data/ ยท ExDark_Annno/ (ํด๋ž˜์Šค๋ณ„ 12๊ฐœ ํ•˜์œ„ ํด๋”)
โ””โ”€โ”€ NightOwls/  โ†’ D:\datasets\NightOwls  (Junction)   Validation 51,848์žฅ + ๋ผ๋ฒจ JSON

NightOwls ๋Š” D๋“œ๋ผ์ด๋ธŒ์— ์žˆ๋‹ค. 53.5 GiB ๋ผ C ์—ฌ์œ (77 GiB)๋กœ๋Š” ๋‹ค์šด๋กœ๋“œ+ํ•ด์ œ๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์–ด D:\datasets\NightOwls\ ์— ๋‘๊ณ  Junction ์œผ๋กœ data/NightOwls ์— ์—ฐ๊ฒฐํ–ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ๊ฒฝ๋กœ ๋ถ„๊ธฐ๋Š” ๋ถˆํ•„์š”ํ•˜๋‹ค.

New-Item -ItemType Junction -Path "<์ €์žฅ์†Œ>\data\NightOwls" -Target "D:\datasets\NightOwls"

์ทจ๋“ ๋ช…๋ นยท๋ผ๋ฒจ ๊ตฌ์„ฑยท์„ ํƒ ํ•ด์ œ ๋ฐฉ์นจ์€ data.md 5-2 ์ฐธ๊ณ .

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages