Ⅰ. 서론
현대 사회에서는 침입 및 강력 범죄의 증가로 인해 안전과 보안에 대한 관심이 크게 증가하고 있다. 특히, 공공 장소나 건물 등의 보안 감시 시스템은 사람들의 안전을 보장하고 범죄 예방에 큰 역할을 하고 있다. 이러한 시스템은 최근 기술의 발전과 함께 더욱 발전하고 있으며, 웹캠과 적외선 열화상 카메라 모듈을 활용한 침입 탐지 및 감시 시스템은 그 중에서도 많은 관심을 받고 있다. 웹캠은 컴퓨터에 연결하여 영상을 캡처하고 전송할 수 있는 장치로, 저렴하고 쉽게 구할 수 있으며 다양한 장소에 설치할 수 있다. 이러한 감시 시스템은 사람들의 움직임을 실시간으로 감지하고, 이를 영상으로 기록하여 범죄 현장의 증거를 확보할 수 있으나 웹캠만으로는 어둡거나 특정 조건에서는 제한된 성능을 보여줄 수 밖에 없다. 이에 반해, 적외선 열화상 카메라 모듈은 열에 따른 물체의 차이를 감지하여 영상으로 출력하는 기술로, 적외선 열화상 카메라는 주로 밤이나 어두운 환경에서도 명확한 영상을 얻을 수 있으며, 웹캠과는 달리 열의 차이를 감지하기 때문에 인체의 움직임과 같은 열 변화를 더욱 정확하게 감지할 수 있다.
본 논문에서는 주로 야간에 객체 침입시 사람을 탐지하기 위해서 사람의 공통적인 특징을 활용하였다. 특히 객체의 야간 침입시 이를 인지한 후, 객체의 움직임을 파악하여 사람 여부를 확인후 얼굴 영상을 탐지하는 것을 중심으로 구성하였다. 사람은 비슷한 체온을 유지하며, 얼굴의 경우 비슷한 구성과 배치를 하고 있다. 이러한 특징을 통한 검출을 위해 유사-하르 특징(haar-like features)을 통한 캐스케이드(cascade) 기법을 사용하였다. 이는 얼굴의 각 부위별 나타나는 어둡고 밝은 부분의 특징을 이용한 검출 방법으로 눈과 정면 및 측면의 얼굴을 검출할 수 있다. 적외선 열화상 카메라 모듈을 활용하여 대상으로부터 방사되는 적외선을 감지하여 정보를 표시하는 비접촉 방식으로 인체에서 방사하는 적외선을 감지하여 열화상을 표시할 수 있다. 두 카메라 모듈이 위와 같은 방법으로 사람을 탐지하면, 시스템이 작동하도록 하였다.
본 논문은 웹캠과 적외선 열화상 카메라 모듈을 활용한 침입 탐지 및 감시 시스템의 구축 방법과 그 성능을 평가하고, 실제 환경에서의 적용 가능성과 한계를 검토하여, 보다 안전하고 효과적인 감시 시스템을 제안하고자 한다.
본 논문의 2장에서는 유사-하르 특징, 적분 영상, 에이다 부스트 및 캐스케이드 분류기에 대해 설명하였고, 3장에서는 시스템 구성 및 설계에 관하여 설명하였다. 마지막으로 4장에서는 결론을 맺는다.
Ⅱ. 관련 연구 분석
2-1 유사-하르 특징
유사-하르 특징은 흑백의 사각형이 결합되어 있는 형태의 필터로 영역의 명암으로 패턴을 구하고, 각 영역 픽셀합을 계산한 후 흰색 영역과 검은색 영역의 차를 구해서 임계값이 넘어가는 곳을 찾아내는 방식이다. 그림 1은 유사-하르 필터의 예시이다. 사람의 얼굴은 비슷한 배치와 분포를 띄고 있으며, 각 부위별로 밝은 곳과 상대적으로 어두운 곳이 존재하게 된다. 이러한 특징을 이용하여 얼굴을 검출해낼 수 있다. 눈과 광대 부분은 상대적으로 각각 명암이 존재하기 때문에 그림 1(a)의 2번째 그림과 같은 형태로 검출할 수 있으며, 코는 그림 1(b)의 1번째 그림의 형태로 검출할 수 있다. 또한 그림 1(c)를 활용하면 눈 주위, 코, 입, 그리고 이마의 밝기 패턴을 분석하여 얼굴의 특징을 감지할 수 있다. 이러한 특징값을 계산하기 위해 원본 영상에서 필터를 이동시켜야 하며, W× H 크기의 필터 좌상단 좌표, 너비 및 높이를 각각 x, y, w, h라고 하면 r = (x, y, w, h)로 표현할 수 있으며 식 (1)을 만족한다.
0 ≤ x, x + w ≤ W, 0 ≤ y, y + h ≤ H, w ≥ 0, h ≥ 0 (1)
그림 1. 유사-하르 필터 예시
Fig. 1. The example of haar-like filter.
픽셀합을 RecSum(r)라 하면, 특징값은 식 (2)로 계산한다. wi는 ri의 가중치이다[1].
\(\begin{align}_{I}=\sum_{i I N I=1, \cdots, N} w_{i} \cdot \operatorname{RecSum}\left(r_{i}\right)\end{align}\) (2)
2-2 적분 영상
특징값 계산시 필터 영역 내의 모든 픽셀값을 계산하기 때문에 많은 과정이 필요하다. 개선 방법 중 하나는 적분 영상을 이용하는 방법이다. 식 (3)은 (0, 0)에서 (x, y)까지 사각형 내 각 픽셀 계산값의 합을 나타낸 식으로 ii(x, y)는 적분 영상, i(x, y)는 원본 영상을 나타낸다.
\(\begin{align}i i(x, y)=\sum_{x \leq x, y \leq y} i\left(x^{\prime}, y^{\prime}\right)\end{align}\) (3)
식 (4)와 식 (5)의 반복을 통해 식 (3)을 계산하며, 식 (4)의 s(x, y)는 누적행 합계를 나타낸다. s(x,- 1) = 0, ii(-1, y) = 0이다.
s(x, y) = x(x, y - 1) + i(x, y) (4)
ii(x, y) = ii(x - 1, y) + s(x, y) (5)
그림 2는 특정 영역 픽셀값의 합을 구하는 예시이다.
그림 2. 적분 영상 픽셀값 계산
Fig. 2. The calculating pixel values of integral image.
ii(x1, y1)는 A 영역의 픽셀합, ii(x2, y2)는 A와 B 영역의 픽셀합, ii(x3, y3)은 A와 C의 픽셀합, ii(x4, y4)는 A부터 D 영역까지의 모든 픽셀합을 나타낸다. 주어진 픽셀합을 이용하여 그림 2의 D 영역 픽셀합을 구하기 위해서는 ii(x4, y4)에서 ii(x2, y2)와 ii(x3, y3)의 값을 뺀다. 두 픽셀합은 A 영역이 포함되어 있기 때문에 ii(x1, y1)을 다시 더해줘야 한다[2].
2-3 에이다부스트(AdaBoost)
부스팅은 약한 분류기를 결합하여 강한 분류기를 얻는 방법으로 50% 이하의 오류율을 갖는 분류기를 약한 분류기라고 한다.
에이다부스트는 예측 성능이 낮은 약한 분류기의 오류에 따라 가중치를 수정하고, 적응 및 보완을 통하여 강한 분류기를 얻는 방법이다. 단계가 진행함에 따라 예측이 잘못된 오류 데이터가 발생하는데, 이전 분류기의 오류가 많을수록 큰 가중치를 설정한다. 최종 단계의 강한 분류기는 단계가 진행하면서 생성된 약한 분류기를 조합하여 얻는다.
에이다 부스트는 식 (6)을 통해 약한 분류기의 값을 구할 수 있다. 식 (6)에서 1(positive)은 검출을 원하는 이미지, 0(negative)은 그 외를 의미한다. hj(x)는 j번째의 약한 분류기를 의미하며, fj는 특징값, θj는 임계값, pj는 부등호 방향을 의미한다.
\(\begin{align}h_{j}(x)=\left\{\begin{array}{ll}1 & \text { if } p_{j} f_{j}<p_{j} \theta_{j} \\ 0 & \text { otherwise }\end{array}\right.\end{align}\) (6)
최종 강한 분류기를 얻기 위해서 아래의 과정을 거쳐야 한다. (x1, y1), ⋯, (xn, yn)의 이미지가 주어지면 식 (7)과 같이 가중치를 초기화 한다. 주어진 이미지에서 yi = 1은 검출을 원하는 이미지를 의미하며, yi = 0은 그 외를 의미한다.
\(\begin{align}\omega_{1, i}=\frac{1}{2 m}, \frac{1}{2 l}\end{align}\) (7)
식 (7)에서 l은 검출을 원하는 이미지의 수, m은 그 외의 이미지 수를 의미한다. 위의 가중치 초기화 과정을 거친 후에는 가중치 정규화 과정을 수행해야 한다. 가중치 정규화에 관한 식은 식 (8)과 같다.
\(\begin{align}\omega_{t, i} \leftarrow \frac{\omega_{t, i}}{\sum_{j=1}^{n} \omega_{t, j}}\end{align}\) (8)
이후 특징값에 대한 분류기 hj를 학습하고, 가중치 wt를 고려한 오류율 𝜖t를 식 (9)를 통해 계산한다.
\(\begin{align}\epsilon_{t}=\sum_{i} \omega_{i}\left|h_{j}\left(x_{i}\right)-y_{i}\right|\end{align}\) (9)
가장 낮은 오류율을 갖는 분류기를 선택하여 특징값 ht를 결정한 후 식 (10)을 통해 가중치를 갱신한다.
wt + 1, i = wt, iβ1-eit (10)
xi가 정확하게 분류되면 ei = 0, 아니면 ei = 1이다. βt의 값은 식 (11)과 같다.
\(\begin{align}\beta_{t}=\frac{\epsilon_{t}}{1-\epsilon_{t}}\end{align}\) (11)
가중치 갱신까지의 과정이 완료되면 최종 단계의 강한 분류기를 얻을 때까지 위의 과정을 T번 반복한다. T번 반복하면 식 (12)의 식을 갖는 강한 분류기를 얻을 수 있으며, 식 (13)은 αt의 값을 나타낸다.
\(\begin{align}h(x)=\left\{\begin{array}{ll}1 & \sum_{t=1}^{T} \alpha_{t} h_{t}(x) \geq \frac{1}{2} \sum_{t=1}^{T} \alpha_{t} \\ 0 & \text { otherwise }\end{array}\right.\end{align}\) (12)
\(\begin{align}\alpha_{t}=\log \frac{1}{\beta_{t}}\end{align}\) (13)
강한 분류기를 얻어내는 과정이 진행될수록 어려운 특징의 이미지를 판별할 수 있게 된다[3].
그림 3은 에이다부스트의 과정을 예시로 든 그림이다. +와 –로 이루어진 원본 데이터셋에서 각각의 요소로 분류하기 위한 과정으로 단계별 분류 기준으로 분류를 한 뒤, 최종 예측 수행을 위해 각 단계별 분류 기준을 결합한다.
그림 3. 에이다부스트 학습 및 예측 프로세스
Fig. 3. The Adaboost learning and prediction process.
2-4 캐스케이드 분류기(Cascade Classifier)
앞서 설명한 방법을 통해 얼굴을 검출할 경우 많은 약한 분류기를 사용하기 때문에 처리 시간이 늘어난다. 이를 보완하기 위해 캐스케이드 분류기가 제안되었다.
캐스케이드 분류기는 검출을 원하지 않는 영역을 거르는 방식이다. 첫 번째 단계에서 해당 영역이 얼굴이 아니라고 판단되면 그 영역을 불필요한 영역으로 지정하고 검출을 수행하지 않는다. 과정을 통과하면 필터의 개수를 늘려가며 얼굴을 검출한다. 불필요한 검출이 줄어들기 때문에 성능은 높아지고, 시간은 단축된다. 그림 4는 캐스케이드 분류기의 모습을 나타낸다[4].
그림 4. 캐스케이드 분류기
Fig. 4. The cascade classifier.
Ⅲ. 침입 탐지 및 감시 시스템
3-1 시스템 구성
본 논문에서는 싱글 보드 컴퓨터 (SBC; single board computer), 웹캠 및 열화상 카메라 모듈을 활용하여 시스템을 구성하였다. 작은 크기면서 외부에 설치할 수 있도록 하기위해 SBC를 사용하였으며, 그림 5와 같이 구성하였다. 두 카메라 모듈이 사람을 탐지하면 영상을 연결된 화면에 탐지 문구와 함께 띄우며 영상을 녹화하기 시작한다. 웹캠 영상만을 녹화하며, 지정된 폴더에 파일을 생성한다.
그림 5. 시스템 구성
Fig. 5. The system configuration.
두 카메라 모듈 중 하나라도 탐지가 종료된다면 녹화를 중단하고 영상을 저장한다. 저장된 영상은 녹화가 시작되는 순간의 시간을 파일명으로 한다. 지속적으로 사람 탐지를 수행하며 위의 동작을 반복한다.
웹캠은 화상 데이터를 실시간으로 컴퓨터 또는 네트워크로 전송하기 위해 만들어진 카메라이다. SBC에서 USB(universal serial bus)로 연결된 웹캠을 사용하려면 설정 – 인터페이스 설정 – 카메라 사용을 가능하도록 설정해야 한다. 본 논문에서 사용한 웹캠의 사양은 표 1과 같다[5].
표 1. 웹캠의 사양
Table 1. The specifications of webcam.
적외선 열화상 카메라 모듈은 사람의 눈으로 볼 수 없는 적외선을 사람이 볼 수 있는 정보로 표현해주는 장비이다. 모든 물질은 절대 온도 이상에서 적외선을 방사하며, 온도에 따라 양이 달라진다. 적외선 온도계는 특정 부분의 온도를 표시하는데에 비해 적외선 열화상 카메라 모듈은 넓은 범위의 온도를 표시한다. 열화상 카메라 모듈을 사용하기 위해서는 측정 가능 범위, 열민감도, 스펙트럼 범위, 시야각, 방사율 등을 고려해야 한다. 본 논문에서 사용한 열화상 카메라 모듈의 사양은 표 2와 같으며 총 768픽셀로 24x32 해상도를 가진다[6].
표 2. 열화상 카메라 모듈의 사양
Table 2. The specifications of thermal camera Module.
SBC는 오픈 소스 리눅스 기반 보드로 칩 하나로 CPU(central processing unit)와 GPU(graphics processing unit) 및 메모리 기능을 할 수 있는 SoC(system on chip)로 구성되어 있으며, 화면 출력을 위한 포트로는 DSI(display serial interface) 포트와 HDMI 포트, 음성 출력을 위한 포트로 RCA(radio corporation of america) 포트, 카메라 모듈 장착을 위한 CSI(camera serial interface) 포트, 입출력 동작 제어를 위한 GPIO(general purpose input output) 등으로 구성되어 있다. GPIO는 외부 장치 제어를 위한 포트로 40개의 핀으로 구성되어 있으며 다음과 같은 통신이 가능하다. UART(universal asynchronous receiver/transmitter) 통신은 송수신부 카운터에 의해 진행되는 비동기식 통신으로 병렬 데이터를 직렬화하여 통신한다. SPI(serial peripheral interface) 통신은 마스터와 슬레이브 간 동기식 통신으로 SS(slave select) 또는 CE(chip enable), SCLK(serial clock), MOSI(master out slave in), MISO(master in slave out)로 구성되어 있다. I2C는 본 논문에서 열화상 카메라 모듈과 SBC를 연결한 방식으로 클럭선(SCL; serial clock)과 데이터선(SDA; serial data)을 사용하며, 양방향 동기식 통신을 한다. 표 3은 시스템 구성에 사용한 SBC의 사양이다[7].
표 3. SBC의 사양
Table 3. The specifications of Raspberry Pi.
3-2 카메라 모듈을 활용한 사람 탐지
웹캠을 활용하여 사람을 탐지하기 위해 OpenCV(open source computer vision)에서 제공하는 하르 기반 분류기를 사용하였다. 유사-하르 특징을 사용하여 사람을 탐지하기 위해서 원본 영상을 흑백으로 변환해야 한다. 흑백으로 변환하면 RGB에 비해 단일 채널의 픽셀값을 가지므로 빠른 처리가 가능하다. 위 과정을 거쳐 얼굴을 검출하면 검출된 얼굴 및 눈은 송출되는 영상에서 사각형으로 표시된다.
열화상 카메라 모듈을 활용한 탐지에는 보간법을 사용하였다. 이미지 보간은 주변 픽셀로 새 픽셀값을 추정하는 방법이다. 본 논문에 사용한 열화상 카메라 모듈은 저해상도 사양을 보유하고 있지만 보간을 통해 부드러운 영상을 얻을 수 있었다.
그림 6은 사람을 탐지할 경우의 화면이다. 얼굴과 눈이 검출되어 각각 사각형으로 표시되었으며, 사람을 탐지했다는 문구를 확인할 수 있다. 그림 6의 과정이 종료되면 그림 7에서 볼 수 있듯이 터미널 화면에서 녹화 시작 및 종료, 저장된 영상의 이름이 나오며, 지정된 폴더에 들어가면 터미널에서 나온 영상의 이름과 같은 파일이 생성되어 있는 것을 확인할 수 있다.
그림 6. 사람 탐지 시 영상
Fig. 6. The image when person is detected.
그림 7. 사람 탐지 종료
Fig. 7. The end of person detection.
그림 8은 시스템을 작동시키고 사람이 탐지되지 않았을 때의 화면이다. 사람의 체온과 유사한 온도가 감지되었지만, 웹캠에서 사람을 탐지할 수 있는 정보가 없기 때문에 사람 탐지 문구가 나오지 않는 걸 확인할 수 있다.
그림 8. 사람 미탐지 시 영상
Fig. 8. The image when no person is detected
Ⅳ. 결론
본 논문에서는 웹캠과 적외선 열화상 카메라 모듈을 활용한 침임 탐지 및 감시 시스템을 구현하였다. 실행시 두 카메라 모듈의 영상이 화면에 동시에 나오도록 하였으며, 사람이 탐지되는 경우 영상을 녹화하여 파일을 저장할 수 있게 하였다. 영상 파일명은 탐지 시작시간으로 지정되도록 하였다. 웹캠은 OpenCV에서 제공하는 하르 기반 분류기를 사용하여 얼굴을 검출하였고, 적외선 열화상 카메라 모듈은 보간법을 사용하여 부드러운 영상을 얻을 수 있게 하였다.
SBC를 사용하면서 발열로 인해 프레임이 하락하고 느려지는 경우가 있었는데, 이는 추후에 부품 교체 및 코드 수정 등을 통해 해결해 볼 예정이다.
References
- W. C. Lee, Real time face detection and recognition system using Haar-like feature and PCA, Master's thesis, The University of Suwon, Republic of Korea, 2005. Retrieved from https://www.riss.kr/link?id=T10533801.
- S. H. Kim, Rotation invariant face detect using haar-like feature variation, Master's thesis, Hongik University, Republic of Korea, 2008. Retrieved from https://www.riss.kr /link?id=T11431225.
- P.Viola, 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, Kauai, HI, pp. 511-518, Dec. 2001. DOI: http://dx.doi.org/10.1109/CVPR.2001.990517
- S. J. Bang, Recognition of similar gestures using hand body and face movements, Master's thesis, Kwangwoon University, Republic of Korea, 2009. Retrieved from https://www.riss.kr/link?id=T11615504.
- JOYTRON QHD40 WEBCAM [Internet]. Available: https://www.joytron.co.kr/product_view.php3?kind=19&skind=35&f_num=1292
- (MLX90640) Hookup Guide [Internet]. Available: https://learn.sparkfun.com/tutorials/qwiic-ir-array-mlx90640-hookup-guide
- Raspberry Pi Documentation [Internet]. Available: https://www.raspberrypi.com/documentation/computers/raspberry-pi.htm