Image processing/Lane detection

[2020] RONELD : Robust Neural Network Output Enhancement for Active Lane Detection

유니디니 2020. 11. 10. 00:02
728x90
반응형

Written by Zhe Ming Chng, Joseph Mun Hung Lew, Jimmy Addison Lee

 

[Abstract]

 

정확한 차선탐지는 자율주행에서 중요한 Task이며, 최근 많은 방법들에서 Tusimple, CuLane와 같은 데이터 셋을 학습하여 사용한다. 각각의 학습데이터를 이용한 방법들은 좋은 정확도를 보이지만, 학습하지 않은(보지 않은) 데이터에 대하여 Performance가 상당히 떨어진다. 본 논문에서는 real-time Robust neural network output enhancement for active lane detection (RONELD) 방법으로 딥러닝 확률 결과 맵으로부터 active lanes들에 대해 식별, 추적, 최적화하였다. 

 

우리는 먼저, 확률 결과 맵(probability map)으로 부터 차선 points들을 추출한 다음, 직선 차선에서 가중치가 적용된 최소 제곱 선형 회귀(Least squares linear regression)를 사용하기 전에 곡선 및 직선 차선을 감지하여 실제 이미지에서 에지 맵 깨짐현상(fragmentation)으로 인한 차선을 수정하였다. 마지막으로, 이전 프레임을 추적하여 실제 active lanes을 가정한다.

 

실험 결과는 교차 데이터 셋 검증 테스트에서 RONELD를 사용하여 정확도가 최대 2배 향상되었음을 보여준다.

 

[Introduction]

 

차선 탐지에 대한 False Positives는 탐지되지 않은 차선 및 깨진 차선으로 인해, 자율주행 차량 제어의 정확도 및 불안정성을 초래한다. 본 논문에서는 자율 주행 차량의 딥러닝 모델과 함께 사용할 수 있는 Robust하고 낮은 계산 비용 및 Real-time solution을 찾기 위해 RONELD 향상 방법을 제안함으로써 문제해결을 목표로 한다. 이 방법은 보지 않은 데이터, 환경등에 의해 낮은 Performance를 보이는 딥러닝 방법들을 개선하기 위한 방법이다. 우리의 방법은 기존 딥러닝 모델 확률 맵 출력에서 예측된 차선 표시를 강화하여 정확도 성능을 향상시킬 수 있다는 관찰을 기반으로 한다. 특히 딥러닝 모델의 학습 세트와 크게 다른 데이터 세트에서 정확도 성능을 크게 높일수 있다는 장점이 있다. 

 

RONELD의 유용성을 확인하기 위해 두가지 딥러닝 모델인 Spatial CNN(SCNN)과 ENet-SAD에서 테스트하고, RONELD의 결과 정확도와 처리 시간을 보여준다. 우리의 실험은 향상된 정확도 성능을 통해 두가지 데이터 셋(Tusimple, CU-Lane)에서 빠른 Run-time과 효율성을 보여준다. 

 

간단한 전후 결과는 다음과 같다. 

 

[Method]

 

[Adaptive Lane Point Extraction]

 

먼저 딥러닝 모델에서 생성된 확률 맵 출력에서 차선 지점을 추출한다. Robustness와 낮은 Low-confidence 노이즈를 배제하기 위해 현재 프레임의 확률 맵 출력 Context에서, 차선 지점을 정확하게 탐지할 수 있는 동시에 적응형 신뢰 임계값을 초과하는 지점을 선택하여 두드러진(salient) 지점만 검색한다. 이 신뢰 임계값은 확률 맵 출력에서 가장 높은 신뢰 지점을 기반으로 조정된다. 탐지된 차선 표시에서 두드러진 점이 발견된 후 후속 $ \frac{h}{20}$ 개 행과 인접한 $\frac{w}{2}$열을 검색한다. 여기서 h는 확률 맵 출력의 높이를 나타내며, w는 확률 맵 출력의 너비이다.

 

우리는 주변 지점만 검색하여 Output의 다른 부분에서 노이즈를 제외하고 탐지된 salient 지점 주변에 검색 영역을 집중하여 처리시간을 단축한다. 검색 영역 내 차선에서 발견된 가장 높은 신뢰 지점을 차선 지점으로 사용한다. 

 

[Curved Lane Detection]

 

탐지된 차선은 곡선차선과 직선차선으로 나뉜다. 선형 모델을 이용하여 직선 차선에 대한 확률맵 결과내에 끊어진(or 검출되지 않은) 차선 가장자리를 개선하기 위해 다음과 같이 수행한다. 

 

