목록두산 로보틱스 부트캠프 ROKEY/Computer Vision 교육 (28)
printf("ho_tari\n");
2024.8.29 7장 영상 분할7.1 컨투어 컨투어(contour)는 등고선을 의미합니다. 등고선은 지형의 높이가 같은 영역을 하나의 선으로 표시한 것입니다. 영상에서 컨투어를 그리면 모양을 쉽게 인식할 수 있습니다. OpenCV에서 제공하는 컨투어 함수는 다음과 같습니다.4.0 이전dst, contours, hierarchy = cv2.findContours(src, mode, method, contours, hierarchy, offset)4.0 이후contours, hierarchy = cv2.findContours(src, mode, method, contours, hierarchy, offset)src: 입력 영상, 검정과 흰색으로 구성된 바이너리 이미지mode: 컨투어 제공 방식cv2.RET..
2024.8.28 5장 기하학적 변환2 x 3 행렬 : Affine Transformation3 x 3 행렬 : Perspective Transformation5.1 이동, 확대/축소, 회전5.1.1 이동 이미지를 이동하는 방법은 간단합니다. 원래 있던 좌표에 이동시키려는 거리만큼 더하면 됩니다.x_new = x_old + d₁y_new = y_old + d₂위 방정식을 행렬식으로 표현하면 아래와 같습니다. 행렬식을 다시 풀어서 써보겠습니다.x_new = x_old + d₁ = 1x_old + 0y_old + d₁y_new = y_old + d₂ = 0x_old + 1y_old + d₂보시는 바와 같이 이미지의 좌표를 이동하는 변환 행렬은 2 x 3 행렬입니다. 변환 행렬이란 어떤 좌표를 선형 변환(li..
2024.8.27 4.3 스레시홀딩스레시홀딩은 바이너리 이미지를 만드는 가장 대표적인 방법입니다.바이너리 이미지(binary image)란 검은색과 흰색만으로 표현한 이미지를 의미합니다.스레시홀딩이란 여러 값을 어떤 임계점을 기준으로 두 가지 부류로 나누는 방법을 의미합니다.4.3.1 전역 스레시홀딩 어떤 임계값을 정한 뒤 픽셀 값이 임계값을 넘으면 255, 임계값을 넘지 않으면 0으로 지정하는 방식을 전역 스레시홀딩이라고 합니다.이런 작업은 간단하게 numpy로 연산할 수 있지만, OpenCV에서 cv2.threshold() 함수로 구현할 수도 있습니다.아래는 전역 스레시홀딩 작업을 numpy 연산과 cv2.threshold() 함수를 통해 수행하는 과정을 보여줍니다. 우선, 검은색에서 흰색으로 점점 ..
2024.8.26 영상처리(Image Processing)입력 받은 영상을 사용 목적에 맞게 적절하게 처리하여 보다 개선된 영상을 생성하는 것입력 영상에 있는 잡음(noise) 제거, 영상의 대비(contrast) 개선, 관심영역(region of interest) 강조, 영역 분할(segmentation), 압축 및 저장 등저수준 영상 처리(좁은 의미의 영상 처리)영상 획득영상 향상영상 복원변환 처리영상 압축고수준 영상 처리(컴퓨터 비전)영상 분할영상 표현영상 인식 영상 처리의 역사영상 처리의 시작1920년대 초반 런던과 뉴욕 간에 해저 케이블을 통한 신문사들이 사진 전송본격적인 영상 처리 위한 기술1940년대 폰 노이만의 디지털 컴퓨터의 개념 시작1950년 이후 트랜지스터, IC, 마이크로프로세서 같..
2024.8.23 머신러닝 linearregression.pyimport numpy as npimport tensorflow as tffrom tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense# 데이터 생성np.random.seed(0)X = np.random.rand(100, 1) # 100개의 샘플, 1개의 featurey = 3 * X + 2 + np.random.randn(100, 1) * 0.1 # y = 3x + 2 + 잡음# 모델 정의model = Sequential()model.add(Dense(1, input_dim=1, activation='linear'))# 모델 컴파일model.co..
2024.8.22 선형회귀 초기선언 경사하강법 사용 학습 자동 미분 행렬 연산으로 구하기 Zero Grad사용 이유 모델 정의 및 학습 Class 사용파이토치에서는 대부분 클래스를 이용해서 모델을 구현한다. 모델 학습 import torchimport numpy as nptorch.manual_seed(777) # for reproducibility# Load the dataxy = np.loadtxt('/content/drive/MyDrive/data-04-zoo.csv', delimiter=',', dtype=np.float32)x_data = xy[:, 0:-1]y_data = xy[:, [-1]]print(x_data.shape, y_data.shape)nb_classes = 7 # 0 ~ ..
2024.8.21 Softmax# Lab 6 Softmax Classifierimport torchfrom torch.autograd import Variabletorch.manual_seed(777) # for reproducibilityx_data = [[1, 2, 1, 1], [2, 1, 3, 2], [3, 1, 3, 4], [4, 1, 5, 5], [1, 7, 5, 5], [1, 2, 5, 6], [1, 6, 6, 6], [1, 7, 7, 7]]y_data = [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0]]X = Variable(torch.Tensor(x..
2024.8.20 Logistic Regression Binary prediction (0 or 1) is very useful!• Spent N hours for study, pass or fail?• GPA and GRE scores for the HKUST PHD program, admit or not?• Soccer game against Japan, win or lose?• She/he looks good, propose or not? Building fun models• Neural Net components- CNN- RNN• Activations• Losses• Optimizers