Image processing/Lane detection

RESA : Recurrent Feature-Shift Aggregator for Lane Detection

유니디니 2020. 10. 3. 17:13
728x90
반응형

Written by Tu Zheng, Hao Fang, Yi Zhang, Wenjian Tang, Zheng Yang, HaiFeng Liu, Deng Cai

 

Abstract

 

Lane detection은 자율주행 분야에서 매우 중요한 Tasks 중 하나로, 복잡한 환경(Severe occlusion, ambiguous lanes, etc. )과 background에 비하여 드문 차선 픽셀등으로 인해 어려움을 겪고 있다. 따라서, 일반적인 CNN(Convolution Neural Network)방법으로는 lane feature를 얻기 힘들다. 본 논문에서는 일반적인 CNN을 통해 차선의 풍부한 특징들을 추출하고, 새로운 REcurrent Feature-Shift Aggregator(RESA)모듈을 이용하였다. RESA의 장점은 차선이 가지는 특징들을 우선적으로 활용하고, Row와 Column에 걸쳐 픽셀의 공간적 관계를 포착한다. 또한, 슬라이스된 특징맵에서 수평적, 수직적으로 이동하며 전역정보를 수집함으로써 복잡한 환경에서도 차선의 특징들을 강건하게 포착하도록 도와준다. up-sampling 단계에서는 coarse grained 특징과 fine detailed 정보를 결합하고, 저해상도 특성 맵을 픽셀단위 예측으로 세밀하게 복구하였다.

 

Introduction

 

차선탐지 분야는 자율주행 및 ADAS 시스템에서 중요한 역할을 하며, Vehicles, bad weather conditions, ambiguous pavement등 다양한 요건들에 의해 어려움을 겪어왔다. 최근 알고리즘들은 각 픽셀에 대해 차선에 속하는지 여부에 따른 이진(binary label) semantic segmentation문제로 다뤄지고 있다. 이러한 문제는 encoder와 decoder로 다뤄지며 CNN을 이용하여 High semantic information을 특징맵으로 부터 추출하고 up-sampling 디코더를 통해 특징들을 수집하며 원본이미지 상태로 회복시킨다. 그러나, 얇고 긴 차선은 미세한 특징들을 추출하는데 있어 어려움을 겪고 있다.

 

본 논문에서는 RESA를 통해 특징 맵 내부의 정보들을 모으고, 구조적 정보들을 계층들 간의 더욱 직접적이고 효율적으로 이동시킨다. Fig 1.에서처럼 슬라이스된 특징맵에서 수직 수평적으로 이동하며 정보를 모을수 있다. 이러한 RESA는 3가지 특징을 가진다. 

 

  1. RESA는 정보들을 parallel 방법으로 정보들을 이동시켜며, 시간적 비용을 크게 줄인다. 
  2. 특징정보는 다른 크기의 strides, 슬라이스된 특징맵을 이용하여 RESA안에서 이동한다. 따라서, 특징맵 정보를 전파하는 동안 정보의 손실 없이 수집할 수 있다. 
  3. RESA는 다른 네트워크들 사이에서 단순하고 유연하게 사용된다. 

그 후, 제안된 Decoder를 사용하여 bilateral up-sampling 방법을 적용하였다. 두개의 브랜치로 이루어져 있으며 coarse grained 특징과 fine detailed 특징들을 수집한다. Coarse grained branch는 bilinear up-sample을 직접적으로 사용하여 blurry image를 만드는 반면, Detailed branch는 up-sample연산을 transpose convolution와 non-bottleneck blocks [Erfnet: Efficient residual factorized convnet for realtime semantic segmentation.]를 사용하여 정제하였다. 결합된 두 branches는 디코더에서 낮은 해상도의 특징맵이 픽셀단위 예측을 세심하게 할수 있도록 도와준다.

두개의 차선 탐지 데이터 셋(CULane, Tusimple)에 대해 평가하였고, 높은 성능을 보였다. (75.3 F1-measure on CULane, 96.8% accuracy on Tusimple)

 

주요 기여점들은 다음과 같다.

 

  • 우리는 RESA를 통해 슬라이스된 특징맵에 대하여 수직, 수평적 이동을 통해 반복적으로 구조적 정보들을 수집하였다. 또한 쉽게 다른 네트워크에 적용할수 있는 장점을 가진다. 
  • Bilateral Up-Sampling Decoder를 통해 저해상도 특징맵을 세심하게 회복시켰다.
  • CU-Lane와 Tusimple 벤치마크 데이터 셋에 대하여 높은 성능을 달성하였다.

Method 

 

RESA는 encoder-decoder 프레임 워크에 삽입하였으며, Encoder, Decoder, Aggregator 세가지로 구성됩니다. 우선, Encoder는 Resnet, Vgg등과 같이 일반적으로 사용되는 Backbone을 인코더로 선택하여 특징들을 추출합니다. 그런 다음, RESA 모듈을 적용하여 차선 특징들을 모으고 풍부한 특징맵을 얻습니다. 또한 영상에서의 차선특징을 효율적으로 회복하기 위해 Coarse grained branch와 fine detailed branch가 있는 새로운 양방향 업샘플링 디코더가 제안되었다.

 

