Research Article

The Journal of the Acoustical Society of Korea. 30 November 2018. 469-474
https://doi.org/10.7776/ASK.2018.37.6.469

ABSTRACT


MAIN

  • I. 서  론

  • II. 제안모델

  •   2.1 데이터셋

  •   2.2 오디오 전처리

  •   2.3 환경잡음

  •   2.4 네트워크 구조

  • III. 결 과

  •   3.1 선행연구와의 비교

  •   3.2 환경잡음 추가에 따른 성능 변화

  •   3.3 클래스별 분류 성능 분석

  • IV. 결 론

I. 서  론

도시가 점점 커지고 유동인구가 많아짐에 따라 도시에서 수집된 여러 정보를 통해 도시 문제를 해결하려는 국내외 다양한 움직임이 일고 있다. 특히 자동차 경적음을 통해 교통 혼잡도를 예측하거나[1] 자동차 사고 감지를 위해 자동차 충돌음과 타이어 제동 마찰음을 감지하는 알고리즘을 제안하는 등[2] 교통 소음에 관한 연구가 증가하고 있다.

교통사고 등의 이상 상황을 즉각적으로 감지하는 것은 교통체증 혹은 사고자의 생존율 등에 직접적인 영향을 미친다. 현재 이런 교통 환경에서의 이상 상황에 대한 감지는 CCTV 등 영상 정보에 대부분 의지하고 있다. 그러나 영상 정보만으로 사고, 교통체증 등의 이상 상황을 모두 감지하기에는 어려움이 있다. 또한 영상 정보의 경우 시야각이나 조도 등에 영향을 많이 받지만, 오디오 정보는 이러한 상황에서 영상 시스템이 담을 수 없는 정보를 수집하여 감지 시스템의 성능을 보완할 수 있다.[3]

고전적인 오디오 분석 모델에서는 모델의 수행 목적에 따라 도메인 지식을 활용하여 feature를 추출하고 여러 확률모델로 분석을 하는 것이 일반적이었다. 기존 교통 소음 분류 연구에서도 마찬가지로 오디오 신호에서 low level feature를 추출한 뒤 audio words 방식을 통해 오디오 신호를 high level feature로 맵핑하여 분류하는 모델을 제안하였다.[2] 하지만 딥러닝 기술이 컴퓨터 비전 분야에서 두각을 나타낸 이후 이를 넘어 다양한 분야에 적용되기 시작하면서 최근 환경 소음 분류 분야에서도 도메인 지식을 이용하여 feature 추출하여 분류하는 기존의 방법 외에 합성곱 신경망 등 딥러닝을 이용한 분류 모델이 더 높은 성능을 보이고 있다.[4] 또한 이런 딥러닝을 이용한 분류 모델의 성능을 높이기 위해 시간 축 스트레칭, 음고 스트레칭, 범위 축소, 잡음 추가 등 데이터 수를 늘리기 위한 다양한 기술들이 시도되고 있는데 특히 환경 소음 분류의 경우 실제 소음이 발생하는 장소에 다양한 환경잡음이 섞여 있어 배경 및 환경잡음을 이용한 데이터 수를 늘리는 방법이 효과적이다.[5]

본 논문에서는 교통 상황에서 발생하는 이상 소음 세 가지를 정의하고 정상 소음을 포함한 네 가지 클래스에 대한 소음 분류를 수행하는 모델을 제안한다. 구체적으로는 자동차 경적음, 자동차 충돌음, 타이어 제동 마찰음, 정상 소음 네 가지 클래스이며 분류 알고리즘은 합성곱 신경망을 이용했다. 또한, 실제 여러 환경잡음이 존재하는 교통 상황에서도 강인한 성능을 갖기 위해 빗소리, 바람 소리, 군중 소리의 세 가지 환경잡음을 설정하였고 모델 설계에 사용하였다.

이어지는 II에서 제안모델의 데이터셋, 전처리 방법, 환경잡음을 이용한 데이터 증가 방법, 네트워크 구조에 관해 기술한다. III에서는 제안한 모델이 기존 교통 소음 분류 모델보다 더 높은 분류 성능을 가짐을 보이고, SNR(Signal to Noise Ratio)을 변화시키며 실험한 결과에 따라 설정한 환경잡음에 강인한 성능을 가짐을 보임과 함께 클래스별 분류 성능을 분석한 뒤 마지막 IV에서 결론을 맺는다.

II. 제안모델

2.1 데이터셋

본 논문에서는 정상 소음을 포함한 네 가지 클래스를 교통 상황에서 발생하는 주요한 이상 소음으로 선정하였다.

