Acoustic Signal Processing (Source Enhancement, Localization, Detection) in Low SNR Environments

Enhancement results

1. SNR -17.09 (1m between sound source and hovering multi-rotor UAV)
  • sound enhanced by RICEN
  • noisy sound
  • noise sound
  • clean sound


2. SNR -21.37 (5m between sound source and rotating multi-rotor UAV)
  • sound enhanced by RICEN
  • noisy sound
  • noise sound
  • clean sound


3. SNR -27.14 (10m between sound source and shifting(moving) multi-rotor UAV)
  • sound enhanced by RICEN
  • noisy sound
  • noise sound
  • clean sound

Localization & Detection results

  • noisy Log Magnitude Spectra
  • clean Log Magnitude Spectra
  • estimated Direction of Arrival
  • detected voice activity

1. SNR -21.37 (5m between sound source and rotating multi-rotor UAV)

direction of arrive at 100 degree

2. SNR -25.05 (5m between sound source and hovering multi-rotor UAV)

direction of arrive at 160 degree

3. SNR -27.14 (10m between sound source and shifting(moving) multi-rotor UAV)

direction of arrive at 80 degree

4. SNR -35.93 (15m between sound source and shifting(moving) multi-rotor UAV)

direction of arrive at 20 degree
Audio Recognition

Audio Recognition

Sound Classification

  • urban sound classification
    • Environmental sound classification with convolutional neural networks, 2015 [paper]
    • Deep convolutional neural networks and data augmentation for environmental sound classification, 2017 [paper]
    • UNSUPERVISED FEATURE LEARNING FOR URBAN SOUND CLASSIFICATION, 2015 [paper]
  • speaker’s age, gender classification
    • Deep neural network framework and transformed MFCCs for speaker’s age and gender classification, 2017 [paper]
    • Speaker age classification and regression using i-vectors, 2016 [paper]
    • A new pitch-range based feature set for a speaker’s age and gender classification, 2015 [paper]
    • A new approach with score-level fusion for the classification of a speaker age and gender, 2016 [paper]
    • Automatic speaker, age-group and gender identification from children’s speech, 2018 [paper]
    • Speaker age estimation on conversational telephone speech using senone posterior based i-vectors, 2016 [paper]
    • Estimating Age and Gender for Speaker through, 2016 [paper]
  • sound source direction classification

  • data augmentation
    • EXPLORING DATA AUGMENTATION FOR IMPROVED SINGING VOICE DETECTION WITH NEURAL NETWORKS, 2015 [paper]
      • Singing voice detection with deep recurrent neural networks, 2015 [paper]

Voice Activity Detection (VAD) - audio record 내 목소리 유무 여부 판단

  • Feature learning with raw-waveform CLDNNs for Voice Activity Detection, 2016 [paper]
  • Boosting contextual information for deep neural network based voice activity detection, 2016 [paper]
  • Voice Activity Detection: Merging Source and Filter-based Information, 2016 [paper]
  • Features for voice activity detection: a comparative analysis, 2015 [paper]
  • Formant-based robust voice activity detection, 2015 [paper]
  • A robust voice activity detection for real-time automatic speech recognition, 2018 [paper]
  • Ensemble of deep neural networks using acoustic environment classification for statistical model-based voice activity detection, 2016 [paper]
  • Audio-Visual Voice Activity Detection Using Diffusion Maps, 2015 [paper]

Sound Source Direction Detection - audio 내 소리의 음원 방향 검출

  • Detection Sound Source Direction in 3D Space Using Convolutional Neural Networks, 2018 [paper]
  • Design of UAV-embedded microphone array system for sound source localization in outdoor environments, 2017 [paper]
    • UAV-embedded (드론에 연결된…)

?

  • A low-latency, real-time-capable singing voice detection method with LSTM recurrent neural networks, 2015 [paper]
Paper Review - A COMPLETE END-TO-END SPEAKER VERIFICATION SYSTEM USING DEEP NEURAL NETWORKS - FROM RAW SIGNALS TO VERIFICATION RESULT

