1. 서론
1.1 연구 배경 및 목적
코로나 19로 인해 사회 전 분야에 걸쳐 방역의 중요성이 점점 커지고 있다. 하루에도 많은 감염자가 나오고 있는 등 감염병의 심각한 확산으로 방역에 대한 관심도 더불어 높아지고 있다. 코로나 19의 경우, 아직 치료법이 없고 접촉을 통해 감염되므로 전파 위험이 크다. 이에 각종 제품 및 서비스에 대한 비접촉 대안들이 실험적으로 제안되고 있다.
바이러스는 손에 의해 옮겨지는 경우가 대부분이고, 문고리의 경우 접촉 횟수가 많아 향균 필름을 부착하거나 소독액을 정기적으로 분사하는 등 오염을 방지하고자 하는 노력이 이루어지고 있다. 특히, 도어락의 경우는 비밀번호를 눌러야 하는 등 접촉 빈도가 더 높으므로 이에 대한 대비가 필요하다.
한편, 머신러닝은 다수의 데이터를 입력하여 보다 정확한 모델을 만드는 기술로 얼굴 인식 및 분류 등을 포함한 이미지 분석 분야에 있어서 많이 활용되고 있고 그 성능이 뛰어나다[1].
이러한 머신러닝의 성능과 함께 접촉을 최소화할 수 있는 대안으로 얼굴 인식과 접목하여 본 연구를 제안하였다.
1.2 얼굴인식 관련 연구
머신러닝 기술에 속하는 Haar-cascade는 특징 기반의 객체 식별 알고리즘이다. 구별하고자 하는 객체가 있는 사진(Positive Data)들과 구별하고자 하는 객체가 없는 사진(Negative Data)들의 어두운 부분과 밝은 부분의 픽셀들을 계산하여 특징을 추출하는 알고리즘이다. (그림 1)에서는 유사 특징을 이용한 객체 식별 방법이 표현되어 있는데 검정 부분은 뺄셈을, 흰색 부분은 덧셈을 하여 총 합을 계산한 후, 이를 이용하여 특징을 검출한다. (그림 2)은 Haar-cascade 알고리즘의 객체 판단 절차이며 얼굴 검출에는 3가지 종류의 필터를 사용한다. 1단계에서 1개의 필터, 2단계에서 5개의 필터, 3단계에서 총 20개의 필터를 이용하여 검출한다. 최종적으로 검출된 이미지를 얼굴 데이터로 사용하게 된다[2]. Haar-cascade는 얼굴과 눈, 미소와 같은 표정 등을 감지함과 동시에 사물도 감지하는데 횡단보도 식별, 자동차 번호판 검출 등 학습하는 객체에 따라 다양한 방식으로 사용한다[3]. 본 시스템에서는 목적에 맞게 얼굴 검출 알고리즘을 사용한다[4].

(그림 1) Haar 유사 특징을 이용한 객체 식별 방법

(그림 2) Haar-cascade 알고리즘 객체 판단 절차
Haar-cascade는 이미지의 밝기 차를 이용하기 때문에 밝기 차가 특징적인 이미지는 특징을 잘 검출하는 장점이 있지만 특징의 크기 차이가 심하지 않으면 검출이 약한 단점이 있다. 또한 연산량이 많으며 화질의 성능이 향상될수록 계산하는 범위가 증가하여 연산 시간이 대폭 증가한다. 더불어 각도, 노출도에 대한 제약이 존재한다.
LBPH 알고리즘은 영상의 질감 분류를 위해 Haar-cascade의 특징을 이용하는 패턴 기법이다. LBP 패턴은 객체를 분별력 높게 표현이 가능하기 때문에 얼굴 인식, 표정 인식, 영상 인식 등에 널리 이용되고 있다[5]. (그림 3)은 이진 패턴 원리에 대한 그림이다. 먼저, 3×3 셀 내에서 중심에 위치하는 픽셀이 임계치가 되어 이웃하는 8개의 픽셀들과 서로 크기를 비교한다. 가운데 픽셀이 54이므로 임계치가 54가 되며 이웃하는 픽셀 값이 54보다 크거나 같으면 1이 되고 작으면 0이 되는 원리이다. 8개의 이진화된 숫자는 하나의 특징이 되고, 이미지 한 장에 대한 데이터가 된다. 분류된 데이터는 사용자의 정보로 사용한다.

