First Project

“OpenSource를 이용해 나만의 프로젝트를 완성해라!”

이번 수업의 목표였습니다.

사실 저는 중고등학생 시절부터 공부보단 어떤 문제 상황이나 불편한 상황에 대한 해결책을 제시하는 것을 즐겨왔습니다. 덕분에 웨어러블 학생증, 선생님 탐지기 등 괴짜스러운 아이디어를 바탕으로 발명을 했었습니다. 본론으로 넘어와서 저의 이러한 취미나 특기를 바탕으로 이번에도 아이디어를 생각했습니다.

코로나가 점차 심해지며 마스크로 인해 사회적 갈등이 한참 심하던 시기, 지하철 내에서 마스크를 쓰지 않은 승객과 마스크를 쓴 승객이 다투는 뉴스를 보고 저는 한 가지 아이디어를 떠올렸습니다.

당시 구글링하며 본 기사들

당시 구글링하며 본 기사들

‘마스크를 인식하고 마이크 미착용자들과 착용자들을 시스템이 분류한다면 사람과 사람 간의 갈등이 해소될 수 있지 않을까?’라는 생각이 이번 프로젝트의 아이디어로 선정된 이유였습니다.

그룹 활동이 중점이 되는 수업을 선호하는 저에게 팀플을 통한 아이디어 구현은 좋은 기회였으나 생각보다 많은 지원자들이 저의 아이디어에 지원해주셔서 조금의 부담감을 느꼈습니다. 그럼에도 불구하고 지원자가 많은 만큼 더 성숙한 결과물이 완성되지 않을까?하는 기대감과 함께 팀을 꾸려 프로젝트를 시작했습니다.

1. Searching Open Source in Github

이번 프로젝트의 핵심은 결국 마스크 탐지입니다. 마스크라는 특정 물체가 카메라로 비춰진 화면 안에 존재하는가?를 판독하는 것이 프로젝트의 주안점이었고 이 주안점을 바탕으로 Github의 오픈소스를 탐색했습니다.

당시 참고했던 오픈소스의 Readme이미지

당시 참고했던 오픈소스의 Readme이미지

TensorFlow에서 제공하는 Object Detection API를 이용해 모델을 훈련시키고 이미지를 분류해내는 오픈소스를 이용했습니다.

2. Data Labeling

우선 모델이 마스크라는 오브젝트를 탐색하도록 훈련시켜야하므로 마스크를 쓴 사람과 그렇지 않은 사람 이미지를 수집했습니다. 각각 300여장의 마스크 착용자와 미착용자 사진을 구했고 총 600여장의 사진을 라벨링했습니다.

화면 캡처 2022-03-19 182408.png

Python의 패키지 중 하나인 Labelimg 패키지를 설치하여 라벨링을 진행했고 마스크 착용자의 이미지가 부족하여 일반 사람에 마스크 이미지를 PNG로 덧대어 부족한 이미지를 채워주었습니다.