Paper Review - A COMPLETE END-TO-END SPEAKER VERIFICATION SYSTEM USING DEEP NEURAL NETWORKS: FROM RAW SIGNALS TO VERIFICATION RESULT

이 포스트에서는 2018년 IEEE International Conference on Acoustics 에 올라온 “A COMPLETE END-TO-END SPEAKER VERIFICATION SYSTEM USING DEEP NEURAL NETWORKS: FROM RAW SIGNALS TO VERIFICATION RESULT” 논문에 대해 살펴보겠습니다.

전통적인 화자 인식 시스템의 구성

2014~15년도 이전의 전통적인 화자 인식 시스템은 보통 다음과 같은 4개의 스테이지로 구성되어 있었습니다.

  1. pre-processing
  2. acoustic feature extraction
  3. speaker feature extraction
  4. binary classification

15년도 이후부터는, 이 4개의 스테이지의 일부를 DNN으로 대체하는 시도가 있었으며, 특히 d-dector나 b-vector의 경우, 전통적인 화자 인식 시스템의 3, 4번째 스테이지를 한번에 처리하도록 구성하기도 했습니다.

최근에는, 2~3 번째 스테이지의 feature extraction 단계부터, 마지막 classification 단계까지 한번에 end to end 로 DNN 을 구성해서 화자를 인식하는 방법이 제안되고 있습니다. 이러한 방법들은 먼저 입력 오디오 신호에 대해서, MFCCs나 mel-filterbank energies, spectrogram 등으로 pre-processing을 한 이후에, pre-processing 결과들에 대해서 DNN 모델을 구성해서 화자를 인식합니다.

DNN from raw audio signal

이 논문에서는, MFCCs와 같은 전처리 혹은 feature extraction 을 사용하지 않고, 순수 raw audio signal 들을 입력으로 취하는 DNN을 구성해서 화자를 인식하는 방법에 대해 제안하고 있습니다. 모델의 구성은 다음과 같습니다.

  1. pre-processing layer
  2. speaker feature extraction layer
  3. b-vector system

pre-processing layer

먼저 pre-processing layer에 대해 살펴보기 이전에, 논문에서 언급하는 바로는, raw audio signal에 대해서 직접적으로 DNN을 적용하기 어려운 가장 큰 이유 중 하나는, raw audio signal 값의 변동이 너무 크기 때문이라고 합니다. (-32,768 ~ 32,767, 16bit)
이러한 문제를 해결하기 위해 audio signal processing 에서는 pre-emphasis 라는 기술을 적용하게 되는데, 이 pre-emphasis 는, 높은 주파수 신호를 강조해서 변조 지수를 일정하게 유지하므로 raw audio signal 의 크기를 안정화시키는 역할을 합니다. pre-emphasis 에 대한 수식은 다음과 같습니다.

대부분의 audio-signal processing 에서 다루는 pre-emphasis 의 coefficient 는 0.97로 정한다고 합니다.

이 논문에서는 이러한 pre-emphasis 를 (k=2)의 convolutional layer를 이용해서 구현하며, 해당 conv layer의 2개 weights 를 [[-0.97, 1]] 로 초기화해서 사용했다고 합니다. (위 수식과 동일한 동작)
이후 이 weights 값은 학습을 통해 좀더 fine-tuning 되는데, 학습에서 이 weight 값이 급격하게 변화하는 것을 방지하기 위해, pre-emphasis 에 해당하는 conv layer의 learning rate를 다른 레이어에 비해 작게 주었습니다.

speaker feature extraction layer

논문에서는 화자 특징 추출을 위해 다음과 같은 2개의 모델을 제안합니다.

  1. RACNN RACNN 은 9개의 Conv + max-pooling layer, 2개의 fc layer로 구성된 CNN 모델로, strided convolution 을 사용했다고 합니다. 여기서 conv layer의 구성은 (k=3, s=1) 이고, fc layer의 node(unit)의 수는 512로 설정했으며,첫 번째 fc layer에는 linear activation 을 적용했습니다.

  2. RACNN-LSTM RACNN-LSTM 은 앞서 1.의 RACNN 모델의 5번째 pooling layer의 출력 feature map(2d: time step, num of kernel)을 81d vector로 변환한 후, 해당 vector를 입력으로 취하는 LSTM + 2개 fc layer를 추가한 모델입니다.

