전체 글
-
음성 처리-1 이미지음성 처리 2023. 7. 4. 16:51
1. librosa 음성 데이터를 이미지로 변환하여 특징을 추출하고 처리하기 위한 python 라이브러리이다. import matplotlib.pyplot as plt import numpy as np import soundfile as sf import librosa import librosa.display file = './data/blues.00001.wav' data, sr = librosa.load(file) duration = 10 samples = int(duration *sr) start =0 y = data[start:start+samples] spec = librosa.stft(y) spec_db = librosa.amplitude_to_db(np.abs(spec), ref=np.max..
-
pytorch-2 데이터로더딥러닝/pytorch 2023. 7. 3. 17:06
1. 데이터로더 데이터로더는 말 그대로 데이터를 따로 로드하는 객체이다. 파이토치에서 데이터로더를 따로 사용하는 이유는 데이터양이 방대해질수록 한 번에 불러와서 처리하는 것이 어렵고 해당 데이터를 내가 원하는 크기로 잘라서 사용할 수 있으므로 병렬처리 및 빠른 속도, 유연성 등의 장점이 있기 때문에 데이터로더를 분리하는 것이 이상적이다. 2. 데이터셋의 함수 사용자 정의 데이터셋은 반드시 __init__, __len__, __getitem__ 3개의 함수를 가진다. __init__은 데이터셋 객체가 생성될 때 한 번만 실행된다. 일반적으로 데이터셋을 로드하고 전처리하는 데 필요한 변수를 설정한다. __len__은 데이터셋의 샘플 개수를 반환한다. __getitem__은 데이터를 로드하고 전처리를 실행한다..
-
pytorch-1 기본 문법딥러닝/pytorch 2023. 6. 26. 18:27
1. pytorch 파이토치는 딥러닝을 위한 프레임워크로 다른 프레임워크들에 비해서 GPU를 이용한 연산이 가능하고 계산 속도가 빠르다는 장점이 있다. 2. 텐서 텐서(tensor)는 배열(array)이나 행렬(matrix)과 매우 유사한 자료구조이다. 텐서는 GPU나 다른 하드웨어 가속기에서 실행할 수 있다는 점만 제외하면 넘파이와 유사하다. 실제로 텐서와 넘파이는 텐서와 동일한 내부 메모리를 공유하기 때문에 데이터를 복사할 필요가 없다. import torch import numpy as np data = [[1,2], [3,4]] print(type(data)) x_data = torch.tensor(data) print(x_data) np_array = np.array(data) x_np = to..
-
이미지 처리-9 이미지 증강이미지 처리 2023. 6. 26. 14:58
1. 데이터 증강(data augmentation) ai 모델의 정확도를 높이기 위해서 근본적으로 할 수 있는 것은 ai 모델의 알고리즘을 연구하는 것이다. 하지만 현재 시장에서는 알고리즘 모델이 대부분 고착화되어 있으며 획기적인 방법이 아닌 이상 그렇게 많은 개선이 이루어지지 않는다. 또한 조금의 개선을 위해 대단한 지식과 노력이 필요한 것은 당연한 사실이다. 이러한 성능 개선의 측면에서 가장 쉽게 성능을 증가시킬 수 있는 방법은 학습 데이터의 수를 늘리는 것이다. 데이터를 수집하는 것은 쉬운 일이 아니지만 데이터 증강으로 몇 배의 데이터를 창출할 수 있다. 데이터 증강이란 데이터에 다양한 변화를 줘서 데이터의 개수를 늘리는 작업이다. 이미지 증강은 간단한 변형을 통해서 다양성을 추구하여 과적합을 방지..
-
이미지 처리-8 이미지 라벨링이미지 처리 2023. 6. 19. 18:50
1. 데이터 라벨링 데이터 라벨링은 ai 학습을 위한 데이터에 대해서 이름을 붙이는 것이다. 인공지능을 위해서 많은 양의 학습 데이터와 학습 시간이 필요하며 학습 데이터는 사용 용도에 맞게 적절하게 분류되고 라벨링 되는 것이 중요하다. 2. 이미지 라벨링 이미지 라벨링은 데이터 중 이미지 데이터에 대해서 라벨링을 진행하는 것으로 대표적인 종류로 Classification, Detection, Segmentation이 있다. 이 중 분류는 이미지의 라벨 정보만 필요하지만, 감지와 분석은 이미지 내부의 정보를 필요로 하기 때문에 라벨을 제외하고 이미지 내부의 정보를 설명할 수 있는 별도의 정보가 필요하며 이것을 만드는 것을 annotate라고 한다. 3. 라벨링 방법 Bounding Box: 바운딩 박스는 ..
-
이미지 처리-7 객체 추적이미지 처리 2023. 6. 19. 18:50
1. 평균 이동 추적 평균 이동 추적은 객체의 픽셀 분포를 기반으로 객체를 추적하는 방법이다. 가장 먼저 추적할 창인 빨간색 창을 선택하고 추적 창 내부에서 히스토그램 역투영을 계산한다. 역투영은 노란 창의 분포를 나타내는 히스토그램과 현재 창의 히스토그램을 비교하여 추적 대상에 속할 확률을 계산한다. 역투영 이미지에서 최댓값을 찾아서 추적 창의 위치를 업데이트하는 것을 일정 조건이 충족할 때까지 계속 반복하는 방법이다. import cv2 import os import numpy as np os.chdir('C:/Users/dotor/OneDrive/바탕 화면//jupyter/2. image') track_window = None roi_hist = None trem_crit = (cv2.TERM_CR..
-
이미지 처리-6 기본 동영상 처리이미지 처리 2023. 6. 19. 18:49
1. 동영상 열기 cv2에서의 동영상 처리는 주피터 환경에서 불가능하기 때문에 vscode에서 진행한다. vscode에서 구축한 아나콘다 환경을 실행하기 위해서는 cd anaconda3/envs/conda/python.exe 로 이동한 뒤 anaconda prompt에서 한 것처럼 activate conda 명령어를 실행시켜 주면 파이썬 파일을 실행할 수 있다. 이후에 run python을 하면 코드가 잘 동작한다. import cv2 import matplotlib.pyplot as plt import os os.chdir('C:/Users/dotor/OneDrive/바탕 화면/jupyter/2. image') cap = cv2.VideoCapture('./picture/blooms-113004.mp4..
-
python-09 크롤링코딩/python 2023. 6. 19. 18:49
1. 크롤링 크롤링이란 웹페이지에 담겨있는 정보를 자동적으로 탐색하고 수집하는 기술이다. 크롤링을 하는 행위 자체는 불법이 아니지만 크롤링을 함으로써 해당 웹사이트의 트래픽에 무리를 준다거나 해당 데이터를 상업적으로 이용하여 이득을 편취하는 경우에는 불법이 될 수 있다. 실제로 데이터는 모든 산업에 필요하고 정형화된 데이터를 구하기 쉽지 않다는 점에서 데이터를 무단으로 사용하거나 트래픽을 증가시키는 경우가 일어날 수 있지만 그것을 일일이 찾아내서 고소하는 것은 번거로울 수 있다. 따라서 이러한 크롤링 봇이 웹사이트를 탐색할 때 그것을 제한하기 위해서 트래픽의 요청 수에 제한을 두거나 robots.txt 같은 탐색제한 프로그램을 사용하여 보안을 강화하고 있다. 2. 정적 크롤링 !pip install re..