Skip to content

Nevita-INU/Capstone_web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation




0. Related Repository (μ—°κ΄€ λ ˆν¬μ§€ν† λ¦¬)

FlaskServer
https://github.com/Nevita-INU/Capstone_flask.git
YOLO
https://github.com/Nevita-INU/helmet_project_YOLO.git

1. Project Overview (ν”„λ‘œμ νŠΈ κ°œμš”)

  • ν”„λ‘œμ νŠΈ 이름: Nevita
  • ν”„λ‘œμ νŠΈ μ„€λͺ…: 슀마트 IoT μ„Όμ„œμ™€ YOLOv8을 ν™œμš©ν•œ 헬멧 착용 μ—¬λΆ€ 확인 전동 ν‚₯λ³΄λ“œ μ›Ή μ„œλΉ„μŠ€

기획 μ˜λ„

- 헬멧 착용 독렀 및 μ•ˆμ „μ„± κ°•ν™”

전동 ν‚₯λ³΄λ“œ μ‚¬μš©μžλ“€μ˜ μ•ˆμ „μ„ μœ„ν•΄ 헬멧 μ°©μš©μ„ λ…λ €ν•˜κ³ μž 슀마트 헬멧과 μ›Ή μ„œλΉ„μŠ€λ₯Ό κ°œλ°œν•˜μ˜€λ‹€. 헬멧 미착용으둜 μΈν•œ 사고와 이용자의 λΆˆνŽΈμ„ 쀄이며, 곡유 ν‚₯λ³΄λ“œ μ—…μ²΄μ˜ 이용자 κ°μ†Œ 문제λ₯Ό ν•΄κ²°ν•˜κ³ μž ν•œλ‹€.

- 이쀑 인증 μ‹œμŠ€ν…œ λ„μž…

헬멧 착용 μ—¬λΆ€λ₯Ό νŒλ‹¨ν•˜κΈ° μœ„ν•΄ 적외선 κ·Όμ ‘ μ„Όμ„œλ₯Ό ν™œμš©ν•œ 방식과 YOLOv8 기반 객체 감지 λͺ¨λΈμ„ μ΄μš©ν•œ 방법이 μžˆλ‹€. ν•˜μ§€λ§Œ 각 방식을 λ‹¨λ…μœΌλ‘œ μ‚¬μš©ν•  경우 문제점이 λ°œμƒν•  수 μžˆλ‹€.

  1. 적외선 κ·Όμ ‘ μ„Όμ„œ 방식

    • μ‚¬μš©μžκ°€ 헬멧을 머리가 μ•„λ‹Œ λ‹€λ₯Έ λΆ€μœ„μ— 접촉할 κ°€λŠ₯성이 있음
    • λ‚ μ”¨λ‚˜ μ˜¨λ„ 변화에 μ˜ν•œ 였λ₯˜ λ°œμƒ κ°€λŠ₯
    • κΈ°κΈ° νŒŒμ†μœΌλ‘œ 인해 μ„Όμ„œμ˜ 정확도가 μ €ν•˜λ  μœ„ν—˜
  2. YOLOv8 기반 객체 감지 λͺ¨λΈ 방식

    • 사진 인증 ν›„ μ‚¬μš©μžκ°€ 헬멧을 벗을 κ°€λŠ₯성이 쑴재
    • 인증 ν›„ μ‹€μ‹œκ°„ 착용 μ—¬λΆ€λ₯Ό κ°μ§€ν•˜μ§€ λͺ»ν•˜λŠ” ν•œκ³„

μ΄λŸ¬ν•œ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ 적외선 κ·Όμ ‘ μ„Όμ„œμ™€ YOLOv8 기반 객체 감지 λͺ¨λΈμ„ κ²°ν•©ν•œ 이쀑 인증 μ‹œμŠ€ν…œμ„ λ„μž…ν•˜μ˜€λ‹€.
1μ°¨ 인증으둜 적외선 κ·Όμ ‘ μ„Όμ„œλ₯Ό μ‚¬μš©ν•˜μ—¬ 착용 μ—¬λΆ€λ₯Ό κ°μ§€ν•˜κ³ , 2μ°¨ 인증으둜 μ›Ή μ‚¬μ΄νŠΈμ— μ‚¬μš©μžμ˜ 헬멧 착용 사진을 μ—…λ‘œλ“œν•˜μ—¬ 헬멧 μ°©μš©μ„ μΆ”κ°€λ‘œ ν™•μΈν•˜λŠ” 방식이닀.
이 두 가지 인증 방식을 ν•¨κ»˜ ν™œμš©ν•¨μœΌλ‘œμ¨ 착용 μ—¬λΆ€λ₯Ό 보닀 μ •ν™•ν•˜κ³  μ² μ €ν•˜κ²Œ 확인할 수 있으며, 전동 ν‚₯λ³΄λ“œ μ‚¬μš©μžλ“€μ΄ λ”μš± μ•ˆμ „ν•˜κ²Œ μ΄μš©ν•  수 μžˆλŠ” ν™˜κ²½μ„ μ œκ³΅ν•œλ‹€.


