Skip to content

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을 사용함
  • Model 배포

    • AWS EC2 P2 + TorchServe를 사용하여 REST API 형태로 딥러닝 모델 배포

      1. API 서버에 이미지 파일을 전송하여 predict 요청
      2. 이미지 파일을 딥러닝 모델에 입력하여 predict 진행
      3. 결과를 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/ 도큐먼트 활용해서 길찾기 과정 보여주는 등의 기능 제공

    • 위와 같은 방식으로 여러가지의 탭을 사용해서 편의점, 약국 등의 정보를 지도 위에 표시하고 웹으로 연결시켜줌

프로젝트 기능 명세

  • 얼굴인식 - 마스크 착용여부를 판단하여 알람

    • 웹에 접속하여 캡처 버튼을 누르면 활성화된 카메라를 통해 얼굴 이미지를 캡처함

      • image
    • 캡처한 이미지를 읽어들여 학습한 모델이 마스크 착용여부를 판단

      • image
    • 마스크 착용 여부에 따라 알람 표시 및 지도 검색 페이지를 연결

      • 마스크 착용시 '마스크를 착용하였습니다'(녹색) 알람 표시
      • 마스크 미착용시 '마스크를 착용하지 않았습니다.'(적색)알람 표시
      • 마스크 미착용시 약국/편의점등을 지도에 검색한 페이지 연결
      • (마스크를 올바르게 착용하지 않은 경우에는 알람만 표시)
      • image
  • 동영상에서 마스크 착용여부 인식하여 미착용 있을때 안내방송 송출

    • 동영상을 정해진 시간 간격마다 frame 캡처
      • image
    • 학습된 모델을 이용하여 기준시간 이상 마스크 미착용인원을 파악
      • image
    • 같은 위치의 인원이 기준시간 이상 마스크 미착용시 마스크 착용 알림
      • image