자동차 충돌음과 타이어 제동 마찰음, 정상 소음에 해당하는 데이터셋은 Mivia road dataset[2]을 이용하였다. 이 데이터셋은 32,000 Hz로 녹음된 5 s 이내 길이의 자동차 충돌음과 타이어 제동 마찰음의 오디오 신호에 다양한 도로에서 직접 녹음한 도로 소음을 더하여 생성되었다. 정상 소음의 경우 이상 소음 오디오가 포함되지 않은 도로 소음만 있는 오디오를 의미한다. 녹음된 도로 소음의 대부분은 자동차 엔진 소리가 주요하고 도로에서 발생하는 기타 다양한 배경잡음이 포함되어 있다. 자동차 경적음은 Urbansound 8k dataset[6]을 이용하였다. 이 데이터셋은 Freesound[7]에서 실제 환경 녹음 데이터 기반으로 수집한 데이터들이다. 각 오디오는 4 s 이내의 길이를 가지며 샘플링 레이트는 Freesound에 업로드된 원본 샘플링 레이트를 그대로 유지하고 있다. Mivia road dataset과 마찬가지로 주요한 이벤트 오디오 외에 도로 소음에 해당하는 배경 잡음이 포함되어 있고 도로 소음의 성격 또한 Mivia road dataset과 유사하다. 네 가지 클래스의 이상소음 오디오에 존재하는 배경잡음은 그 영향이 미비하다고 가정하였다.

Mivia road dataset이 네 개의 폴드로 미리 나누어져 있어 Urbansound 8k dataset의 자동차 경적음 또한 네 개의 폴드로 나누었다.

서로 다른 길이를 갖는 이벤트 오디오를 2.2의 오디오 전처리를 통해 약 950 ms의 일정한 길이를 갖는 데이터로 나누었고 클래스별 데이터 수는 Table 1과 같다.

Table 1. Data distribution of 4 classes. TS, CC, CH, and NS correspond to tire skidding, car crash, car horn, and normal sounds.

ClassTSCCCHNS
The number of samples4188066041053

2.2 오디오 전처리

이벤트 오디오와 도로 소음이 섞인 모든 오디오에 대하여 22,050 Hz로 리샘플링 및 정규화하고 로그 스케일의 mel-spectrogram을 추출하였다. 윈도우 크기는 1024, 홉 길이는 512이며 60개의 멜 밴드를 갖는다. 원본 데이터 셋의 크기가 크지 않아 다양한 길이를 갖는 오디오를 짧은 세그먼트 단위로 나누어 데이터를 증가시키기 위해 50 %씩 중첩시킨 41개의 프레임을 하나의 세그먼트로 구성하였으며 그 길이는 약 950 ms이다. 이상 소음 오디오가 원본 오디오 파일 내에 전 구간에 퍼져있어 약 950 ms로 나누어진 세그먼트내에도 대체로 분류 가능한 오디오 이벤트가 포함되었음을 확인하였다. 또한 오디오를 세그먼트 단위로 나누며 해당 세그먼트가 60 dB 이하의 값을 가지는 경우 이벤트가 없는 세그먼트로 판단하여 데이터에서 제거하였다. 세그먼트에 delta feature를 추가하여 입력 데이터 1개당 60 × 41 × 2의 차원을 가지며 모든 처리는 LibROSA[8] 패키지를 이용하였다.

2.3 환경잡음

실제 교통 소음이 발생하는 외부 환경에서의 환경잡음을 반영하기 위해 빗소리, 바람 소리, 군중 소리를 설정하였다. 각 환경잡음 오디오를 2.2 오디오 전처리와 마찬가지로 22,050 Hz로 리샘플링 및 정규화한 후 이벤트 오디오의 세그먼트 길이와 같게 자르고 (약 950 ms), 오디오에서 추출한 각 세그먼트에 무작위로 섞어주었다. 따라서 입력 데이터 수가 환경잡음을 섞은 데이터로 인해 두 배로 증가하였다. 이벤트 오디오에 환경잡음을 섞을시 SNR을 -3 dB, 3 dB, 10 dB로 변화시키며 네트워크 분류 성능을 비교하였다.

2.4 네트워크 구조

