[논문리뷰] FishNet : A Versatile Backbone for Image, Region, and Pixel Level Prediction

Minjung Kim·2025년 3월 16일

논문리뷰

목록 보기
1/6
post-thumbnail


FishNet은 이미지 분류, 객체 탐지, 세그멘테이션 등 다양한 컴퓨터 비전 태스크에 효과적으로 사용할 수 있는 새로운 CNN 아키텍처입니다.

기존의 CNN 구조들은 각 태스크에 특화되어 설계되었습니다. 예를 들어, 이미지 분류용 네트워크는 연속적인 다운샘플링을 통해 저해상도의 깊은 특징 즉 고수준 특징을 얻습니다. 반면 세그멘테이션이나 객체 탐지를 위한 네트워크는 U-Net이나 FPN과 같은 구조를 사용해 고해상도의 저수준 특징을 유지합니다.
FishNet은 이러한 서로 다른 접근 방식의 장점을 통합하여, 다양한 태스크에 효과적으로 사용할 수 있는 범용적인 백본 네트워크를 제안합니다.

VGGnet 등의 연구에서 네트워크를 더 깊게 만들어 성능을 향상시켜 온 바가 있습니다. 하지만, 기울기 소실 문제로 인해 네트워크 깊이에 한계가 존재하게 되었습니다. 이러한 점은 보완하기 위해, skip connection을 도입하였지만 고해상도 특징을 얕은 층에서 추출하기 때문에 고수준 특징을 파악하는 것이 부족했습니다. 그리고 fishnet에서는 고수준 의미의 특징을 추출하여 분류 정확도를 향상시켰습니다.


또 이전까지의 특징 결합 방식으로는 hyper-column, addition, residual block이 있었습니다. 하지만, 하이퍼컬럼의 경우, 단순 연결만을 수행하고 특징 간 상호 정제의 역할을 하지 않습니다. 또, addition 의 경우 특징 혼합만 할 뿐 특징의 보존과 refine은 불가능합니다. 잔차 블록의 경우, 미리 정의된 대상만 정제하기 때문에 양쪽 특징을 모두 보존하거나 정제하지 못한다는 단점이 존재합니다. 하지만, fishnet은 이를 보완하여 얕은 층과 깊은 층의 특징을 모두 보존하고 refine 할 수 있게 구성했습니다.

Identity Mapping은 ResNet에서 도입된 개념으로, 네트워크의 깊이가 깊어져도 그래디언트가 효과적으로 전파될 수 있도록 돕습니다. 수식으로 표현하면 다음과 같습니다:


입력을 ,출력에, 그대로 더하는 구조로 볼 수 있습니다.

이 구조의 장점은 그래디언트가 F함수를 거치지 않고 직접 이전 레이어로 전파될 수 있다는 점입니다. 이는 아래 괄호 2 번 수식의 빨간색으로 표시된 1항이 더해지는 부분이 그대로 남아있기 때문입을 볼 수 있습니다. 이는 깊은 네트워크에서 발생하는 그래디언트 소실 문제를 완화합니다.
하지만, 여기서 채널 수 변경 함수로 인해, 현재 stage와 출력 stage의 입력 채널 수가 다르기 때문에 identity mappng을 적용할 수 없게 됩니다.

그래서, 이를 보완하기 위해 1x1 convolution으로 채널 수를 맞춰주게 됩니다.
(그렇게 되면 isolated convolution이 되어 gradient의 직접적인 흐름을 방해하게 됩니다.)

이를 isolated convolution이라고 하고, 줄여서는 I-conv라고 부르겠습니다.

I-conv는 Identity Mapping이나 Concatenation 없이 단독으로 사용되는 컨볼루션 레이어를 말합니다. 이는 주로 특징 맵의 채널 수를 조정하거나 해상도를 변경할 때 사용됩니다. 그러나 I-conv에서는 문제점이 발생하는데요, 바로 그래디언트의 직접적인 전파를 방해한다는 것입니다. 예를 들어, ResNet이나 DenseNet의 transition layer에서 I-conv가 사용되면, 그래디언트가 이 레이어를 통과할 때 변형되어 직접적인 전파가 불가능해집니다.

이 문제는 네트워크의 학습을 어렵게 만들고, 특히 매우 깊은 네트워크에서 성능 저하를 일으킬 수 있습니다.
이러한 문제에 대한 보완점으로, 현재 stage의 모든 특징을 다음 stage에 사용한 시도가 있었으나, 파라미터 수가 급등했다는 점에서 유용하지 못했습니다.

FishNet은 이러한 I-conv의 문제점을 인식하고, 네트워크 구조를 설계할 때 I-conv의 사용을 최소화했습니다. 대신, concatenation과 identity mapping을 적극적으로 활용하여 그래디언트가 네트워크의 얕은 층까지 직접적으로 전파될 수 있도록 했습니다.

네 그리고, 이것이 제가 설명할 FishNet의 전체적인 구조입니다. Fishnet이라는 이름은, 이 구조가 물고기를 닮았다고 하여 붙여졌습니다.