직선 차선의 경우, noise의 영향을 줄이기 위해 최소 n =3개의 차선 지점이 필요하다. 곡선 차선의 경우 복잡성이 매우 크기 때문에 최소 값을 3n으로 정의한다. 두 범주를 구별하기 위해 결정 계수 $r^{2}$을 사용하여 점이 선형 모델에 얼마나 잘 맞는지 평가한다. 결정 계수는 선형 회귀 모델과 예측 변수로 설명할 수 있는 한, 변수의 분산 비율을 통해 측정한다. 

 

$r^{2} = \frac{[Cov(x,y)]^{2}}{Var(X)Var(Y)} $

 

X,Y는 탐지된 차선 점의 x 및 y 성분을 나타내는 랜덤변수이고, Cov(X,Y)는 X와 Y의 공분산, Var(X)는 X의 분산을 나타낸다. 전체 차선 표시와 상위 n개 지점이 없는 차선 표시 사이의 $r^{2}$을 비교한다. 만약 전체 차선 표시가 잘린 부분보다 $r^{2}$이 낮으면 차선 표시가 잘린 부분보다 선형 모델에 더 적합하지 않다는 것을 나타낸다. 이는 차례로 상위 n개의 차선 점이 곡선의 특징인 회귀선에서 더 멀리 떨어져 있음을 의미하며, 이 차선을 곡선 차선으로 표시한다. 반대로, 이 기준을 충족하지 않는 경우 직선 차선으로 표시한다. 탐지된 차선 표시에서 잘못된 곡선 예측을 줄이기 위해 현재 프레임의 곡선을 이전 프레임의 곡선으로 확증한다.

 

[Lane Construction]

 

예측된 곡선 차선에는 최종 차선 표시 출력을 형성하기 위해 2차 Spline으로 연결된 점이 있다. 직선 차선의 경우, 확률맵 출력에서 끊어진 차선 가장자리를 수정하고 다음 형식의 선형 모델을 기반으로 감지된 차선점을 고려하여 이상값을 제거하려고 한다. 

 

$(x_{i},y_{i})$ 는 i번째 탐지된 차선포인트의 x와 y좌표를 나타내고, $(\beta_{0},\beta_{1})$는 y-intercept와 line의 gradient를 나타내며, m은 탐지된 차선 points의 수이다. 

 

우리는 가중 최소 제곱 선형회귀를 적용하여 탐지된 차선점의 샘플을 기반으로 weighted least squared error 추정의 $\beta$와, $\hat{\beta}$을 얻는다. 우리의 방법은 딥러닝 모델의 확률 맵 출력에서 탐지된 각 차선 지점의 신뢰도로 가중치를 설정한다. 이것은 y좌표의 분산이 탐지된 차선 지점에 대한 x좌표 범위에서 일정하지 않기 때문에 heteroskedasticity 문제를 줄이기 위한 것이기도 하며, 탐지된 각 차선 지점 값에 대한 분산을 알수없고 해당 데이터세트에 대한 딥러닝 모델의 정확성과 같은 요인에 따라 달라지기도 한다.

 

이 문제를 해결하기 위해 더 높은 신뢰도 포인트가 더 정확하게 탐지되는 것으로 가정하므로, 분산이 작은 것이 오류가 더 적다고 할수 있다. 따라서, 출력 확률 맵에서 신뢰도가 높을수록 더 높은 가중치를 할당한다. 선형 모델에 대해 가중 제곱 오차항 $\left \| \epsilon ^{2} \right \|$을 최소화하는 해를 탐색한다. 여기서는 각 차선 점 예측에 대한 가중오차 항을 포함하는 벡터이며 다음과 같다. 

 

$c_{i}$는 i번째 탐지된 차선 포인트의 Confidence를 나타낸다. 탐지된 차선 sample points의 $\left \| \epsilon ^{2} \right \|$을 최소화 하기 위해 $\hat{\beta}$를 얻는다. 

$\hat{\beta}$로 부터, 우리는 weighted least squares error gradient와 추출된 직선차선 포인트의 y-intercept를 얻을 수 있다. 직선 차선 점 세트에서 오탐지 노이즈를 줄이기 위해 다른 점보다 회귀선에서 훨씬 더 멀리 떨어진 점인 특이치(Outlier)를 제거한다. 이 작업은 각 점과 회귀선 사이의 x 거리를 기반으로 한다. 이 단계를 통해, 직선 차선 표시 매개변수로 저장하는 회귀선에 대해 보다 정확한 최종결과를 얻을 수 있다. 이러한 차선 매개변수를 사용하여 딥러닝 모델 확률 맵 Output에서 탐지되지 않은 차선 가장자리로 인해 깨진(fragmentation) 차선 표시를 수정할 수 있다. 

 

