Python 에서 소리 데이터로 뭔가를 해보려 한다면 librosa 를 많이 쓰는듯 하다..

 

하지만 왠지 남들 따라하는거 같은 진 기분? 이라서.. scipy 를 쓰기로 했다. 

 

scipy는 이전에도 이미지 데이터 다룰때도 써봐서 익숙한 기분이고 그냥 친숙했다.

 

from scipy.io import wavfile
from scipy.cignal import butter, lfilter

# 파일 읽기
sampleRate, data = wavfile.read(dataPath)

# bandpass
filteredData = buter(order, [low, high], btype='bandpass')

이렇게 선언하면 wave 파일을 읽어오고 low-pass, band-pass, high-pass 필터 를 쓸수 있다.

 

btype 에는 bandpass 외 에도 ‘lowpass’, ‘highpass’, ‘bandstop’ 들이 가능 하다.

 

아직은 이 정도 필터만 사용해도 될듯 한데.. 조금씩 더 알아가야지..

 

https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html

 

scipy.signal.butter — SciPy v1.9.3 Manual

Type of output: numerator/denominator (‘ba’), pole-zero (‘zpk’), or second-order sections (‘sos’). Default is ‘ba’ for backwards compatibility, but ‘sos’ should be used for general-purpose filtering.

docs.scipy.org

 

# 왜 이름이 butter 인가 궁금해서 찾아보니 butterworth 라는 이름의 필터가 있더라... 

https://en.dict.naver.com/#/entry/enko/2d9430ff4e9b47e7bbf30b1c3f3134e4

 

네이버 영어사전

미국/영국식 발음, 여러 종류의 출판사 사전 뜻풀이, 풍부한 유의어/반의어, 대표사전 설정 기능, 상세검색 기능, 영어 단어장 제공

en.dict.naver.com

 

'의료프로젝트' 카테고리의 다른 글

새 프로젝트  (0) 2022.12.28

새로운 프로젝트 시작!

 

의료 데이터를 정식으로 다뤄 보는건 처음이라 어렵겠지만 어찌어찌 잘 해 나가야 겠다.

 

처음부터 온전히 나의 프로젝트로 시작하는 거라 나름의 의무감? 책임감? 도 들고..

 

어찌됐던 시작..

'의료프로젝트' 카테고리의 다른 글

Python 에서 소리 데이터 사용하기  (0) 2022.12.28

Tensorflow 에서 레이어를 구성하는 방법에는 두가지가 있는데, 하나는 Sequential 나머지 하나는 Functional 이다.

 

Sequential 방법이 보기에는 비교적 직관적이라 코딩하기 쉬울수는 있지만, 레이어간의 입력과 출력을 직접 만지는 것은 불가능해서 복잡한 모델을 구성하기에는 부적합 할때가 있다. 

 

그럴때 쓰는 방법이 Functional 방법이다. 

 

model = model.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu'm input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

model.complie(optimizer='adam',
              loss='sparse_categorical_crossentropy', 
              metrics=['accuracy'])

위에 코딩이 Sequential 방법

 

inputs_img = kereas.Input(shape=(28, 28, 1), name='Images')
x = layers.Conv2D(32, (3, 3), activateion='relu')(input_img)
x = layers.MaxPooling2D((2, 2))(x)
x = layers.Conv2D(64, (3, 3), activateion='relu')(input_img)
x = layers.MaxPooling2D((2, 2))(x)
outputs_img = layers.Conv2D(64, (3, 3), activation='relu')(x)

x = layers.Flatten()(outputs_img)
x = layers.Dense(64, activation='relu')(x)
outputs = layers.Dense(10, activation='softmax')(x)
model = keras.Model(inputs = inputs_img, outputs = outputs, name='MNIST_model')

model.compile(optimizer = 'adam',
              loss='sparse_cross_categorical',
              metrics=['accuracy'])

이 방법이 Functional 방법이다. 같이 놓고 비교하면 큰 차이는 없지만 약간 진행 방법이 다르다. 

Sequential 은 model 이라는 인스턴스를 먼저 생성해놓고 그 안에 레이어를 순서대로 쌓아가는 느낌이고, 

Functional 은 시작점 부터 시작해서 레이어의 출력과 다음 레이어의 입력을 노드로 이어가는 느낌이다. 

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
PATH=${CUDA_HOME}/bin:${PATH}
export PATH

 

export TF_INC=/home/byulzzi/.local/lib/python3.10/site-packages/tensorflow/include

 

 

 

Ubuntu 22.04.1 LTS 버전기준 Ubuntu 에서 Jupyter notebook 설치하는 방법 이다.

 

우선 파이썬이 잘 설치되어 있는지 확인해 본다. 

 

python3 --version

으로 확인 할수 있다. 아마 우분투에 처음부터 깔려있나보다.

 

그다음 

 

sudo apt-get install jupyter

 

로 주피터 노트북을 설치 해 준다. 

 

하다보면 필요한 디스크 용량이 나오고 y/n 을 묻는데 y를 선택해 준다. 

 

이러면 나머지는 자동으로 진행되고 설치 과정은 끝난다. 

 

jupyter notebook 

 

로 실행 시키고, 윈도우에서는 자동으로 인터넷 창이 떳지만 우분투에서는 수동으로 켜 줘야 한다. 

 

 

위에 주소를 인터넷 창에 복사해서 붙여넣으면 실행 완료.

 

자료 찾으면서 보니 

 

jyupyter notebook --allow-root

 

로 해야 된다는 경우도 좀 보이더라..

