Hansung-Cho commited on
Commit
ac0027b
ยท
verified ยท
1 Parent(s): 2f3b2bf

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +184 -3
README.md CHANGED
@@ -1,3 +1,184 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ - ko
5
+ license: mit
6
+ tags:
7
+ - vision
8
+ - object-detection
9
+ - yolov8
10
+ - ultralytics
11
+ - pytorch
12
+ - safety
13
+ - ppe
14
+ - hardhat
15
+ - mask
16
+ - construction
17
+ library_name: ultralytics
18
+ pipeline_tag: object-detection
19
+ ---
20
+
21
+ # ๐Ÿฆบ YOLOv8 PPE Detection โ€“ End-to-End Safety Vision Model
22
+
23
+ **Author:** Hansung Cho
24
+ **Model:** YOLOv8n fine-tuned for PPE (Personal Protective Equipment) detection on construction-like scenes.
25
+
26
+ ์ด ๋ชจ๋ธ์€ ๊ฑด์„ค ํ˜„์žฅ ๋“ฑ์˜ ์ด๋ฏธ์ง€/์˜์ƒ์—์„œ **์•ˆ์ „๋ชจ(Hardhat), ๋งˆ์Šคํฌ, ์•ˆ์ „์กฐ๋ผ(Safety Vest), ์‚ฌ๋žŒ(Person)** ๋“ฑ PPE ์ฐฉ์šฉ ์—ฌ๋ถ€๋ฅผ ํƒ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•™์Šต๋œ YOLOv8 ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ํƒ์ง€ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
27
+
28
+ - Custom PPE dataset ๊ธฐ๋ฐ˜ fine-tuning
29
+ - Web / FastAPI / Webcam๊นŒ์ง€ ์—ฐ๋™๋œ End-to-End ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ๋ชจ๋ธ
30
+ - Hugging Face Hub์—์„œ ๋ฐ”๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
31
+
32
+ ---
33
+
34
+ ## ๐Ÿง  Model Description
35
+
36
+ - **Base model:** YOLOv8n (Ultralytics)
37
+ - **Task:** Object Detection (Bounding Box)
38
+ - **Domain:** Construction site & industrial safety PPE detection
39
+ - **Classes (์˜ˆ์‹œ):**
40
+ - `Person`
41
+ - `Hardhat`
42
+ - `No-Hardhat`
43
+ - `Safety Vest`
44
+ - `No-Safety Vest`
45
+ - `Mask`
46
+ - `No-Mask`
47
+ - + ๊ธฐํƒ€ PPE ๊ด€๋ จ ํด๋ž˜์Šค (์ด ์•ฝ 10๊ฐœ)
48
+
49
+ ๋ณธ ๋ชจ๋ธ์€ ์‚ฌ๋žŒ + PPE ์ฐฉ์šฉ ์—ฌ๋ถ€๋ฅผ ๋™์‹œ์— ํƒ์ง€ํ•˜์—ฌ
50
+ Web UI / Webcam / FastAPI ์„œ๋ฒ„์—์„œ ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ  ์‹œ์Šคํ…œ ๊ตฌ์ถ•์— ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
51
+
52
+ ---
53
+
54
+ ## ๐Ÿ“Š Training & Evaluation
55
+
56
+ ### Validation ์„ฑ๋Šฅ (YOLOv8n Fine-tuning, Validation Set ๊ธฐ์ค€)
57
+
58
+ | Metric | Score |
59
+ |---------------|--------|
60
+ | **mAP@0.50** | 0.744 |
61
+ | **mAP@0.50:0.95** | 0.436 |
62
+ | **Precision** | 0.831 |
63
+ | **Recall** | 0.685 |
64
+
65
+ ---
66
+
67
+ ## ๐Ÿ“ Training Data
68
+
69
+ - Public PPE / construction-related datasets (Kaggle ๋“ฑ)
70
+ - RGB ์ด๋ฏธ์ง€
71
+ - Bounding box + class label
72
+ - Hardhat / No-Hardhat / Mask / No-Mask / Safety Vest / No-Safety Vest / Person ๋“ฑ
73
+
74
+ > ๋ฐ์ดํ„ฐ์…‹ ์ž์ฒด๋Š” ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉฐ,
75
+ > ๋ผ์ด์„ ์Šค๋Š” ๋ฐ์ดํ„ฐ ์ œ๊ณต์ฒ˜๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
76
+
77
+ ---
78
+
79
+ ## โš™๏ธ How to Use
80
+
81
+ ### Ultralytics YOLO + Hugging Face Hub
82
+
83
+ ```python
84
+ from huggingface_hub import hf_hub_download
85
+ from ultralytics import YOLO
86
+
87
+ ckpt_path = hf_hub_download(
88
+ repo_id="Hansung-Cho/yolov8-ppe-detection",
89
+ filename="best.pt"
90
+ )
91
+
92
+ model = YOLO(ckpt_path)
93
+ results = model("your_image.jpg")
94
+ results[0].plot()
95
+ ```
96
+
97
+ ### Command Line (CLI)
98
+
99
+ ```bash
100
+ yolo task=detect mode=predict \
101
+ model="https://huggingface.co/Hansung-Cho/yolov8-ppe-detection/resolve/main/best.pt" \
102
+ source="your_image_or_video.mp4" \
103
+ conf=0.25
104
+ ```
105
+
106
+ ---
107
+
108
+ ## ๐ŸŽฏ Intended Uses & Use Cases
109
+
110
+ ### Intended
111
+ - ๊ฑด์„ค ํ˜„์žฅ CCTV / Webcam ๋ชจ๋‹ˆํ„ฐ๋ง
112
+ - PPE ์ฐฉ์šฉ ์—ฌ๋ถ€ ์ž๋™ ์ ๊ฒ€
113
+ - ์•ˆ์ „ ๊ต์œก PoC / ๋ฐ๋ชจ
114
+ - FastAPI + Web UI ์‹ค์‹œ๊ฐ„ ๊ฒฝ๊ณ  ์‹œ์Šคํ…œ
115
+
116
+ ### Not Intended
117
+ - ๋ฒ•์  ์ œ์žฌ/์ง•๊ณ„์˜ ์œ ์ผํ•œ ๊ทผ๊ฑฐ
118
+ - ์˜๋ฃŒ/์ƒ๋ช… ์•ˆ์ „์˜ ๋‹จ๋… ํŒ๋‹จ ๊ธฐ์ค€
119
+ - ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ(์ผ์ƒ์‚ฌ์ง„/์Šคํฌ์ธ  ๋“ฑ)์—์„œ ์‚ฌ์šฉ
120
+
121
+ ---
122
+
123
+ ## โš ๏ธ Limitations & Ethical Considerations
124
+
125
+ - **๋„๋ฉ”์ธ ํŽธํ–ฅ:** ์‹ค๋‚ดยท์•ผ๊ฐ„ยทํŠน์ˆ˜๋ณต์žฅ ํ™˜๊ฒฝ์—์„œ ์„ฑ๋Šฅ ์ €ํ•˜ ๊ฐ€๋Šฅ
126
+ - **Occlusion:** ๊ฐ€๋ ค์ง„ ๊ฒฝ์šฐ ์˜คํƒ/๋ฏธํƒ ๊ฐ€๋Šฅ
127
+ - **Low Resolution:** ๋ฉ€๋ฆฌ ์žˆ๋Š” ์ธ๋ฌผ ํƒ์ง€ ์–ด๋ ค์›€
128
+ - **Ethical Use:**
129
+ - ๋ณด์กฐ์  ๊ฒ€์‚ฌ ๋„๊ตฌ๋กœ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
130
+ - ์ธ๊ถŒยท๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•จ
131
+
132
+ ---
133
+
134
+ ## ๐Ÿงช Evaluation & Reproducibility
135
+
136
+ - **Framework:** Ultralytics YOLOv8 / PyTorch
137
+ - **Hardware:** Colab GPU / ๋‹จ์ผ GPU
138
+ - **Notebook:** `training/YOLO_PPE.ipynb`
139
+
140
+ ### Visualization Assets
141
+ - Training curves (`results.png`)
142
+ - Confusion matrix (`confusion_matrix.png`)
143
+ - PR Curve (`BoxPR_curve.png`)
144
+ - F1 Curve (`BoxF1_curve.png`)
145
+ - Prediction example (`example.png`)
146
+
147
+ ---
148
+
149
+ ## ๐Ÿงฉ Integration Example (FastAPI + Web)
150
+
151
+ ### Backend
152
+ - FastAPI server (`backend/app.py`)
153
+ - `/predict` โ†’ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ํ›„ YOLO ์ถ”๋ก 
154
+ - bounding box๊ฐ€ ํฌํ•จ๋œ ๊ฒฐ๊ณผ๋ฅผ base64๋กœ ๋ฐ˜ํ™˜
155
+
156
+ ### Frontend
157
+ - HTML / JavaScript (`index.html`, `webcam.html`)
158
+ - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ / ์‹ค์‹œ๊ฐ„ Webcam ์ŠคํŠธ๋ฆผ
159
+ - NO-Hardhat, NO-Mask ๋“ฑ ์œ„ํ—˜ ์š”์†Œ ๊ฐ์ง€
160
+
161
+ ### Local
162
+ - `local/webcam_ppe.py` โ†’ ๋กœ์ปฌ ์›น์บ  ์‹ค์‹œ๊ฐ„ ๊ฐ์ง€
163
+
164
+ > ์ „์ฒด ์‹œ์Šคํ…œ ๊ตฌํ˜„์€ GitHub ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
165
+
166
+ ---
167
+
168
+ ## ๐Ÿ“š Citation
169
+
170
+ ```
171
+ Cho, Hansung. "YOLOv8 PPE Detection โ€“ End-to-End AI System for Safety Monitoring."
172
+ Hugging Face Model Hub, 2025.
173
+ ```
174
+
175
+ ---
176
+
177
+ ## ๐Ÿ“ฌ Contact & References
178
+
179
+ - **GitHub Project Repository:** https://github.com/Hansung-Cho/YOLO_PPE
180
+ - **GitHub Profile:** https://github.com/Hansung-Cho
181
+ - **Model Page:** https://huggingface.co/Hansung-Cho/yolov8-ppe-detection
182
+ - **Ultralytics YOLOv8 Source:** https://github.com/ultralytics/ultralytics
183
+
184
+ Feel free to open an issue or reach out for questions, collaboration, or improvements.