FlaskServer
https://github.com/Nevita-INU/Capstone_flask.git
YOLO
https://github.com/Nevita-INU/helmet_project_YOLO.git
- νλ‘μ νΈ μ΄λ¦: Nevita
- νλ‘μ νΈ μ€λͺ : μ€λ§νΈ IoT μΌμμ YOLOv8μ νμ©ν ν¬λ©§ μ°©μ© μ¬λΆ νμΈ μ λ ν₯보λ μΉ μλΉμ€
μ λ ν₯보λ μ¬μ©μλ€μ μμ μ μν΄ ν¬λ©§ μ°©μ©μ λ λ €νκ³ μ μ€λ§νΈ ν¬λ©§κ³Ό μΉ μλΉμ€λ₯Ό κ°λ°νμλ€. ν¬λ©§ λ―Έμ°©μ©μΌλ‘ μΈν μ¬κ³ μ μ΄μ©μμ λΆνΈμ μ€μ΄λ©°, 곡μ ν₯보λ μ 체μ μ΄μ©μ κ°μ λ¬Έμ λ₯Ό ν΄κ²°νκ³ μ νλ€.
ν¬λ©§ μ°©μ© μ¬λΆλ₯Ό νλ¨νκΈ° μν΄ μ μΈμ κ·Όμ μΌμλ₯Ό νμ©ν λ°©μκ³Ό YOLOv8 κΈ°λ° κ°μ²΄ κ°μ§ λͺ¨λΈμ μ΄μ©ν λ°©λ²μ΄ μλ€. νμ§λ§ κ° λ°©μμ λ¨λ μΌλ‘ μ¬μ©ν κ²½μ° λ¬Έμ μ μ΄ λ°μν μ μλ€.
-
μ μΈμ κ·Όμ μΌμ λ°©μ
- μ¬μ©μκ° ν¬λ©§μ λ¨Έλ¦¬κ° μλ λ€λ₯Έ λΆμμ μ μ΄ν κ°λ₯μ±μ΄ μμ
- λ μ¨λ μ¨λ λ³νμ μν μ€λ₯ λ°μ κ°λ₯
- κΈ°κΈ° νμμΌλ‘ μΈν΄ μΌμμ μ νλκ° μ νλ μν
-
YOLOv8 κΈ°λ° κ°μ²΄ κ°μ§ λͺ¨λΈ λ°©μ
- μ¬μ§ μΈμ¦ ν μ¬μ©μκ° ν¬λ©§μ λ²μ κ°λ₯μ±μ΄ μ‘΄μ¬
- μΈμ¦ ν μ€μκ° μ°©μ© μ¬λΆλ₯Ό κ°μ§νμ§ λͺ»νλ νκ³
μ΄λ¬ν λ¨μ μ 보μνκΈ° μν΄ μ μΈμ κ·Όμ μΌμμ YOLOv8 κΈ°λ° κ°μ²΄ κ°μ§ λͺ¨λΈμ κ²°ν©ν μ΄μ€ μΈμ¦ μμ€ν
μ λμ
νμλ€.
1μ°¨ μΈμ¦μΌλ‘ μ μΈμ κ·Όμ μΌμλ₯Ό μ¬μ©νμ¬ μ°©μ© μ¬λΆλ₯Ό κ°μ§νκ³ , 2μ°¨ μΈμ¦μΌλ‘ μΉ μ¬μ΄νΈμ μ¬μ©μμ ν¬λ©§ μ°©μ© μ¬μ§μ μ
λ‘λνμ¬ ν¬λ©§ μ°©μ©μ μΆκ°λ‘ νμΈνλ λ°©μμ΄λ€.
μ΄ λ κ°μ§ μΈμ¦ λ°©μμ ν¨κ» νμ©ν¨μΌλ‘μ¨ μ°©μ© μ¬λΆλ₯Ό λ³΄λ€ μ ννκ³ μ² μ νκ² νμΈν μ μμΌλ©°, μ λ ν₯보λ μ¬μ©μλ€μ΄ λμ± μμ νκ² μ΄μ©ν μ μλ νκ²½μ μ 곡νλ€.
- ν¬λ©§ λ΄ μ μΈμ κ·Όμ μΌμκ° 1μ°¨μ μΌλ‘ ν¬λ©§ μ°©μ© μ¬λΆλ₯Ό νμΈ
- μ¬μ©μκ° ν¬λ©§ μ°©μ© μ΄λ―Έμ§λ₯Ό μΉ μλΉμ€μ μ λ‘λνλ©΄ YOLOv8 κΈ°λ° κ°μ²΄ κ°μ§ λͺ¨λΈμ ν΅ν΄ 2μ°¨λ‘ ν¬λ©§ μ°©μ© μ¬λΆλ₯Ό νμΈ
- ν¬λ©§ λ―Έμ°©μ© μ μ λ ν₯보λ μ΄ν μ ν β μμ μ± κ°ν
- ν¬λ©§ μ°©μ© μ LEDμ μ€νΌμ»€ λͺ¨λμ΄ νμ±ν β μ°©μ© λ° ν΄μ μνλ₯Ό μ¬μ©μμκ² μλ΄
- ν¬λ©§ μ°©μ© μ¬λΆλ₯Ό νλ³νκΈ° μν΄ YOLOv8 κΈ°λ° κ°μ²΄ κ°μ§ λͺ¨λΈμ μ¬μ©
- βhelmetβκ³Ό βno_helmetβ λ κ°μ§ ν΄λμ€λ‘ ꡬλΆνμ¬ νμ΅ μ§ν
- ν¬λ©§ μ°©μ© μ 0, λ―Έμ°©μ© μ 1λ‘ λΌλ²¨λ§νμ¬ λ°μ΄ν°μ κ΅¬μΆ ν λͺ¨λΈ νμ΅
- μ¬μ©μκ° μ λ‘λν μ΄λ―Έμ§λ₯Ό YOLOv8μ ν΅ν΄ λΆμ, λΉ λ₯΄κ³ μ ννκ² ν¬λ©§ μ°©μ© μ¬λΆ κ²μ¦
- μμ μ±μ κ°ννκΈ° μν 2μ°¨ μΈμ¦ μλ¨μΌλ‘ νμ©
- ν¬λ©§ μ°©μ© μ¬λΆ κ²μ¦ κ³Όμ μμ μ μΈμ κ·Όμ μΌμμ YOLOv8 κΈ°λ° κ°μ²΄ κ°μ§ λͺ¨λΈμ ν΅ν©νμ¬ μ¬μ©μ μμ μ±μ κ°ν
- μ μΈμ κ·Όμ μΌμλ‘ 1μ°¨ μ°©μ© μ¬λΆ κ°μ§ β MySQL DB μ μ₯
- μ¬μ©μκ° μΉ νμ΄μ§μ ν¬λ©§ μ°©μ© μ¬μ§ μ λ‘λ β Flask μλ²μμ YOLOv8 λͺ¨λΈ λΆμ β 2μ°¨ μΈμ¦ μν
- 1μ°¨ λ° 2μ°¨ μΈμ¦ μλ£ μ μ΄ν μμ νμ΄μ§λ‘ μ΄λ κ°λ₯
- μΈμ¦ μ€ν¨ μ λ€μ νμ΄μ§λ‘ μ΄λ λΆκ°
![]() κΉμ§λ―Ό |
![]() μ΄μ¬μ |
![]() μ΅λ―Όμ§ |
![]() λ°μλ―Έ |
BE | BE | DL | DL |
κ΅¬λΆ | κΈ°λ₯ | μ€λͺ |
---|---|---|
S/W | ν¬λ©§ μ°©μ© κ°μ§λ₯Ό μν νμ΅ λͺ¨λΈ (Yolov8) | 'helmet', 'no_helmet' λ κ°μ§μ ν΄λμ€λ₯Ό νμ΅νμ¬ μ¬μ©μκ° μ¬μ§μ μ λ‘λ νμ λ ν¬λ©§μ μ°©μ©νλμ§ νμΈν μ μλ λͺ¨λΈ μμ± |
[1μ°¨ μΈμ¦] μ μΈμ μΌμ κΈ°λ° ν¬λ©§ μ°©μ© μΈμ¦ | - μ μΈμ μΌμκ°μ λ°μ MySQL λ°μ΄ν°λ² μ΄μ€ sensor ν
μ΄λΈμ proximity κ°μ 1μ΄ μ μ₯λ¨ - βμΌμ νμΈνκΈ°β λ²νΌμ λλ¬ μ°©μ© μ¬λΆλ₯Ό νμΈ κ°λ₯. μ°©μ© μ (proximity=1) 2μ°¨ μΈμ¦ νμ΄μ§λ‘ μ΄λ, λ―Έμ°©μ© μ (proximity=0) λ€μ λ¨κ³λ‘ μ΄λ λΆκ° |
|
[2μ°¨ μΈμ¦] λ₯λ¬λ κΈ°λ° ν¬λ©§ μ°©μ© μΈμ¦ | - μ¬μ©μκ° ν¬λ©§ μ°©μ© μ¬μ§μ μ
λ‘λνλ©΄ Flask μλ²λ‘ μ΄λ―Έμ§ μ λ¬ - Flask μλ²μμ YOLOv8 λͺ¨λΈμ ν΅ν΄ μ¬μ§ λΆμ ν, ν¬λ©§ μ°©μ© 0, λ―Έμ°©μ© μ 1μ λΌλ²¨ κ°μ λ°ννμ¬ SpringBoot μΉμλ²λ‘ μ λ¬ - λΌλ²¨κ°μ΄ 0μΌ κ²½μ° μ΄ν μμ νμ΄μ§λ‘ μ΄λ, λΌλ²¨κ°μ΄ 1μΌ κ²½μ° λ€μ νμ΄μ§λ‘ μ΄λ λΆκ° |
|
H/W | μ μΈμ κ·Όμ μΌμ (TCRT5000) | - μ μΈμ μΌμλ₯Ό μ΄μ©ν΄ ν¬λ©§ μ°©μ©/ν΄μ μ¬λΆ κ°μ§ - 2cm λ΄μ μ₯μ λ¬Όμ κ°μ§νλ―λ‘ ν¬λ©§ μ°©μ© μ¬λΆ νμΈμ μ ν© |
νΌμμ‘° μ€νΌμ»€ λͺ¨λ | κ·Όμ μΌμλ₯Ό ν΅ν΄ ν¬λ©§ μ°©μ©/ν΄μ μΈμ μ μ€νΌμ»€ λͺ¨λλ‘ λ©λ‘λ μΆλ ₯ |


