1. 서론
2020년 COVID-19로 인해 공공장소에서 마스크 사용이 의무화되었다. 식당, 회사, 학교 등에 출입하는 모든 사람이 마스크를 착용한 상태로 발열 체크하는 모습을 쉽게 볼 수 있다. 점점 시간이 지날수록 패션을 위한 다양한 색과 무늬가 있는 마스크 등을 착용한 사람들도 증가하게 되었고, 인건비 감축을 위한 무인발열체크 시스템을 사용하는 것도 자연스럽게 되었다. 한편, 마스크 착용이 장기화되면서 마스크를 제대로 사용하지 않는 부적절한 착용도 많아지게 되었다. 기존 연구에서는 마스크의 유무 판단과 발열 체크 시스템 개발이 대부분이다. 제안하는 얼굴인식체온측정 카메라 시스템은 마스크의 올바른 착용 여부를 판단하는 기능과 고온의 물체를 소지 시 발열로 감지하는 오류를 방지하기 위해 얼굴 영역 내의 온도만 측정하여 발열 여부를 판단할 수 있도록 개발하였다. 얼굴의 발열 체크를 위해서는 RGB카메라와 열화상 카메라를 사용하였다. 또한 제안한 무인발열체크 시스템에 비대면 모니터링 기능을 포함시켜, 지역별 발열체크수를 쉽게 볼 수 있도록 하였다. 지역별로 나타나는 데이터를 분석하여 바이러스 감염 확산을 방지하는 것에 큰 효과를 볼 수 있을 것이라 기대한다.
본 논문의 구성은 다음과 같다.2장에서 관련 연구를 설명하고, 3장에서 제안하는 시스템 환경 구축과 RGB 카메라와 열화상 카메라 모듈(thermal imaging camera module)에서 획득한 데이터의 맵핑(mapping) 설계 과정을 설명하고 무인발열체크 모니터링 시스템에서 수집된 데이터의 활용으로 지역별 발열체크수를 용이하게 분석할 수 웹 구축에 대해 서술하였다. 4장에서는 제안한 시스템의 다양한 마스크 형태에 따른 정확도 실험 결과와 마스크 부적절 사용자에게 경고 메시지를 주기 위한 마스크 착용 상태에 대한 실험 결과를 보여주고, 5장에서 결론을 맺는다.
2. 관련 연구
제안된 얼굴인식체온측정 카메라 시스템에서 가장 중요한 기술은 얼굴인식 영역 내의 마스크 유무 판단과 올바른 마스크 착용 여부 판단이다. 딥러닝 기술의 발전은 2015년 ImageNet으로 학습된 Alex Net 기반 얼굴검출기를 발표하였다[1]. 초기의 이 방법은 여러 차례의 깊은 네트워크를 사용하기 때문에 GPU 사용이 필수적이었지만, Cascade Scheme는 GPU를 사용하지 않아도 속도를 향상시킬 수 있다 [2]. Tensorflow API는 2017년에 구글에서 오픈소스로 공개하였고, 신경망 모델인 CNN, R-CNN(0.05 FPS), 고속객체검출기인 FasterR-CNN(Region- based Convolutional Neural Network, 7FPS)등 속도 개선에 대한 알고리즘이 소개되었다[3,4]. YOLO는 45∼155FPS의 빠른 속도를 보여준다. 제안된 시스템에서는 마스크의 올바른 착용 여부 판단을 실시간으로 지원하기 위해 YOLO-v3로 학습하였다[5].
유동인구가 많은 지하철 입구나 건물 입구에 주로 놓여있는 무인 얼굴인식체온측정 카메라에 여러 사람이 가깝게 다가오면 하나의 특정 객체 온도를 측정하기 어렵다. Amazon Rekognition API는 카메라에 찍힌 사람들에 대한 동일인 여부 판단이 가능하다 [6]. 제안한 시스템에서 Amazon Rekognition API 활용하여 사용자의 실시간 이미지와 래퍼런스를 비교하여 중복 판단을 하였다.
열화상 이미지에서 얼굴감지 방법은 이미지 프로젝션[7], Haar-Cascade[8], IR 이미지의 시각영역 활용과 머신러닝 방법 등이 있다.Kopaczka는 IR이미 지에서 얼굴감지, 머리자세, 얼굴추적 연구에 딥러닝을 적용하였다[9]. 제안한 시스템은 고해상도를 지원하는 IR 카메라가 아니어서 RGB 카메라의 해상도 문제를 해결하여 적용하였다.
무인발열체크시스템은 원격으로 시스템 제어를 해야 하는 경우도 많고, 발생되는 데이터들에 대한 검토 및 분석을 위해 모니터링 기능을 탑재하고 있다. 로그 컬렉터를 위해 다양한 종류의 입출력 및 가공처리가 가능한 로그스태시(logstash)와 분산 프레임 워크의 아파치 플럼 (Apache Flume)이 있는데[10], 본 연구에는 ELK의 logstash를 사용하였다.
3. 제안한 시스템의 구현
3.1 시스템 구조와 환경 구현
본 논문에서는 일반적인 열화상 카메라에서 마스크를 사용한 사용자의 발열 체크 오류를 개선하기 위해 얼굴인식을 목적으로 RGB 카메라와 열화상 카메라의 결합을 제시한다. 열화상 카메라에서 발생하는 오류는 사람과 일반 객체의 구분 없이 물체의 온도 탐지를 하므로 뜨거운 커피나 핫팩과 같은 온도가 높은 물체에도 반응한다는 것이다. 본 연구는 사람의 움직임에 따라 얼굴 영역을 지속적으로 인지 (walk-though 접근 시 자동 인식)할 수 있도록 딥러닝 알고리즘을 사용하였다.Fig.1은 제안하는 시스템의 전체 구성도이며, ①번의 단계에서 사용자의 접근을 인식하게 되면, RGB 카메라가 마스크의 착용 여부를 탐지하고 잘못된 마스크 착용 시에 경고음을 출력한다. ①번의 단계에서 RGB 카메라에 얼굴이 인식된 영역의 좌표 데이터값은 전처리 후 열화상 카메라에 보내게 되고, 마스크 유무 데이터, 발열 체크 데이터 등은 클라우드 Web Server로 전송된다[11]. Fig.1의 ③는 웹 프레임워크(Web Framework)인 Django를 이용한 관리자 페이지에서 디바이스로부터 전송받은 데이터를 테이블 형태로 보여지게 된다. ④는 데이터에 대한 대시보드를 보여준다. 제안한 얼굴인식체온측정 카메라 시스템의 구축 환경은 다음 Table 1과 같다.
Fig. 1. Flowchart for RGB & Thermal imaging camera system.
Table 1. The proposed Face recognition body temperature measurement camera system construction environment.
3.2 학습모델 구축
본 연구에서는 빠른 시간 내에 객체를 인식하기 위해 YOLO-v3를 사용하여 모델을 구축하였다. 학습에 필요한 데이터셋(dataset)구성을 위해 클래스를 두 가지로 나누고 마스크를 착용한 이미지 데이터(imagedata)와 착용하지 않은 이미지 데이터를 웹 크롤링(web crawling)과 직접촬영 방식으로 수집하였다. 총 1027장의 데이터를 확보한 후, 이미지를 la- beling하고 Bounding box가 생성된 영역에 좌표 값을 부여하였다. 해당 훈련(trainning)은 Google Colab 의 GPU를 이용하였고, 학습 데이터의 부족으로 darknet에서 제공하는 darknet53.conv.74가중치를 이용해 전이학습(transfer learning)을 진행하였다. iteration 당 처리할 이미지의 수를 64로 고정하였고 약 2만 번의 학습을 진행하였다. Fig.2의 학습 결과 마스크를 착용한 상태에서 93%의 정확도(Accur- acy)를 얻었다. 마스크의 다양성(코로나로 인해 패션마스크 등장)에 의해 마스크 착용 이미지 또한 다양하게 수집하여 학습을 반복하였다.
Fig. 2. Mask wearing image accuracy test per frame.
3.3 이미지 맵핑
제안한 얼굴인식체온측정카메라 시스템은 RGB 카메라와 열화상 카메라 기능이 합쳐진 디바이스 환경을 갖고 있다. 해당 시스템의 Processing은 먼저 RGB 카메라에서 획득한 프레임이 학습한 모델을 통해 Object Detection이 이루어지고, 검출된 객체의 Bounding Box 좌표정보를 열화상 카메라의 데이터와 결합하는 구조이다. 하지만 두 개의 카메라 해상도가 다르기 때문에 RGB 카메라에서 YOLO-v3신경 망을 통해 인식된 얼굴 영역의 Bounding box 좌표 값을 식(1) Homography 변환알고리즘 활용하여 변환시키고 열화상 카메라 데이터와 결합한다[12].
\(H=\left(\begin{array}{l} x^{\prime} \\ y^{\prime} \\ 1 \end{array}\right)=\left(\begin{array}{lll} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{array}\right)\left(\begin{array}{l} x \\ y \\ 1 \end{array}\right)\) (1)
Fig.3(b)의 RGB 카메라의 bounding box의 좌표점은 (a)의 열화상 카메라의 bounding box의 좌표점과 일치해야 한다.Fig.4의 왼쪽의 도면은 화각이 서로 다른 두 개의 카메라를 동일 선상에 위치시켜 놓고, 각각 촬영된 A와 B의 이미지로부터 4개의 좌표값을 추출하는 것을 설명한다. 해당 좌표값을 전치행렬로 변환 후 특이값 분해(Singular Value De- composition, SVD)를 이용하여 식(1)을 적용한다.
Fig. 3. The proposed Face recognition body temperature measurement camera system.
Fig. 4. mapping test based on Homography transformation.
도출된 H와 Bounding Box의 두 행렬 내적을 계산하여 좌표를 도출한다. 해당 좌표를 열화상 데이터에 맵핑시키기 위해 데이터의 픽셀값을 numpy배열로 변환하고 4개의 좌표 값과 매칭되는 부분을 얼굴 영역 부분만 남긴 후 최대값을 도출한다.Fig.4의 오른쪽은 H값에 의한 결과 좌표가 열화상 이미지에 맵핑되었는지 알기 위한 실험 결과이다.
3.4 마스크 착용 위치
마스크를 부적절하게 착용하였을 경우를 대비하여 마스크 착용 위치에 따른 정확도를 측정 실험을 진행하였다.Fig.5에서 마스크를 턱에 걸쳤을 경우 (nomask A)와 마스크를 코 밑에 걸쳤을 경우 (nomask B)에 대한 학습을 시켰으며, 데이터셋은 온라인에서 수집한 것과 MakeML에서 제공하는 데이터셋을 사용하였다[13]. 정확도 실험 결과는 4장의 Fig. 8에서 설명한다.
Fig. 5. People wearing masks wrong image data learn- ing.
Fig. 8. Accuracy experiment of people wearing masks wrong image data learning.
3.5 실시간 데이터 모니터링
제안한 마스크 착용 인식기반 체온측정 시스템에서 측정한 데이터를 서버에 전송한다. 전송된 데이터를 관리자가 웹 페이지에서 모니터링할 수 있도록 웹 프레임워크인 Django를 이용했다. AWS EC2 인스턴스 서버 환경에 웹페이지를 구축하고, 이를 MySQL 연동을 통해 실시간으로 수집된 데이터를 Fig.6과 같이 출력한다. 디바이스 ID마다 행정구를 지정하였고, 이를 통해 해당 지역 내 마스크 미착용자의 수와 발열 증상자의 증가에 따른 관리가 용이하도록 하였다. 또한 해당 데이터들을 시각화하기 위해 ELK stack을 구축하였다. ELK란 사용자가 서버로부터 데이터를 가져와 실시간으로 검색, 분석 및 시각화할 수 있도록 돕는 Elastic의 제품이다[14]. logstash 에서 수집된 데이터는 ELKStack의 KIBANA대시 보드를 통해 Fig.7과 같이 실시간 변동사항을 확인할 수 있다. 추가적으로 본 실험 데이터 결과가 적어 서울시에서 제공하는 코로나 19 확진자 추이 오픈 데이터를 본 연구 데이터와 함께 시스템에 적용하였다.
Fig. 6. Django Web Server.
Fig. 7. Kibana Dashboard result.
4. 실험
본 연구에서 개발한 얼굴인식체온측정 카메라 시스템은 효율적인 측정을 위해 얼굴이 인식되었을 때만 해당 영역의 최대 온도 값을 도출한다. 또한 마스크의 유무 판단의 정확도를 높이기 위해 Dataset 구축단계에서 여러 형태의 마스크 착용 이미지를 수집하여 학습시켰다.3.2절에서 설명하였듯이 COVID- 19로 인한 패션마스크의 등장으로 마스크 종류에 따른 학습도 필요하였으며, 정확도 결과는 Table2에 설명한다. 일반 마스크는 덴탈 마스크(흰색, 검정색 등 단일한 색을 가진 마스크)와 패턴 마스크는 마스크 내에 꽃, 캐릭터, 체크 등 다양한 무늬를 포함한 마스크, 칼라마스크는 여러 색을 포함한 마스크로 분류하여 각각의 마스크에 대한 정확도 값을 측정하였다.
Table 2. Accuracy test result
Fig.8의 그래프에서 accuracy 단위는 0부터 1사이로 표시된다.Fig.5의 nomask A의 상태를 마스크 미착용 클래스로 검출했을 시의 10회까지의 정확도 평균값은 0.965이며, nomask B의 경우 정확도 평균값은 0.831에 도달한다. 이와 같은 실험을 각 10회, 30회, 50회에 걸쳐 진행하였고 각 회당 평균값을 그래프로 보여준다. 결과적으로 nomask B의 경우가 nomask A의 경우보다 정확도가 비교적 낮게 측정된 것을 확인할 수 있었고 이러한 점을 보완하기 위해 nomask B에 해당하는 이미지 데이터를 추가하여 모델학습을 진행이 필요했지만 본 연구에서는 데이터 확보를 충분히 하지 못해 결과는 비슷하게 나왔다.
5. 결론
COVID-19확산 방지를 위해 2020년 8월부터 공공장소에서의 마스크 착용이 의무화되면서 마스크를 미착용한 사람들에게 직접적인 경고 메세지를 주는 시스템이 건물이나 지하철 출입구마다 설치되었다. 본 논문에서는 마스크 착용 여부와 올바른 마스크를 착용하였는지에 대한 경고메세지 기능을 탑재한 얼굴인식체온측정 카메라 시스템을 개발하였다. 다양한 종류의 마스크를 착용한 사용자의 발열을 체크하기 위해 얼굴인식용 RGB카메라와 발열 체크를 위한 열화상 카메라의 결합시스템을 제안하였으며, 마스크의 올바른 착용 여부와 얼굴인식의 정확도를 높이기 위해 딥러닝 기반의 알고리즘을 사용하여 진행하였다. 제안한 시스템에서 발생한 발열 체크 데이터를 활용하여 각 행정지역의 코로나 19상황의 분석이 용이하도록 무인시스템의 원격제어를 위해 실시간 모니터링 기능을 구축하였다. 모니터링된 마스크 사용자 수와 발열자수의 데이터들의 정보는 사용자에게 간접적 경고로 마스크 착용에 대한 경각심을 심어주는 동시에 데이터 분석을 통한 단계 높은 관리가 가능할 것이라 예상한다.
References
- S. S. Farfade, M. J. Saberian and L. J. Li, "Multi-View Face Detection Using Deep Convolutional Neural Networks," ACM International Conference on Multimedia Retrieval (ICMR), pp. 643-650, 2015.
- H. Li, Z. Lin, X. Shen, J. Bandt and G. Hua, "A Convolutional Neural Network Cascade for Face Detection," Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 5325-5334, 2015.
- J. Redmon and A. Farhadi, YOLO9000: Better, Faster, Stronger, Computer Vision and Pattern Recognition, arXiv:1612.08242 [cs.CV], Dec. 2016.
- W. J. Hwang, "Deep Learning-based Face Detection, Landmark Detection, and Face Recognition Technology Research Trends," Broadcasting and Media Magazine, Vol. 22, No. 4, pp. 41-49, 2017.
- J. Redmon and A. Farhadi, YOLOv3: An Incremental Improvement, Computer Vision and Pattern Recognition, arXiv:1804.02767v1 [cs.CV], Apr. 2018
- Amazon Web Services, Inc.(2021), https://docs.aws.amazon.com/code-samples/latest/catalog/code-catalog-python-example_code-rekognition.html (accessed January 29, 2021).
- J. Mekyska, V. Espinosa-Duro and M. Faundez-Zanuy, "Face segmentation: a comparison between visible and thermal images." In IEEE International Carnahan Conference on Security Technology (ICCST), pp. 185-189, 2010.
- P. Viola and M. Jones, "Rapid Object Detection Using a Boosted Cascade of Simple Features," In Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), pp. 1-9, 2001.
- M. Kopaczka, J. Schock, J. Nestler, K. Kielholz and D. Merhof, "A Combined Modular System For Face Detection, Head Pose Estimation, Face Tracking And Emotion Recognition In Thermal Infrared Images," In IEEE International Conference on Imaging Systems and Techniques (IST), 2018.
- B. H. Lee and D. M. Yang, "A Security Log Analysis System using Logstash based on Apache Elasticsearch," Journal of the Korea Institute of Information and Communication Engineering, Vol. 22, No. 2, pp. 382-389, 2018. https://doi.org/10.6109/jkiice.2018.22.2.382
- Y. M. Lim, "The Collaborative Image Editing Tool based On the Cloud Computing," Journal of Korea Multimedia Society, Vol. 20. No. 8, pp. 1456-1463, 2017. https://doi.org/10.9717/kmms.2017.20.8.1456
- C. H. Jang, K. S. Lee, and G. S. Jo, "CSP Driven RANSAC Algorithm for Improving Accuracy of Planar Homography," Journal of KISS, Vol. 39, No. 11, pp. 876-888, 2012.
- MakeML Applicaion (2020), https://makeml.app/datasets/mask, (accessed January, 29, 2021)
- J. H. Hyun and H. J. Kim, "Security Operation Implementation through Big Data Analysis by Using Open Source ELK Stack," Journal of Digital Contents Society, Vol. 19. No. 1, pp. 181-191, 2018. https://doi.org/10.9728/dcs.2018.19.1.181