합성곱 신경망 모델이 이미지 데이터를 사용하는 컴퓨터 비전분야에서 두각을 나타내면서 mel- spectrogram 등 오디오에서 추출한 여러 특징이 이미지와 유사한 특성을 가짐에 따라 오디오 분야에서도 합성곱 신경망을 이용한 모델이 주목할 만한 성능을 보이고 있다. 본 연구의 네트워크 구조는 환경 소음 분류에서 이차원 합성곱 신경망을 이용한 선행연구의[4] 네트워크 구조를 기본 구조로 사용하였고 이는 Piczak[4]가 다양한 실험을 통해 최적의 성능을 갖는 모델로 제시한 것이다. 이 모델을 기본적으로 사용하되 실험을 통해 주어진 데이터셋에서 좋은 성능을 갖도록 일부 구조를 수정하였다. 구체적인 모델 구조는 Fig. 1과 같이 두 개 층의 이차원 합성곱 신경망을 이용하였다. 첫 번째 합성곱 층은 32개의 필터 (57 × 6 size, 1 × 1 stride) 및 ReLU로 이루어져 있고, max pooling 층을 적용하였다(4 × 3 size, 1 × 3 stride). 두 번째 합성곱 층은 32개의 필터 (1 × 3 size, 1 × 1 stride) 및 ReLU로 이루어져 있고, max pooling 층을 적용하였다(1 × 3 size, 1 × 3 stride). 이후 각각 512개의 ReLU 은닉층을 갖는 두 개의 fully connected 층을 적용하였고 마지막 softmax 층에서 클래스당 확률을 계산하였다. loss 및 optimizer는 cross entropy loss와 Adam을 사용하였고 batch normalization을 적용하였다.

학습 파라미터들은 learning rate 0.0001, 첫 번째 합성곱 층과 두 개의 fully connected 층에서 0.5 drop out 및 모든 층에서 베타 값 0.001의 L2 regularization을 사용하였다. batch size는 128을 사용하였고 100 epoch까지 학습을 진행했다. 모든 구현은 TensorFlow[9]를 이용하였다.

http://static.apub.kr/journalsite/sites/ask/2018-037-06/N0660370611/images/ASK_37_06_11_F1.jpg
Fig. 1.

Network structure of the proposed model.

III. 결 과

결과의 모든 성능은 4 폴드 교차 검증 성능이다. 먼저 3.1에서 제안한 모델과 기존 선행연구를 비교하고 3.2에서 환경잡음을 섞은 오디오의 SNR에 따른 분류 성능을 확인한다. 마지막 3.3에서 환경잡음을 섞었을 때와 섞지 않았을 때의 네 가지 클래스에 대한 분류 confusion matrix를 비교한다.

3.1 선행연구와의 비교

Table 2는 Mivia road dataset에 대한 제안한 모델 및 기존 선행연구의[2] 분류 성능 결과이다. Table 2의 Baseline 결과는 기존 선행연구에서[2] 오디오에서 zero crossing rate, spectral centroid 등 다양한 low level feature를 추출한 뒤 audio words 방식으로 각 오디오에 해당하는 high level feature를 매핑하여 kNN 알고리즘으로 분류한 성능이다. 선행연구와의 비교를 위해 환경잡음 없이 타이어 제동 마찰음, 자동차 충돌음에 대하여 분류를 수행하였으며 두 가지 클래스에 대한 분류 성능에서 선행연구보다 더 높은 분류 성능을 보임을 확인하였다.

Table 2. Results of the two-class classification of the proposed model and baseline (the classification accuracy of normal sound is not reported in[2]).

Classification accuracy
Tire skiddingCar crashNormal sounds
Baseline[2]75.0 %89.0 %-
Proposed95.8 %94.0 %92.9 %

3.2 환경잡음 추가에 따른 성능 변화

Table 3은 타이어 제동 마찰음, 자동차 충돌음, 자동차 경적음, 정상 소음의 네 가지 클래스를 분류한 결과이다. clean train / clean test는 환경잡음을 섞지 않고 학습 및 테스트한 모델의 네 가지 클래스에서의 분류 성능을 나타내고, clean train / noise test는 이 모델의 테스트셋만 바꾸어 환경잡음을 더한 음원이 추가된 테스트셋으로 분류했을 시의 분류 성능을 나타낸다.

Table 3의 clean train / clean test를 보면 환경잡음이 없는 환경에서 네 가지 클래스에 대한 클래스별 분류 성능 및 전체 분류 성능이 90 % 이상으로 매우 높음을 알 수 있다. 하지만 Table 3의 clean train / noise test와 같이 이 모델에 환경잡음이 추가된 데이터로 테스트할 시, 클래스별 분류 성능 및 전체 분류 성능이 현저히 떨어짐을 확인할 수 있다.