RESA

 

RESA 모듈은 그림2와 같이 반복적이고 동시에 이동하며 정보를 수집한다. 

 

  • K = |log2L|, k는 반복숫자를 나타낸다. L의 경우 eq1에서는 W를, eq2에서는 H, f는 비선형 활성화 함수인 ReLU를 나타낸다.
  • eq4의 sk는 k번째 반복횟수의 이동 stride
  • eq1과 eq2는 수직적, 수평적 이동 공식(Shift passing formula)를 각각 보여준다.
  • F는 1d 컨볼루션 커널의 그룹(N(in) x N(out) x w)을 나타내고, 각각은 입력 채널, 결과 채널, 커널(가중치 크기)의 width를 나타낸다. 
  • 다른 복잡한 계산 없이 단순하게 인덱스 계산에 의해 전달되는 반복적인 특징 이동 정보를 구현
  • 이동 stride sk는 반복 숫자인 k에 의해 조절되며, passing distance 정보를 dynamically하게 결정한다. 

그림 2의 b, RESA_U는 "down to up", "up-to-down" 수직적 이동에 대한 aggregator를 나타내며, "left-to-right" "right-to-left"는 RESA_R, 수평적 이동에 대한 aggregator를 나타낸다. 

 

Analysis

 

차선탐지는 주변 정보에 크게 의존하는 Task이다. RESA는 특징 이동 작업을 4방향으로 반복적으로 적용하고 모든 위치에서 동일한 특징 맵에서 모든 공간 정보를 인식하고 집계할 수 있다는 장점이 있다. 이러한 RESA는 3가지 장점을 가진다. 

 

  • 계산적으로 효율성을 가진다. MRF 또는 CRF와 같은 기존 방법은 각 픽셀이 완전 연결된 방식으로 다른 모든 픽셀 정보를 이용하며 집중적이고, 중복적인 문제를 겪어왔다. 최근, SCNN과 같은 일부 방법은 효과적인 특징 정보 전달 방식, 즉 슬라이스 별 컨볼루션을 이용한다. 그러나, RNN과 같은 방식은 Spatial size가 커짐에 따라 복잡성이 선형적으로 증가하고 순전파가 계산 리소스를 완전히 활용할 수 없기 때문에 여전히 많은 시간을 소비한다. RESA의 복잡성은 로그 수준의 공간 크기와 관련이 있으며, 모든 위치는 모든 반복에서 병렬 방식으로 업데이트 된다. 각각의 위치는 [log2L] 반복의 전체 기능 맵에서 정보를 집계할 수 있다.
  • 특징 정보를 효율적으로 모은다. 슬라이스된 특징 정보는 인접한 슬라이스로 전달될 뿐 아니라 다른 스트라이드(sk = 1)로 슬라이스 된 특징 맵에도 전달된다. 따라서, 각 픽셀은 슬라이스 된 특징 맵에서 정보를 수집할 수 있다. 정보손실부분에서는 SCNN의 경우, 특징 정보를 인접으로 전달하고 전파하는 도중 손실되기 때문에 SCNN에 비해 좋다고 할 수 있다.
  • 다른 네트워크에 쉽게 연결가능하다. RESA의 구현은 간단하며 특징맵에서 인덱스 작업만 필요하다. 둘째, RESA는 특징 향상 모듈로 취급할 수 있는 입력 특징맵의 모양을 변경하지 않는다. 마지막으로, RESA의 계산 시간은 거의 무시할 정도이다.

Bilateral Up-Sampling Decoder

Decoder의 주요 작업은 특징맵을 입력 해상도로 업샘플링 하는 것이다. 기존의 방법은 단순 양선형 보간법으로 인해 정보 손실이 컸다. 따라서, 기존의 단점들을 보완하며 성능을 높이는 방법을 채택하였다. 디코더는 두개의 branch로 이루어져 있다. Coarse grained feature와 fine detailed loss를 최소화 하는 것으로 구조는 그림 4와 같다. 

  • Coarse grained branch : rough한 up-sample를 이용하여 디테일한 정보를 무시하고 빠르게 결과를 내는 방법이다. 단순하고 얕은 path로 디자인 되었다. 우리는 1x1 컨볼루션을 통해 입력 특징맵에 대해 절반으로 줄이고, BN연산, 양선형 보간법을 적용하였다. 마지막에는 ReLU 연산을 하게 된다. 
  • Fine detailed branch : Fine detailed branch는 Coarse grained branch에서의 정보 손실을 보완하기 위해 수행된다. stride 2의 transpose convolution과 upsample, 절반의 채널수로 줄이는 연산을 동시에 수행한다. 그 후, ReLU를 수행하며 NON-bottleneck block으로 구성된 3x1, 1x3 컨볼루션, BN, ReLU로 이루어지며 이를 통해 특징맵 모양을 유지하며 효율적으로 정보를 추출한다. 우리는 upsample 연산 후에 두개의 non-bottleneck을 적용하였다.

Main Result

 

CU-Lane

 

Tusimple

각 모듈의 효과

반복 횟수에 따른 performance

 

SCNN과 RESA간의 비교

커널 크기에 따른 비교

코드는 Github에서 공개 예정...

반응형