github 를 돌아다니다 보면 코드를 직접 실행시키며 확인해보고 싶은 깃헙 들이 있는데

 

윈도우에서 실행시키기에 잘 호환이 되지 않는 경우가 생긴다.. 다들 맥 으로 작업하시나..

 

그럴때 Ubuntu linux 를 설치해서 가상 리눅스 환경으로 돌려보곤 하는데 윈도우에서 사용하던 파일을 복사해 넣는다거나

 

토드를 실행 시킨 결과물을 윈도우 환경으로 불러와서 작업을 할 경우가 있다.

 

이때 리눅스의 폴더가 어디 들어있나 찾는 경우가 있는데 그럴때 이 방법을 쓰면 매우 쉽다. 

 

아래 처럼 탐색기를 열고 주소 표시줄에 ' \\wsl$ ' 을 입력하면 리눅스가 설치된 폴더가 나타난다.

 

아마 prefix 로 \\ 가 붙은걸 보면 네트워크 환경을 보여주는거 같은데 

 

리눅스 가상환경에 할당된 ip주소로 연결된듯 하다.

 

 

어쨋든 리눅스 폴더와 연결방법으로 아주 좋은 것 같다.

 

 

conda install tqdm
conda install -c conda-forge ipywidgets
for idxSB, dataSB in tqdm(dfStarbucks.iterrows()) :


for idxSB, dataSB in tqdm_notebook(dfStarbucks.iterrows()) :

 

'Python' 카테고리의 다른 글

Python 공부 시작  (1) 2022.04.26

시민 과학자와 구글이 인공지능을 합작하여 소행성을 찾아냈다.

허블 망원경이 찍은 우주 사진에 참가자들이 직접 눈으로 소행성이 지나간 흔적을 찾고, 

그 흔적들을 AI로 학습시켜 소행성 인식 모델을 만들어 낸 것이다. 

그 결과로 1701개의 소행성을 찾아 냈다고 한다. 더욱이, 이중 1301개는 알려지지 않았던 새로운 소행성이라고 하니 놀라울만한 결과이다.

 

점차 더 많은 분야에 AI가 적용되고 있고, 그 속도 또한 더 빨라지고 있다. 

 

시민 과학자 1만명·구글 인공지능 합작… 소행성 1701개 찾아냈다 [사이언스샷] - 조선일보 (chosun.com)

'스크랩' 카테고리의 다른 글

학습 없는 인공지능, 픽셀까지 본다  (0) 2022.05.04
끼어들기 단속, 이제 AI로  (0) 2022.05.02
AI로 농산물 품질 선별  (0) 2022.04.29
AI야, 나의 운전습관은 몇점?  (0) 2022.04.27
작은 머신러닝, TinyML  (0) 2022.04.26

기존에 인공지능이라 하면, dataset 에 일일히 라벨을 붙어주어 학습을 시킨뒤 만들어진 모델을 가지고 분석, 예측을 해왔다.  하지만 이제 학습 없이 데이터를 넣으면 인공지능이 스스로 오브젝트들을 분리해주는 알고리즘이 나왔다. 

 

MIT의 컴퓨터 과학 및 인공지능 연구소(CSAIL) 연구팀이 Semantic Segmantation을 기반으로 이미지 전체에 레이블을 지정해주는 알고리즘인 STEGO(Self-Supervised Transformer with Energy-based Graph Optimization)을 개발 했다. 

 

머신러닝에 있어서 학습 데이터 및 학습 방법은 매우 중요한 요소 였다. 퍼셉트론 이론에 따르면 가중치와 편중이 중요한 요소인데, 학습데이터 및 학습 방법에 따라 이 두가지가 변하기 때문이다. 하지만 이제 알아서 이미지를 픽셀단위로 분리해 라벨링을 해주는 수준으로 인공지능이 발전했다니..  더 많이 배워야 겠다. 

 

### 원문

“인간보다 더 잘 본다”…픽셀까지 식별하는 AI < 테크 < 기사본문 - AI타임스 (aitimes.com)

'스크랩' 카테고리의 다른 글

소행성 찾기도 이제 AI로  (0) 2022.05.13
끼어들기 단속, 이제 AI로  (0) 2022.05.02
AI로 농산물 품질 선별  (0) 2022.04.29
AI야, 나의 운전습관은 몇점?  (0) 2022.04.27
작은 머신러닝, TinyML  (0) 2022.04.26

부산 시설 공단이 전국 최초로 AI기술을 활용해 불법 끼어들기 단속을 적용할 예정이다.

 

상습 끼어들기 발생 지역인 광안대교에서 다채널  카메라 영상을 이용해 불법 끼어들기 차량 검출 시스템을 2023년 3월에 구축이 가능하다고 한다. 

 

이 시스템은 딥러닝 기반의 영상 분석 기술로, 도로 정체 상황을 파악하고 차량번호 인식과 차선 침입을 검출해 불법 끼어들기 차량에 대한 자동 단속이 가능하게 된다. 

 

 

궁금한점

 

 

원문

부산시설공단, “광안대교 불법 끼어들기 꼼짝마!” | 위키트리 (wikitree.co.kr)

'스크랩' 카테고리의 다른 글

소행성 찾기도 이제 AI로  (0) 2022.05.13
학습 없는 인공지능, 픽셀까지 본다  (0) 2022.05.04
AI로 농산물 품질 선별  (0) 2022.04.29
AI야, 나의 운전습관은 몇점?  (0) 2022.04.27
작은 머신러닝, TinyML  (0) 2022.04.26

+ Recent posts