9주차
Image Warping
1. Forward Warping(보내는 방법)
M이라는 변환행렬
f(x, y)의 픽셀 값을 g(x', y')에 보낸다.
x', y'의 위치가 대부분 소수이다.
높은 확률로 4개의 픽셀 사이에 놓일 것이다.
한 점 x', y'에 여러 값이 놓이는 경우 : 평균값 이용
다 기록해야 하기 때문에 번거롭다.
값을 받지 못하는 점(hole)이 존재할 수 있다.
2. Backward Warping
hole X, 결과를 저장할 필요 X
Interpolation
1. nearest neighbor interpolation
가장 가까운 것으로 복원하겠다.
2. Linear Interpolation(선형 복원)
3. Bilinear Interpolation (2D)
Image resize
10주차
Convolutional Neural Networks
입력으로 이미지가 들어왔을 때 이미지 전체에 대한 특징 추출을 반복하여 feature maps를 만든다.
Image Classification
이미지가 들어왔을 때, 그 이미지가 어떤 클래스에 해당하는지 판단
Challenges
1. Illumination(빛에 의해 사물이 잘 보이지 않는 경우)
2. Occlusion(가려져서 잘 보이지 않는 경우)
3. Deformation(자세, 모양의 변형)
4. Background clutter(배경과 비슷한)
Machine Learning
이미지, 라벨을 가지는 dataset을 모아 분류를 학습
라벨이 없는 테스트 이미지를 이용해 클래스를 예측
Training Images -> 특징 추출(표현) -> 분류기 학습(이미지에 해당하는 라벨 필요) -> 학습된 분류기
Test Images -> 이미지 특징 추출 -> 학습된 분류기 -> 예측(결과)
특징 추출과 분류기가 완전 독립되어 사용
=> 해결한 것이 CNN
특징 추출 방법
- GIST(Filter bank 이용) : 사전에 구축된 필터에 대해서만 연산이 가능하다.
addaptive하게 연산이 불가능한 것이 단점이다.
ConvNets
필터를 addaptive하게 학습해나가는
hidden layer의 개수가 많아질수록 학습해야 할 파라미터 w가 늘어난다.
이미지를 다루기 때문에 벡터가 아니다.
=> 3차원 입력을 받아 3차원 출력을 내 주는 방법이 필요하다.
3차원 입력을 1차원 벡터로 stretch하는 방법
-> 1차원으로 바꾸는 순간 이미지의 공간적인 특징이 사라진다.
따라서, 기존의 fully connected layer는 이미지에 적합하지 않다.
filter는 정해진 크기가 없다. 단, 깊이는 3으로 고정(R, G, B 3 channel)
weight는 랜덤하게 시작한다.
사용한 filter 수에 따라 depth가 결정된다.
depth를 보고 입력과 출력의 shape를 알 수 있어야 한다.
빨간색 - 5*5*3 필터를 6개 쓴다.
-> 파란색의 depth가 6
파란색 - 5*5*6(입력으로 들어오는 깊이랑 무조건 맞춰줘야 한다.) 필터를 10개 쓴다.
-> 초록색의 depth가 10
low level features : local 정보가 남아있는, 픽셀 값 정보가 남아있는
high level features : 이미지의 의미 정보만 담긴
stride : 이동 칸수
padding
Pooling : 공간적인 크기를 줄이는 => 정보의 손실
ex) Max Pooling
1. 연산량을 줄이기 위해
2. 메모리를 줄이기 위해
Receptive Field(수용영역)
하나의 포인트가 담고 있는 정보의 범위
위 그림에서는 6*6이 receptive field
이미지의 크기에 따라 같은 필터라도 receptive field가 다르다.
이미지가 작을수록 더 많은 정보를 포함하고 있다.
- receptive field를 늘리기 위해 이미지 크기를 feature map 상에서라도 줄이자.
Convolution도 receptive field를 키울 수 있지만, Pooling이 효과가 더 좋다.
요즘은 max pooling보다는 3 * 3 conv, pad = 1, stride = 2를 주로 사용
stride를 이용해 충분히 receptive field를 키울 수 있다.
ReLU
activation function의 한 종류
non-linear하게 만들어준다.
연결강도들이 합쳐져 하나로 바뀌어버리는 문제를 해결
마지막에는 Fully Connected Layer
classification 결과를 내어주기 위해 출력의 크기를 바꿔준다.
'공부' 카테고리의 다른 글
[컴퓨터비전] 13, 14주차 정리 (1) | 2022.12.14 |
---|---|
[컴퓨터비전] 11, 12주차 정리 (0) | 2022.12.14 |
[컴퓨터비전] 7주차 정리 (0) | 2022.12.13 |
[컴퓨터비전] 5, 6주차 정리 (0) | 2022.12.13 |
[컴퓨터비전] 3, 4주차 정리 (0) | 2022.12.13 |