1. 프로젝트 기간
2022.05.18 (수) ~ 2022.05.24 (화)
2. 팀 구성
김선민, 김민기, 박재현, 황신혜
3. 프로젝트 주제
공사장 안전 사고 예방을 위한 안전모(헬멧) 착용 여부 탐지 Web 솔루션(SafetyManager) 개발
4. 프로젝트 진행 방식
5. 프로젝트 진행
5.1 화면 와이어프레임 및 기능 정의
| 화면 | 화면 이름 | 기능 | 담당자 |
![]() |
로그인 회원가입 |
필수 기능 회원가입, 로그인, 로그아웃 JWT 토큰 활용 쿠키 저장 추가기능 SNS(Facebook 등) 이용 로그인 |
황신혜 |
| - | - | Object Detection 모델 학습 (Yolo v5) |
모두 |
![]() |
메인 페이지 |
필수 기능 이미지/동영상 파일 업로드 이미지/동영상 Detect Detect 결과 출력 (Detect 이미지, 라벨값, Score 등) |
김선민, 김민기, 박재현 |
![]() |
Ranking 페이지 |
필수 기능 기업별 Score (월별) Ranking 구현 View 페이지네이션 기능 추가 기능 일자별 통계 리포트(시각화 그래프) |
박재현 |
![]() |
MyPage | 필수 기능 기업의 모든 User에 대한 결과 View View 페이지네이션 기능 |
김민기, 박재현 |
| · · · | · · · | · · · |
5.2 DB 설계도 작성 (MongoDB)
- User : 사용자 정보
- 회사명(company) 속성을 통해 mypage에서 기업의 관리자가 사내 정보를 한 눈에 볼 수 있게 함
- Result : 서빙 모델 이용 기록
- isPass, head, helmet, score 등의 Detecting 결과를 이용해 안전 여부를 판단 하고자 함
- date : 작업 시간을 기록하여 월 별 통계 등을 집계 할 수 있게 함

User, Result Collection
5.3 모델 학습
- Dataset : Roboflow의 Hard Hat Worker Dataset (안전모 데이터셋) 사용
- Model : Open Source Object Detection Yolo v5
- 안전모 데이터와 Model을 Colab 로드 후 학습 (mAP .5 / 0.9 이상)
5.4 Safety Manager 개발
- (중요} 기능 및 소스코드 분리 작성 => 개발 생산성 최대화, 코드 충돌 최소화 지향
- BE에서 Detector 추론 모듈/ Web 모듈 분리
- Detector 모듈 : Detection 결과 (Img, Video, 결과값을 이용한 Score 등) 리턴
- Web Module : DB 연동, FE 요청에 따른 Detection 모듈 호출 및 응답 - Blueprints를 이용한 API Endpoint 분리
- Jinja의 include 문법을 이용한 nav.html 분리 및 Nav Bar 중복 구현 방지
5.5 소스코드 Folder Structure
### Structure
```
├── detector // Yolov5 Detector Module
│ ├── models/ // BackBone
│ ├── utils/ // box 라벨값 Draw
│ ├── detect.py // detect 관련 소스코드
│ └── ...
│
├── routers // API Endpoint (Blueprints)
│ ├── main.py // Upload 및 기본 기능 API
│ ├── detect.py // Detection 요청 API
│ ├── profile.py // Mypage 정보 조회 API
│ ├── ranking.py // Ranking 정보 조회 API
│ └── user.py // user 회원가입/로그인 API
│
├── static
│ ├── css/ // css
│ ├── js/ // JS
│ ├── predict_data/ // Detect 결과
│ ├── upload_data/ // 업로드 이미지
│ └── test_data/ // 테스트용 이미지
│
├── templates
│ ├── nav.html // nav Page
│ ├── index.html // Main Page
│ ├── profile.html // MyPage
│ ├── ranking.html // Ranking Page
│ ├── login.html // Login Page
│ └── join.html // Join Page
│
├── training
│ └── training code // colab용 학습코드
│
└── app.py // 메인
```
6. 프로젝트 결과 및 시연 영상
'Python > Machine Learning' 카테고리의 다른 글
| Safety Manager Team 프로젝트(최종) KPT 회고 (0) | 2022.05.25 |
|---|---|
| Til - 28day (0) | 2022.05.24 |
| Til - 27day (0) | 2022.05.23 |
| Wil - 5week (0) | 2022.05.22 |
| Til - 26day (0) | 2022.05.21 |