b-vector system

최종 화자의 검증(verification) 으로는 b-vector classifier를 사용해서 분류했으며, 해당 classifier 는 입력 layer, 5개의 hidden layer, 1개의 출력 layer를 갖는 MLP로 구성됩니다. 여기서 입력 레이어는 총 1536(512 x 3) 차원의 입력을 받아들이는데, 이는 일종의 augmentation 으로, speaker model의 출력과, test utterance 간에 summation(+), subtraction(-), multiplication(*)을 적용한 각각의 512 vector들을 이어붙인 것을 의미하는 것 같습니다.
이후, 1536d의 입력 vector는 1024개의 unit을 갖는 5개 hidden layer를 거쳐, 2개의 output unit을 갖는 최종 출력 layer로 전달됩니다.

※ 모델의 전체 학습에 대해서, 논문에서는 joint optimization approach를 적용했다고 합니다. joint optimization approach 는, 각각의 모델 RACNN, RACNN-LSTM, b-vector classifier 에 대해 각각의 출력 fc layer들을 붙여 각각 학습시킨 후, 이어붙여서 fine-tuning 하는 방식으로 학습시키는 방법을 의미하는 것 같습니다. 따라서, 이후 RACNN의 마지막 conv, fc layer는 제거합니다. (verification 에서 필요하지 않으므로..)

  • RACNN의 모델은 speaker identification 방식으로 학습시키는 것 같습니다.

DataSet

논문에서 사용한 데이터셋으로는 RSR 2015 를 사용했는데, 이 데이터셋은 총 300명의 화자로 구분되고, 각 화자별로 270개의 발성 데이터(3.2초, 9개 세션 * 서로 다른 phrase)를 갖습니다. 또한 100(남성) + 94(여성)개 화자를 dev(training) 데이터로 사용하고, 나머지 106개 화자를 test 데이터로 사용합니다.

