전체 글
-
torch.optim라이브러리/PyTorch 2022. 3. 7. 14:00
torch.optim back-progate 함으로써 NN의 weight를 업데이트 하는 과정을 optimization이라 한다. torch.optim module은 optimization schedule 에 대한 다양한 툴과 기능을 포함한다. 다음과 같이 torch.optim module을 이용해 optimizer를 정의할 수 있다. import torch opt = torch.optim.SGD(model.parameters(), lr=lr) 그리고나서 optimization 수행을 다음과 같이 하면 된다. opt.step() opt.zero_grad() ##### 다음과 같이 할 필요 없다. with torch.no_grad(): # applying the parameter updates uisng ..
-
torch.nn라이브러리/PyTorch 2022. 3. 7. 13:56
torch.nn torch.nn enables ueres to quickly instantiate NN architectures by defining some of these high-level aspects as opposed to having to specify all the details manually. import math import torch # assume a 256-dimensional input and a 4-dimensional output for this 1-layer NN # hence, initialize a 256x4 dimensional matrix filled with random values weights = torch.randn(256, 4) / math.sqrt(256..
-
Exager execution라이브러리/PyTorch 2022. 3. 7. 13:44
Tensorflow vs. PyTorch The initial difference between these two was that PyTorch was based on eager execution whereas TensorFlow was built on graph-based deferred execution. Although, TensorFlow now also provides an eager execution mode. Eager execution is basically an imperative programming mode where mathematical operations are computed immediately. A deferred execution mode would have all the..
-
[Ubuntu] 랜덤하게 파일 선택 및 복사카테고리 없음 2022. 2. 28. 13:06
목적 다량의 데이터를 다루고 복잡한 구조의 디렉토리 형태를 다루다보니 특정 갯수의 파일(또는 폴더)이나 특정 형식의 파일를 복사하기 위해선 조금 더 똑똑하게 명령어를 쓸 수 있어야한다. 샘플 데이터를 생성하기 위해 현재 디렉토리에 있는 폴더(*) 중 랜덤하게 100개를 선택해 target 폴더로 복사해보자 shuf -zn100 -e * | xargs -0 cp -rvt target/ shuf shuffles the list of * files in the current directory. -z is to zero-terminate each line, so that files with special characters are treated correctly. -n100 exits shuf after 100..
-
Matplotlib histogram의 바에 갯수 띄우기카테고리 없음 2022. 2. 24. 15:45
코드 import matplotlib.pyplot as plt import numpy as np h = np.random.normal(loc=9,scale=6, size=400).astype(int)+15 fig, ax = plt.subplots(figsize=(16, 10)) ax.hist(h, density=False) for rect in ax.patches: height = rect.get_height() ax.annotate(f'{int(height)}', xy=(rect.get_x()+rect.get_width()/2, height), xytext=(0, 5), textcoords='offset points', ha='center', va='bottom') 결과 출처 https://stacko..
-
좋은 매칭 선별컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 15:22
선별 방법 1. 가장 좋은 매칭 결과에서 distance 값이 작은 것 N개를 사용 cv2.DMatch.distance 값을 기준으로 정렬 후 상위 N개 선별 ... matcher = cv2.BFMatcher_create() matches = matcher.match(desc1, desc2) # 좋은 매칭 결과 선별 matches = sorted(matches, key=labmda i: i.distance) # 거리별 오름차순 정렬 good_matches = matches[:80] # 상위 80개만 선별 # 특징점 매칭 결과 영상 생성 dst = cv2.drawMatches(src1, kp1, src2, kp2, good_matchers, None) ... 선별 방법 2. (SIFT에서 제안된 방법) 가..
-
특징점 매칭컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 14:54
특징점 매칭 (Feature Point Matching) 두 영상에서 추출한 특정점 기술자를 비교하여 서로 유사한 기술자를 찾는 작업 특징점 매칭간 무조건 특징점을 매칭하기에 좋은 특징점 매칭을 찾는 필터링 과정이 필요 (밑에 예시보면 확인 가능) 특징 벡터 유사도 측정 방법 실수 특징 벡터: L2 Norm 이진 특징 벡터: Hamming Distance OpenCV 특징점 매칭 클래스 BFMatcher: Brute-Force FlannBasedMatcher: Fast Library for Approximate Nearest Neighbor (K-D Tree) 특징점 검출 알고리즘 객체 생성 cv2.DescriptorMatcher.match(queryDescriptors, trainDescriptors,..
-
특징점 기술컴퓨터 비젼(Computer Vision)/특징점 검출과 매칭 2022. 2. 22. 11:37
기술자(descriptor, feature vector) 특징점 근방의 부분 영상을 표현하는 실수 또는 이진 벡터 OpenCV에서는 2차원 행렬(np.ndarray)로 표현 행 개수: 특징점 개수 열 개수: 특징점 기술자 알고리즘에 의해 정의됨 실수 기술자 주로 특징점 부근 부분 영상의 방향 히스토그램을 사용 특징점 근방 부분 영상의 주 방향 성분을 계산하여 보정 보정된 사각형 영역을 4x4구역으로 분할 -> 각 구역에서 8방향 히스토그램을 구함 16x8 = 128 차원의 실수 벡터 생성 (알고리즘 마다 다름) SIFT, SURF, KAZE 등이 있음 L2 Norm을 사용하여 유사도 판단 이진 기술자 이진 테스트(binary test)를 이용하여 부분 영상의 특징을 기술 특징점주변 부분 영상을 잘라내어 ..