์ ๋ ํฅ๋ณด๋ ์ด์ฉ ์ ํฌ๋ฉง ์ฐฉ์ฉ ์ฌ๋ถ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ๊ณ ์ฌ์ฉ์ ์ธ์ฆ์ ์ํํ๋ AI ๊ธฐ๋ฐ ์์ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค.
ํฌ๋ฉง์ ์ฐฉ์ฉํ์ง ์์ ์ฑ ์ ๋ ํฅ๋ณด๋๋ฅผ ์ด์ฉํ๋ ์ฌ๋ก๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ์นด๋ฉ๋ผ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ฉํ ํฌ๋ฉง ์ฐฉ์ฉ ์ฌ๋ถ ๊ฐ์ง ์์คํ
์ ๊ตฌํํ์ต๋๋ค.
์ค์๊ฐ์ผ๋ก ํฌ๋ฉง ์ฐฉ์ฉ ์ํ๋ฅผ ํ์ธํ๊ณ , ๋ ๊น๋นก์์ ํตํ ์ฌ์ฉ์ ์ธ์ฆ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ ์์ ํ ์ด๋ ํ๊ฒฝ์ ์กฐ์ฑํฉ๋๋ค.
- ์ ๋ ํฅ๋ณด๋ ๋์ฌ ์๋น์ค ์ด์ฉ๋ฅ ๊ธ์ฆ
- ์์ ์ฌ๊ณ ๊ฑด์ ์ฆ๊ฐ ๋ฐ ํฌ๋ฉง ๋ฏธ์ฐฉ์ฉ ๋ฌธ์ ์ฌ๊ฐ
- ๋ฒ์ ๊ท์ ์ค์ ๋ฐ ์ฌ์ ์ฌ๊ณ ์๋ฐฉ ํ์
- ํฌ๋ฉง ์ฐฉ์ฉ๋ฅ ์ฆ๊ฐ: ์๋ ๊ฐ์ง๋ฅผ ํตํ ์ฌ์ฉ์ ์ธ์ ๊ฐ์
- ๊ท์ ์ค์ ํ๊ฒฝ ์กฐ์ฑ: ์ฒด๊ณ์ ์ธ ๊ด๋ฆฌ ์์คํ ๊ตฌ์ถ
- ์ฌ๊ณ ์๋ฐฉ: ๊ณต์ ๋ชจ๋น๋ฆฌํฐ ์์ ์ฌ๊ณ ์ฌ์ ๋ฐฉ์ง
- ํ์ฅ ๊ฐ๋ฅ์ฑ: ๊ฑด์คํ์ฅ, ์คํ์ค ๋ฑ ๋ค์ํ ์ฐ์ ๋ถ์ผ์ ์ ์ฉ ๊ฐ๋ฅ
| ๊ธฐ์ | ์ค๋ช |
|---|---|
| OpenCV | ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฐ ์ค์๊ฐ ์์ ๋ถ์ |
| YOLOv8 | ํฌ๋ฉง ์ฐฉ์ฉ ์ฌ๋ถ ๊ฐ์ฒด ๊ฐ์ง |
| MediaPipe | ์ผ๊ตด ์ธ์ ๋ฐ ๋ ๊น๋นก์ ๊ฐ์ง๋ฅผ ํตํ ์ฌ์ฉ์ ์ธ์ฆ |
| Pandas | ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์ |
| Matplotlib | ๊ฐ์ง ๊ฒฐ๊ณผ ๋ฐ ํต๊ณ ์๊ฐํ |
| Streamlit | ์ฌ์ฉ์ ์ธ์ฆ ๊ฒฐ๊ณผ ์น ์ธํฐํ์ด์ค ์ ๊ณต |
helmet: ํฌ๋ฉง ์ฐฉ์ฉ ์ํno_helmet: ํฌ๋ฉง ๋ฏธ์ฐฉ์ฉ ์ํcap: ๋ชจ์ ์ฐฉ์ฉ ์ํonly_helmet: ํฌ๋ฉง๋ง ์์ (์ฐฉ์ฉ X)
- YOLOv8: ์ค์๊ฐ ํฌ๋ฉง ๊ฐ์ง
- MediaPipe: ๋ ๋ ๋ฒ ๊น๋นก์ด๋ฉด ์ฌ์ฉ์ ์ธ์ฆ
- QR ์ฝ๋ ์ค์บ: ์ถ๊ฐ ๋ณด์ ์ ์ฐจ
- Streamlit UI: ์ธ์ฆ ๊ฒฐ๊ณผ ๋ฐ ์๋ด ๋ฉ์์ง ์ถ๋ ฅ
- ์ ๋ฉด ๋ชจ์ ์ฌ์ง ๋ถ์กฑ โ ์ ๋ฉด ์ธ์ ์ ํ๋ ์ ํ
- ํฌ๋ฉง์ ๋ค๊ณ ์๋ ์ฌ์ง์
helmet์ผ๋ก ์๋ชป ์ธ์
cap์ ๋ฉด ์ฌ์ง ์ถ๊ฐ๋ก ๋ฐ์ดํฐ ๋ถ๊ท ํ ํด์only_helmetํด๋์ค ์ถ๊ฐ โ ์ค์ธ์ ๋ฐฉ์ง- ๋ค์ํ ๊ฐ๋์ ์ด๋ฏธ์ง ์์ฑ์ ์ํ ๋ฐ์ดํฐ ์ฆ๊ฐ ์ ์ฉ
| ๋ฌธ์ | ํด๊ฒฐ ๋ฐฉ์ |
|---|---|
| ์ ๋ฉด ๋ชจ์ ์ธ์ ํ๊ณ | ์ ๋ฉด ๋ชจ์ ์ด๋ฏธ์ง ์ถ๊ฐ, ์ฆ๊ฐ ๊ธฐ๋ฒ ํ์ฉ |
| ํฌ๋ฉง vs ๋ชจ์ ํผ๋ | only_helmet ๋ฐ์ดํฐ ๋ถ๋ฅ ๊ฐํ |
| ์๊ฒฝ ์ฐฉ์ฉ ์ ๋ ์ธ์ ์ค๋ฅ | ์กฐ๋ช ์ ์ด ๋ฐ ํํฐ๋ง ๊ธฐ๋ฒ ์ ์ฉ |
- ์นด๋ฉ๋ผ ์์ ์์ ํฌ๋ฉง์ ์ฐฉ์ฉ
- ์์คํ ์ด YOLOv8์ผ๋ก ์ค์๊ฐ ์ฐฉ์ฉ ์ฌ๋ถ ํ์ธ
- ๋์ ๋ ๋ฒ ๊น๋นก์ฌ ์ธ์ฆ ์ํ (MediaPipe ๊ธฐ๋ฐ)
- QR ์ฝ๋๋ฅผ ์ค์บํ์ฌ ๋ณด์ ์ธ์ฆ ์๋ฃ
- Streamlit ์น ํ์ด์ง์์ ์ธ์ฆ ๊ฒฐ๊ณผ ํ์ธ
ํด๋น ์์คํ ์ ์ ๋ ํฅ๋ณด๋ ์ธ์๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ ์์ /๊ณต๊ณต ์์ ๋ถ์ผ๋ก ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค:
- โ ๊ฑด์ค ํ์ฅ ์์ ์ฅ๋น ์ฐฉ์ฉ ๋ชจ๋ํฐ๋ง
- โ ๊ณต์ฅ ๋ด ์์ ์ ๋ณดํธ ์ฅ๋น ๊ฐ์ง
- โ ์คํ์ค ๋ด ์ค์๊ฐ ์์ ํ์ธ ์์คํ
- โ ์คํฌ์ธ ๋ณดํธ ์ฅ๋น ์ฐฉ์ฉ ์ฌ๋ถ ๊ฒ์ฆ
๋ณธ ํ๋ก์ ํธ๋ ์ค๋งํธํฉํ ๋ฆฌ ๊ต์ก๊ณผ์ 2์ฐจ ํ ํ๋ก์ ํธ๋ก ์งํ๋์์ต๋๋ค.
| ์ญํ | ๋ด๋น ์ ๋ฌด |
|---|---|
| ๐น ๋ฐ์ดํฐ ์์ง๋์ด๋ง | Roboflow๋ฅผ ํ์ฉํ ํ์ต ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ๋ฅ |
| ๐น ๋ชจ๋ธ ๊ฐ๋ฐ | YOLO ๋ชจ๋ธ ํ์ต, ์ฑ๋ฅ ๊ฐ์ ๋ฐ ์ต์ ํ |
| ๐น ์ปดํจํฐ ๋น์ | OpenCV๋ฅผ ํตํ ์ค์๊ฐ ๊ฐ์ฒด ํ์ง |
| ๐น ์ธ์ฆ ์์คํ | MediaPipe ๊ธฐ๋ฐ ๋ ๊น๋นก์ ๊ฐ์ง ๋ฐ QR ์ธ์ฆ ๋ก์ง ๊ตฌํ |
| ๐น ์๊ฐํ ๋ฐ UI | Matplotlib ๊ธฐ๋ฐ ํต๊ณ ๋ถ์ + Streamlit ์ธํฐํ์ด์ค ๊ตฌํ |
- โ ์ค์๊ฐ YOLOv8 ๊ธฐ๋ฐ ํฌ๋ฉง ๊ฐ์ง ์์คํ ๊ตฌํ
- โ ๋ ๊น๋นก์ + QR ์ธ์ฆ์ ํตํ ์ฌ์ฉ์ ์ธ์ฆ ํ๋ก์ธ์ค ์์ฑ
- โ ์ง๊ด์ ์ธ Streamlit UI๋ก ์ฌ์ฉ์ฑ ํ๋ณด
- โ ์ฐ์ ์ ๋ฐ์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ ํ๋ณด
- ๐ Velog ํ๋ก์ ํธ ํ๊ณ
- ๐ YOLOv8 ๊ณต์ ๋ฌธ์
- ๐ MediaPipe ๊ณต์ ๋ฌธ์
- ํฌ๋ฉง ์ฐฉ์ฉ ์ํ ์ธ์ ์ฌ์ฉ์ ํ์(์: ์์ฃผ ์ํ, ํด๋ํฐ ์ฌ์ฉ ๋ฑ) ์ธ์ ํ์ฅ
- WebRTC ๊ธฐ๋ฐ ์ค์๊ฐ ์์ ์คํธ๋ฆฌ๋ฐ ํตํฉ
- ๋ชจ๋ฐ์ผ ์ฑ ํํ๋ก ์ด์ (Flutter ๋ฑ)
# ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ์์กด์ฑ ์ค์น
pip install -r requirements.txt
# Streamlit ์ฑ ์คํ
streamlit run app.py