[Tracking Preceding Frames]

 

날씨, 조명과 같은 도로 상태가 다양한 주행환경에서는 정확한 차선 탐지를 위해 현재 프레임의 정보가 부족할수 있다. 또한, 현재 프레임의 차선은 그림자, 열악한 도로상태 또는 가림으로 인해 가려지거나 저하 될수 있다. 이를 해결하기 위해 결과확률 맵에서 잘못 식별된 차선으로 인해 발생하는 왜곡을 최소화하기 위해 이전 프레임의 차선을 추적하고, 현재 프레임의 차선에 매핑하여 안정적이고 강력한 Active Lanes를 가정한다. 우리는 현재 프레임과 이전 프레임간의 RMS(Root-Mean-Squares) x-distance, $L(L_{1}, L_{2})$를 계산한다. 

 

L1, L2들은 두 차선 markings을 고려중인 차선을 의미한다. $x_{k}, a_{k}, b_{k}$ 들은 x-coordinate, gradient, $L_{k}$의 y-intercept를 의미한다.

 

$L(L_{1}, L_{2}) \leq \frac{h}{200}$ , 같은 차선으로 고려

 

* 만약 이전 프레임에 현재 차선과 일치하는 차선이 두 개 이상있는 경우 현재 차선을 가장 작은 L값을 가진 이전 차선과 일치시켜 현재 차선 표시가 이전 차선 하나에만 일치하도록 한다.

 

우리는 차선 표시를 추적하고 이전 프레임의 모양에 따라 가중치를 할당한다. 주행 환경의 변화에 견고하게 유지하면서 fading, shadows or occlusions과 같은 이유로 인해 일부 중간 프레임에서 차선이 감지되지 않더라도 차선 표시를 현재 프레임에 매핑하기 위해 수행한다. 

 

공식은 다음과 같으며, $\psi $은 가중치 증분 계수 (높을 수록 Active 차선), d는 차선 표시가 탐지된 이후 누락된 프레임 수, $C_{L}^{f}$는 F 프레임 안의 L 차선마킹 포인트에 대한 RMS 신뢰도, F는 모든 사전 그리고 현재 프레임 수로 정의된다.

 

딥러닝 모델 출력을 기반으로 잠재적인 데이터 활성 차선 표시를 식별하고, 우선순위를 통해 높은 값을 나타내는 차선표시들을 정렬한다. 또한, 차선 표시가 활성 차선 표시로 잘못 식별될 수 있으므로, 식별된 차선 표시 외에도 현재 프레임에 비활성 차선 표시를 저장한다. 그림 1(C)와 같이 False Positive lane markings로 인해 실제 활성 차선 표시가 비활성 차선표시로 잘못 분류될 수 있으므로 비활성 차선 표시도 존재한다. 비활성 차선 표시는 현재 이미지에서 식별된 차선 표시이므로 이를 기록하고 가중치를 할당하면 RONELD가 현재 차선 환경을 더 잘 이해하고 주행환경의 변화에 견고하게 유지하는데 도움이 된다.

 

현재 프레임을 처리한 후, $W_{L}$을 기준으로 차선 표시의 순위를 매긴다. 가장 높은 값으로 우리의 활성 차선에 대한 이미지의 왼쪽과 오른족 차선을 표시한다. 마지막으로, 차선 Marking 매개변수와 카메라의 외부 매개변수를 사용하여 최종 차선 표시 결과를 plot한다. 각각 직선 및 곡선 차선에 대해 선형모델과 2차 스플라인을 사용한다. 

 

[Experimental Results]

 

[Ablation Study]

 

Code to be released soon!

 

https://github.com/czming/RONELD-Lane-Detection

 

czming/RONELD-Lane-Detection

Python implementation of RONELD method (ICPR 2020) - czming/RONELD-Lane-Detection

github.com

https://arxiv.org/abs/2010.09548

 

RONELD: Robust Neural Network Output Enhancement for Active Lane Detection

Accurate lane detection is critical for navigation in autonomous vehicles, particularly the active lane which demarcates the single road space that the vehicle is currently traveling on. Recent state-of-the-art lane detection algorithms utilize convolution

arxiv.org

반응형