βNevitaβ λ©μΈ νμ΄μ§μμ βμΈμ¦νκ³ μ΄ν μμνκΈ°β λ²νΌμ ν΄λ¦νλ€. βsensorCheckβ νμ΄μ§λ‘ λμ΄κ°λ©΄ βμΌμ νμΈβ κ³Ό βμ¬μ§ μ λ‘λβ λ²νΌμ νμΈν μ μλλ°, μΌμ νμΈ λ²νΌμ ν΄λ¦νλ©΄ ν¬λ©§μ μΌμκ° μ°©μ©μ μΈμνκ³ λ°μ΄ν°λ² μ΄μ€μ μ°©μ©νμμ μ μ‘νλ€. μ΄ μ 보λ λ°μ΄ν°λ² μ΄μ€μμ κ°μ Έμ νμΈλλ©°, ν¬λ©§ μ°©μ©(proximity=1)μ΄ νμΈλλ©΄ 2μ°¨ μΈμ¦ νμ΄μ§λ‘ μ΄λν μ μλ€. 2μ°¨ μΈμ¦ νμ΄μ§μμΒ μ¬μ§ μ λ‘λ λ²νΌμ ν΄λ¦νμ¬ ν¬λ©§μ μ°©μ©ν μ¬μ§μ μ λ‘λν μ μλ€. μ΄λ, ν¬λ©§ μ°©μ© κ°μ§λ₯Ό νμ΅ν λͺ¨λΈμ΄ μ΄λ₯Ό νλ¨νλ€. class_id=0μ΄λ©° βhelmetβ λΌλ²¨μ΄ μΆλ ₯λλ©΄ ν¬λ©§ μ°©μ© μ¬μ§κΉμ§ νμΈμ΄ μλ£λλ€. μ΄λ¬ν 2μ°¨ μΈμ¦ μ§νμ΄ λλλ©΄ βμ΄ν μμβ νμ΄μ§λ‘ μ΄λν μ μλ€.
κ΅¬λΆ | νλͺ© | μ μ© λ΄μ |
---|---|---|
λ₯λ¬λ λͺ¨λΈ | OS | macOS |
κ°λ°νκ²½ (IDE) | Colab | |
κ°λ°λꡬ | λλ²κ±° (μ€λ₯ νμΈ, μ»΄νμΌ) | |
κ°λ°μΈμ΄ | Python (νμ΅ μ½λ) | |
μΉ κ°λ° | OS | macOS |
κ°λ°νκ²½ (IDE) | IntelliJ IDEA (μΉ μ ν리μΌμ΄μ κ°λ° νκ²½ μ€μ ) | |
κ°λ°λꡬ | Postman (API ν μ€νΈ μν) | |
κ°λ°μΈμ΄ | Java, JSP, HTML, CSS, Python (μλ² λ‘μ§ κ΅¬ν λ° UI ꡬμ±) |
λ²νΈ | νλͺ | μνμμμ μ£Όμ κΈ°λ₯ |
---|---|---|
1 | μλμ΄λ Έ μ°λ Έ 보λ | ν¬λ©§ μ°©μ© κ°μ§ μμ€ν κ°λ° |
2 | ν¬λ©§ | μ μΈμ κ·Όμ μΌμ, LED, μ€νΌμ»€ λΆμ°© |
Capstone_web
βββ src
βββ main
β βββ java
β β βββ com.mysite.nevita
β β βββ controller # 컨νΈλ‘€λ¬ (Controller)
β β βββ model # λ°μ΄ν° λͺ¨λΈ (Model)
β β βββ repository # λ°μ΄ν° μ μ₯μ (Repository)
β β βββ service # λΉμ¦λμ€ λ‘μ§ (Service)
β β βββ NevitaApplication # λ©μΈ μ ν리μΌμ΄μ
ν΄λμ€
β βββ resources
β β βββ static # μ μ 리μμ€ (CSS, JS, μ΄λ―Έμ§ λ±)
β β βββ application.properties # μ ν리μΌμ΄μ
μ€μ νμΌ
β βββ webapp
β β βββ WEB-INF
β β βββ views # JSP λ·° νμΌ (νλ‘ νΈμλ UI)
β β β βββ about.jsp
β β β βββ contact.jsp
β β β βββ index.jsp
β β β βββ photoUpload.jsp
β β β βββ sensorCheck.jsp
βββ βββ βββ βββ success.jsp
YOLOv8μ΄ validationμ μνν κ²°κ³Όμ΄λ€. μ¬μ§μ ν΅ν΄ ν¬λ©§μ λͺ¨λ β0: helmetβμΌλ‘ μΈμνκ³ μμΌλ©°, νμ‘μ΄λ ν¬λ©§ μ°©μ©μ νμ§ μμ μ¬μ§μ λͺ¨λ β1: no_helmetβμΌλ‘ μΈμνκ³ μλ κ²μ νμΈν μ μλ€.