FishNet의 구조는 크게 세 부분으로 나뉩니다: tail, body, head인데요.

Tail: 기존의 CNN처럼 입력 이미지로부터 저해상도의 깊은 특징을 추출합니다.
그리고 Body: Tail에서 추출한 특징을 업샘플링하고 정제하여 고해상도의 의미론적 특징을 생성합니다. 여기서는 up-sampling 과 refining block이 사용됩니다.
마지막으로,
Head: Tail과 Body에서 얻은 다양한 스케일의 특징들을 down sampling과 refining block을 통해 보존하고 정제하는 구조를 가지고 있습니다.

먼저, Fish Tail 부분을 보겠습니다. 이 부분은 일반적인 CNN과 유사하게 입력 이미지의 해상도를 점진적으로 줄이면서 채널 수를 늘립니다. 이러한 과정을 통해 저해상도의 전역적인 영역을 볼 수 있게 됩니다.
다음으로 Fish Body 부분입니다. 이 부분에서 주목할 점은 각 단계에서 이전 단계의 특징과 Tail에서 온 특징을 결합한다는 것입니다. 여기서 빨간색의 수평 화살표로 표시된 부분이 바로 그 특징 결합을 나타냅니다.
마지막으로 Fish Head 부분입니다. 이 부분은 Body에서 얻은 고해상도 특징들을 다시 다운샘플링하면서 정제합니다.
오른쪽의 (b)와 (c) 다이어그램은 각각 UR (Upsampling and Refinement) 블록과 DR (Downsampling and Refinement) 블록의 상세 구조를 보여주고 있는데요, 이를 좀 더 자세하게 살펴보도록 하겠습니다.


UR 블록에서는:
수식을 보시면, (7)번에서부터 (5)번으로의 순서로 진행된다고 보시면 됩니다.
(7)번에서는 tail에서의 feature map에 transferring 함수를 적용하고, 그것과 현재 body의 feature map을 결합한 것입니다.

그리고 (6)에서는 r 함수를 통해 입력에 대한 채널 감소를 진행합니다. 이 때, 인접한 k개의 채널을 channel wise summation을 하여 1개로 줄이게 됩니다. 이를 통해 계산량과 파라미터 사이즈를 줄일 수 있습니다. 그 결과에 message passing 함수를 적용한 입력값을 더해줍니다.
여기서 주목할 점은, 채널 축소를 할 때 isolated convolution을 사용하지 않았다는 점입니다. 단순한 summation 연산을 사용했기 때문에, 그라디언트의 흐름에 방해가 되지 않습니다.

그리고 마지막으로 (5)번에서 up-sampling을 진행합니다. 이때, nearest neighbor up-sampling 기법을 사용합니다.

다음으로 DR 블록을 보시면,

UR 블록과 매우 유사한 형태를 보이지만, 다른 점이 두가지 존재합니다.
Concat 후, skip connection 을 진행하는 부분에서, 채널 축소를 진행하기 않습니다. 그 이유는, 현재 stage의 그라디언트가 이전 stage의 매개변수에 직접 전파될 수 있도록 하기 위함합니다. 이것이 바로 앞서 설명드린 isolated convolution을 사용하지 않은 부분입니다.
여기서 채널 축소를 하지 않았기 때문에, 조금 더 순수한 residual block의 형태를 갖고 있다고 볼 수 있습니다.
그리고 여기서는 max-pooling 기법을 통해 down-sampling을 진행합니다.

이러한 과정을 통해, 모든 stage에서의 특징들을 보존하고 정제하면서, 그래디언트가 네트워크의 모든 부분으로 직접 전파될 수 있게 됩니다.

그리고 이 아키텍쳐의 여러부분에 서 bottleneck 구조가 사용되는데요. 우선, tail 부분의 기본적인 cnn 구조와, UR 블록과 DR 의 message passing 함수에서 사용됩니다. 병목 구조를 사용함으로써, 파라미터 수를 줄이고 네트워크의 표현력을 높여 계산효율성을 높일 수 있습니다.


먼저, Gradient Propagation Problem에 대해 설명드리겠습니다. 딥러닝 네트워크에서 그래디언트 전파 문제는 깊은 층에서 얕은 층으로의 그래디언트가 원활히 전달되지 않는 문제를 말합니다. 특히, 앞에서 설명드렸던 I-conv(분리된 컨볼루션)에서는 이 문제가 두드러집니다.

FishNet은 이 문제를 해결하기 위해 다음과 같은 방법을 사용합니다:
네트워크의 Head 부분에서 I-conv를 제거하여 그래디언트가 직접적으로 전달될 수 있도록 합니다.

그리고, Body와 Head 부분에서 Concatenate(연결) 연산을 사용하여 그래디언트 전파를 촉진합니다. 이를 통해 깊은 층의 그래디언트가 얕은 층까지 효과적으로 전달될 수 있습니다.