ν”„λ‘œμ νŠΈ λ‚΄μš©

- 헬멧 착용 관리 κΈ°λŠ₯

  1. 헬멧 λ‚΄ 적외선 κ·Όμ ‘ μ„Όμ„œκ°€ 1차적으둜 헬멧 착용 μ—¬λΆ€λ₯Ό 확인
  2. μ‚¬μš©μžκ°€ 헬멧 착용 이미지λ₯Ό μ›Ή μ„œλΉ„μŠ€μ— μ—…λ‘œλ“œν•˜λ©΄ YOLOv8 기반 객체 감지 λͺ¨λΈμ„ 톡해 2차둜 헬멧 착용 μ—¬λΆ€λ₯Ό 확인
  3. 헬멧 미착용 μ‹œ 전동 ν‚₯λ³΄λ“œ μš΄ν–‰ μ œν•œ β†’ μ•ˆμ „μ„± κ°•ν™”
  4. 헬멧 착용 μ‹œ LED와 μŠ€ν”Όμ»€ λͺ¨λ“ˆμ΄ ν™œμ„±ν™” β†’ 착용 및 ν•΄μ œ μƒνƒœλ₯Ό μ‚¬μš©μžμ—κ²Œ μ•ˆλ‚΄

- YOLOv8 기반 객체 감지 λͺ¨λΈ

  • 헬멧 착용 μ—¬λΆ€λ₯Ό νŒλ³„ν•˜κΈ° μœ„ν•΄ YOLOv8 기반 객체 감지 λͺ¨λΈμ„ μ‚¬μš©
  • β€˜helmet’과 β€˜no_helmet’ 두 가지 클래슀둜 κ΅¬λΆ„ν•˜μ—¬ ν•™μŠ΅ 진행
  • 헬멧 착용 μ‹œ 0, 미착용 μ‹œ 1둜 λΌλ²¨λ§ν•˜μ—¬ 데이터셋 ꡬ좕 ν›„ λͺ¨λΈ ν•™μŠ΅
  • μ‚¬μš©μžκ°€ μ—…λ‘œλ“œν•œ 이미지λ₯Ό YOLOv8을 톡해 뢄석, λΉ λ₯΄κ³  μ •ν™•ν•˜κ²Œ 헬멧 착용 μ—¬λΆ€ 검증
  • μ•ˆμ „μ„±μ„ κ°•ν™”ν•˜κΈ° μœ„ν•œ 2μ°¨ 인증 μˆ˜λ‹¨μœΌλ‘œ ν™œμš©

- μ›Ή μ„œλΉ„μŠ€ κΈ°λŠ₯

  • 헬멧 착용 μ—¬λΆ€ 검증 κ³Όμ •μ—μ„œ 적외선 κ·Όμ ‘ μ„Όμ„œμ™€ YOLOv8 기반 객체 감지 λͺ¨λΈμ„ ν†΅ν•©ν•˜μ—¬ μ‚¬μš©μž μ•ˆμ „μ„±μ„ κ°•ν™”
  • 적외선 κ·Όμ ‘ μ„Όμ„œλ‘œ 1μ°¨ 착용 μ—¬λΆ€ 감지 β†’ MySQL DB μ €μž₯
  • μ‚¬μš©μžκ°€ μ›Ή νŽ˜μ΄μ§€μ— 헬멧 착용 사진 μ—…λ‘œλ“œ β†’ Flask μ„œλ²„μ—μ„œ YOLOv8 λͺ¨λΈ 뢄석 β†’ 2μ°¨ 인증 μˆ˜ν–‰
  • 1μ°¨ 및 2μ°¨ 인증 μ™„λ£Œ μ‹œ μš΄ν–‰ μ‹œμž‘ νŽ˜μ΄μ§€λ‘œ 이동 κ°€λŠ₯
  • 인증 μ‹€νŒ¨ μ‹œ λ‹€μŒ νŽ˜μ΄μ§€λ‘œ 이동 λΆˆκ°€


2. Team Members (νŒ€μ› 및 νŒ€ μ†Œκ°œ)

김지민
김지민
μ΄μŠ¬μ•„
μ΄μŠ¬μ•„
μ΅œλ―Όμ§€
μ΅œλ―Όμ§€
박상미
박상미
BE BE DL DL

3. Key Features (μ£Όμš” κΈ°λŠ₯)

ꡬ뢄 κΈ°λŠ₯ μ„€λͺ…
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 λ‚΄μ˜ μž₯애물을 κ°μ§€ν•˜λ―€λ‘œ 헬멧 착용 μ—¬λΆ€ 확인에 적합
피에쑰 μŠ€ν”Όμ»€ λͺ¨λ“ˆ κ·Όμ ‘μ„Όμ„œλ₯Ό 톡해 헬멧 착용/ν•΄μ œ 인식 μ‹œ μŠ€ν”Όμ»€ λͺ¨λ“ˆλ‘œ λ©œλ‘œλ”” 좜λ ₯