설정한 네 가지 클래스의 교통 소음은 실제로 대부분 외부 환경에서 발생한다. 또한 이 소음을 수집하는 데이터 수집 장치 또한 외부 환경에 노출되어 있어 빗소리, 바람 소리, 주변의 군중 소리 등 환경잡음이 불가피하게 교통 소음에 섞이게 된다. 즉, Table 3의 clean train / noise test에 사용된 환경잡음이 추가된 테스트셋이 실제 교통 소음이 발생하는 환경을 더 잘 반영했다고 할 수 있다.

clean train / noise test에서와 같이 실제 환경잡음이 반영된 교통 소음으로 테스트할 시의 성능을 높이기 위해 2.3에서와 같이 환경잡음으로 데이터를 증가시켜 학습시킨 모델로 분류 성능을 확인하였다. Table 3의 noise train / noise test(-3 dB), noise train / noise test (3 dB), noise train / noise test(10 dB) 모두 환경잡음을 추가한 데이터로 학습한 모델이며, 테스트 또한 clean train / noise test와 마찬가지로 환경잡음을 더한 음원이 추가된 테스트셋을 이용했다. 세 가지 항목은 각각 -3 dB, 3 dB, 10 dB의 서로 다른 SNR로 오디오 데이터와 환경잡음을 섞었을 때의 분류 성능을 나타낸다.

Table 3의 clean train / noise test와 noise train / noise test(-3 dB)를 비교해보면 제안한 모델 noise train / noise test(-3 dB)가 클래스별 분류 성능 및 전체 분류 성능 모두 clean train / noise test보다 높아 환경잡음이 추가된 실제 교통 소음 분류에서 더 좋은 성능을 보임을 알 수 있고 이는 환경잡음에 강인함을 의미한다.

이벤트 오디오에 환경잡음을 섞을 시의 SNR이 증가함에 따라 클래스별 분류 성능 및 전체 분류 성능이 향상됨을 확인할 수 있다.

Table 3. Classification results according to training and test data composition. TOT means overall classification accuracy.

Classification accuracy
TSCCCHNSTOT
Clean train / clean test95.8 %94.0 %95.9 %92.9 %94.4 %
Clean train / noise test (-3 dB)82.0 %83.1 %82.0 %83.5 %83.0 %
Noise train / noise test (-3 dB)87.2 %85.2 %84.3 %85.4 %85.3 %
Noise train / noise test (3 dB)90.7 %88.1 %88.2 %88.1 %88.5 %
Noise train / noise test (10 dB)92.9 %89.1 %91.8 %90.2 %90.7 %

3.3 클래스별 분류 성능 분석

Fig. 2는 제안한 모델을 환경잡음이 섞이지 않은 데이터로 학습 및 테스트한 clean train / clean test의 confusion matrix를 나타내고, Fig. 3는 제안한 모델을 SNR 10 dB로 환경잡음을 섞어 학습 및 테스트한 noise train / noise test(10 dB)의 confusion matrix이다. Figs. 2와 3, 모두 클래스별로 높은 분류 성능을 보이며 대체로 낮은 에러율을 보이지만 자동차 충돌음과 정상 소음, 자동차 경적음과 정상 소음 클래스 분류 시에는 높은 에러율을 보인다.

http://static.apub.kr/journalsite/sites/ask/2018-037-06/N0660370611/images/ASK_37_06_11_F2.jpg
Fig. 2.

Confusion matrix for four-class classification of proposed model trained with clean data and tested with clean data (Table 3 clean train / clean test). Overall classification accuracy is 94.4 %.

http://static.apub.kr/journalsite/sites/ask/2018-037-06/N0660370611/images/ASK_37_06_11_F3.jpg
Fig. 3.

Confusion matrix for four-class classification of proposed model trained with noise data and tested with noise data with SNR 10 dB [Table 3 noise train / noise test (10 dB)]. Overall classification accuracy is 90.7 %.

먼저 자동차 충돌음과 정상 소음 분류 시 높은 에러율에 관하여서는 자동차 충돌음의 오디오의 특성에 의한 것으로 추정한다. 타이어 제동 마찰음이나 자동차 경적음의 경우 상대적으로 긴 시간에 걸쳐 오디오가 지속되는 반면, 자동차 충돌음의 경우 충돌 직후 짧은 시간에 두드러지는 오디오가 나타나고 이후에는 해당 클래스의 두드러지는 특징이 줄어 정상 소음에 해당하는 도로 소음이 주요해져 정상 소음에 해당하는 특성을 더 많이 가지는 오디오가 존재하는 것으로 추정한다.