(그림 3) 이진 패턴 원리
본 연구에서는 Raspberry PI 3B+ 보드에 카메라 모듈을 장착하여 다양한 얼굴 이미지를 획득하고 Haar-cascade 알고리즘을 이용하여 이진화한 이미지를 안면인식 데이터로 사용하여 학습을 시킨 뒤, 인식이 되는 경우 자동 개폐가 가능한 시스템을 설계 및 개발한다.
2장에서는 안면인식 도어락 시스템을 설계하고, 구성한 내용에 대해 기술한다. 3장은 구현된 시스템을 여러가지 조건 하에서 실험하여 인식 성능을 검증한 내용을 실었다. 4장에서 결론 및 향후 연구에 관한 내용을 기술하면서 끝맺는다.
2.안면인식 도어락 시스템 설계 및 구현
안면인식 도어락은 Raspberry PI 재단에서 제공하는 라즈비안 운영체제(Raspbian OS)를 사용한다. 라즈비안 운영체제는 데비안 계열의 리눅스이며 SD카드에 설치 후 Raspberry PI에서 사용한다. 카메라 모듈을 장착하고, 얼굴을 탐지해줄 Haar-cascade 알고리즘을 포함하여 영상 처리를 위한 OpenCV 라이브러리, GPIO(General-Purpose Input/Output) 사용을 위한 WiringPi, RaspiCam 등의 라이브러리를 설치한다. Raspberry PI 보드 내 서버는 C++ 언어로 개발하고, g++ 컴파일러를 사용하여 컴파일한다. 얼굴 탐지 및 인식은 Python 언어를 사용하며 Thnonny 통합 개발 환경을 통해 개발한다. 모바일 앱은 안드로이드 스튜디오를 이용하여 Java 언어로 개발한다.
안면인식 도어락 시스템의 전체 동작 개요도는 (그림 4)와 같으며 2.1절과 2.2절에서 자세하게 기술한다.

(그림 4) 안면인식 도어락 동작 개요
2.1 하드웨어
안면인식 도어락 시스템은 (그림 5)와 같이 Raspberry PI 3B+ 보드에 부저, 모터, 카메라, 초음파 센서를 장착하여 구성한다. 부저 센서는 비인가 접근자로 판단 시 경보음을 발생하는 역할을 수행하며 모터는 잠금 장치의 개폐를 조작하는 역할을 한다. 또한 이미지 획득 및 인식을 위한 카메라 모듈이 있으며 초음파 센서는 2개가 장착되어 있다. 하나의 초음파 센서는 사람의 접근을 인지하는데 사용하며 나머지 하나의 센서는 문의 열림 상태와 닫힘 상태를 확인하기 위한 용도로 사용한다.

(그림 5) 안면인식 도어락 하드웨어 구성도
(그림 6)과 (그림 7)을 참고한다. 초음파 센서는 Raspberry PI 3B+ 보드의 5V 전원에 연결되며 모터는 3.3V 전원으로, 부저는 GPIO 핀을 통해 제어한다.

(그림 6) 센서 회로도

(그림 7) Raspberry PI 3B+ 보드 핀 맵
GPIO와 핀을 이용 시에는 3.3V 이상으로 GND(Ground)에 접지 시 보드 내부가 탈 수 있으므로 3.3V 이상을 사용하는 센서들은 저항을 사용한다.
<표 1> 시스템 부품 및 동작 전압

<표 2> 안면인식 도어락 시스템 부품과의 연결

2.2 소프트웨어

