본문 바로가기

전체 글

2020-2 캡스톤디자인프로젝트 기술블로그 우리 팀의 프로젝트 제목은 '딥러닝과 IoT 기반 코로나 탐지 및 예방 시스템' 이다. 우리 조가 제안하는 내용은 공공 실내 장소에서 기침을 하거나 마스크 미착용자를 자동으로 판별하여 관리자에게 알려주는 시스템이다. 프로젝트를 구현하기 위해서 1. 기침 소리 인식 딥러닝 모델 2. 마스크 착용 미착용 인식 딥러닝 모델 3. IoT- 라즈베리파이 4. 클라이언트에서 출력할 방법을 공부해야 했었다. 1. 기침 소리 인식 딥러닝 모델 딥러닝 기반 소리 인식 선행 연구를 공부해보니 오디오 인식을 위해서 입력된 신호에서 소리의 특징을 추출해야 했다. 가장 대표적으로 사용되는 MFCC 특징추출은 이론적으로는 다음과 같은 과정으로 신행된다. 1. 입력시간 도메인의 소리신호를 작은 크기 frame으로 자른다. 2. 파.. 더보기
캡스톤디자인프로젝트 관련 공부했던 것들 yolov3란 유명한 객체 검출 알고리즘 you only look once darknet 53 네트워크 기반으로 사용하면 됨 빠르게 할 거면 아래 링크 보면서 학습하고 마스크 / 비마스크 커스터마이즈 욜로 weight 얻음 www.youtube.com/watch?v=10joRJt39Ns&t=1224s 더보기
캡스톤디자인프로젝트 관련 공부했던 것들 fully connected layer로만 구성된 뉴럴네트워크 모델의 구조 바꾸는 방법 가장 많이 사용되는 것은 cnn keras에서 Conv2d : 컨볼루셔널 기능 할 수 있는 것 same input size 가 필요 zero padding 으로 배열 크기 동일하게 할 수 있음 그래서 mfcc 특징 추출한 배열을 긴 배열을 기준으로 zero padding을 해서 같게 만들었다. 더보기
캡스톤디자인프로젝트 관련 공부했던 것들 라즈베리파이 raspbian os 설치 필요: sd 카드에 설치해서 라즈베리에 심어야 함 시간 동기화하고 초기화 등등 리눅스 명령어 몇 개만 쓰면 그 이후는 쉬워짐 --> pi configuration에서 조작해봐라 1. 라즈베리 안에 opencv 설치하고 바로 딥러닝 인식 시키는 방법도 있음 2. 서버로 바로바로 보내서 서버에서 인식시키기 2번 방법으로 함 ftp 전용 winscp 라즈베리파이 wifi 통신가능 192.168.152.xxx 우리집 와이파이 ip address but problem is... 수동 자동으로 하는 법: 라즈베리안에서 파이썬 코드로 실행하면 서버에 지정해둔 폴더에 파일이 전송이 된 것을 확인 가능했음 1. 서버: port에서 21 지정, 내 pc에서 jolpro라는 폴더에 파.. 더보기
캡스톤디자인프로젝트 관련 공부했던 것들 딥러닝 기반 소리 인식 선행 연구 공부하니 CNN, Mel-Spectogram이 가장 좋은 성능이더라 소리 데이터를 어떻게 학습시키느냐: 음향에서 특징은 주파수를 사용한다는 것 주파수 = frequency = 1/주기 = 1/T = (Hz) amplitude = 소리 크기랑 관련 frequency - 소리의 고저랑 관련됨 음향신호특징분석 (MFCC) 특징 추출 1. 입력시간 도메인의 소리신호를 작은 크기 frame으로 자른다. 2. 파워스펙트럼의 주기도 평가를 계산 3. 멜 필터뱅크 적용 4. 각 필터에 대한 에너지 합 5. 로그 취함 6. dct 취한 값에서 계수 12개가 mfcc python librosa 는 music/audio 를 numpy array로 변환할 수 있게 도와주는 라이브러리 for .. 더보기
캡스톤디자인프로젝트 관련 공부했던 것들 아두이노를 사용해보려고 시도했었다. SoundSensor 모듈이 있었는데 KY-038 센서를 구입해서 사용하는게 나을까싶기도 했다 (집에 아두이노 키트가 있어서) 아두이노 와이파이 기능을 되게 하려고 여러가지 방법 시도했었음 SoundSensor 연결완료해서 serial 통신으로 되는 것까지는 되었으나, 그리고 그 데이터가 x 축은 시간이랑 y 축은 주파수로 나타냈었지만, 와이파이 통신하는 것이 필요했었다. 와이파이와 관련된 모듈이 키트 안에 있었는데 그걸로 시도했지만 잘 안된 기억이 있다. 그리고 데이터를 압축하는 방법도 찾아내는 것이 쉽지 않았음. 더보기
캡스톤디자인프로젝트 관련 공부했던 것들 본 기술 블로그 내용은 제가 공부하면서 노트에 적은 것을 그대로 옮겨 적거나 정리해서 옮겨 적은 것입니다 머신러닝 훈련된 모델의 저장과 복원 방법 학습시킨 모델을 저장해서 다른 곳에 사용하기 위해서 저장하는 과정 필요 1. 사이킷런 모델의 저장과 복원 import joblib model=.... # 훈련시킨 모델이라고하면은 피클파일로 저장 --> joblib.dump(model, "model.pkl") 피클파일 load --> model=joblib.load("model.pkl") pkl 파일은 파이썬 고유의 데이터포맷임 졸프에서 feature 들을 extract 하여 저장한 데이터프레임 형태의 자료가 있는데 이를 pkl 파일로 저장했음 2. 케라스 모델을 저장하고 복원하기 (hdf5 file) 저장: .. 더보기
opencv - hough line transform theory Hough Tranfrom 에 대해서 배울 것이고, 이것은 자율주행 자동차 등에서 이용된다. Hough Transform 은 어떠한 수학적 형태로 나타낼 수 있는 도형이라면 이를 탐지할 수 있는 유명한 기법이다. 이는 그 도형이 깨졌거나 조금 왜곡되었더라고 탐지할 수 있다. 예를 들어서 도로의 레인 선을 탐지하고 싶을 경우, edge를 detect 하는 방법 (canny edge detection 등등... ) 을 이용해서 모든 픽셀 값들을 다 돌리면서 기울기와 절편 값을 알 수 있지만 이는 매우 복잡한 과정이다. 대신 hough transform 을 이용해서 geometrical shape 모양으로 바꾸어 훨씬 간편하게 할 수 있다. 이미지에서 선은 두가지 방법으로 표현될 수 있다. 첫번째는 그래프로 .. 더보기