자동차 경적음과 정상 소음 분류 시의 높은 에러율에 관하여서는 정상 소음 클래스의 도로 소음은 실제 다양한 도로에서 녹음되었기에 주요한 자동차 엔진소리 외에 간간이 자동차 경적음이 섞여 있었다. 즉, 같은 소리가 서로 다른 클래스 안에 일부 포함되어 있어 분류 시 에러율을 증가시켰을 것으로 추정된다.

환경잡음이 학습 및 테스트에 포함된 제안한 모델 Fig. 3의 경우 에러율이 Fig. 2보다 높음을 확인할 수 있고 특히 자동차 충돌음과 정상 소음 클래스 구분 시의 에러율 상승은 앞서 기술한 바와 유사하게 환경잡음이 도로 소음과 마찬가지로 오디오 전역에 걸쳐 지속적으로 나타나, 짧은 시간에 두드러지는 자동차 충돌음의 특징 학습을 더 어렵게 하는 것으로 추정한다.

IV. 결 론

본 논문에서는 최근 환경 소음 분류 분야에서 주목받고 있는 합성곱 신경망을 이용하여 교통 소음 분류 모델을 제안하였다. 구체적으로는 두 개 층의 합성곱 신경망 구조를 이용하여 타이어 제동 마찰음, 자동차 충돌음, 자동차 경적음, 정상 소음 네 가지 클래스를 분류하였고 특히, 실제 교통 소음이 발생하는 상황에서 존재하는 빗소리, 바람 소리, 군중 소리의 환경잡음에 강인하도록 설계하였다. 실험 및 결과를 통하여 본 논문에서 제안한 모델이 기존 선행연구보다 높은 분류 성능을 가짐과 함께 설정한 환경잡음에 강인한 성능을 가짐을 보였다.

추후 과제로는 3.3에서 자동차 충돌음 클래스 분류 시 에러율에 관련하여 자동차 충돌음 관련 데이터셋을 확장 및 클리닝 하는 것과 2.2의 오디오 전처리에서 세그먼트를 제거하는 과정을 더 세밀하게 수행하는 등이 가능하다. 또 실제 교통 환경에 데이터 수집 장치를 배치한 후 실시간 교통 소음 분류가 가능하도록 모델 최적화 및 특징 연구들을 계획 중에 있다.

Acknowledgements

본 논문은 빅데이터연구원의 연구과제인 “도시 데이터 사이언스 연구소 지원사업”의 연구 결과 중 일부이다.

References

1
R. Banerjee, A. Sinha, and A. Saha, "Participatory sensing based traffic condition monitoring using horn detection," Proc. the 28th annual ACM symposium on applied computing, 567-569 (2013).
10.1145/2480362.2480470
2
P. Foggia, P. Foggia, N. Petkov, A. Saggese, N. Stisciuglio, and M. Vento, "Audio surveillance of roads: A system for detecting anomalous sounds," IEEE trans. of intelligent transportation systems 17, 279-288 (2016).
10.1109/TITS.2015.2470216
3
M. Cristani, M. Bicego, and V. Murino, "Audio-visual event recognition in surveillance video sequences," IEEE Trans. Multimedia, 9, 257-267 (2007).
10.1109/TMM.2006.886263
4
K. J. Piczak, "Environmental sound classification with convolutional neural networks," IEEE International Workshop on Machine Learning for Signal Processing (MLSP), 1-6 (2015).
10.1109/MLSP.2015.7324337
5
J. Salamon and J. P. Bello, "Deep convolutional neural networks and data augmentation for environmental sound classification," IEEE Signal Processing Letters, 24, 279-283 (2017).
10.1109/LSP.2017.2657381
6
J. Salamon, C. Jacoby, and J. P. Bello, "A dataset and taxonomy for urban sound research," Proc. the 22nd ACM international conference on Multimedia, 1041-1044 (2014).
7
http://www.freesound.org
8
B. McFee, C. Raffel, D. Liang, D. P. Ellis, M. McVicar, E. Battenberg, and O. Nieto, "librosa: Audio and music signal analysis in python," Proc. the 14th Python in Science Conference, 18-25 (2015).
10.25080/Majora-7b98e3ed-003
9
M. Abadi, P. Barham, J. Chen, Z. Chen, A. Davis, J. Dean, M. Devin, S. Ghemawat, G. Irving, M. Isard, M. Kudlur, J. Levenberg, R. Monga, S. Moore, D. G. Murray, B. Steiner, P. Tucker, V. Vasudevan, P. Warden, M. Wicke, Y. Yu, and X. Zheng, "Tensorflow: a system for large-scale machine learning," Proc. the 12th USENIX conference on OSDI, 16, 265-283 (2016).
페이지 상단으로 이동하기