(그림 8) 이미지 모델링 흐름도
안면인식 소프트웨어는 (그림 8)과 같은 순서로 실행된다.
Step1. OpenCV를 이용하여 Face_Detector를 실행한다.
Step2. Face_Detector는 Haar-cascade 알고리즘을 이용하여 얼굴을 감지한다. 감지된 얼굴 이미지는 Dataset 디렉터리에 저장한다.
Step3. Dataset에 저장된 얼굴 이미지 데이터들을 LBP 알고리즘 실행 모듈로 전달한다.
Step4. 이진화된 특징을 추출하여 yml 파일형식으로 변환한다.
Step5. 추출된 특징 파일들은 Training 디렉터리에 저장한다.
Step6. Training 디렉터리 내 yml 파일에 저장된 특징들과 실시간으로 감지되고 있는 이미지의 특징들을 서로 비교하여 얼굴 인식을 진행한다.

(그림 9) 모바일 어플리케이션 동작 흐름도
사용자용 모바일 어플리케이션은 Android Studio 2020.3.1. 버전에서 제작하였고, 그 동작 순서를 살펴보면 다음과 같다.
① App 실행 시 ID/PW를 입력받는다.
② 로그인 계정이 관리자(admin) 계정인지 일반 회원(user) 계정인지 판단한다.
③ 관리자 계정으로 로그인 시 회원가입(regist)과 계정 삭제(deregist) 기능을 수행한다.
④ 일반회원 계정으로 로그인 시 도어락의 개폐 기능을 수행한다.
또한 모바일 어플리케이션 없이도 자동으로 얼굴인식 및 도어락 개폐를 수행할 수 있는 본 시스템의 소프트웨어는 다음과 같이 동작한다. 우선, 문을 개폐하기 위한 권한을 얻기 위해 관리자 계정으로 접속하여 회원가입을 진행한다. 사용자의 얼굴 이미지를 얻는다. 이때, 얼굴 이미지 데이터는 (그림 8)의 이미지 모델링 흐름도에 따라 학습하고, 인식한다. 이처럼 회원 가입된 사용자는 스마트 폰을 통해 도어락의 개폐를 작동시킬 수도 있고, 스마트 폰을 이용하지 않고 안면인식 도어락 시스템에 접근 후 얼굴 인식을 통해 자동 도어락 개폐 작동이 가능하다(그림 10).

(그림 10) 안면인식 도어락 동작 흐름도
Step1. 초음파 센서는 사람의 접근을 감지하기 위해 상시 작동하여 거리를 감지한다.
Step2. 초음파 센서에서 획득한 거리 데이터가 일정 거리 이하인 경우, 즉 사람의 접근이 감지되는 경우 Step3를 수행한다.
Step3. 카메라 모듈을 통해 이미지를 획득한다.
Step4. 카메라 모듈에서 획득한 이미지를 기학습된 데이터 셋과의 비교를 통해 인가된 사용자로 판단이 되면 모터를 구동하여 문을 개폐한다. 만약 비인가된 사용자라면, 부저 센서를 동작시켜 경보음을 발생한다.
(그림 9)의 흐름도를 참고한다. ①의 과정에 해당하는 어플리케이션의 인터페이스는 (그림 11)이며 로그인 계정이 관리자에 해당하면 (그림 12)를 보여준다. (그림 12)의 열기/닫기는 문의 개폐를 동작하며 삭제버튼을 누를 시 회원가입이 되어있는 회원의 목록이 등장하며 삭제하고자 하는 회원의 정보를 삭제할 수 있다. 등록 버튼을 누를 시엔 (그림 13)의 인터페이스를 보여주며 새로운 회원의 가입이 가능하다. 이는 ③의 과정에 해당하며 관리자 계정과 반대로, 일반 계정으로 로그인 시 (그림 14)의 인터페이스를 보여주며 문의 열기/닫기 기능을 수행할 수 있다. 이는 ④의 과정에 해당한다.

(그림 11) 앱 초기 화면

(그림 12) 관리자 계정 화면

(그림 13) 회원가입 화면

