1팀 프로젝트 [마스크 착용 알리미]
acoustic0422 edited this page Apr 2, 2021
·
4 revisions
- COVID-19 확산이 장기화됨에 따라 감염 확산을 방지하기 위한 마스크 착용이 필수적임.
- 그러나 교통수단(지하철, 버스등) 및 카페, 도서관 등에서 마스크를 착용하지 않는 경우가 존재함
- 마스크 착용을 유도하기 위하여 마스크 착용 여부를 인공지능이 판단하여 알림을 주는 시스템을 고안하였음.
- Computer Vision - Object Detection 기반 마스크 착용 여부 판단
- 마스크 착용여부에 따라 사용자에게 알람 및 마스크 구입처 안내
-
Deep Learning - CNN
- CNN은 영상/이미지 처리에 강력한 성능을 나타내는 딥러닝 모델의 한 부류임
- 본 프로젝트는 영상을 처리하여 마스크 착용여부를 판단하여야 하므로, CNN기반 딥러닝 모델을 사용함.
-
Computer Vision - Object Detection
- Object Detection은 이미지내의 객체 위치를 판별하고 각 객체를 분류하는 Computer Vision의 한 분야임
- 한 이미지 내의 여러개의 객체에 대해 동작하는 머신러닝 알고리즘임
- 본 프로젝트는 한 영상내 다수의 인원에 대해서도 마스크 착용 여부를 판단하여야 하므로
Object Detection 기술을 사용함
-
Object Detection - 사용 모델
- Faster R-CNN
- 구조: Feature Map을 먼저 추출한 다음 이를 RPN에 전달하여 RoI를 계산하고, 여기서 얻은 RoI로 RoI Pooling을 진행한 다음 클래시피케이션을 진행하여 Object Detection을 수행
- Cascade R-CNN
- 구조 : Boundary Box Regression을 1회 수행하는 것이아닌 Cascade된 regressor를 사용하여 수행하는 방법
이때 각각의 regressor는 독립적인 model을 사용함
- 구조 : Boundary Box Regression을 1회 수행하는 것이아닌 Cascade된 regressor를 사용하여 수행하는 방법
- Faster R-CNN
-
Model 배포
-
AWS EC2 P2 + TorchServe를 사용하여 REST API 형태로 딥러닝 모델 배포
- API 서버에 이미지 파일을 전송하여 predict 요청
- 이미지 파일을 딥러닝 모델에 입력하여 predict 진행
- 결과를 json 형태로 응답
-
TorchServe
- PyTorch용 모델 서비스 프레임워크
- torchserve 에서는
torch-model_archiver
를 이용하여 모델 관련 파일을 패키징하여.mar
파일을 저장하고, 이 파일을 이용하여 모델을 serve한다.
📌
.mar
파일로 패키징하는 데에 필요한 파일 (detectron2 모델 이용)- 모델 state_dict() 파일
.pth
: detectron2 를 이용하여 학습한 모델 파일 - 모델 config 파일
.yaml
: 사용한 dectectron2 모델의 설정 파일 - 모델 handler 파일
.py
: detectron2 모델의 처리(모델 로드, 이미지 전처리, 추론 진행 등)를 담당하는 핸들러 파일
-
-
Web 검색
-
Kakao 지도 api를 활용해서 웹 또는 앱에 지도를 띄워주고 지도 URL로 이동시키는 과정 실행
-
https://apis.map.kakao.com/web/documentation/ 도큐먼트 활용해서 길찾기 과정 보여주는 등의 기능 제공
-
위와 같은 방식으로 여러가지의 탭을 사용해서 편의점, 약국 등의 정보를 지도 위에 표시하고 웹으로 연결시켜줌
-
-
얼굴인식 - 마스크 착용여부를 판단하여 알람
-
웹에 접속하여 캡처 버튼을 누르면 활성화된 카메라를 통해 얼굴 이미지를 캡처함
-
캡처한 이미지를 읽어들여 학습한 모델이 마스크 착용여부를 판단
-
마스크 착용 여부에 따라 알람 표시 및 지도 검색 페이지를 연결
- 마스크 착용시 '마스크를 착용하였습니다'(녹색) 알람 표시
- 마스크 미착용시 '마스크를 착용하지 않았습니다.'(적색)알람 표시
- 마스크 미착용시 약국/편의점등을 지도에 검색한 페이지 연결
(마스크를 올바르게 착용하지 않은 경우에는 알람만 표시)
-
-
동영상에서 마스크 착용여부 인식하여 미착용 있을때 안내방송 송출
- 동영상을 정해진 시간 간격마다 frame 캡처
- 학습된 모델을 이용하여 기준시간 이상 마스크 미착용인원을 파악
- 같은 위치의 인원이 기준시간 이상 마스크 미착용시 마스크 착용 알림
- 동영상을 정해진 시간 간격마다 frame 캡처