Image processing/Lane detection

[2018] Towards End-to-End Lane Detection: an Instance Segmentation Approach

유니디니 2020. 8. 30. 21:51
728x90
반응형

Written by Davy Neven, Bert De Brabandere, Stamatios Georgoulis, Marc Proesmans, Luc Van Gool

 

[Abstract]

 

현대의 접근 방식은 큰 Receptive Field로 인해 이미지에 차선 표시가 없는 경우에도 픽셀 단위 차선 분할을 위해 학습된 딥러닝 모델을 활용합니다. 이러한 장점들에도 불구하고, ego-lane과 같이 사전 정의된 차선이나 고정된 숫자의 차선들을 탐지하는 것에 제한된다. 본 논문에서는 이러한 문제를 보완하고자 각 레인에 대한 instance 분할 문제로 탐지해야 함을 제안하였다. End-to-End 방식을 사용하였으며 원영상에 탐지된 차선을 맞추기 전, 분할된 차선 인스턴스를 매개 변수 화하기 위해 고정된 "bird-eye view"변환 대신 이미지에 조건을 둔 학습된 원근 변환을 적용하였다. 이를 통해, 사전 정의된 고정 변환 방법에 의존하는 기존 접근 방식과 달리 Robust 한 차선 피팅을 보장한다. 또한, 50 fps의 빠른 속도를 보이며 tuSimple 데이터 셋에서 경쟁적인 성능을 보였다. 

 

[Introduction]

 

Camera-based 차선 탐지는 차량의 위치에 대한 주변환경을 이해하는 데 있어 중요한 센서로 여겨져 왔으며, 차선 이탈이나 trajectory planning decision에서도 중요하다. 기존의 방법들은 차선을 구별하기 위해 color, structure tensor, bar filter 등의 hand-crafted 휴리스틱 한 방법을 취해왔다.

현대에는 pixel-wise lane segmentation의 접근방법을 사용하여 문제를 해결해왔다. 기존의 여러 네트워크가 차선을 더 잘 분할 할 수 있는 능력과는 별개로, 큰 receptive field를 통해 이미지에 lane marking이 없는 경우에도 차선을 추정할 수 있었다. 그러나, 최종 단계에서 생성된 binary segmentation은 각각의 차선들이 다른 인스턴스로 분리되어야 하는 문제를 가지고 있다. 이러한 문제를 다루기 위해 여러 heuristic 한 post processiong 방법들이 발전하였으며, 본 논문에서는 end-to-end 방식으로 다루고자 한다. 

 

Our Contribution

 

- 차선 변경에 의한 임의의 차선 수를 추론할 수 있는 차선 탐지 문제를 instance segmentation 방법으로 해결하는 multi-task architecture 방법이다. 특히, lane segmentation branch는 dense한 픽셀 당 segmentation을 출력하는 반면, lane embedding branch는 분할된 lane 픽셀을 다른 lane 인스턴스로 추가 분리한다.

 

- 입력 이미지가 주어진 네트워크는 도로 평면 변경(오르막, 내리막 길)에 대해 robust한 lane fitting을 허용하는 원근 변환의 매개변수를 추정한다.

 

[Method]

"LaneNet"은 binary lane segmentation의 이점과 one-shot instance segmentation을 위해 설계된 clustering loss function과 결합하게 되며, Lanenet의 출력에서 각 차선 픽셀에는 해당 차선의 ID가 할당된다. Lanenet은 차선 당 픽셀 모음을 출력하므로 차선 매개변수화를 얻으려면, 이러한 픽셀들을 곡선에 결합해야 하며 일반적으로는 고정된 파라미터를 이용하여 투영한다. 그러나 모든 이미지에 대해 변환 매개 변수가 고정되어 있기 때문에 평평하지 않은 지면 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 원근 변환의 매개변수를 추정하는 H-Net이라는 네트워크를 따로 학습시켰다.

 