(그림 14) 이용자 기능 화면
2.3 시스템 구현
<표 3>은 (그림 9)와 (그림 10)의 각 흐름도에 따라 접근방식을 구현한 자료이다. 접근 감지와 사용자 확인은 (그림 10) 흐름도의 Step1 ~ Step4의 과정이며 앱 회원가입과 문 개폐 조작은 (그림 9) 흐름도의 ①, ②,④ 과정이다.
<표 3> (그림 9),(그림 14) 흐름도 구현

<표 4>는 (그림 9)의 흐름도에서 회원가입 시 ID/PW을 입력받은 뒤 해당 사용자에 대한 얼굴 데이터를 획득하는 과정이다. 이는 (그림 8)의 이미지 모델링 과정인 Step1 ~ Step5을 진행한다. Step2 과정에서 파란 네모박스의 얼굴 사진을 Dataset에 저장한 뒤 절차에 맞게 진행한다.
<표 4> (그림 8) 회원가입 시 얼굴 데이터 획득 과정

<표 5>는 (그림 10) 흐름도의 절차를 구현한 화면이다. 사람이 접근하면 Face_recognition을 실행하여 (그림 8)에서 생성한 yml 파일에 저장된 특징들과 비교한다. 저장된 특징들과 영상에서 연산한 특징들을 비교하여 인식률(%)로 나타낸다.
<표 5> 얼굴 인식 과정

3. 성능 평가
3.1 인식률 실험
학습용 이미지를 추출 시 사용하는 해상도와 학습데이터의 개수에 따른 알고리즘 성능(인식률)을 비교한다. 실험에서 진행한 해상도는 320×240, 640×480, 1280×960이며 각 해상도마다 학습 데이터를 50장, 100장, 300장, 500장으로 개수를 달리하여 실험하였다. <표 6,7,8>은 형광등 아래에서 얻은 학습 데이터와 <표 9>는 배경이 어둡고, 전면에 광원이 위치한 학습 데이터를 이용하여 실험을 수행하였다. 학습 데이터의 획득 조건을 다르게 함으로써 픽셀의 밝기 차를 이용하는 Haar-cascade 알고리즘 성능에 미치는 영향을 살펴보았다.
<표 6> 형광등 아래에서 얻은 학습 데이터 100장을 이용한 실험 결과

<표 7> 형광등 아래에서 얻은 학습 데이터 300장을 이용한 실험 결과

<표 8> 형광등 아래에서 얻은 학습 데이터 500장을 이용한 실험 결과

<표 9> 배경이 어둡고 전면에 광원이 위치한 학습 데이터 50장을 이용한 실험 결과

