[Abstract]

이 논문에서는 3D LiDAR와 하나의 카메라의 기하 정보를 조합해 자동차 앞에 있는 도시의 도로 검출하는 방법을 제안한다. 이 방법의 장점은 3D LiDAR의 정확성과 도로의 연속성이다. 처음에는 LiDAR 데이터의 효과적인 표현과 2D 역 depth map을 얻는다. (3D LiDAR 포인트를 카메라 이미지 평면에 사영) 새로운 표현 방법을 이용하면 도로의 중간 표현을 얻을 수 있다. (정규화된 역 depth map의 vertical, horizontal histogram 추출) 근사된 도로 구역을 히스토그램 기반 방법으로 빠르게 찾을 수 있다. 근사된 도로 구역으로부터 더 정확하게 구역을 찾기 위해서 이 논문에서는 row and column scanning 방법을 제안한다.

[1] Introduction

이미지 기반의 검출 방법은 빛에 따라 결과가 달라진다. 특히 학습되지 않은 경우에는 LiDAR가 꼭 필요하다. 그러나 LiDAR만 사용하는 경우에는 point cloud가 매우 sparse하고 체계가 없다는 단점이 있다. 따라서 이 점들을 reorganize 하는 과정이 필요하다.

원래는 3D LiDAR 점들을 이미지 평면에 사영시키는데, 그 사영은 sparse하므로 interpolation을 이용하여 dense하게 만든다. 그러나 이 논문에서는 Delaunay Triangulation 기반의 선형 평면 interpolation을 이용하여 dense한 역 depth map을 만든다. 그리고 이를 이용하여 horizontal histogram과 vertical histogram을 만드는데, horizontal histogram에서 도로 평면은 직선으로 사영된다. 반면 vertical histogram에서는 각 행마다 normalized inverse depth가 다르기 때문에 도로 픽셀의 누적 점수가 작다. 이 논문에서는 coarse to fine road detection 전략을 따랐는데, histogram은 이 coarse한 정보를 얻는 데에만 사용되었다. (기존의 다른 histogram을 사용한 방법에서는 이를 histogram에서 바로 예측하기 때문에 parameter setting에 노력이 많이 든다.)

보행로와 도로의 구별이 쉽지 않은데, 이미지 평면의 기하적 특성을 사용하여 위 문제를 해결하기 위해 row and column scanning 전략을 사용하였다. 그리고 높이 차이 임계값을 설정하여 둘을 구분할 수 있다.

서베이 논문에서 말하는 최근 트렌드는, 하나의 센서(only 카메라, 스테레오 카메라, LiDAR)를 이용하는 방법과 여러 센서를 이용하는 방법이다.

하나의 카메라를 이용하는 방법은 보통 분류기를 학습하여 사용한다. 그러나 이런 방법들은 노이즈가 낄 경우 정확하지 않을 수 있다. 스테레오 카메라를 사용하는 방법은 disparity map을 사용한다. 그러나 이런 방법은 dense한 stereo matching을 사용하기 때문에 매우 시간이 오래 걸린다. 또한 마찬가지로 노이즈가 낄 경우 정확한 거리 예측이 어렵고, 연석을 구별하기도 어렵다. 반대로 3D LiDAR의 경우 더 정확한 거리 측정이 가능하다.

하나의 센서를 이용하는 방법의 단점을 극복하기 위해 여러 센서를 동시에 사용하는 방법들도 있다. 이 논문에서도 카메라와 LiDAR를 이용하는데, 여기서 기하적 특성만 뽑아낸다. 여기서 색 정보와 질감 정보 등이 더 추가될 수 있다.

[3] The Approximate Road Region Detection by Histograms of the Normalized Inverse Depth

이 방법은 세 가지의 단계로 이루어져 있는데, [A]와 [B], [4]가 그 단계이다.

[A] The Fusion of LiDAR and Camera

LiDAR와 카메라 정보를 합칠 때 dense한 3D 정보를 얻기 위해서 Delaunay Triangulation 방법이 사용되었는데, normalized inverse depth map, height map($z$ axis), depth map($x$ axis), width map($y$ axis)가 만들어진다.