Lanenet : 네트워크는 차선 수에 제한을 받지 않으며, 차선 변경에 대해 대처할 수 있다. instance segmentation은 segmentation 및 clustering 두부분으로 구성되며 속도와 정확성 측면에서 성능을 높이기 위해 multi-task 네트워크에서 공동으로 훈련된다.

 

  • binary segmentation : 이진 segmentation map을 출력하도록 훈련되어 어떤 픽셀이 차선에 속하는지 여부를 나타낸다. 또한, 장애물과 같은 물체에 가려진 경우, 점선 또는 희미한 차선과 같은 명시적인 시각적 차선이 없는 경우에도 예측하는 방법을 학습한다. cross-entropy loss를 사용하였으며, 두 클래스(lane/background)가 매우 불균형하므로 bounded inverse class weighting 적용하였다. (참고 2- E-net)
  • instance segmentation : one-shot method 기반의 distance metric learning방법을 사용하였으며 real-time 어플리케이션을 위해 특별히 설계되었다. 이 clustering loss function 방법은 각 차선 픽셀이 같을 경우 거리가 작아지게 만들고, 다른 차선일 경우 거리가 더욱 멀어지게 만들었다.  
    두 개의 terms로 나뉘며, var은 각 차선 픽셀에 대해 mean embedding을 수행한다. 또 다른 dist는 cluster의 center로 모이게 만든다. 

  • clustering : 반복적인 절차에 의해 발생하며, 모든 차선 embedding이 차선에 할당될 때까지 반복된다. outlier를 임계 값으로 선택하지 않기 위해, 먼저 mean shift를 사용하여 클러스터 중심에 더 가깝게 이동한 다음 임계값을 지정한다.
  • network architecture : 차선 탐지는 E-Net기반의 인코더-디코더 구조로 되어있으며, 두개의 branch 네트워크로 수정된다. E-Net의 encoder는 decoder보다 더 많은 파라미터를 가지며, 전체 인코더 부분을 완전 공유할 경우 안 좋은 결과가 발생할 수 있기 때문에, 처음 2단계만 공유하고, 각 분기의 3단계와 디코더는 개별 분기로 남겼다. 마지막 레이어는 1 채널 이미지를 출력하는 반면, embedding 마지막 분기는 N이 임베딩 차원인 N-채널 이미지를 출력한다. 
    각 지점의 loss term은 동일하게 가중치가 부여되고, 네트워크를 통해 역전파된다.

Curve Fitting Using H-Net : LaneNet의 출력은 차선 당 픽셀 모음이며, 곡선을 표현하는 다항식에 적합하지 않다. 따라서, 고차 다항식을 맞추기 위해서는 "bird's-eye view"표현으로 투영하는 것이다. 여기서 차선은 서로 평행하기 때문에 2차에서 3차 다항식으로 맞출 수 있다. 그러나, 고정된 파라미터는 무한대로 투영되는 소실점의 변화(shifts up, ownwards) 시 오류가 발생한다. 

이러한 문제를 해결하기 위해, H-Net에 custom loss function을 사용하였다. 원근 변환 H의 매개변수를 예측하기 위해 end-to-end 학습에 최적화되어있으며 변환된 차선 지점은 2차 또는 3차 다항식이다. 예측은 입력 이미지에 따라 조정되므로 상황의 변화(오르막 or 내리막) 시 정확성을 가지게 된다.

 

*bird's eye view : 원근감으로 인해 Front 카메라의 경우 이미지에서 평행선이 수렴하는 것처럼 보인다. 평행선을 평행하게 유지하기 위해 "bird's eye view"변환을 사용하게 된다. 변환방법은 두가지가 있으며, 각각의 장단점이 존재한다. (고정된 파라미터) 

 

Front 이미지에서 원근감에 따른 소실점 수렴
Common stage : ROI 추출
Method 1. 맨 위의 행 픽셀 늘리기 
Method 2. 상단 행을 변경하지 않고, 이미지 하단을 축소

Method 1 : 맨 위의 행 픽셀 늘리기 방법은 확실한 방법이나 시야각을 줄이고 중앙 차선 이외의 경로를 추적할 수 없다.

Method 2: 상대적 해상도가 낮은 상단 가장자리의 원 이미지에서 사용 가능한 모든 픽셀을 보존하기 때문에 나은 방법으로 여겨짐.

 

  • Curve fitting : 탐지된 차선 픽셀 P는 곡선을 fitting 하기 전에 H-Net에서 출력한 변환 행렬을 사용하여 변환된다. 

  • Loss Function : 차선 pixel로부터 최적의 다항식을 찾기 위해서 다음의 loss function을 적용하였다. p*H = p'*이며, p는 p = [x, y, 1] T이고, H-Net의 결과를 통해서 p'으로 변환시킨다. 투영된 점들은 최소 제곱 closed-form solution을 통해 피팅하게 된다. 

  • 이러한 경우 2차 다항식을 의미하며, 우리에게 주어진 x'* 예측은 y' location에 의해 평가된다.

  • Network architecture

Result

참고 자료

[1] Towards End-to-End Lane Detection: an Instance Segmentation Approach, arxiv.org/abs/1802.05591

[2] A. Paszke, A. Chaurasia, S. Kim, E. Culurciello, ENet: A deep neural network architecture for real-time semantic segmentation. CoRR abs/1606.02147, 2016.

[3] bird's eye view : https://nikolasent.github.io/opencv/2017/05/07/Bird's-Eye-View-Transformation.html

반응형