모델 요약 정리

  1. input shape = 59,049 ()
  2. pre-emphasis layer = Conv(k=2, s=1)
  3. Conv(k=128, s=3)
  4. RACNN model = ( (Conv(k=3, s=1) + max pooling(k=3) ) * 9 -> fc(512, linear activation) -> fc(512)
  5. RACNN-LSTM model = RACNN model의 5번째 pooling layer output (81d, ) -> fc(512, linear activation) -> fc(512)
  6. b-vector system = 1536 input -> fc(1024d) * 5 -> output layer(2d) ※ 모든 시스템에는 dropout과 batch normalization 이 적용되었음

결과

  • pre-emphasis 의 적용 결과, 학습에 의한 fine tuning 으로 [[-0.97 1]] 에서 [[-0.83 1.12]]로 값이 변경되었고, EER(Equal Error Rate) metric 으로 검증한 결과, pre-emphasis를 적용했을 때 24% 작은 EER을 얻을 수 있었다고 합니다.
  • RACNN의 출력 임베딩 벡터를 CSS(Cosine Similarity Scoring)으로 계산해서, 결과를 만들 경우, d-vector baseline보다 낮은 성능을 보였지만, end-to-end로 구성한 시스템이서는 좋은 결과를 보였으며(baseline, RACNN(CSS), RACNN(end to end) 4.89, 5.22, 3.94)
  • 또한, RACNN-LSTM의 경우 CSS로 계산해도 baseline 보다 좋은 결과를 보였고(3.82), end to end RACNN-LSTM은 3.63 EER로 가장 높은 성능을 보였습니다.

References

[1] A COMPLETE END-TO-END SPEAKER VERIFICATION SYSTEM USING DEEP NEURAL NETWORKS: FROM RAW SIGNALS TO VERIFICATION RESULT, 2018 [paper]

Paper Review - A Deep Learning-based Approach for Banana Leaf Diseases Classification

Paper Review - A Deep Learning-based Approach for Banana Leaf Diseases Classification

이 포스트에서는 2017년 BTW workshop에 실린 “A Deep Learning-based Approach for Banana Leaf Diseases Classification” 논문에 대해 살펴보겠습니다.

Key Point

  • LeNet based Banana Leaf Classification

Dataset

  1. PlantVillage project의 Banana Leaf 이미지 healty (1643), black sigatoka (240), black speckle (1817)

Approach & Model

  1. deeplearning4j 프레임워크를 사용함
  2. 60x60 크기로 resizing한 후, LeNet을 적용해서 분류처리
  3. 학습/테스트 데이터의 비율을 80/60/50/40/20 으로 구성해서 테스트함

Optimization

  1. SGD learning rate : 0.001
    momentum : 0.9
    weight decay : 0.005
    batch size : 10
    epoch : 30

Implementation

다음 github link 참조
[Keras-BLDC]

References

[1] Deep Neural Networks Based Recognition of Plant Diseases by Leaf Image Classification, 2016 [paper]

Paper Review - Deep Neural Networks Based Recognition of Plant Diseases by Leaf Image Classification

Paper Review - Deep Neural Networks Based Recognition of Plant Diseases by Leaf Image Classification

이 포스트에서는 2016년 Computational intelligence and neuroscience 에 실린 “Deep Neural Networks Based Recognition of Plant Diseases by Leaf Image Classification” 논문에 대해 살펴보겠습니다.

Key Point

  • plant disease recognition model, based on leaf image classification, by the use of deep convolutional networks

Dataset

  1. 식물과 질병의 이름을 이용해서 인터넷에서 이미지를 검색하여 수집함
    • 식물과 질병의 이름은 여러 다른 언어(라틴어, 영어, 독일어 등등)를 바꾸어가며 선택해서 검색
    • 이미지 수집 시 500px 미만의 해상도를 가진 이미지는 고려하지 않음
  2. 15개의 클래스로 구성하고, 13개의 클래스는 식물의 질병을 나타냄
    • 건강한(질병이 없는) 식물의 잎을 구분하기 위해 하나의 클래스를 추가로 구성함
    • 배경 이미지를 엑스트라 클래스로 추가함
      • 배경 이미지는 Standford Background dataset에서 수집함
  3. 이미지의 metadata(이름, 크기, 날짜 등)를 비교해서 중복된 이미지는 제거함
    • 이후 human experts에 의해 다시 검증함
  4. augmentation을 수행하고, 30880개의 학습 데이터, 2589개의 검증 데이터로 구분함
출처: www.semanticscholar.org
  1. Image Preprocessing and Labelling
    • 식물의 잎부분만 보이도록 이미지를 cropping
    • 256x256 크기로 resize
    • 먼저 검색한 keyword에 따라 레이블링 한 후, human expert가 다시 레이블링함
  2. Augmentation Process
    • affine transformation
    • perspective transformation
    • simple image rotatations
출처: www.semanticscholar.org

Approach & Model

  1. Caffe 프레임워크의 CaffeNet을 사용함
    • 15개 클래스 이미지를 분류하기 위해, 기존의 1000개 output을 갖는 마지막 fc layer를 제거하고, 15개 output을 갖는 fc layer를 연결해서 모델을 재구성함

Optimization

  1. imagenet으로 학습된 pre-trained 모델을 사용함
  2. Base Network 부분인 CaffeNet의 learning rate는 0.1, 새로 연결한 마지막 fc layer의 learning rate는 10으로 설정해서 finetuning함
  3. 10-fold cross validation을 적용해서 validation과 evaluation을 수행함

My Review

  1. 식물 잎의 질병 검출을 위한 evaluation 을 cross-validation 을 적용해서 수행했기 때문에, 성능이 좋게 나오는 것으로 보임
    • 별도의 test dataset 을 구분해서 evaluation을 수행해야 테스트 결과가 명확할 것으로 생각됨
  2. 데이터셋을 논문에서 직접 구성하고, human labeling을 수행하기 때문에 신뢰성이 떨어짐
  3. 기존의 타 연구와의 비교가 없음

References

[1] Deep Neural Networks Based Recognition of Plant Diseases by Leaf Image Classification, 2016 [paper]