4. Work Schematic & Motion Process (μž‘ν’ˆ ꡬ성도 및 λ™μž‘ ν”„λ‘œμ„ΈμŠ€)

μž‘ν’ˆ ꡬ성도

Image

λ™μž‘ ν”„λ‘œμ„ΈμŠ€

Image

β€˜Nevita’ 메인 νŽ˜μ΄μ§€μ—μ„œ β€˜μΈμ¦ν•˜κ³  μš΄ν–‰ μ‹œμž‘ν•˜κΈ°β€™ λ²„νŠΌμ„ ν΄λ¦­ν•œλ‹€. β€˜sensorCheck’ νŽ˜μ΄μ§€λ‘œ λ„˜μ–΄κ°€λ©΄ β€˜μ„Όμ„œ 확인’ κ³Ό β€˜μ‚¬μ§„ μ—…λ‘œλ“œβ€™ λ²„νŠΌμ„ 확인할 수 μžˆλŠ”λ°, μ„Όμ„œ 확인 λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ ν—¬λ©§μ˜ μ„Όμ„œκ°€ μ°©μš©μ„ μΈμ‹ν•˜κ³  λ°μ΄ν„°λ² μ΄μŠ€μ— μ°©μš©ν–ˆμŒμ„ μ „μ†‘ν•œλ‹€. 이 μ •λ³΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 가져와 ν™•μΈλ˜λ©°, 헬멧 착용(proximity=1)이 ν™•μΈλ˜λ©΄ 2μ°¨ 인증 νŽ˜μ΄μ§€λ‘œ 이동할 수 μžˆλ‹€. 2μ°¨ 인증 νŽ˜μ΄μ§€μ—μ„œΒ μ‚¬μ§„ μ—…λ‘œλ“œ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ 헬멧을 μ°©μš©ν•œ 사진을 μ—…λ‘œλ“œν•  수 μžˆλ‹€. μ΄λ•Œ, 헬멧 착용 감지λ₯Ό ν•™μŠ΅ν•œ λͺ¨λΈμ΄ 이λ₯Ό νŒλ‹¨ν•œλ‹€. class_id=0이며 β€˜helmet’ 라벨이 좜λ ₯되면 헬멧 착용 μ‚¬μ§„κΉŒμ§€ 확인이 μ™„λ£Œλœλ‹€. μ΄λŸ¬ν•œ 2μ°¨ 인증 진행이 λλ‚˜λ©΄ β€˜μš΄ν–‰ μ‹œμž‘β€™ νŽ˜μ΄μ§€λ‘œ 이동할 수 μžˆλ‹€.

5. Development environment & equipment (κ°œλ°œν™˜κ²½ 및 μž₯λΉ„)

개발 ν™˜κ²½

ꡬ뢄 ν•­λͺ© 적용 λ‚΄μ—­
λ”₯λŸ¬λ‹ λͺ¨λΈ OS macOS
κ°œλ°œν™˜κ²½ (IDE) Colab
κ°œλ°œλ„κ΅¬ 디버거 (였λ₯˜ 확인, 컴파일)
κ°œλ°œμ–Έμ–΄ Python (ν•™μŠ΅ μ½”λ“œ)
μ›Ή 개발 OS macOS
κ°œλ°œν™˜κ²½ (IDE) IntelliJ IDEA (μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 ν™˜κ²½ μ„€μ •)
κ°œλ°œλ„κ΅¬ Postman (API ν…ŒμŠ€νŠΈ μˆ˜ν–‰)
κ°œλ°œμ–Έμ–΄ Java, JSP, HTML, CSS, Python (μ„œλ²„ 둜직 κ΅¬ν˜„ 및 UI ꡬ성)

μ œμž‘μš© μž₯λΉ„

번호 ν’ˆλͺ… μž‘ν’ˆμ—μ„œμ˜ μ£Όμš” κΈ°λŠ₯
1 아두이노 μš°λ…Έ λ³΄λ“œ 헬멧 착용 감지 μ‹œμŠ€ν…œ 개발
2 헬멧 적외선 κ·Όμ ‘μ„Όμ„œ, LED, μŠ€ν”Όμ»€ λΆ€μ°©

6. Project Structure (ν”„λ‘œμ νŠΈ ꡬ쑰)

πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

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


7. ProtoType (ν”„λ‘œν† νƒ€μž…)

Image

Image

Image

Image

8. Result (κ²°κ³Ό)

Image Image

YOLOv8이 validation을 μˆ˜ν–‰ν•œ 결과이닀. 사진을 톡해 헬멧을 λͺ¨λ‘ β€˜0: helmetβ€™μœΌλ‘œ μΈμ‹ν•˜κ³  있으며, νžˆμž‘μ΄λ‚˜ 헬멧 μ°©μš©μ„ ν•˜μ§€ μ•Šμ€ 사진은 λͺ¨λ‘ β€˜1: no_helmetβ€™μœΌλ‘œ μΈμ‹ν•˜κ³  μžˆλŠ” 것을 확인할 수 μžˆλ‹€.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published