Inception-v4 (2016)

순수 Inception 블록만으로 설계된 Inception 계열의 완성판 CNN 모델이다.
inception 블록: 똑같은 크기의 feature map을 유지하면서, 다양한 특징을 추출하는 conv layer들의 묶음
reduction 블록: feature map의 크기를 줄이는 downsampling layer (pooling + conv 혼합)
Inception-ResNet-v2 (2016)

inception 블록에 Residual 연결을 더해 학습 안정성과 성능을 강화한 CNN 모델이다.
기본 inception block은 새로운 특징만 추출한다면, inception-resnet block은 새로운 특징에다가 원래 특징을 그대로 더해준다.
inception-v4 vs inception-resnet-v2

둘 다 2016년 당시 CNN 최고 성능을 기록하였다.
Segmentation
1. Semantic Segmentation
one label per pixel
(classification: one label per image)

모든 픽셀을 픽셀 단위로 labeling을 하며, instance를 인식하지 못한다.

input image에서 작은 패치를 추출하고, 해당 패치에 CNN을 적용하여 중심 픽셀의 클래스를 예측한다. 이 과정을 모든 픽셀에 대해 반복하면 이미지 전체에 대한 픽셀 단위 분류(semantic segmentation)를 수행할 수 있다.
그러나 모든 픽셀마다 별도로 CNN을 적용해야 하므로 계산 비용이 매우 크다는 단점이 있다.

이를 극복하기 위해 이미지 전체를 CNN에 적용하여 모든 픽셀에 대한 결과를 한 번에 얻을 수 있다.
그러나 stride와 pooling에 의해 다운샘플링이 발생하므로 output image가 매우 작아지는 문제점이 있다.
+ Multi-Scale

이미지를 다양한 크기로 스케일 (Image Pyramid)해주고 각각 별도의 CNN을 적용해 준다. 얻어진 크기가 다른 feature map들을 원본 크기로 upsampling 해주고 concat 해주면 다양한 크기의 객체 인식이 가능하고 더욱 풍부한 정보를 얻을 수 있다.
추가로 Bottom-up segmentation(별도의 오프라인 프로세싱)을 통해 CNN에서 줄 수 없는 추가적인 정보를 제공해 주고, 픽셀 간의 구조적 일관성과 경계 정보를 보완해 준다.
- superpixels: 비슷한 픽셀을 묶어 더 의미 있는 단위로 표현
- merge tree: superpixel들을 계층적으로 합치면서 작은 패치에서 큰 의미 단위로 확장
최종적으로 위의 과정과 아래 과정을 결합하면 더 정확하고 경계가 선명한 segmentation을 얻을 수 있다.
+ Refinement

입력 이미지는 RGB 3채널로 분류되어 들어오며, CNN의 필터는 각 채널에 서로 다른 가중치를 적용해 합친 결과로 feature map을 생성한다. 이 과정을 여러 번 반복하면 원본 이미지보다 해상도는 줄어들지만(downsampling), feature map은 가중치 공유(sharing)를 통해 점점 더 추상적이고 풍부한 표현을 학습한다.
즉, 반복이 많아질수록 네트워크가 단순한 색/모양 특징 → 복잡한 고수준 특징으로 발전하게 된다.
+ Upsampling

작아진 feature map을 다시 원본 크기로 복원할 때, 기존 방식에서는 고정된(hard-coded) 업샘플링 기법을 사용했지만, 최근 방법에서는 마지막 레이어에 학습 가능한 업샘플링 모듈을 추가하여, 데이터에 맞게 경계와 디테일을 보완하며 해상도를 복원할 수 있다.

pool4, pool3 같은 얕은 레이어의 공간적 디테일을 추출한 feature map을 가져와서 깊은 레이어의 의미적 정보를 합치는 skip connections 과정을 거친다.
- pool4 → 2배 업샘플 → 16x upsampled prediction (FCN-16s)
- pool3 → 4배 업샘플 → 8x upsampled prediction (FCN-8s)
Learnable Upsampling: Deconvolution

deconv의 FP는 conv의 BP와 같다고 할 수 있다.
Signal processing에서는 inverse of convolution이라고 정의하고 있다.
2. Instance Segmentation

instance를 먼저 탐지하고, instance 내의 픽셀들을 labeling 한다.

Input image에서 객체가 있을 법한 후보 영역(Segment proposal)을 생성하고, 각 부분에 대해 feature을 추출한다.
- Box CNN: Bounding box를 기반으로 feature 추출
- Region CNN: segment 마스크를 적용하여 배경을 mean color로 대체 후 feature 추출
위 두가지를 concat 하여 각 region에 대해 classification을 수행하고 refinement 과정을 거쳐 경계를 보정한다.
+ Hypercolumns

원본 이미지에서 관심 영역을 crop 한 뒤, 이를 AlexNet에 입력하여 여러 계층의 feature map을 얻는다.
각 계층의 feature map을 upsampling하여 원본 크기와 맞춘 뒤, 동일 위치의 feature들을 combine(결합)하여 hypercolumn 벡터를 구성하고 이를 기반으로 픽셀 단위의 classification이나 segmentation을 수행한다.
(R-CNN/ Semantic Segmentation의 multi scale과 유사하다.)
+ Cascades (2015)

입력 이미지를 CNN에 통과시켜 feature map을 얻은 뒤, region proposal network(RPN)을 이용해 ROI를 추출한다. 이 영역들을 동일한 크기로 정규화한 후 FC layer에 통과시켜 feature을 압축한다.
이후에 인스턴스 마스크를 생성하여 객체 영역(foreground)과 배경(background)을 분리하고, 배경이 제거된 객체를 FC layer에 입력하여 최종적으로 객체 분류(classification)를 수행한다.
(Faster R-CNN과 유사하다.)
'AI > Stanford Univ. cs231n' 카테고리의 다른 글
| 13-2강 Attention (0) | 2025.09.05 |
|---|---|
| 11강 CNNs in Practice (3) | 2025.08.30 |
| 10강 RNN과 LSTM (Recurrent Neural Networks) (7) | 2025.08.24 |
| 9강 Understanding and Visualizing CNN (3) | 2025.08.22 |
| 8강 Spatial Localization and detection, R-CNN (2) | 2025.04.12 |