์๋ฆฌ๋ฅผ ๋ณด๋ค Soundee
์ฒญ๊ฐ ์ฅ์ ์ธ์ ์ํ ๋ฅ๋ฌ๋์ ์ด์ฉํ ์ผ์์ํ ์๋ฆฌ ๋ถ๋ฅ ๋ฐ ์๋ฆผ ์ ํ๋ฆฌ์ผ์ด์
๐ป 2020 IT Media Engineering CapstoneDesign Project
์ฌ๋ฌผ ์ธํฐ๋ท์ด ํ์ฑํ๋์ด ์ํ์ ๋ง์ ๋ถ๋ถ๋ค์ด ํธ๋ฆฌํด์ก์ง๋ง, ์ฒญ๊ฐ์ฅ์ ์ธ์ ์ด ํธ๋ฆฌํจ์ ์์ธ๋ ๊ฒ์ด ํ์ค์ด๋ค. ์๋ฆฌ๋ฅผ ๋ฃ์ง ๋ชปํ๋ ๋์ธ๋ค์ ๋์ฅ๊ณ ๋ฅผ ์ค๋ ์ด์ด๋จ์ ์ ๋ฐ์ํ๋ ๊ฒฝ๋ณด์, ์์ด๋ฒ๋ฆฌ๊ณ ๋์ง ๋ชปํ ๋๋ผ์ด๊ธฐ, ๋ฌผ์๋ฆฌ ๋ฑ์ ์๋ฆฌ๋ฅผ ์ธ์งํ์ง ๋ชปํ๋ค. ๋์ธ์๊ฒ๋ ์ด๋ฅผ ๊ฐ์งํ๊ณ ์ธ์ํ ์ ์๋ ์์คํ ์ด ํ์ํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ณธ ํ๋ก์ ํธ๋ ๊ฐ์ ์์ ๋ฐ์ํ๋ ์๋ฆฌ๋ฅผ ์ธ์งํ์ฌ ๋ถ๋ฅํ์ฌ ํ์ฌ ๋ฐ์ํ ์๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ฉฐ ์๋ฆฌ ์ ๋ณด์ ๋ํ ํต๊ณ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐํํ์๋ค. ์ด๋ฅผ ํตํด ๋์ธ์ด ์ธ์งํ์ง ๋ชปํ๋ ์ํ๊ณผ ๋ญ๋น๋ฅผ ๋ฏธ๋ฆฌ ์๋ฐฉํ์ฌ, ๋์ธ์๊ฒ ์ข ๋ ์์ ํ๊ณ ํธ๋ฆฌํ ์ํ์ ์ ๊ณตํ๊ณ ์ ํ๋ค.
๋ฌด์งํฅ์ฑ ๋ง์ดํฌ๋ฅผ ํตํด ์ผ์ ์๋ฆฌ๋ฅผ ๊ฐ์งํ๋ค. PC์ ์ฐ๊ฒฐํ ๋ง์ดํฌ๋ก ์์งํ ์ํฅ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ก์ ํ๊ณ , ์๋ฒ๋ ์์ ํ ์๋ฆฌ๋ฅผ ๋ฅ๋ฌ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ํฅ ์์ธก ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์๋๋ก์ด๋ ์์ฒญ์ ๋ฐ๋ผ ๊ธฐ๊ธฐ์ ์ก์ ํ๋ค. ์๋๋ก์ด๋ ๊ธฐ๊ธฐ๋ ์์ ํ ๋ฐ์ดํฐ๋ฅผ ํธ์์๋ฆผ๊ณผ ํต๊ณ ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ณตํ์ฌ ์ฒญ๊ฐ์ฅ์ ์ธ์ ์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค.
๋ณธ ํ๋ก์ ํธ๋ก ์ฌํ๊ฐย ์๊ฐํด๋ณด์งย ๋ชปํย ์ฒญ๊ฐ์ฅ์ ์ธ์ย ์ผ์์ํ์ย ๋ถํธํจ์ย ๋ํย ๋ฌธ์ ๋ฅผย ์ ๊ธฐํ์ฌย ์ด์ย ๋ํย ๊ด์ฌ๊ณผย ํด๊ฒฐ๋ฐฉ์์ย ๋ง๋ จ์ย ๋๋ชจํ๋ค. ๋๋ถ์ดย ์์ผ๋ก์ย 4์ฐจย ์ฐ์ ย ๊ธฐ์ ์ย ๋ฐ์ ์ดย ๋น์ฅ์ ์ธ์ย ํธ๋ฆฌํจ๋ฟ๋ง์ดย ์๋, ์ฅ์ ์ธ์ย ์ ๊ทผ์ฑ์ย ๊ณ ๋ คํด์ผํ๋ค๋ย ์ฌํ์ ย ์ธ์์ย ํ์ฐ์ํค๋๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ ์์ํ๋ค.
ํ๋ก์ธ์ค : ์ ์ฒ๋ฆฌ(Librosa) โ feature ์ถ์ถ โ 2D ์ด๋ฏธ์งํ โ CNN Resnet โ endpoint ์์ฑ
class ์ข ๋ฅ :
- 0 = baby (์๊ธฐ ์ธ์ ์๋ฆฌ)
- 1 = siren (์ฌ์ด๋ ์๋ฆฌ)
- 2 = motor (๋๋ผ์ด๊ธฐ, ์ฒญ์๊ธฐ ๋ฑ ๋ชจํฐ ์๋ฆฌ)
- 3 = water (๋ฌผ ๋จ์ด์ง๋ ์๋ฆฌ)
๋ฌด์งํฅ์ฑ ๋ง์ดํฌ๋ก ์ผ์ ์๋ฆฌ ๊ฐ์ง ํ ์ํฅ ๋ฐ์ดํฐ์์ Mel-Spectogram ํน์ง ๋ฒกํฐ๋ฅผ ์ถ์ถํ์ฌ Convolutional Neural Network (CNN) ๋ชจ๋ธ์ Resnet ์๊ณ ๋ฆฌ์ฆ์ ์งํํ๋ค. ์๋ฒ์์ ์๋ฆฌ์ ๋ํ ๋ถ์์ ์งํํ ํ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์๋๋ก์ด๋์์ ์ค์๊ฐ์ผ๋ก 5 ์ด๋ง๋ค ํ์ธํ์ฌ ์ฌ์ฉ์์๊ฒ ์๋ฆผ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด ๋ญ๋น๋ฅผ ์ค์ด๊ณ ์ํ์ ๋์ฒํ ์ ์๊ฒ ํ๋ค. ์ฒญ๊ฐ ์ฅ์ ์ธ์ ์๋ฆฌ์ ๋ํ ์ ๊ทผ์ฑ์ ๋ค์ํ ์ธก๋ฉด์ผ๋ก ๊ณ ๋ คํด ์ผ ํ๋ค๋ ์ฌํ์ ์ธ์์ ํ์ฐ์ํค๊ณ ์ ํ๋ค.
- ์ด๋ ์ ๋ ์ ์ ๋์ด์๋ Kaggle ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก, ์ํฅ ๋ฐ์ดํฐ ๊ธธ์ด๋ฅผ 5 ์ด๋ก ์ ํ๊ณ ๊ทธ ์ด์์ด๋ฉด ์๋ผ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทํ ์งํ
-
์ฐธ๊ณ ํ ๋ ผ๋ฌธ์ ๋ฐ๋ผ 1 ๋จ๊ณ๋ก mel-spectrogram, 2 ๋จ๊ณ filter banks ๋ก ํ์ฌ ํน์ง ๋ฒกํฐ๋ฅผ ์ถ์ถํจ
-
๋ น์ํ 16kHz ์ ์ ๋ ฅ ์ค๋์ค ๋ฐ์ด ํฐ๋ฅผ 40ms ์๋์ฐ ๋จ์๋ก 0.01์ด ๋ง๋ค frequency๋ฅผ ๋ฝ์ melspectogram์ ์ถ์ถํ์์ผ๋ฉฐ ์ด์ ๋ํ์ฌ mel๊ฐ์ ์ป์ด๋ด๊ธฐ ์ํ filter bank๋ฅผ ์ ์ฉํ์ฌ 2 ์ฐจ์ ์ ๋ ฅ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑ
-
๋ง๋ค์ด์ง ์ด๋ฏธ์ง
water class
- Resnet ๊ตฌ์กฐ 50๊ฐ์ layer๋ก ํ์ต ์งํ
- ํ๋ผ๋ฉํฐ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค
num_layers = 50 image_shape = '3,256,256' num_training_samples = 7550 num_classes = 4 epochs = 20 top_k = '2' train_instance_type='ml.p3.2xlarge'