<표 6,7,8>의 실험 결과를 참고한다. 320×240 해상도에서 학습 데이터가 많아질수록 인식률이 증가하였다. 하지만 높은 수준의 인식률을 보이지는 못하며 3∼40% 수준의 인식률을 나타냈다. 반면 640×480 해상도에서는 학습 데이터가 많아지는 것과 별개로 50∼60% 수준의 인식률을 보였다. 또한 1280×960 해상도에서도 학습 데이터 개수가 올라가는 것과는 별개로 65∼75% 수준의 인식률을 보인다. 학습 데이터개수가 많아져도 인식률이 낮은 이유는 형광등 아래에서 얻은 조건의 데이터로는 높은 인식률을 보여주기에 필요한 자세한 특징들의 검출이 어려워 일정 수준의 인식률만을 보여준다. 이는 LBP 알고리즘의 단점 중 하나이며 지역 이진 패턴에서 1차 밝기 패턴 변화만을 고려하여 특징을 계산하기 때문에 미세한 특징 변화의 검출에는 실패할 확률이 높기 때문이다[6]. 그렇기 때문에 <표 6, 7, 8>의 학습 데이터는 카메라의 화면에 빛이 직접적으로 쏘이기 때문에 얼굴 특징을 파악하는데 있어 애로사항이 있는 반면, <표 9>와 같이 뒷 배경이 어둡고 전면에서 빛을 쐬는 학습 데이터를 이용한 실험에서는 얼굴의 특징을 검출할 수 있는 특징들이 또렷하게 나오기 때문에 더 많은 특징들을 잡을 수 있었고 학습 데이터의 개수가 더 적음에도 불구하고 상대적으로 향상된 85.7%의 인식률을 보인다. 또한 <표 9>의 실험 결과 <표 6,7,8>에 비해 전체적으로 해상도가 증가함에 따라 향상된 인식률을 보인다. 이는 Haar-cascade 알고리즘이 계산하는 픽셀이 많아지며 계산하는 특징들의 개수가 많아짐에 따라 세심한 특징들을 잡아낼 수 있기 때문이다. 하지만 연산량이 증가해 연산시간이 대폭 증가하는 단점이 있다.
4. 결론 및 향후 연구 과제
본 논문에서는 코로나 19 바이러스의 확산 방지를 위해 얼굴 인식 기술이 적용된 안면인식 도어락 시스템을 설계 및 개발하였다. 안면인식 도어락 시스템을 구현하여, 학습 데이터 개수와 학습 데이터(이미지)의 해상도(픽셀)을 변경해가면서 그 성능을 검증하였다. Haar-cascade 알고리즘 성능에 좋지 않은 영향을 미치는 광원 조건 하에서는 높은 해상도 1280×960에서 실험을 진행하였을 때에도 인식률이 최대 75.26%밖에 나오지 않았지만, 뒷 배경이 어두우며 전면에 광원이 있는 경우에는 최대 85.7%의 인식률을 확인할 수 있었다.
이 같은 연구 결과를 통해 도어락에 광원을 추가로 설치하여 이미지 인식 알고리즘 구동 시 활용함으로써 밝기 차를 활용하여 인식률을 더욱 더 향상시킬 수 있을 것이며, 인식률과 환경에 따른 예외적인 상황을 타개하기 위해 다른 얼굴 인식 알고리즘들을 복합 적용할 계획이다. 밝기 차를 이용하는 Haar-cascade 알고리즘은 환경에 따른 변수가 많으며 특징을 검출해주는 매개체인 밝기가 색이나 세기가 달라지거나 쏘는 방향이 달라짐에 따라 같은 얼굴일지라도 특징들이 제각기 다르기 때문이다. 각기 다른 환경에 장점을 가지는 얼굴 인식 알고리즘들을 적용한 후 투표방식을 통해 성능 향상을 꾀하는 연구를 진행한다면 좀더 정밀한 인식이 가능할 것이다.
참고문헌
- M. Coskun, A. Ucar, O. Yildirim, and Y. Demir, "Face recognition based on convolutional neural network," proceedings of 2017 International Conference on Modern Electrical and Energy Systems (MEES), Nov. 2017.
- Soo, Sander, "Object detection using Haar-cascade Classifier," Institute of Computer Science, University of Tartu, pp. 1-12, 2014.
- J. Choi and J. Kim, "A Study on the road crosswalk detection using Haar feature and Cascade object detector for advanced driver assistance system," proceedings of Korea Information and Communications Society Conference, pp. 840-840, 2018.
- Gudipati, Vamshi Krishna, et al,."Efficient facial expression recognition using adaboost and haar cascade classifiers." proceedings of 2016 Annual Connecticut Conference on Industrial Electronics, Technology & Automation, 2016.
- Hamid Cheraghi, Hyo Jong Lee, "Face recognition using local binary patterns and K-Nearest Neighbors," proceedings of the Korean Institute of Information Scientists and Engineers, pp. 1424-1426, 2018.
- W.K. Jung, Y.T.Cho, Y.H. Ahn, and O.S. Chae, "A study on local micro pattern for facial expression recognition," Journal of Convergence Security, vol. 14, no. 5, Sep. 2014.
- Padilla, Rafael, C. F. F. Costa Filho, and M. G. F. Costa, "Evaluation of haar cascade classifiers designed for face detection," World Academy of Science, Engineering and Technology, vol. 64, pp. 362-365, 2012.
- Setjo, Christian Herdianto, and Balza Achmad, "Thermal image human detection using Haar-cascade classifier," proceedings of 2017 7th International Annual Engineering Seminar (InAES), 2017.