
Bilinear Interpolation Bilinear Interpolation은 x, y의 2차원에 대해 선형 보간법을 통해 필요한 값을 채우는 방식이다. 위처럼 2x2 matrix를 4x4 size로 upsampling하고 싶을 때, 빈 값을 채워야 하는데 이때 축을 두 가지 interpolation을 적용한 것을 Bilinear Interpolation이라고 한다. R1이 Q11, Q21의 x축 방향 interpolation 결과이고, R2는 Q12, Q22의 x축 방향의 interpolation 결과이다. 그리고 R1, R2를 y축 방향으로 interpolation하면 새로운 위치 P의 값을 추정할 수 있다.

네트워크 구조 1. Convolution Layer를 통해 Feature 추출 2. 1x1 Convolution Layer를 이용해 피처맵의 채널수를 데이터셋 객체의 개수와 동일하게 변경 3. Up-sampling: 낮은 해상도의 Heat Map을 Upsampling(=Transposed Convolution) 한 뒤, 입력 이미지와 같은 크기의 Map 생성 4. 최종 피처 맵과 라벨 피처맵의 차이를 이용하여 네트워크 학습 Up-sampling by Transposed convolution Feature map의 한 픽셀은 입력 이미지의 32 x 32 pixel를 대표함 낮은 해상도를 갖기 때문에 입력 이미지의 위치 정보를 대략적으로만 가지고 있다. 입력 이미지 위치 정보를 대략적으로 가지고 있는 fea..

Fast R-CNN Fast R-CNN에서의 수행과정은 다음과 같다. "Fast R-CNN 프로세스" 1-1. R-CNN에서와 마찬가지로 Selective Search를 통해 RoI를 찾는다. 1-2. 전체 이미지를 CNN에 통과시켜 feature map을 추출한다. 2. Selective Search로 찾았었던 RoI를 feature map크기에 맞춰서 projection시킨다. 3. projection시킨 RoI에 대해 RoI Pooling을 진행하여 고정된 크기의 feature vector를 얻는다. 4. feature vector는 FC layer를 통과한 뒤, 구 브랜치로 나뉘게 된다. 5-1. 하나는 softmax를 통과하여 RoI에 대해 object classification을 한다. 5-2..

R-CNN은 Image classification을 수행하는 CNN과 localization을 위한 regional proposal알고리즘을 연결한 모델이다. R-CNN의 수행 과정은 다음과 같다. "R-CNN 프로세스" 1. Image를 입력받는다. 2. Selective search알고리즘에 의해 regional proposal output 약 2000개를 추출한다. 추출한 regional proposal output을 모두 동일 input size로 만들어주기 위해 warp해준다. (*왜 동일 input size로 만들어줄까? : 사실 Convolution Layer에는 input size가 고정이지 않다. 그러나 마지막 FC layer에서의 input size는 고정이므로 Convolution L..

이미지 세그멘테이션(image segmentation)은 이미지의 모든 픽셀이 어떤 카테고리(예를 들면 자동차, 사람, 도로 등)에 속하는지 분류하는 것을 말한다. 이미지 전체에 대해 단일 카테고리를 예측하는 이미지 분류(image classification)와는 달리, 이미지 세그멘테이션은 픽셀 단위의 분류를 수행하므로 일반적으로 더 어려운 문제로 인식되고 있다. 위 그림에서 semantic segmentation은 이미지 내에 있는 객체들을 의미 있는 단위로 분할해내는 것이고, instance segmentation 은 같은 카테고리에 속하는 서로 다른 객체까지 더 분할하여 semantic segmentation 범위를 확장한 것이다. 이미지 세그멘테이션은 의료 이미지 분석(종양 경계 추출 등), 자..

■ 1 x 1 convolution 등장 InceptionNet에서 병목현상으로 인해 늘어난 차원을 감소시키기 위해 도입 ■ 1 * 1 convolution 장점 ⇒ 정확도 향상, 연산량 감소 1) Channel 수 조절 - Tensor의 1 * 1 convolution 의 의미는 matrix에서 1 * 1 convolution 의 의미와 다르다. - Matrix에 1 * 1 convolution 을 취하면 단순 곱하기 이지만, Tensor에 1 * 1 convolution 을 취하면 32개의 채널정보를 압축할 수 있다. - 한 포지션에 대한 서로 다른 채널들의 픽셀값들을 곱하기를 통해서 새롭게 압축한다. 즉, 압축하여 새롭게 x를 만들 수 있다는 것이다. 이 x는 전에 있는 특징들을 온전히 살리지는 못..

Plain Network의 문제점 Plain network는 skip/shortcut connection을 사용하지 않은 일반적인 CNN(AlexNet, VGGNet) 신경망을 의미합니다. plaing network가 점점 깊어질 수록 기울기(gradient) 소실(vanishing)과 폭발(exploding) 문제가 발생합니다. 기울기 소실과 폭발 기울기를 구하기 위해 가중치에 해당하는 손실 함수의 미분을 오차역전파법으로 구합니다. 이 과정에서 활성화 함수의 편미분을 구하고 그 값을 곱해줍니다. 이는 layer가 뒷단으로 갈수록 활성화함수의 미분값이 점점 작아지거나 커지는 효과를 갖습니다. 신경망이 깊을 때, 작은 미분값이 여러번 곱해지면 0에 가까워 질 것입니다. 이를 기울기 소실이라고 합니다. 반대..

CNN 종류 Classic Networks LeNet-5 AlexNet VGG-16 ResNet Inception(GoogLeNet) Network LeNet-5 LeNet-5은 손글씨 숫자를 인식하는 네트워크. LeNet-5는, 하나 이상의 Convolution Layer와 Pooling Layer를 반복하고, 마지막에 Fully Connected Layer를 거쳐서 결과를 출력한다. 특징 LeNet-5의 입력 이미지는 그레이 채널만 가지고 있기 때문에, (32, 32, 1) 구조를 가지고 있다. Padding 없이 Convolution Layer를 사용하기 때문에 신경망이 깊어질수록 이미지 크기가 줄어든다. Convolution Layer와 Pooling Layer 단위마다 필터가 증가하므로, 신경망..

OCR이란? Optical Character Recognition의 줄임말로, 이미지 내의 글자를 자동으로 인식하는 인공지능 기술을 의미한다. 예를 들어, 카메라를 통해 자동차 번호를 인식한다거나, 신분증에서 개인 정보 텍스트를 인식하는 등의 기술이다. 최근 OCR은 딥러닝으로 인해 큰 발전을 이루고 있다. 전통적인 OCR 파이프라인 OCR은 처음부터 딥러닝을 기반으로 개발된 것은 아니다. 초기 OCR의 파이프라인은 위 그림과 같다. 텍스트 라인을 찾는 모듈, 텍스트를 단어로 나누는 모듈과 등 여러 모듈이 사용된다. 이것은 딥러닝을 사용한 모델과 비교하면 매우 복잡한 것이다. 딥러닝과 OCR 딥러닝의 발전은 OCR에 큰 영향을 끼쳤다. 딥러닝의 핵심이라고 할 수 있는 CNN(Convolutional n..