다음으로, Body와 Tail 사이의 브릿지 모듈입니다.
다른 해상도의 특징 맵을 결합할 때는 업샘플링 또는 다운샘플링 과정을 통해 해상도를 맞춰야 합니다.
FishNet에서 Tail 부분은 특징 맵의 해상도를 낮추어 1×1로 다운샘플링하는데 이가 바디의 피처 맵과 결합될 때, 해상도 불일치를 해결하기 위해 Body와 Tail 사이에 브릿지 모듈을 사용합니다.

그것이 바로 SE-block인데요. SE-block을 통해 1×1 해상도의 특징 맵을 7×7로 매핑합니다. 이 것은 channel wise attentive 연산을 통해 이루어지며, 특징 맵의 정보 손실을 최소화합니다.

정리하자면, 다운샘플링된 특징 맵을 업샘플링하여 원래의 해상도로 변환함으로써, 네트워크의 다른 부분과의 호환성을 유지할 수 있다는 것입니다.


FishNet 아키텍처의 주요 장점은 다음과 같습니다:

FishNet은 객체 탐지를 목적으로 발전된 네트워크이고, 픽셀 레벨, 영역 레벨, 이미지 레벨에서의 특징을 모두 추출할 수 있어, 객체 탐지에 좋은 성능을 보입니다. 하지만, 이미지 분류에서도 좋은 성능을 보인다는 점에서 큰 메리트가 있다고 볼 수 있습니다.

그리고, 앞서 계속 설명했듯, 깊은 층에서 얕은 층으로의 그래디언트를 직접 전파하여, 훈련 과정에서의 효율성을 높입니다. 이를 위해 UR/DR 블록에서 Concatenate 연산을 사용된 것을 볼 수 있었습니다.

마지막으로, 특징 보존 및 정제를 한다는 점입니다. 다양한 해상도에서 추출된 특징을 효과적으로 보존하고, 상호작용을 통해 특징을 정제합니다. 이를 통해 다양한 수준으로 이미지를 이해할 수 있게 되고, 정보 손실을 최소화합니다. 또, 특징 간의 상호작용을 통해 더 풍부하고 정확한 표현을 학습할 수 있습니다. 마지막으로, 다양한 크기의 객체와 패턴을 효과적으로 인식할 수 있습니다.

이러한 장점들로 인해 FishNet은 객체 탐지뿐만 아니라, 이미지 분류, 세그멘테이션 등 다양한 컴퓨터 비전 task에서 우수한 성능을 보이게 됩니다.


우선, 먼저 우리가 주목할 그래프를 보시죠.
이 그래프는 FishNet, DenseNet, ResNet의 성능을 ImageNet 데이터셋에서 비교한 결과입니다.

첫 번째로 파라미터 효율성을 살펴보겠습니다. FishNet의 노란색 선이 대체로 아래쪽에 위치한 것을 볼 수 있습니다. 이는 FishNet이 적은 파라미터로도 낮은 오류율을 달성한다는 것을 의미합니다.

두 번째로 연산 효율성입니다. 오른쪽 그래프의 x축은 연산량을 나타내는데, 여기서도 FishNet이 경쟁 모델들보다 낮은 위치에 있어, 같은 연산량으로 더 좋은 성능을 보여줍니다.
이제 구체적인 수치를 보기 위해, Table 1을 보시면, FishNet모델이 유사한 크기의 ResNet과 비료했을 때 21.5%의 top-1 오류율로 낮은 오류율을 달성했음을 볼 수 있습니다.

마지막으로 Table 2는 다양한 다운샘플링 방법의 성능을 비교합니다. 2x2 stride=2 Max-Pooling이 21.93%로 가장 좋은 성능을 보이고 있습니다.

결론적으로, FishNet은 파라미터 수와 연산량 대비 분류 성능에서 ResNet과 DenseNet을 앞서고 있다는 것을 알 수 있습니다.

다음은, MS COCO val-2017 데이터셋에서 다양한 모델의 인스턴스 세그멘테이션과 객체 탐지 성능을 비교한 것입니다.

FishNet이 인스턴스 세그멘테이션에서 가장 높은 성능을 보이는 것을 알 수 있습니다. 또, 객체 탐지에서도 최고 성능을 보입니다.
ResNet과 비교했을 때도, FishNet이 모든 지표에 있어서 성능이 향상된 것을 볼 수 있습니다.

결론적으로, FishNet-150은 기존의 모델들보다 더 적은 계산량(FLOP)으로 더 높은 성능을 달성하면서도 파라미터 수는 비슷하게 유지하는 효율적인 모델임을 알 수 있습니다. 특히 다양한 크기의 객체에 대해 고른 성능 향상을 보이기 때문에, 일반화 능력이 좋다는 것을 알 수 있고, 스케일 불변성와 범용성이 뛰어나다는 점에서 주목할 만합니다.

네, 여기까지 fishnet 논문에 대한 발표였습니다. 감사합니다.

0개의 댓글