1. 서론
COVID-19팬데믹 상황에서 현재 발열 점검 및 전자 출입 명부 QR체크인 코드 체킹 기기들이 시중에 많이 설치되어 운영되고 있다. 운영되는 발열 점검 기기는 비접촉식이며, 대부분 열화상 센서를 이용하여 사람 얼굴에서 나오는 적외선 열을 감지하여 이를 통해 체온을 측정한다[1, 2]. 이러한 기기들은 대부분 마스크 착용 여부까지 체크하는 기능도 추가적으로 제공한다. 그런데, 이들 발열체크 기기 가운데는 지나가는 여러 사람들의 체온을 점검하는 시스템도 있는데, 이러한 여러 사람 체온 검출 기기에 쓰이는 열화상센서는 해상도가 높아야 하고, 열화상 센서는 해상도에 따라 비선형적으로 가격이 높아지기 때문에 시중에 판매되는 저비용 발열 점검 기기는 보통 1인용으로 저해상도의 열화상센서를 사용한다. 한편, QR체크인 코드 전자출입명부는 QR 체크인 코드를 활용해 개인의 신상정보와 연락처를 파악함으로써 허위기재에 따른 접촉자 추적 혼선 및 개인정보 노출 가능성을 방지하기 위해 도입되었다[3].
구미에서는 개인정보 보호에 민감하여 시행하지 않고 있다. 그러나, 호주 및 뉴질랜드에서 권장 사항으로 시행 중에 있다. 국내의 경우에는 2020년 6월부터 도입되었으며, 개인정보 보호를 위해 전자출입명부에 입력되는 개인 연락처 데이터와 방문 기록은 평상시에 분산보관되고, 필요한 경우에만 두 정보를 결합하여 개인을 식별하도록 되어 있으며, 보통 발열체킹 기기와는 별도로 구현되어 제공된다.그런데, 발열 점검, 마스크 착용 여부 점검, 전자 출입명부 QR체크인 코드 체킹 등은 비교적 처리 알고리즘이 복잡하지 않고 계산량이 적어, 충분히 하나의 기기에서 통합하여 지원하는 것은 어렵지 않다. 한편, 마트나 공연장 같은 곳에서는 발열 점검 및 QR 체크인 코드 체킹에 더하여, 해당 기기를 이용하는 사람이 잠시 정지하여 해당 기기에서서 이용하기 때문에 해당 기기에 홍보/광고 콘텐츠를 이러한 기능 지원과 동시에 표출할 수 있으면 본래의 기능(발열 점검, 마스크 착용 점검, QR체크인 코드 체크)에 더하여 광고 효과까지 지원하는 다목적기기가 되므로, 시장성이 높다 하겠다.
디지털 사이니지 플레이어는 대쉬보드로부터 콘텐츠를 전송받아 디스플레이 기기에 그 콘텐츠 내용표출, 플레이리스트 수신 및 표출, 스케줄 표출, 긴급메시지 표출, 현재 재생기기의 상태 모니터링 및 제어 등 다양한 여러 기능들이 지원되어야 하기 때문에 그 자체로 충분히 복잡한 시스템이다[4].
본 논문에서는 디지털 사이니지 플레이어 본래 기능에 더하여 발열 점검, 마스크 착용 여부 점검, 전자출입명부 QR체크인 코드 체킹 등의 기능도 지원하는, 보급형 COVID-19디지털 사이니지 플레이어의 설계 및 구현을 제안한다. 제안하는 플레이어는 안드로이드 기반으로 서버와 네트워킹이 필요 없는 단독형이다.
본 논문의 구성은 다음과 같다.2장에서 본 논문의 기본 이론이 되는 배경이론과 관련 연구가 간단히 설명되며, 3장에서는 제안하는 COVID-19디지털 사이니지 플레이어 설계 및 구현에 대해서 기술된다, 그리고 4장에서는 제안한 3장에서 제안한 COVID- 19디지털 사이니지 플레이어를 실험한 결과가 설명된다. 마지막으로 5장에서 결론을 맺는다.
2. 배경 이론 및 관련 연구
2.1 배경 이론
2.1.1 열화상센서 및 발열 점검
사람의 정상체온은 측정 부위마다 다르나, 보통 범위는 35.5°C~37.5°C이며 평균 체온 36.5°C이다 [5].35°C이하 이면 저체온, 38°C 이상이면 발열로간주된다. COVID-19팬데믹 방역을 위해 발열 점검을 하는 데 보통 비접촉식 체온 측정을 통해서 한다. 비접촉식 체온 측정은 주로 적외선 이용열화상 센서기기를 사용한다. 사람의 열화상을 찍는 데 주로 사용되는 적외선 영역은 장파장 적외선(Long-wave- length infrared)으로 파장 9~14 μm, 온도 범위는 -80~90°C이다[6]. 적외선 센서는 크게 광자형(Pho- ton) 및 열형(Thermal)으로 분류된다[7]. 광자형은 주로 HgCdTe, InSb등의 화합물 반도체를 사용하여 입사된 적외선의 에너지를 흡수하여 여기된 전자 신호를 검출하는 광전도 현상을 이용하는 것으로 성능은 뛰어나나 액체질소 냉각기가 필요하여 가격이 높은 단점이 있다. 반면에 열형은 복사되는 열에너지를 저항이나 전류 또는 기전력 변화로 검출하는 방식으로서 광자형에 비해 성능은 떨어지지만 냉각기가 필요 없고 가격이 저렴하여, 일반적으로 가장 많이 쓰이고 있다.
열형적외선 센서는 다시 초전형(Pyroelectric), 저항형(Resistive or microbolometer), 열전형(Ther- moelectric)으로 나뉜다. 초전형은 적외선을 받으면 자발 분극이 일어나는 초전 현상을 이용하여 온도변화에 따른 전류 및 전압 변화가 생기는 것을 이용한 것으로 초전(PIR) 센서가 여기에 해당된다. 저항형은 적외선을 받으면 내부 저항이 변하며 이를 이용하여 입사된 전자파복사 에너지량을 측정하는 것으로 볼로미터가 여기에 해당된다. 열전형은 금속 쌍에 하나에 열을 가하면 기전력이 생겨 전류가 흐르는 현상을 이용하여 열에너지를 전기에너지로 변환하는 것으로 써모 파일(thermopile)이 여기에 해당된다. 써모파일 센서는 제작 공정이 단순하여 가격이 비교적 저렴한 반면에 반응 속도가 마이크로 볼로 미터의 수 ㎳에 비해 약 수십 배 정도 느린 단점이 있어 고화소용으로 가게 되면 실시간 영상을 볼 수 없는 단점이 있다. 이러한 센서의 한계 때문에 저화소용에 많이 응용되고 있다.
적외선 써모 파일은 적외선이 열을 가지고 있기 때문에, 물체에서 발생한 적외선을 수집하여 물체의 온도를 측정하는 것으로, 현재 시중에 판매되는 보급형 개인용 체온 측정에 사용되는 열화상 센서는 화소 수가 클 필요가 없어 적외선 써모 파일 어레이(보통 32× 32)를 이용하여 만든 것이 많다. 적외선 센서의 각 셀은 이미지 센서의 픽셀과 유사하다. 적외선은 흑체복사(blackbody radiation)법칙에 따라 절대 00K이상의 온도를 가진 모든 물체에서 복사(radiation)되며, 물체에서 방출되는 복사의 양은 온도에 따라 증가하기 때문에, 결국 열화상 센서 각 셀에서 수집되어 측정되는 적외선 복사열 양은 해당 물체 표면의 온도에 비례한다. 열화상 이미지는 이런 측정값을 고유의 컬러나 (회색) 음영으로 나타낸 것이다. 열화상팔레트 색상 선택에 따라, 각 온도에 할당하는 색상에 차이가 있으나 통상 따뜻한 색(노랑, 빨강 등) 이 높은 온도를, 차가운 색(파랑 등)이 낮은 온도를 나타낸다. 광학 카메라가 이미지 센서에서 획득된 물체에서 반사되는 빛의 양을 이용하여 영상이미지를 만들어 보여주는 기기인 것과 마찬가지로 열화상 카메라는 열화상 센서의 측정온도를 이용하여 열화상 이미지를 만들어 보여주는 기기로 일반적인 정확도는 ±2°C이다. 그러나 인체 발열 점검으로 사용하려면 최소 ±0.3°C 이내 정확도를 보여야 한다.
인체는 끊임없이 열을 생산하고 방출하는 데 인체 내부의 중심 온도는 인체활동량이 변하더라도 정상체온 범위 내로 유지되는 반면, 인체 표면(피부) 온도는 중심 체온에 비해 변화가 상대적으로 크며 외부환경 및 외부 온도에 따라 변하여 하루 시간의 변화에 따라 표면체온은 등락을 한다[2, 8]. 예를 들어, 같은 사람이라도 맑은 날 오후에 측정한 온도는 이른 아침에 측정한 온도와 차이를 보일 수 있고 신체적 활동을 하거나 에어컨 바람에 노출되면 피부 온도 가변할 수 있다. 주변 온도가 10°C 증가하면, 피부 온도는 3°C까지 증가할 수도 있다는 연구결과도 있다. 인체 표피체온 측정지점 가운데, 눈 안쪽 코너(눈물샘 근처)가 가장 안정적 지점이라 잘 알려져 있다[1, 9]. 그러나, 만일 열화상이미지에서 이 지점의 온도 값을 구할 수 있으면, 이를 체온으로 판정하는 것이 바람직하다. 그러나, 이 지점은 안경에 의해 가려질 수 있고, 안 가려지더라도 검출하기가 쉽지 않다.
구강 체온계, 겨드랑이 체온계, 귀체온계 항문 체온계 등의 접촉식 체온계가 위생상 또는 사용상 불편함이 있지만 비교적 정확하다. 사용이 편리한 비접촉식 이마적외선 체온계(NCIT)는 보통 이마에 근접하여 사용하기 때문에 실내 온도 등의 외부 영향을 비교적 덜 받는다. 비접촉식 체온 측정에 있어서, 이마 중앙 부분이 선호된다, 이는 체온계로 측정하기 쉽고 비교적 안정적인 것으로 알려져 있다. 본 논문의 32 ×32열화상 센서 이미지에서 이마 부분을 검출하기도 쉽지 않지만, 검출해도 영역이 너무 좁아, 평균값 계산 등에 오차가 많이 발생할 수 있다. 그런데, 이러한 열화상센서들의 측정값은 다음의 문제가 있다.
-병원에서처럼, 얼굴 이마 부분에 근접해서 측정하면 비교적 정확하게 인체 체온을 구할 수 있으나, 열화상 센서의 온도 측정값은 주변 온도, 피사체의 거리 및 판독값이 있는 얼굴의 측정 부위에 따라달라질 수 있다.
-체온 측정값은 나이, 피부의 화장, 땀 등과 같은 생물 물리 현상에 따라 달라질 수 있다.
-열화상센서 기반 체온 측정은 얼굴 부위의 체온 값을 읽는 것이 비교적 안정적이다. 그러나, 열화상 이미지에 대해 사람 얼굴의 특정 영역을 찾는 강력한 알고리즘이 없다.
2.1.2 블랙바디(blackbody) 및 열화상 센서값 보정 (calibration)
앞서 설명한 대로, 열화상 카메라는 설치 장소의 환경(바람, 햇빛 등)으로 인해 측정 온도의 오차가 높게 나타나 기준 온도 보정 작업이 필요하다. 체온측정을 최적화하기 위해 미국 식품의약국 (FDA) 과국제표준기구 (ISO)에서는 열화상 카메라를 블랙바디와 함께 사용하도록 권장하고 있다[10]. 블랙바디는 열화상 카메라의 시야각 안의 범위 내에서 일정한 온도의 적외선을 발생시켜주고 해당 온도 적외선을 열화상 카메라가 감지하는 방식으로 체온 측정의 ‘기준온도’를 자동으로 상시 유지할 수 있도록 제어해주는 기기이다[11].
열화상 카메라와 블랙 바디를 함께 사용하는 것은 발열 여부를 검사하는 좋은 솔루션이지만, 블랙바디를 사용하는 데는 구현상 여러 가지 문제가 있다. -블랙바디 설정 자체가 복잡할 수 있고, 일반적으로는 하드웨어가 추가로 필요하디.
-블랙 바디의 초점을 유지하기 위해, 검사 대상과 동일선상에 설치가 되어 있어야 효과적이다.
-내외부의 온도차나 측정 환경 조건이 블랙바디측정에 영향을 미칠 수 있다.
본 논문에서는 보급형 COVID-19사이니지 플레이어 기기 개발에 초점이 맞추어 있어서 블랙바디는따로 이용하지 않고, 다만 장착되는 열화상 센서 모듈 듀닝시에 블랙 바디 기기를 이용하여 열화상 센서 출력 데이터 값을 보정하였다.
Fig. 1. Skin temperature measurement with blackbody [11].
2.1.3 QR 체크인코드 전자출입 명부
국내의 경우, QR체크인 코드 기반 전자출입명부의 동작은 QR체크인 코드 발급회사(네이버, 카카오톡, PASS등), 사용자, 시설관리자 기기. 한국사회보장정보원을 통해서 이루어진다[3].QR체크인 코드발급회사는 발급된 QR체크인 코드의 개인식별 코드와 관련된 개인정보(이름, 연락처, 발급 시각)을 따로 보관하고 있다. 사용자는 QR체크인 코드 발급회사로부터 받은 QR체크인 코드(만료시간(보통 발급후 15초 간 유효)), 사용자 개인 식별코드 등이 암호화되어 포함)를 시설관리자 기기에 보여주며, 이 때 시설관리자 기기는 획득한 QR체크인 코드와 시설정보, 방문 시각 및 이용자의 방문 정보(QR 체크인 코드 인식 기록) 등을 한국 사회보장정보원에 보내며, 한국사회보장정보원은 이를 암호화하여 보관한다. 확진자 발생 시에, 방역당국은 QR체크인 코드 발급회사에 해당 QR체크인 코드의 개인 식별코드와 연관된 개인정보(이름, 전화번호, 발급시간), 한국 사회보장정보원에 방문 정보(시설 정보, 방문시각, QR 체크인 코드)를 각각 요청 제공받은 정보를 결합하여 접촉자 추적등의 신속한 방역조치에 활용한다. 방문 발급회사 만들어 인증하는 방식은 개인정보가 암호화되어 분산 저장되고 4주간 저장되고 폐기된다. 종이에 기재하는 방식보다 개인정보보호에 적합하다[2]. 확진자 발생시, 질병관리청 등 방역당국은 QR체크인 코드발급회사에 개인정보(이름, 전화번호, QR체크인 코드), 한국사회보장정보원에 방문 정보(시설정보, 방문시각, QR체크인 코드)를 각각 요청 제공받은 정보를 결합하여 접촉자 추적 등 신속한 방역 조치에 활용한다.
2.2 관련 연구
2.2.1 얼굴 검출
체온의 정확한 측정은 앞서 언급한 바와 같이, 옷 등으로 가려지지 않은 얼굴 부위에서 검출되는 적외선 열화상 센서의 값을 읽는 것이 중요하다. 따라서, 열화상 센서로 획득된 적외선이미지에서 얼굴 부위를 찾는 것이 중요하다. 본 논문의 사이니지 플레이어 기기에 채택된 열화상 센서 모듈은 열화상 이미지 해상도가 32×32 이어서 적외선이미지로부터 얼굴 부위를 찾는 것은 힘들다. 본 노문에서는 이를 위하여 연동된 광학 카메라 이미지로부터 얼굴 부위 검출을 이용하였다.
얼굴 검출은 객체 검출 분야의 하나로 많은 얼굴인식 및 얼굴 분석시스템에서 중요한 첫 번째 과정이며, 본 논문에서도 사용되는 과정이다. 초창기에는 HaarCascades[12], 지향성 그래디언트 히스토그램 [13]등의 특징 벡터들을 추출하고, 이러한 특징 벡터들을 사용하여 SVM과 같은 분류기들을 훈련 시켜 얼굴 검출기를 개발하였다. 그러나 이러한 접근 방법들은 충분히 높은 정확도를 달성할 정도록 강력하지 못했다.2012년 딥러닝 심층 신경망을 사용한 이미지 분류의 획기적인 작업[14]으로 컴퓨터 비전 분야에서 딥러닝 기반 기술로의 거대한 패러다임 전환이 이루어졌으며, 객체 검출 분야에서도 많은 딥러닝 기반 객체 검출 방법들이 제안되어 정확도가 크게 향상되었다[15]. 얼굴 검출 또한 객체검출의 한 종류이므로 딥러닝 적용 방법이 현재에는 좋은 결과를 보이며 대세이다. 그동안 개발된, 딥러닝 기반 얼굴 검출 방법들에 대해서는 [15]을 참조하기로 한다.
본 논문에서 설계하고 구현하는 COVID-19디지털 사이니 플레이어 기기는 임베디드 시스템이므로 CPU프로세싱 속도 및 메인 메모리 용량에 제약이 있다.따라서, 광학 카메라에서 획득한 이미지에서 얼굴을 검출하는 알고리즘이 임베디드 시스템에서 실시간으로 동작하려면 알고리즘이 경량화(파라미터들이 적도록 함) 되어야 한다. 본 논문의 COVID- 19사이니지 플레이어는 안드로이드 기반의 응용이므로, QR스캐닝 모듈과 같이, 플레이어에 통합되어 개발되는 얼굴 검출 모듈은 구글 MLKit [16]의 안드로이드 얼굴 검출 API[17]를 이용하였다.
여기서는 구글 MLKit의 얼굴 검출 API의 얼굴인식 알고리즘인 ‘BlazeFace’[18]에 대해 간단히 살펴 본다. BlazeFace는 모바일 GPU 추론을 위해, 16-bit부동소수점 모드 TensorFlowLiteGPU로 구현한 가볍고 성능이 좋은 얼굴 검출 알고리즘으로, 안드로이드 플래그십 모바일폰에서 200~1000+fps 의 속도로 실행된다.Single Shot MultiBox Detector (SSD)[19]을 개선한 GPU친화적인 앵커 기반 회귀방식이며, 심층 신경망에 시용되는 컨볼루션의 계산량을 줄이기 위해 MobileNet[20]에서 개발된 깊이 기반 가분 컨볼루션 (depthwise separable convol-ution)을 채택하였다. [18]은 자체 제작한, 인종적으로 다양한 얼굴이 20% 이상 차지하는 얼굴 이미지 2K로 구성된 데이터 세트에 대한 실험에서 98.61%의 평균 정확도(average precision)을 보여주는 것으로 보고하였다.
2.2.2 안면마스크 (Face Mask) 검출
앞서 얼굴 검출 관련 연구에서 살펴본 바와 같이, 안면 마스크 검출 또한 얼굴 검출과 같은 객체 검출의 한 분야로 딥러닝 기반 연구가 대세이다[21]. 충분한 분량의 훈련 레이블링 데이터 세트를 마련하는 것은 시간이 많이 소요되는 일이다.[22]는 전이 학습 기법을 활용하여 ImageNet데이터 세트[14]로 미리 학습된 ResNet50[23]을 이용하고, 마지막 계층에 5개의 새로운 계층을 추가한 후에 전체를 다시 마련된 소규모의 안면 마스크 데이터 세트로 파인 튜닝을 수행하여, 98% 이상의 F1-score를 얻었다. [24] 는임베디드 안면마스크 검출을 MobileNetV2[25], ResNet[23].및 VGG[26]와 같은 사전 훈련된 모델을 사용하여 구현하고 성능을 비교하여 95% 이상의 F1- score을 보여줌을 보이고 Raspberry Pi 4 임베디드보드에 구현해 보았다. [27]은 MobileNetV2[25]를 사용한 SSD(Single shot Multibox Detector)[28] 를적용하여 마이크로 프로세서기기에서 실시간으로 실행 가능하도록 구현한 결과를 발표하였다.
본 논문의 안드로이드 사이니지 플레이어 프로그램이 동작하는 임베디드 보드는 Rockchip사의 RK 3399[29]를 메인 프로세서로 가지며 LPDDR4GB를 지원하며, PC 데스크톱에 비해, 성능이 떨어진다. 따라서, 딥러닝 심층망은 네트워크 구조가 가벼워야 하며, 딥러닝 프레임워크는 임베디드 보드에서도 원활히 돌아갈 수 있도록 지원되어야 한다. 본 논문에서는 MobileNetV2[25]에서 도입된 깊이 기반가분 컨볼루션을 이용하여 네트워크를 경량화시키며, 딥러닝 프레임워크는 tensorflow-lite를 사용한 오픈 소스를 활용하였다[30].
2.2.3 적외선 열화상 센서를 이용한 체온 측정
체온 측정을 위해 설계된 Non-Contact Infrared Thermometers (NCIT)과 Infrared Thermography (IRT;열화상 이미지) 시스템들에는 ±0.3°C 이내의 정확도가 요구된다. 열화상 이미지를 사용하여 체온 측정하는 경우에, 얼굴 부위 영역에서 최대 온도 값을 체온으로 확정하는 NCIT기기가 있으나, 이는 ISO 표준에서는 권고되지 않는다[2, 10].
[31]은 Lepton3.5(160x120)으로 캡쳐된 열화상 이미지들에서 눈 부분을 레이블링한 1, 800장 열화상 이미지의 훈련 데이터 세트를 만들고, YOLOv5[32] 를 통해 학습시켜, 열화상 이미지에서 눈 부분을 찾도록 한 후에, 눈 부분 열상이미지 픽셀의 평균으로부터 체온을 계산하였다. 이 경우, 안경을 쓰거나 눈의 일부 부위가 가려진 경우에는 해당 체온 계산 알고리즘은 처리에 문제가 있다. [33]은 열화상 이미지에서 얼굴 부위를 찾고 얼굴 부위에서 가장 높은 온도 픽셀을 찾아 최고 값을 체온으로 결정하였다.그런데, 열상 이미지에서 얼굴을 어떻게 찾는지에 대한 설명은 주어지지 않았다. [34]는 광학 이미지에서 eye corner를 검출하고, 열화상이미지에서의 대응점의 온도를 체온으로 결정하였다.Eyecorner를 안정적으로 찾기 위해, 스케일이 큰 이미지(얼굴 전체 이미지)에서 eyecorner를 찾고 이 지점이 다음 스케일의 시작점이 되어 다시 해당 스케일에서의 eyecorner 를 찾고 이런 식으로 끝날 때까지 반복하여 보다 정확하게 eye corner를 찾도록 하였다. 그러나, 역시 안경을 쓰거나 eyecorner가 가려지는 경우에는 문제가 있다. [35]는 열화상 이미지들을 OpenCV[36] 로 인체 부위 검출로 훈련한 다음, 입력 열화상 이미지에서 인체 부분을 검출하고, 인체 부분 픽셀의 온도 값들을 여러 프레임에 걸쳐 이들의 평균을 구하고 이를 체온으로 결정하였다. 이 방법의 문제점은 인체 부분 대부분이 옷을 입고 있어, 옷으로부터의 온도 픽셀들이 사람 피부 부분에서의 온도픽셀들보다 더 많아 평균을 구해도 왜곡이 된다.
[37]은 본 논문에서와 같이 광학이미지와 열화상 이미지의 좌표 매칭을 통해, 광학 이미지에서 검출된 얼굴 이미지에 해당하는 열화상 이미지에서의 얼굴 부분을 찾고 여기에서 온도 최대 값을 찾아 이를 체온으로 정한다. 본 논문은 알고리즘 측면에서는 얼굴 부분 영역에서 머리 부분, 마스크 부분, 가려진 부분, 얼굴 이외 부분 등은 제거한 순수한 얼굴 피부 영역에서의 온도값들을 평균하고 또한 이를 여러 프레임에 대해 다시 평균을 구한 것을 체온으로 결정한 점이 [37]과 다르다. 구현 측면에서는 [37]은 열화상 카메라로부터의 온도값을 읽고 이를 이용한 반면에, 본 논문에서는 열화상센서 모듈을 이용하고 열화상 센서 모듈이 획득한 데이터를 읽어서 온도 이미지 픽셀값으로 직접 변환하고 얼굴 부분 영역의 온도 값을 읽고 처리하여 평균 등을 직접 계산하였다. 또한, 시스템 측면에서는 [37]은 체온 측정시스템 개발이지만, 본 논문의 시스템은 체온 측정 기반 발열 점검, 안면 마스크 착용 여부 점검, QR체크인 코드 체킹 등을 지원하는 단독형 디지털 사이니지 플레이어 개발이다는 점에서 차이가 있다.
2.2.4 QR code scanning
바코드는 실제 세계에서 앱으로 정보를 전달하는 편리한 방법이다. 특히, QR코드와 같은 2D 형식을 사용할 때 연락처 정보 또는 WiFi네트워크 자격 증명과 같은 구조화된 데이터를 인코딩할 수 있다.ML Kit의 바코드 스캐닝 API [38]는 바코드 방향(오른쪽 위, 거꾸로 또는 옆)에 관계없이 인식하고 스캐닝을 지원한다. 바코드 데이터를 자동으로 인식하고 구문 분석할 수 있으므로 사용자가 바코드를 스캔하면 앱이 지능적으로 응답할 수 있다.MLKit의 바코드 스캐닝 API의 성공적 동작 수행을 위해 HD(1280× 720)orFull-HD(1920×1080)의 고해상도 바코드 이미지가 권고되는데, 본 논문의 기기에서는 Full-HD 해상도 웹캠 모듈을 사용하였다.
3. 제안 단독형 CVID-19 사이니지 플레이어
3.1 단독형 CVID-19 디지털 사이니지 시스템 개요
단독형 CVID-19디지털 사이니지 시스템의 동작 구조는 Fig.2와 같으며, Fig.2의 파란색 박스 부분은 본 논문에서 개발하는 단독형 CVID-19디지털 사이니지 플레이어(안드로이드 어플리케이션) 부분을 나타낸다. 플레이어 기기는 HW적으로는 LCD패널과 임베디드 보드(기기에 내장 또는 외장 셋톱박스에 탑재)로 구성되며, 본 논문에서 개발하는 단독형 CVID-19디지털 사이니지 플레이어는 임베드 보드에 탑재되어 동작하는 안드로이드 응용이다.기기 등록 시에 클라우드 서버에 등록해서 사용하도록 되어있다. 또한, 클라우드 서버에는 이미 많은 콘텐츠 템플레이트들이 제작되어 저장되어 있다. PC대쉬보드나 모바일 대시보드는 직접 광고 콘텐츠를 만들거나, 클라우드 서버로부터 미리 디자인된 템플레이트를다운로드하여 그 디자인을 다시 원하는 대로 편집하여 광고 콘텐츠를 만들어서 이를 디스플레이 기기에 전송하여 표출한다.
Fig. 2. Working Architecture of the Standalone CVID-19 Digital Signage System.
3.2 제안 CVID-19 사이니지 플레이어 기기의 H/W 구성
플레이어가 동작하는 임베디드 보드는 RK3399 [29]를 메인 프로세서로 가지며, 메모리 용량은 4GB이다. 장착한 광학 센서는 Full-HD(1920×1080)해상도, 수평시야각 68°수직 시야각 54°을 지원하는 USB웹캠 모듈이다. 또한 채택한 열화상센서 모듈은 Terabee사의 열화상센서 모듈 ‘TeraRanger Evo Thermal33’ [39]으로 해상도는 32×32이며, 수평 및 수직 시야각은 모두 33°이며, 초당 7프레임 획득 속도, 반복도(Repeatability)<±0.3°C을 지원한다. 반복도는 연속해서 측정되는 온도값들의 차이 범위가 ±0.3°C이란 의미이며, 체온 측정값의 정확도가 ±0.3 °C미만이란 뜻이 아니다. 사양서[39]에 따르면, 체온 온도 측정의 정확도는 25°C 내부 온도에서 여러 센서에 대한평균으로 계산된 것으로 ±0.5°C이다. 그러나, 앞 2절의 배경이론에서 살펴보았듯이 인체 피부에 대해서 측정되는 열화상 센서값은 실내 공기 온도에 영향을 받으므로, 별도의 알고리즘 처리를 하지 않으면 이를 보장할 수 없다.
Fig.3은 현재 제작한 13.5“CVID-19 사이니지 플레이어 기기를 보여준다. 상단에 광학카메라 및 열화상 센서 모듈이 장착되어 있으며, 카메라 이미지, 검출 얼굴 표시, 측정된 체온 온도표출, 마스크 착용 여부 메시지 표출, QR체크인 코드 체킹 결과 메시지표출 등은 모두 스크린의 카메라 영역에 나타나고, 광고 콘텐츠는 하단에 표출된다.
Fig. 3. CVID-19 Digital Signage Player Device.
3.3 제안 CVID-19 사이니지 플레이어 S/W 구조
3.3.1CVID-19사이니지 플레이어 요구 기능 사양
주요 요구 기능 사양은 다음과 같다.
-사이니지 대쉬보드(PC대쉬보드/모바일 대쉬보드) 와의 네트워킹 지원
-사이니지 대쉬보드의 기기 찾기 메세지에 응답 -사이니지 대쉬보드로부터 전송받은 콘텐츠 (텍스트, 이미지, 그래픽, 비디오 등의 다양한 미디어 및 카메라 영상, 열화상 센서로부터 계산된 체온값 출력정보 등의 의 다양한 조합으로 구성됨) 재생
-카메라 입력 및 열화상 센서 체온 연동 표출 -카메라 영상으로부터 얼굴 검출 및 검출된 얼굴 바운딩 박스 표출
-체온 점검 및 체크 결과 체온값 표출 및 멘트(정상입니다. 체온 높습니다 등) 출력
-QR체크인코드 처리 및 결과 표출 및 멘트(체크되었습니다) 출력
-사이니지 대쉬보드로부터 전송받은 플레이리스트, 스케줄 기능 수행
-사이니지 대쉬보드로부터 제어명령 (reset, re- start, 저장용량 삭제)
- S/W 업데이트 지원
3.3.2 설계 S/W 동작 구조
Fig.4는 본 논문에서 설계하고 구현한 CVID-19 디지털 사이니지 플레이어 S/W 구조를 보여준다.
Fig. 4. S/W Working Architecture of CVID-19 Digital Signage Player.
Fig.4에 보이는 CVID-19단독형 사이니지 플레이어 S/W는 크게 8개 모듈 요소로 구성된다; 응용코어 서비스(AppCore Services) 및 코어/ML라이브러리(Core Libraries for OS level and Applevel MLlib), 기기관리(Device management), 디스커버리 서비스(Discovery Service), 콘텐츠 관리(Content Management), 네트워크 핸들러(Network Handler), UI요소(component), 디스플레이 콘트롤러(Display Controller).이들 각 구성 모듈 요소는 초기화, 시작, 관리 및 렌더링 작업 등을 수행하기 위해, 하나 이상의 구성 모듈 요소와 연결되고 통합되어 동작한다.
⚬ 코어 서비스 및 코어/ML 라이브러리
-코어 서비스는 BootComplete, AlarmManager, USB서비스 및 Discovery Service와 같은 핵심 OS 수준 서비스를 초기화한다. 백그라운드 스레드 및 브로드캐스트 수신기와 같은 앱 수준 서비스를 시작하는 주요 서비스이다. 핵심 라이브러리에는 얼굴 검출, 마스크 검출, 체온 점검, QR체크인 코드 체크 (Barcode scanning)등의 ML(Machine Learning) 기능 처리가 포함되며, 기타 포함되는 3rd party 라이브러리는 네트워킹, 렌더링 및 ML관련 작업을 수행을 지원한다.
⚬ (디스플레이) 기기 관리
-기기관리 구성요소는 기기정보(보안 및 인증정보)의 초기화 및 저장을 담당하는 기기 컨트롤러 클래스를 정의하고 콘텐츠 재생 및 콘텐츠 백업 상태를 제어, 저장하고 기기 저장소, 상태 및 정보를 관리 및 재설정을 지원한다.
⚬ 디스커버리 서비스
-디스커버리 서비스는 일정과 재생목록을 반복적으로 확인하는 주기적인 프로세스를 정의한다. 또한 프로세스는 인증 및 콘텐츠 전송을 위한 기기 정보를 포함하는 UDP데이터그램 패킷을 송수신하기 위한 UDP 브로드 캐스팅를 시작한다.
⚬ 콘텐츠 관리
-콘텐츠 관리 구성요소는 다양한 콘텐츠 유형에 대한 데이터 모델을 정의한다. 파일 저장소에서 콘텐츠를 적재 및 재생을 준비하고 어셋파일(이미지, 그래픽, 비디오 등) 및 프레젠테이션 데이터를 렌더링을 위해 디스플레이 컨트롤러에 전달한다. 콘텐츠는주로 어셋, 프레젠테이션, 위젯, 유튜브, 구글 드라이브, 긴급 메시지, 카메라 영상이미지, 열화상 센서 이미지 등으로 구성된다.
⚬ 네트워크 핸들러
-네트워크 핸들러는 사이니지 플레이어와 클라이언트 대시보드 간의 네트워킹을 담당한다. 네트워킹 인터페이스는 3가지 유형의 채널로 구성된다. -UDP소켓:LAN을 통한 기기 정보가 포함된 데이터 그램 패킷 송수신 지원.대시보드는 주기적으로 UDP브로드캐스팅을 통해 LAN연결된 기기를 찾는다. 대시보드는 응답한 기기 중에 등록된 라이센스 키를 가지고 있는 기기만을 자신의 기기로 등록하고, 이들 기기만 하고의 네트워킹을 허락한다.
-블루투스 서비스:QR코드로 디바이스 등록을 위한 데이터 전송을 제공한다.
-HTTP서버:Android기기(NanoHTTPD)를 위한 주요 경량 웹서버로, .웹서버는 클라이언트 대시보드의 모든 restfulAPI요청을 처리한다. 웹서버는 애플리케이션 주기에 따라 자동으로 시작하고 및 중지된다.
⚬ UI 요소
-기본 UI구성 요소는 2개 activity로 구성된다. SplashActivity는 기기 정보를 초기화하고 사용자 권한, 네트워크 및 기기 상태를 체크한다. 그런 다음 메인 UI구성 요소이자 스레드, 핸들러 및 백그라운드 서비스의 시작점인 MainActivity를 시작한다.웹 restfulAPI요청은 MainActivity로 전달되며, 여기서는 콘텐츠를 렌더링하고 표시하기 위해 모델과 컨트롤러를 호출한다. 또한 밝기, 재설정 및 절전 모드 등과 같은 기기 제어와 관련된 요청도 처리한다.
⚬ 디스플레이 콘트롤러
-디스플레이 컨트롤러는 개별 뷰 구성 요소를 정의한다. 뷰는 독립적이거나 다른 뷰를 포함할 수 있다. 뷰 요소는 레이아웃 데이터 모델을 기반으로 기본 뷰로 확장되고 표출할 어셋을 적재한다.
3.4 얼굴 검출, 마스크 검출, 체온 측정 및 QR 체크인 코드 체킹의 동작 플로우
본 논문에서 채택한 구글 MLKit의 얼굴 검출 및 바코드 스캐닝 API는 얼굴 및 QR코드의 위치를 영상 이미지에서 가정하지 않는다. 얼굴 또는 QR코드가 이미지에 어디에 있든지 검출하거나 인식한다. 얼굴 마스크 검출은 검출된 얼굴이미지를 대상으로 마스크를 검출한다.Fig.5는 본 논문에서 구현한 얼굴 검출, 마스크 검출, 체온 측정 및 QR체크인 코드체킹 부분의 동작 플로우를 보여 준다.
Fig. 5. Work flow of face detection, mask detection, body temperature checking and QR check-in code checking.
광학카메라에서 획득된 영상이미지에서 먼저 얼굴을 검출하고 (①), 검출된 얼굴 이미지 데이터를 이용하여, 얼굴 영역 좌표를 계산한 후 (②), 이 좌표 정보를 열화상이미지에서의 얼굴이미지 부분을 계산하는 데 넘겨주어, 해당하는 열화상 얼굴 이미지에서 체온 온도를 많이 넘어가는 아웃라이어픽셀 온도 값들은 제거한 후에 나머지 픽셀들 대해 평균을 취해 체온을 계산한다(③). 한편 검출된 얼굴 이미지에서 마스크 검출을 시도하고 (④), 마스크가 검출되면 QR 체크인 코드 체킹 부분으로 넘어가 QR코드를 체킹한다(⑤).
3.5. 체온 측정 알고리즘 동작 구조
3.5.1 체온 측정 알고리즘 개요
채택한 Terabee열화상 센서의 열화상 이미지의 해상도는 32×32이고, 시야각은 33°이며, 열상 데이터프레임 획득 속도는 7fps이므로, [31]에서처럼 이 열 화상 센서의 이미지를 이용하여 훈련을 시키고, 이를 통해 얼굴 부분을 검출하는 것은 정확도 확보에 문제가 있다.
한편, 본 논문의 사이니지 플레이어는 체온 측정을 통한 발열 점검뿐만 아니라, 얼굴 검출, 안면 마스크 검출, QR체크인 코드 체킹 등도 수행해야 하기때문에, 이에 대한 효과적 처리는 보다 해상도가 높은 광학카메라 영상이미지로 할 수밖에 없다. 광학카메라 이미지의 해상도는 Full-HD(1920×1080)이므로, 얼굴 검출을 정확하게 수행할 수 있다.따라서, 본 논문에서는 먼저 광학카메라 이미지의 시야 범위와 열 화상 이미지와의 시야 범위에 대해 좌표 매칭 관계를 계산한다. 광학 이미지에 대해 얼굴 검출 알고리즘을 적용하여 얼굴 영역을 검출한 후에, 구한 좌표 매칭 관계를 이용하여, 열화상 이미지에서의 해당 얼굴 부분 사각형을 찾는다. 해당 얼굴 부분에서 정상 체온 범위보다 비교적 큰 차이를 보이는 온도 픽셀을 아웃라이어로 간주하여 제외하고 나머지 부분에 대해 평균을 취한다.이 제외되는 부분은 머리 부분, 모자 및 안경 착용 부분, 다른 것으로 가려진 얼굴 부분, 얼굴 부분 사각형에서 얼굴 부위가 아닌 부분 등이다. 또한, 열화상이미지는 주변 온도 변화에 민감하고 잡음이 존재하므로, 각 프레임에서의 평균을 여러 프레임(본 논문에서는 4프레임)에 걸쳐 평균하여 최종적으로 체온을 확정한다. 한편, 열화상 이미지에서 얼굴 부분의 화소수가 일정 이상이어야 평균값 계산이 의미가 있다. 해당 열화상 센서는 32× 32이므로 최소 얼굴 부분화소수가 10×10픽셀 이상이 되는 게 바람직하며, 이를 달성하기 위해 해당 Terabee열화상 센서에서는 30cm~50cm의 감지 거리가 권고된다[40].
따라서, 본 논문에서 구현한 플레이어 기기는 사용자가 기기로부터 일정 거리가 되도록 안내 멘트를 내 보낸다. 참고로 열화상센서의 측정값은 주변 온도에 영향을 받으므로, 열화상센서를 안정적인 온도로 유지하는 것이 중요하다.열화상 센서 동작은 먼저 최소 30분의 워밍업 시간과, 그 후 열화상 센서는 열 표류 또는 열전환 효과를 피하기 위해 계속 작동되도록 하는 것과 열화상센서의 주변 온도가 +15°C ~+25°C 범위에 있도록 하는 게 바람직하다. 또한열화상 센서를 열 외부 소스에 가깝게 장착하지 않으며, 주변의 공기대류를 피하고 보호된 환경에서 실내에서 사용하는 것이 권고된다[40].
3.5.2광학 이미지 영역에서의 열화상이미지 영역 및 좌표 매칭
광학이미지 해상도(1920×1080)/ 시야각(수평 시야각 68°수직 시야각 54°)과 열화상 해상도(32x32)/ 시야각(수평 시야각 33°수직 시야각 33°) 사이에는큰 차이가 있기 때문에 얼굴 좌표를 맞출 때 이 문제를 해결해야 한다.
먼저, 해당 열화상이미지 영역이 광학이미지 영역에서 어디에 위치하는지를 Fig.3의 기기에서 직접 카메라 이미지 전부와 열화상 이미지 전부를 표출하여, 직접 자를 이용하여 측정하고 가로길이에 대해 픽셀의 총수가 1920임을 이용하여 픽셀 좌표값 a,b,c,d 를 구한다. Fig.6은 이 결과를 도식적으로 나타낸다.
Fig. 6. Correspondence relation between (a) optical image and (b) thermal image.
Fig.6으로부터, 광학 이미지(Fig.6(a))에서의 점 p=(x,y)과 이에 대응하는, 열화상 이미지 (Fig.6(b))에서의 대응점 p'=(x',y')간의 좌표 관계는 다음과 같다.
x'=(x-a)/(c/32), y'=(y-b)/(d/32) (1)
3.5.3 열화상이미지에서의 얼굴 온도 영역 특정
앞서 언급한 바와 같이, 광학 이미지 (1920×1080)에서 구글 MLKit의 얼굴 검출 알고리즘을 적용하여, 광학이미지에서 얼굴을 포함하는 최소 사각형 영역을 검출할 수 있다다. 이 최소 사각형의 좌상단 좌표를 (x,y)라 하고, 사각형의 너비 및 높이를 각각 w, h 라하면, 열화상 이미지에서 대응되는 얼굴 부위 최소 사각형의 좌상단 좌표(x',y')는 식(1)과 같이 구해지며, 너비 및 높이w', h'은 각각 다음식 (2) 와 같이 구해진다.
w'= w*32/c , h'= h*32/d (2)
이후, 열화상 이미지에서 얼굴 부위 온도 계산영역을 좀 더 정확히 하기 위해 위에서 구한 매칭된 얼굴 영역 사각형을 좀 더 안쪽으로(10%정도) 잘라내고 최종 온도 점검 영역으로 잘라 낸다 (Fig.7참조).
Fig. 7. Face temperature zone specifying process.
3.5.4 얼굴 부위 온도 계산
사람의 정상 체온 범위는 35.5°C~37.5°C이며, 38°C이상의 체온인 경우에 발열이 있다고 판정된다. 얼굴 부위 영역에서 마스크나 안경 부위에서의 온도는 보통 사람의 체온보다는 낮다.따라서, 얼굴 부위 영역 전체의 평균을 구하게 되면, 이러한 얼굴 피부 이외의 부분에서의 측정된 온도 때문에 낮아지게 된다. 또한, 사람의 체온이 40°C이상이면 생명을 위협할 수준이므로, 돌아다닐 정도가 못된다.만일 얼굴 부위에서의 열화상 이미지 픽셀이 40°C이상이면 노이즈이거나, 사람이 아닌 발열 물체에서 측정될 가능성이 매우 높다. 따라서, 본 논문에서는 얼굴 부위 영역에서의 픽셀의 값이 35°C미만이거나 40°C 이상인 경우는 적절한 데이터 값 범위를 넘어선 아웃라이어로 간주하여 얼굴 부위 온도 평균 계산에서 제외하였다. Fig.8(a)에서 노란색 부분들이 35~39°C 사이의 온도 값을 갖는 픽셀들이다.Fig.8의 이미지들은 체온 계산 과정들의 이미지들이다.Fig.8(a)는 광학 웹캠에서 획득한 이미지이며, (b)는 열화상 센서 모듈에서 획득한 열화상 이미지이며, (c)는 열화상 이미지에서 얻은 각 픽셀 온도 데이터를 엑셀에서 색상을 선택해서 그린 엑셀 그림이다. 엑셀에서는 열화상 센서 모듈에서 채택한 컬러맵과 같은 색상 선택이 어려웠다.(d)는 (c)엑셀 그림의 데이터를 좀 더 확실히 확인할 수 있도록 엑셀 그림 (c)을 확대해서 그린 그림이다.Fig.8(d)의 경우, 얼굴 부위 (초록색 박스) 내에서 아웃라이어를 제외한 픽셀들의 온도 평균값은 36.31°C이었다.Fig.11(a)는 실제적으로 본 논문에서 제안되고 개발된 COVID-19사이니지 플레이어 기기에서 동작되는 모습을 화면캡쳐한 이미지를 보여 준다.
Fig. 8. Temperature processing images. (a) captured optical image, (b) captured thermal image, (c) Temperature data image painted in Excel, and (d) Enlarged excel temperature data image.
4. 실험 및 평가
본 논문에서는 체온 측정(발열 점검), 얼굴 마스크 착용 점검, QR코드 체킹 등을 수행하는 CVID-19 디지털 사이니지 플레이어 S/W를 설계하고 구현하였다. 디지털 사이니지의 요구사양 기능의 동작 여부는 자체 실험 결과 잘 동작함이 확인되었다. 사이니지 기능은 기존 사이니지 기능 외에 특별히 새로운 기능은 없어, 달리 보고할 만한 것이 없으며, 여기서는 얼굴 검출, 얼굴 마스크 검출, 체온 측정, QR 코드 체킹 동작 등에 대한 실험 결과를 기술한다.
4.1 데이터 세트
본 논문에서 얼굴 검출을 위해 사용한 구글 ML kit의 BlazeFace알고리즘[18]은 자체 제작 2K 데이터 세트에 대해 98.61%의 평균 정확도를 보고하고 있다.또한, 본 논문의 얼굴 마스크 검출은 오픈소스 알고리즘[30]을 사용하였다.얼굴 마스크 오픈소스 [30]에서는 얼굴 마스크 검출을 MobileNetV2로 모델링하고 tensorflow-lite로 구현한 안드로이드 모델을 제공하였다. 본 논문의 안드로이드 플레이어는 이를 시스템에 통합 개선하여 사용하였다. 본 논문에서는 해당 오픈소스 얼굴 마스크 검출 알고리즘의 성능을 테스트하기 위해 Masked Face Detection Dataset (MFDD), Real-world Masked Face Re-cognition Dataset (RMFRD)과 Simulated Masked Face Recognition Dataset(SMFRD)을 이용하였다 [41, 42]. MFDD는 인터넷에서 수집한 실제 마스크를 쓴 얼굴 이미지로 24, 771개다. RMFRD는 인터넷에서 공공인물 이미지와 그들이 마스크를 착용한 이미지를 수집하여 얼굴 부위 중심으로 잘라내어 제작한 데이터 세트로 525명의 마스크 착용이미지 5000개, 같은 인물의 마스크 착용하지 않은 이미지 90, 000개로 구성된다.
SMFRD은 10, 000명 사람의 500, 000개 얼굴 이미지를 마스크 쓴 이미지로 영상 처리한 데이터 세트이다. 이들 데이터 세트에 대한 자세한 설명은 [41] 을 참조하기로 한다. 실제 데이터 세트는 [42]에서 다운로드받을 수 있다.
Fig. 9. Examples of a pair of face images from RMFRD. (a) and (b) are normal face images. (c) and (d) are masked face images [41].
Fig. 10. Samples of a set of simulated masked face images from SMFRD [41].
4.2 실험 환경
본 논문의 실험에서 사용한 컴퓨팅 기기는 PC와 실제 환경 COVID-19디지털 사이니지 플레이어 기기이다. 그 사양은 다음과 같다.
PC; Intel(R)Core(TM) i5-8400CPU@2.80GHz (6CPUs), ~2.8GHz, 16GBRAM, Windows 10Pro64-bit
COVID-19 디지털 사이니지 플레이어 기기 ; RK3399 SoC 및 4GB메인 메모리, Android8.0
4.3 평가실험 방법
사이니지 기본 사양 기능, 얼굴 검출, 얼굴 마스크검출, 체온 측정, QR 코드 체킹의 실제 동작 여부 및 성능 평가는 본 논문에서 실제 개발된 COVID-19 디지털 사이니지 플레이어 기기(Fig.3)에서 수행하였다. 사이니지 기본 사양 기능(3.3절 참조)의 동작 여부 및 성능 평가는 100차례 같은 항목 (예; 콘텐츠전송 및 표출)을 수행하여 정상동작하는 지를 살펴보는 것으로 하였다. 100% 동작하는 것으로 육안 관찰되어 특별히 이에 대해 따로 실험 결과 보고는 하지 않는다.
얼굴 검출 및 QR체크인 코드 체킹의 정확도 및 실시간 처리 성능 평가는 본 논문의 구현 시스템에서 구글 MLKit안드로이드 라이브러리를 사용하였는데, 따로 소스 코드 및 데이터세트가 없어서 COVID- 19사이니지 플레이어 기기에서의 성능을 육안 관찰하는 것으로 수행하였다. 얼굴 검출, 얼굴 마스크 검출, QR코드 체킹의 실제 플레이어 기기에서의 실시간 정상 동작 여부 평가는 각 프레임 마다에 대해서 동작 여부 평가가 아니고 짧은 시간 내 (4프레임 평균처리 속도가 2.6초 정도)에서의 정상 동작 평가면 실용적으로 충분하므로, 역시 10명이 각각 10회 이상, 총 100회 이상 수행하여 100%실시간 정상 동작을 하는 것으로 육안 관찰되었으며 특별히 이에 대해 따로 실험 결과 보고는 하지 않는다.
또한, 얼굴 마스크 검출의 경우에는 오픈 소스[30] 를 사용하였지만 정확도 성능을 위해서 4.1절에 소개한 데이터세트에 대해 마스크 없는 마스크 이미지 데이터 세트 및 마스크 있는 얼굴 이미지 세트에 대해 precision및 recall를 구하였다. 또한, 체온 체킹의 안정성 평가를 위해 정상 체온 10인에 대해 시간당 2회, 총 5시간에 총 100회 측정으로 안정성을 살펴보았다.
4.4 실험 결과 및 고찰
각각에 대한 실험평가 결과는 다음과 같다.
4.4.1 얼굴 검출, 체온 측정, 마스크 검출, QR 체크인 코드 체킹 정상 동작 여부
개발된 COVID-19디지털 사이니지 플레이어 기기에 대해서 10명의 각각 10회 이상, 총 100회 이상 수행하여 100% 실시간 정상 동작을 하는 것으로 육안 관찰되었으며, Fig.11은 정상 동작여부를 보여주는 사이니지 플레이어 기기의 화면 캡쳐 이미지들이다.
Fig. 11. Snapshop images from the proposed COVID-19 Signage player. (a) normal case, (b) no mask, and (c) QR check-in checking.
4.4.2얼굴 검출, 체온 측정, 마스크 검출 및 QR 코드 체킹 실시간 처리 성능
Table1은 본 논문에서 구현한 COVID-19사이니지 플레이어 기기에서의 얼굴 검출, 체온 측정, 마스크 검출, QR코드 체킹 과정 전체의 수행에 대해 5차례 실험한 4개 프레임 처리 속도 결과를 보여 준다.
Table 1. Processing Times on the developed COVID-19 digital signage player device.
5차례 실험 평균은 4개 프레임 처리에 2.6초 정도 소요됨을 알 수 있다.사용자가 신속히 반응하면, 전체적으로 3초 이내에 발열 점검, 마스크 착용 점검, QR코드 체킹이 완료되며, 이는 실제적으로 적용에 큰 무리가 없다고 판단된다.
4.4.3 얼굴 마스크 검출 성능
본 논문에서는 채택한 얼굴 마스크 검출 오픈 소스 [30]에서 제공된 훈련 네트워크 모델을 이용하여 PC환경에서 추가적으로 MFDD, RMFRD, SMFRD 을 통합한 데이터세트에 대해 30%정도를 랜덤하게 선택 하여 훈련에 사용하고, 나머지에서 40%를 랜덤하게 선택하여 테스팅한 실험 결과가 Table2에 나타나 있다.
Table 2. Accuracy performance of adopted open source face masking algorithm over dataset of MFDD+RMFRD+SMFRD.
이 결과들은 현재 최신 얼굴 마스크 검출 결과[24] 들의 성능에 미흡하나, 일단 데이터 세트가 달라 단순 비교하기는 어렵다. Table2의 결과는 각 프레임에 대한 것이고, 매우 다양한 얼굴 자세 및 다양한 마스크 착용 상태를 갖는 데이터세트에 대한 것이다. 실제 개발된 COVID-19사이니지 플레이 어에서 의보 통의 얼굴 자세 및 마스크 착용 상태에 대해서는 마스크 검출은 잘 동작함이 육안 관찰되었다. Fig. 12과 Fig.13은 테스트팅 데이터세트의 마스크 착용 이미지 및 마스크 미착용 얼굴 이미지들에 대해 성공적 수행을 보여주는 샘플 이미지들을 보여 주며, Fig. 14는 실패한 샘플 이미지들을 보여준다.
Fig. 12. Success Sample Mask Images.
Fig. 13. Success Sample No-Mask Images.
Fig. 14. Failure Sample Images.
4.4.4 체온 측정의 안정성
Table3은 본 논문 3.5절에서 구현한 CVID-19사이니지 플레이어의 체온 체킹 알고리즘의 성능 평가실험 결과이다. 하루 중 오전 11시부터 오후 4시까지, 실내에 설치하여서, 10명이 각 시간 2회씩 간격으로 5시간, 총 100회 측정한 체온 데이터이며, 평균은 36.3°C, 분산은 0.209°C이다. 또한, 계산되어 표출되는 체온 측정 범위는 35.5°C~37.33°C으로 정상 체온 범위인 35.5~37.5°C의 값이다.
Table 3. Body Temperature Experimental Results.
Fig.15는 본 논문에서 개발한 체온 측정 알고리즘의 안정성을 보여주는 사례로 얼굴 부위에 뜨거운 커피잔을 들고 있어도 체온 측정은 정상인의 경우에, 정상 온도 범위로 표출해줌을 보여 준다.
Fig. 15. A sample case of Stability of Temperature Checking algorithm.
5. 결론
본 논문에서는 기존 사이니지 시스템처럼 사이니지 기능도 제공하면서 발열 점검, 얼굴 마스크 착용 여부 점검, 전자명부 QR코드 체킹을 수행하는 보급형 COVID-19디지털 사이니지 플레이어를 제안하였다. 실제 제작된 플레이어 기기에서 사이니지 사양에 따른 사이니지 기능 동작과 발열 점검을 위한 체온 점검 , 마스크 검출, QR코드 체킹들이 안정적이며 실시간으로 동작함을 확인하였다. 저가의 열화상 센서 모듈을 활용하여 제안한 체온 점검 알고리즘이 단기적으로는 안정적으로 동작함을 확인하였다. 체온 점검 동작은 제작된 플레이어 기기를 여러 장소에 설치하여 장시간 필드 테스트 과정을 거친 후에 장기적 안정성을 보완될 필요가 있다.
References
- D. Perpetuini, C. Filippini, D. Cardone, and A. Merla, "An Overview of Thermal Infrared Imaging-Based Screenings during Pandemic Emergencies," International Journal of Environmental Research and Public Health, Vol. 18, Issue 6, 3286, 2021 https://doi.org/10.3390/ijerph18063286
- J. Foster, A. B. Lloyd, and G. Havenith, "NonContact Infrared Assessment of Human Body Temperature," The Journal Temperature Toolbox, Temperature, Vol. 18, Issue 4, pp. 306-319, 2021.
- A Guide to KI-PASS, Korea Disease Control and Prevention Agency, 2021.
- Digital signage, https://en.wikipedia.org/wiki/Digital_signage (accessed December 13, 2021).
- Human body temperature, http://www.khna.or.kr/homecare_new/01_first/adult01.php (accessed December 13, 2021).
- Thermography, https://en.wikipedia.org/wiki/Thermography (accessed December 13, 2021).
- H.Y. Kim, "Technology Trend of MEMS Infrared Sensor," Electrical & Electronic Materials, Vol. 24, Issue 1, pp. 23-33, 2011.
- J. Hee, H. S. Cho, S. H. Park, and J. H. Lee, "A Study on Skin Temperature Distribution of the Human Body as Fundamental Data for Developing Heat Energy Harvesting Clothing," Journal of Korea Sciety for Emotion and Sensibility, Vol. 14, Issue 3], pp. 435-444, 2011.
- D.D. Pascoe and G. Fisher, "Comparison of Measuring Sites for the Assessment of Body Temperature," Thermology International, Vol. 19, Issue 1, pp. 35-42, 2009.
- IEC 80601-2-59:2017/DAMD 1 Medical Electrical Equipment -Part 2-59: Particular Requirements for the Basic Safety and Essential Performance of Screening Thermo- graphs for Human Febrile Temperature Screening-Amendment 1, https://www.iso.org/standard/83469.html (accessed December 13, 2021).
- Do I need a Blackbody for Skin Temperature Screening?, https://www.flir.com/discover/public-safety/do-i-need-a-blackbody-forskin-temperature-screening/ (accessed December 13, 2021).
- P. Viola and M. Jones, "Rapid Object Detection Using a Boosted Cascade of Simple Features," Proceeding 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 1. pp. 1-8, 2001.
- N. Dalal and B. Triggs, "Histograms of Oriented Gradients for Human Detection," IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 1. pp. 886-893, 2005.
- A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet Classification with Deep Convolutional Neural Networks," Advances in Neural Information Processing Systems, Vol. 25, pp. 1097-1105, 2012.
- S. Minaee, P. Luo, Z. Lin, and K. Bowyer, "Going Deeper Into Face Detection: A Survey," arXiv P reprint, arXiv:2103.14983, 2021.
- Google MLKit, https://developers.google.com/ml-kit (accessed December 13, 2021).
- Google ML Kit Face Detection API, https://developers.google.com/ml-kit/vision/facedetection (accessed December 13, 2021).
- V. Bazarevsky, Y. Kartynnik, A. Vakunov, K. Raveendran, and M. Grundmann, "BlazeFace: Sub-Millisecond Neural Face Detection on Mobile GPUs," arXiv P reprint, arXiv:1907. 05047, 2019.
- W. Liu, et al., "SSD: Single Shot MultiBox Detector," European Conference on computer vision, pp 21-37, 2016.
- A. Howard, et al., "MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications," arXiv Preprint, arXiv: 1704.04861, 2017.
- K.R. Singh, S.D. Kamble, S. M. Kalbande, and P. Fulzele, "A Review on COVID-19 Face Mask Detection Using CNN," Journal of Pharmaceutical Research International, Vol. 33 (35B), pp 39-45, 2021.
- S. Sethi, M. Kathuria, and T. Kaushik, "Face Mask Detection Using Deep Learning: An Approach to Reduce Risk of Coronavirus Spread," Journal of Biomedical Informatics, Vol. 120, pp. 1-12, 2021.
- K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual Learning for Image Recognition," arXiv P reprint, arXiv:1512.03385v1, 2015.
- S. Teboulbi, S. Messaoud, M.A. Hajjaji, and A. Mtibaa, "Real-Time Implementation of AI-Based Face Mask Detection and Social Distancing Measuring System for COVID-19 Prevention," Scientific Programming, Vol. 2021, pp. 1-21, 2021.
- M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L. Chen, "MobileNetV2: Inverted Residuals and Linear Bottlenecks," The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 4510-4520, 2018.
- K. Simonyan and A. Zisserman, "Very Deep Convolutional Networks for Large-Scale Image Recognition," arXiv P reprint, arXiv: 1409.1556v6, 2014.
- H. Lim, S. Ryoo, and H. Jung, "Face-Mask Detection with Micro processor," Journal of Korea Institute of Information and Communication Engineering, Vol. 25, No. 3, pp. 490-493, 2021. https://doi.org/10.6109/JKIICE.2021.25.3.490
- W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.Y. Fu, and A.C. Berg, "Ann-Arbor-SSD: Single Shot MultiBox Detector," arXiv Preprint, arXiv:1512.02325, 2018.
- Rockchip RK3399 Datasheet, https://www.rockchip.fr/RK3399%20datasheet%20V1.8.pdf (accessed December 13, 2021).
- Liming Hu, Facemaskdetector, https://github.com/liminghu/facemaskdetector (accessed December 13, 2021).
- T. Ruffin, J. Steele, Y. Acquaah, N. Sharma, E. Sarku, R. Tesiero and B. Gokaraju, "Noninvasive Low Cost Fever Detection Systems," SoutheastCon, 2021.
- G. Jocher, YOLOv5, https://github.com/ultralytics/yolov5 (accessed December 13, 2021).
- A. Somboonkaew, et al., "Mobile-Platform for Automatic Fever Screening System Based on Infrared Forehead Temperature," Opto-Electronics and Communications Conference, 2017.
- J. Ahlberg, N. Markus, and A. Berg, "Multi-Person Fever Screening Using a Thermal And A Visual Camera," Svenska Sallskapet for Automatiserad Bildanalys, 2015.
- M. F. Azwan, Mushahar, and N. Zaini, "Human Body Temperature Detection based on Thermal Imaging and Screening using YOLO Person Detection," IEEE International Conference on Control System, Computing and Engineering, pp. 27-28, 2021.
- OpenCV, https://opencv.org/ (accessed December 13, 2021).
- M.J. Lee, Y.M. Kim, and Y.M. Lim. "Masked Face Temperature Measurement System Using Deep Learning," Journal of Korea Multimedia Society, Vol. 24, No. 2, pp. 208-214, 2021. https://doi.org/10.9717/KMMS.2020.24.2.208
- Bar Code Scanning, https://developers.google.com/ml-kit/vision/barcode-scanning (accessed December 13, 2021).
- TeraRanger Evo Thermal 33, https://www.terabee.com/shop/thermal-cameras/teraranger-evo-thermal-33/ (accessed December 13, 2021).
- Application Note on Fever Detection with Evo Thermal 33, https://terabee.b-cdn.net/wpcontent/uploads/2020/11/Application-noteon-fever-detection-with-Evo-Thermal-33.pdf (accessed December 13, 2021).
- Z. Wang, et al., "Masked Face Recognition Dataset and Application," arXiv Preprint, arXiv:2003.09093v2, 2020.
- Real-World-Masked-Face-Dataset, https://gi thub.com/X-zhangyang/Real-WorldMasked-Face-Dataset (accessed December 13, 2021).