| 보안 시스템을 위한 비명 검출 엔진 설계 | 2015.02.22 | |||||||
영상감시 솔루션 이제는 소리까지 더했다 \r\n
[시큐리티월드=상명대학교 이석필 교수 외 2인] 최근 번화가, 차도주변, 골목길, 공원 등과 같은 공공장소에서의 소매치기, 강도, 성범죄 등 각종 범죄 상황 발생에 의해 안전에 대한 문제가 대두 되고 있다. 현재까지 구축된 방범용 시스템은 특정 지역에 침입이 발생했을 때 센서를 통하여 경비요원이 바로 출동할 수 있도록 하는 무인경비 시스템과 범죄 발생 시 해당 지역에서 녹화된 영상물 수집을 통해 수사에 도움을 주는 블랙박스, 카메라에서 촬영된 화상정보를 이용하여 원하는 지역을 감시할 수 있도록 하는 CCTV 등 영상 정보를 이용하는 데에 집중되어 있다. \r\nCCTV의 한계, 소리로 해결 가능 \r\nCCTV는 기능면에서 볼 때 경찰의 부족한 인력과 장비를 보완해주는 중요한 역할을 수행하고 있고 범죄의 예방과 통제의 수단으로 효과적이며, 관리자가 모니터링 중 놓칠 수 있는 영상 정보를 검색, 추적하여 위급한 상황이나 강도, 방범 등에서 많은 발전을 이루고 있다. 이러한 문제를 해결하기 위한 방법으로 기존의 영상 데이터뿐만 아니라 오디오 데이터를 함께 사용한 방범용 시스템을 구축한다면 인력 부족 문제를 해결하고 더 효율적으로 범죄를 예방할 수 있다. 비정상 상황을 대표할 수 있는 오디오 신호로는 비명이 있다. 오디오 기반 CCTV에서 비정상 상황을 인식하는 방법에 대해 많은 선행연구가 있다. 일반적으로 사용되는 방법으로는 유성음과 무성음을 구분하기 위해 Zero Crossing Rate(ZCR)을 사용하고, 음성부와 비음성부를 구분하기 위해 Linear Prediction Coefficients(LPC), Linear Prediction Cepstral Coefficients(LPCC)을 특징으로 사용하며, 사람의 가청 주파수를 반영하여 특징을 추출하기 위해 Mel Frequency Cepstral Coefficients(MFCC)를 특징 벡터로 사용한다. 주파수 특징으로 소리 분석 \r\n이번 연구에서는 비정상 상황을 인식하고, 분류하는 연구 중 비정상 상황을 인식하는 방법에 대한 연구를 대상으로 한다. 이를 위해 비명소리와 같은 비정상 상황을 인지하기 위해 비명을 효율적으로 인식할 수 있는 방법에 대해 분석하고, 그것을 이전 연구와 비교해 보고자 한다. 제안하는 방법은 환경잡음과 비명데이터의 주파수 분석을 통해 주파수 영역에서의 특징을 찾는 것이다. 그림 1은 비명 검출 엔진 구조를 나타낸 순서도다. 입력은 비명과 환경잡음이 합성된 데이터이며 Pre-processing을 수행한 뒤 FFT를 이용하는 방법과 Cross correlation을 이용하는 두 가지 방법을 통해 비명을 검출하고 검출되는 시점을 알려주도록 설계했다.
1. DB 구성 \r\n실험을 위해 27개의 환경 DB와 180개의 비명 DB를 직접 녹음해 구성했다. 또한 제안하는 엔진의 성능 검증 실험을 위해 인터넷에서 20개의 녹음된 데이터를 사용했다. \r\n1.1 환경 DB \r\n일반적으로 CCTV는 보안이 취약한 지역이나 사람이 밀접한 지역 등에 많이 분포되어 있다. 그래서 일반적으로 CCTV가 설치되는 위치와 시간대를 고려하여 총 27개의 환경 잡음을 녹음했다. 녹음 장비로는 실제 사용할 방범용 CCTV의 음질을 고려하여 일반적인 휴대용 마이크로폰을 이용했다. 1.2 비명 DB \r\n사람들은 보통 고통스럽거나 다급할 때, 그리고 놀랬을 때 비명을 지르게 된다. 비명은 보통 1초 내외의 짧은 소리이며, 남녀 성별간의 주파수 차이를 보인다. 주변소음이 적은 밀실에서 피실험자와 마이크로폰의 거리를 5M로 두고 20~50대의 남녀 각각 30명에 대하여 3가지의 비명으로 총 180개의 비명을 녹음했다. 보통 일반적인 감시 시스템의 감시 범위는 20M를 상정한다. 2. Pre-processing \r\n각 환경마다 특징적으로 나타나는 소리가 다르며, 환경 잡음의 유형이 다르므로 그에 따른 주파수 대역과 그 에너지가 각각 다르다. 따라서 비명인지 아닌지를 판별하는 경계 값(Threshold)을 고정된 값으로 설정하면 오차율(Errorrate)이 높다는 문제점이 있다. 이 단계는 이러한 문제를 해결하기 위한 전처리 과정으로 엔진이 일정시간 동안 입력되는 데이터의 환경을 학습하도록 한다. 식 (1)을 이용하여 경계 값을 구한다. AVR은 학습구간에서 구한 평균값이고, ω는 실험을 통해서 얻은 가중치 값이다. 이 과정을 통해 엔진은 각 환경에 최적화 된 상대적인 경계 값을 설정한다. 이렇게 설정된 경계 값은 비명 주파수 대역에서 비명 검출의 기준으로 한다. \r\n \r\n 3. 비명 특징 추출 \r\n이번 연구에서는 주파수영역에서의 분석과 연산을 통해 환경 잡음 속에 비명이 섞여 있을 때, 관리자에게 알려주는 것에 목적을 두고 있다. 구성한 환경DB와 비명DB의 주파수 영역을 분석 하여 비명의 특징을 추출하고, 상호 상관을 통해 비명을 검출할 수 있는 특징을 찾고자 한다. \r\n3.1 주파수 영역에서의 특징 추출 \r\n그림 2는 골목길의 주파수 영역 그래프, 그림 3은 차도의 주파수 영역 그래프, 그림 4는 번화가의 주파수 영역 그래프이다. 골목길, 차도, 번화가환경들에서 공통적으로 300Hz 이하에서 큰 에너지를 보이는 것을 확인할 수 있으며, 골목길 환경은 주로 사람들이 지나다니는 발자국 소리, 바람 소리이다. 차도 환경은 주로 차가 지나가는 소리, 경적소리이며 비명과 혼동하기 쉬울 수 있는 경적소리는 2500Hz 부근에서 큰 에너지가 발생 한다. 번화가 환경은 주로 사람들의 말소리와 노래 소리이며, 2000Hz부근에서 큰 에너지를 보인다. 이전 연구에 따르면 음역대가 낮은 사람의 경우 비명의 주파수 대역은 150Hz에서 533Hz에서 나타나고, 음역대가 높은 사람의 경우 비명의 주파수 대역이 500Hz에서 2,133Hz에서 나타난다. 직접 구성한 DB를 통해 얻은 비명 데이터의 주파수를 분석한 결과 비명의 주파수 대역은 625Hz에서 2,031Hz 이다. 이번 연구에서는 분석 결과를 토대로 625Hz과 2,031Hz 사이에서 일정이상의 프레임이 연속된다는 비명의 특징을 이용해 비명을 검출한다. \r\n3.2 Cross correlation \r\n기존의 상호 상관법은 시간영역에서 수행하나, 이번 연구에서는 주파수 영역의 특징을 좀 더 활용하기 위해서 주파수 영역에서 상호 상관 연산을 수행했다. 주파수 분석을 위해 FFT연산을 수행하기 때문에 연산속도에는 큰 영향을 미치지 않으며, 주파수 영역으로 상호 상관법을 수행하여도 결과는 같게 나온다. 식(2)는 상호 상관법의 일반적인 식이다. \r\n \r\n 상호 상관법의 결과가 다음 식(3)의 조건을 만족하는 프레임이 일정 개수 이상 연속 되었을 경우 비명으로 판단한다. 경계 값으로 설정된 0.8은 많은 실험을 통해 결정된 값으로, 검출률과 오인식률 측면에서 가장 좋은 성능을 보였다. \r\n \r\n 4. 비명 구간 찾기 \r\n비명 구간을 정확하게 검출한다면, 처리할 데이터가 줄어들게 되고 효율적인 처리가 가능해진다. 앞에서 설명한 비명의 특징들을 이용하여 비명의 시작점을 찾고, 그 지점부터는 그 특징의 조건을 만족하지 못하는 프레임이 일정이상 연속되었을 때, 그 지점을 끝점이 된다. 즉, 전처리 과정으로 설정된 경계값을 넘는 프레임이 연속되면 비명 시작이고, 그 경계값을 넘지 못하는 프레임이 연속되면 비명 끝이 된다. 이렇게 하나의 비명 구간을 찾게 된다. \r\nSNR 실험결과에 따른 비교 \r\n이번 연구에서 제안하는 방법의 성능을 기존의 연구의 방법으로 한 것과의 비교 실험을 위하여 이 두 방법을 이용한 프로그램을 같은 컴퓨터에 MFC를 이용하여 구현했다. 비명과 환경잡음을 합성하여 입력 데이터를 만들었다. 주차장법 시행규칙 6조 1항 11호에 따르면, ‘방범설비는 주차장의 바닥면으로부터 170센티미터의 높이에 있는 사물을 식별할 수 있도록 설치하여야 한다’ 따라서 이번 연구를 위해 환경잡음은 2~3M의 거리에서 취득했고, 감시 범위는 20M로 했다. 골목길이나 차도의 경우, 사람소리와 사람소리가 아닌 소리의 분명한 차이로 인해서 다른 방법 모두 좋은 결과를 보이기 때문에, 환경잡음으로는 사람이 북적이는 번화가 소리로 했다. 입력 데이터는 5가지 방법 모두 같게 했으며, 검출하는 방법만 다르게 하여 진행 했다. CCTV에 적용할 수 있는 비명검출 엔진 구현 \r\n이번 연구에서는 CCTV에 적용시킬 수 있는 실시간 비명검출 엔진을 구현했다. 엔진은 실시간으로 검출이 가능하며 검출된 시점을 사용자에게 제공한다. 엔진을 구현하기 위해 사람의 비명소리와 환경 소리를 직접 녹음하여 DB를 구축했고, 각각의 주파수 분석을 수행했다. 이번 연구에서 제안하고자 하는 방법과 엔진의 성능 검증을 위해 선행 연구에서 많이 사용되는 LPC, LPCC, MFCC를 이용해 비명을 검출한 결과와 비교 실험을 수행한 결과 검출률과 오인식률에서 제안하는 방법이 성능이 더 좋다는 것을 확인할 수 있다. 실험 결과 SNR이 10dB인 환경에서는 검출률이 100%이며, SNR이 5dB인 환경에서는 97%의 검출률을 보였다. 오인식률은 SNR이 5dB 이상인 환경에서는 0%를 보였다. 구현된 엔진은 간단하게 특정 주파수 대역에서의 에너지 값과 상호상관 계수값을 통해 비명을 검출하여 이전의 복잡한 방법의 검출 엔진보다 효율적이라고 판단된다. [글_상명대학교 이석필 교수 외 2인] \r\n[월간 시큐리티월드 통권 217호 (sw@infothe.com)] \r\n<저작권자 : (www.securityworldmag.co.kr) 무단전재-재배포금지> |
||||||||
|
|