[B] The Maps of Vertical and Horizontal Histograms for Rough Road Detection

normalized inverse depth map은 stereo vision에서의 disparity map과 같도록 만들었다. horizontal과 vertical histogram은 normalized inverse depth map에서 각 열과 행에 값이 $t$인 값이 몇개가 있는지 세어 만든다.

vertical histogram에서의 픽셀 수가 threshold보다 작으면 그 픽셀들은 도로에 해당한다고 예측한다. horizontal histogram에서는 도로 구역이 선형적인 구조로 표현되기 때문에, 선형 구조가 나타난다면 도로 평면으로 구분할 수 있다. 이 선은 가장 밑 행에서의 가장 많은 픽셀이 있는 점에서부터 시작해서 한 줄씩 올라가며 그보다 왼쪽에 있는 최대 개수의 픽셀이 있는 점으로 점점 올라가면 된다.

이론상으로는 horizontal histogram에서 검출된 선을 가지고 바로 3D point cloud를 만들 수 있지만, 도로는 완벽한 평면이 아니기 때문에 margin을 지정해서 도로인 픽셀의 disparity 범위를 정한다. 만약 이 범위보다 $d(m, n)$이 작으면 더 멀리 있는 것이므로 negative obstacle이고, 이 범위보다 $d(m, n)$이 크면 가까이 있는 것이므로 positive obstacle이다. 이 범위에 $d(m, n)$이 있다면 도로로 판정한다.

이렇게 범위를 정해서 판별하면 잘못 판별될 확률이 높으므로, 이 논문에서는 horizontal histogram 결과를 먼저 구하고, 그렇게 검출된 픽셀들에 한해서 vertical histogram 방법을 적용해서 최종 결과를 만든다.

[4] The Row and Column Line Scanning for Road Region Refinement

더 정확하게 도로를 검출하기 위해 line scanning을 사용한다. 이 방법은 도로 구역으로 검출된 영역에서만 수행하는데, 도로 영역에서만 reference point를 선택하고, 장애물의 영향을 줄이기 위해서이다.

[A] The Height Difference

reference point와의 높이 차이가 threshold보다 크면 도로가 아니고, 그보다 작으면 도로로 검출한다.

[B] The Reference Point Selection

reference point의 선택은 결과에 중요한 영향을 미친다. 이 reference point들은 도로가 확실한 영역에서 선택되어야 한다. 이 reference point selection을 위해 row and column scanning이라는 방법이 사용된다.

[C] The Row Scanning

row scanning은 가운데에서 시작해서 왼쪽과 오른쪽으로 진행되고, 도로가 아닌 점을 만날 때 종료된다. 각 row에서의 맨처음 reference point의 선택이 매우 중요한데, 따라서 도로임이 확실한 point여야 한다. 맨 처음 row의 첫 reference point는 그 row에서 가장 가운데에 있는 점으로 정하고, 그 이후 row에서는

으로 정한다. 만약 이렇게 예측된 점이 도로 영역에 포함되지 않는다면(앞에 차가 있는 경우 등) 같은 row의 가장 가까운 점을 첫 reference point로 정한다.

그 후 좌우로 탐색하는데, 노이즈의 영향을 줄이기 위해 도로가 아닌 점이 연속적으로 나오면 탐색을 중지한다.

[D] The Column Scanning

column scanning의 경우에는 row scanning에서의 결과를 가지고 해당 column의 가장 밑 픽셀부터 scanning을 시작한다.

[E] The Row and Column Scanning

row scanning은 장애물이 있을 때 더 먼 곳까지 발견하지 못하고, column scanning은 첫 reference point가 정확하지 않으면 도로 검출에 실패할 수도 있다. 따라서 이 둘의 방법을 섞는데, row scanning 결과를 기반으로 하고, column scanning 결과로 보충한다. row 와 column scanning에서의 boundary를 계산한 후, threshold를 넘는 개수의 연속된 세로 점들을 찾아서 row scanning 결과를 보충한다. 이후 median blur를 사용한 후 가장 큰 connection을 찾아 최종 결과로 사용한다.