주간 다이어리 - 3주차
활동 기록
팀 활동
- 3월 18일(월) 15:00 ~16:30 (구매 물품 최종 확인 )
- 3월 19일(화) 20:30 ~ 22:00 (개발 계획 전달 및 업무 내용 분담 )
→ 총 3시간 00분 진행
개별 활동
- 유재휘 :
- 3월 20일(수) (오디오 음원파일 확장자 종류 정리 & 차이점 분석) - 약 1시간 30분 소요
- 3월 21일(목) (음성 잡음 제거 알고리즘 관련 조사)
- 3월 22일(금) (음성 잡음 제거 알고리즘 관련 조사)
- 3월 24일(일) (음성 잡음 제거 알고리즘 관련 조사) - 하루 3 ~ 4 시간씩 소요
→ 11시간 30분 진행
- 전준표
- 3월 20일(수) 22:00 ~ 24:00 (CNN 모델 개념 복습)
- 3월 22일(금) 22:00 ~ 23:20 (Siamese Neural Networks 모델 분석)
- 3월 23일(토) 13:30 ~ 15:00 (Siamese Neural Networks 학습 방법 공부)
→ 4시간 50분 진행
- 이민석
- 3월 23일(토) 19:00 ~ 21:00 (라즈베리파이 OS 설치 방법 조사 및 부품 조립)
- 3월 24일(일) 15:00 ~ 18:00 (Blender 공부 및 3D 프린팅 관련 조사)
→ 5시간 00분 진행
- 조민수
- 3월 21일(목) 13:00 ~ 17:00 (피그미 툴을 이용한 UI 제작)
- 3월 24일(일) 11:00 ~ 12:30 (피그미 툴을 이용한 UI 제작)
→ 5시간 30분 진행
진행 상황
1) 구입 물품 최종 확정
- 기존 계획서에 작성한 물품에 대한 재고 상황 및 호환성 등을 최종적으로 확인한 후, 추가적으로 필요한 물품을 더하여 구입 물품을 최종적으로 확정 지었다.
- 변경된 품목
- 터치 스크린 & 케이블
- 기존에 구매예정인 터치스크린은 라즈베리파이4 전용이므로 5와 호환이 되는지 확인 필요
- 라즈베리파이 4의 경우 2-lane MIPI 커넥터.
-
라즈베리파이 5부터 4-lane MIPI커넥터로 변경. 따라서 기존의 케이블사용 X
→ 2-lane to 4-lane 케이블 구매 시 동작 된다는 것을 확인하여 해당 케이블 구매를 통하여 호환문제 해결
- 기존에 구매예정인 터치스크린은 라즈베리파이4 전용이므로 5와 호환이 되는지 확인 필요
- 마이크
- 기존에 선택했던 제품이 일시품절로 구매 불가
- 가격대 및 성능이 비슷한 아래의 제품으로 대체 구매
- 기존에 선택했던 제품이 일시품절로 구매 불가
- 사운드 센서
-
기존에 선택했던 제품은 임계값보다 높을 경우에만 이를 알려줬으므로 주변 소음의 섬세한 측정이 불가
→ 보다 섬세한 측정이 가능한 아날로그 사운드 센서로 변경
-
- 터치 스크린 & 케이블
- 추가된 품목
- USB 허브
- USB포트의 부족을 대비하여 예비용으로 구매
- 쿨러
- 프로그램 동작 중 많은 발열이 예상되므로 공식 쿨러 구매
- USB 허브
- 변경된 품목
2) UI/UX 디자인
- UX/UI진행 상황 : 시작 화면 및 주변 소음 체크 화면 구성, 주변 소음 측정시 강도에 따른 색 변화, 주변 소음이 픅정하는데 있어 불확실한 정도를 보일경우 녹음 불가, 녹음 완료 후 정확도 검사가 완료된 화면 제작
이후 위 이미지를 기반으로 모니터에 나타날 화면 제작 예정
3) 노이즈 제거 알고리즘
ICA, VAD를 사용하여 사용자가 말한 음성에 섞인 잡음을 제거해주는 샘플 코드 테스트 중이다.
- ICA는 가장 많이 사용되고 있는 FastICA 알고리즘을 사용할 예정
- VAD는 librosa.effects.trim를 이용하여 사용자 음성의 시작과 끝을 구분시켜 잡음을 제거하도록 할 예정
4) Siamese Neural Networks 모델 구현
- 개념 복습 - 모델 구현의 기반을 다지기 위하여 우선 관련 내용에 대한 기초지식 스터디를 진행하였다.
- Convolutional Neural Network : Convolution연산을 사용하는 Neural Network. 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 특징 전송 가능. 주로 이미지 관련 딥러닝에 사용.
- 구조
- Convolution layer : Convolution 연산과 활성화 함수 ReLU가 포함
- Pooling layer : pooling 연산과 관련
- 용어 해설
- Convolution 연산 : input 데이터에 특정 필터(커널)(2x2, 3x3 등)를 적용하여 해당 데이터의 특징을 추출하는 연산
- ReLU 함수 : input 값이 음수일 경우 0을 출력하고, 양수일 경우 input값 그대로 출력시켜주는 비선형 활성화 함수. input 값을 비선형방식의 출력값으로 도출함으로써 비선형 데이터를 표현하기 위해 사용.
- pooling 연산 : 특성 맵을 down sampling하여 특성 맵의 크기를 줄여주는 연산. Max Pooling, Average Pooling 등이 있음. (4x4행렬에서 2x2 pooling 연산을 수행 → 2x2 행렬로 축약)
- Stride : convolution 연산의 이동 간격을 조정. stride가 2일 경우 2칸 간격으로 convolution 연산을 수행
- Flatten : 2/3차원의 행렬 구조를 1차원 Vector로 변환하는 과정
- 구조
- Convolutional Neural Network : Convolution연산을 사용하는 Neural Network. 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 특징 전송 가능. 주로 이미지 관련 딥러닝에 사용.
-
모델 구조 이해 및 학습 방법 공부
- 구조 자체는 convolution, ReLU, pooling 으로 이루어져 있는 CNN 모델
- 네트워크 동작 순서는 다음과 같음
- 두 개의 이미지가 가중치를 공유하는 각각의 네트워크를 통과
- 최종적으로 도출된 feature를 통하여 유사도 간의 거리를 측정하여 두 이미지가 동일한지의 여부를 비교
- 인코딩된 값의 거리가 작으면 → 동일한 발음. 거리가 멀면 → 다른 발음
- 네트워크 학습 방법론
- 한국인 발음 데이터과 외국인 발음 데이터에 대해 사전 라벨링을 진행 (1, 0)
- 영어권, 중국어 및 일본어권 음성 데이터들에 대해서 모두 동일한 라벨링 처리
- 라벨링 데이터를 기반으로 CNN학습 진행
- 학습된 CNN에 이미지를 넣어 나온 결과값을 통하여 Contrastive Loss를 계산
- 역전파 및 네트워크의 개선을 통하여 최종적인 유사도 값 도출
- 한국인 발음 데이터과 외국인 발음 데이터에 대해 사전 라벨링을 진행 (1, 0)
5) 하드웨어
학습 단어와 녹음 사이에 소음 측정 단계 프레임 제작필요
- 라즈베리파이5 동봉되어있는 쿨러 장착 완료
- 라즈베리파이5 OS 설치 및 관련 조사
- SD카드의 부재로 인해 아직 설치 진행 못함
- Blender 공부
- 부품이 도착하면 전부 연결해보고 사이즈 측정 후 하드웨어 스케치 진행 예정
- 진행한 스케치를 기준으로 Blender에서 modelling
- 현재는 Blender에서 object editing and modifiers하는 법 공부 중