아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다.
읽은 논문들 정리
[목차]지속적으로 업데이트 중, 번호는 모델발전 순서가 아닌 읽은 순서에 따라 정렬.1. Computer Vision 분야 논문Classification 모델들의 발전Detection 모델들의 발전Segmentation3D 처리2. Natural Language Process
april2901.tistory.com
이번 논문은 StreetSurf라는 논문이다.
자율주행 데이터셋들을 보면 NeRF, 3DGS같은 기술과는 다르게 물체를 카메라가 한 바퀴 빙 둘러 모든 방면의 사진을 찍는 것이 아니다.
차가 움직이는 그 궤적에서 찍기 때문에 관측 각도가 제한적이다.
또 NeRF, 3DGS는 물체나 장면 하나에 적용되기 때문에 대상까지의 거리가 유한한 반면, 자율주행 데이터셋은 하늘처럼 거리가 무한한 대상들이 있다.
이 논문은 이런 문제점을 해결하는 방법을 제안한다.
기술 1 : 장면의 3단계 분할
공간을 아래처럼 3가지 종류로 나눠 렌더링한다.
가까운 곳 : 수 미터~수십미터. 건물,도로 등 정밀한 표면이 필요하다. (cr로 표시, close-range)
먼 곳 : 수백미터 ~ 수천미터. 표면보다는 외관이 중요하다. (dv로 표시, distant-view)
하늘 : 무한히 먼 곳.
이 각 구역마다 적용하는 모델이 다르다.
가까운 곳에는 NeuS,
먼 곳에는 NeRF++
하늘에는 Directional MLP를 사용한다.
각각의 광선에 대해 3개의 모델에서 나온 값을 더해 렌더링하게 된다.
먼저 가까운 곳부터 먼곳까지 순서대로 정렬한다.
${t_1^{(cr)}, \dots, t_{n_{cr}}^{(cr)}, t_1^{(dv)}, \dots, t_{n_{dv}}^{(dv)}}$
아래 식에서 $T_i$는 빛이 해당 $i$번째 지점까지 살아서 도달할 확률이 된다.
$\alpha$는 불투명도이다.

총 3가지의 예측값을 계산할 수 있다.
$\hat{O}^{(cr,dv)}(r)$ : 누적 불투명도로 광선이 물체에 부딪혀 차단될 총 확률이다.

$\hat{D}^{(cr,dv)}(r)$ : 카메라로부터 물체까지의 평균 거리를 구한다. $t_i$는 깊이(거리)를 얘기한다.

$\hat{C}^{(cr,dv)}(r)$ : 통합된 색상을 얘기한다.

이 값들을 사용해서 최종적으로 아래와 같은 식이 나온다.
하늘 전까지의 근거리,원거리 점에서 불투명도가 1이 되지 않았다면 남은 불투명도는 하늘의 색깔로 채운다.
하늘이 없다면 그냥 통합된 색상만 가져온다.

기술 2 : 공간의 모양에 맞는 그리드 설계

Cuboid Space
기존 모델들은 정육면체 모양으로 공간을 모델링 했는데, 길을 따라 움직이는 자율주행 공간은 낮고 길기 때문에 적합하지 않다.
따라서 기존 방식처럼 구형이나 정육면체형이 아닌 직육면체형으로 공간을 구성했다.
자율주행 차량의 궤적에 맞게 근거리 공간을 길고 좁은 직육면체인 AABB(Axis-Aligned Bounding Box)로 설정했다.
주행 방향에 맞춰 좌표계를 정렬해서 도로의 방향과 직육면체의 긴 부분을 일치시킨다.
만약 주행경로가 휘어져 있더라도 전체를 최소로 감싸는 직육면체가 된다.
Cuboid Hash-grids
각 지점의 특징을 저장하기 위해 근거리에서 사용하는 grid이다.
이 해시 그리드의 비율을 AABB의 크기 비율과 맞게 한다.
즉, 각 그리드도 AABB와 같은 비율의 직육면체가 된다.
Hyper-cuboid Distant-view Model
원거리에 사용되는 모델이다.
NeRF++의 아이디어가 확장되어 사용되었다.
근거리 직육면체 상자 바깥으로 더 큰 직육면체 상자들을 양파 껍질처럼 배치한다.
샘플링 되는 점들은 껍질과 껍질 사이에 위치한다.
이 껍질들은 멀어질수록 껍질 사이의 간격을 키워 효율적으로 사용될 수 있게 한다.
inverse Cuboid Warping이라는 방법을 사용해 무한한 거리의 공간을 직육면체 상자 안의 값으로 바꿔 넣는다.
inverse Cuboid Warping라는 방법은 거리의 역수를 사용해 유한하게 바꾼다.
이렇게 하면 거리가 무한이더라도 $1/r$을 통해 0이라는 유한한 수치로 바뀐다.
결과적으로는 ($x',y',z', 1/r$)이라는 4차원 점이 되어 4D Hyper cuboid hash grid라는 상자에 쌓이게 된다.
각 점의 좌표도 거리로 나눠 얻어진다. ($x' = x/r$)
최종적으로 위에서 얘기했듯, (근거리의 점들)+(4차원 상자안의 점들)에 대해 렌더링한다.
Road-surface Initialization
초기화를 할 때 도로의 모양대로 초기화하는 방식을 사용한다.
차량의 주행 궤적을 수평으로 확장한 뒤에 차 높이 만큼 아래로 내린 지점을 도로표면으로 간주하고 학습시킨다.
Entropy Regularization Loss
근거리 모델이 어디까지 근거리인지를 확실히 알 수 있게 해준다.
아래 식을 통해 $\hat{O}^{(cr)}$가 0.5같은 반투명한 상태가 되는것을 막고 0,1로 확실히 정해지도록 한다.

Optional sky model and sky mask loss
하늘 마스크가 있다면, 근거리/원거리 모델이 하늘의 영역을 침범하지 못하도록 BCE 손실을 사용한다.
만약 마스크가 없다면, SegFormer라는 모델을 써서 하늘을 찾아낸다.
이 방식의 장점은 하늘 마스크가 없어도 어느정도 하늘을 잘 찾아낼 수 있다는 것이다.
손실함수들
Photometric loss
광학손실로 렌더링된 이미지와 실제 원본 이미지가 시각적으로 같게 만든다.
geometry loss
라이다가 있다면 라이다의 센서값을 GT로 취급해 깊이값의 로그를 손실로 삼는다.
라이다가 없다면 외부 모델로 추정한 법선과 깊이를 가이드로 사용해 계산한다.
optional sky mask loss
방금 위에서 얘기했던 것처럼 mask가 있을 경우 BCE를 사용해 손실을 계산한다.
Entropy regularization loss
위에서 얘기한 근거리 모델의 범위를 정하는데 사용되는 값이다.
Eikonal loss
SDF의 기울기가 1이 되도록 한다.
이전에 다른 리뷰 글에서 한번 언급이 되었었던 것 같은데 모델과 현실의 거리 비율을 1:1로 맞추는 작업이다.
Sparsity regularization loss
카메라 시야에 잡하지 않아 안보이는 빈 공간에 가짜 물체가 생기지 않도록 밀도를 억제한다.
$S(x)$는 근거리 모델에서 특정 지점 $x$의 SDF값이다. 표면이면 0을 가진다.
NLD함수는 $x=0$,즉 표면일 때 분모가 1이 되어 최댓값을 가진다.
$x$가 커질수록 분모가 커지면서 함수는 0에 가까워진다.

ai는 손실을 줄이는 것이 목적이기 때문에 허공에 물체를 만들더라도 손실함수 값만 작아지면 그렇게 동작하게 되는데,
이 식은 정답이 확인되지 않은 곳이라면 웬만해서는 빈 공간으로 남기게 한다.
최종적으로는 아래와 같은 식을 얻는다.

Implementation details
이 논문은 이상하게 수식들이 논문에 있어도 뭔가 구체적으로 와닿지 않는 느낌인데, 아래 그림이 꽤 이해하기 편하게 되어있다.

(a)방식 : NGP방식으로 물체가 있을 것으로 예상되는 지점에만 점을 찍어 빠른 연산속도를 가져왔지만 샘플의 밀도가 부족하다는 단점이 있다.
(b)방식 : NeuS방식은 광선을 따라 모든 지점에 샘플을 잡고 표면 근처에서 샘플을 더 촘촘히 만드는 업샘플링을 한다.
정확도가 올라갔지만 연산량이 너무 많다.
(c)방식 : 이 논문에서 제시한 방식으로 위의 두 방법을 합쳤다.
빈 공간은 샘플링하지 않으며 관심있는 부분의 업샘플링을 통해 장점을 가져왔다. 또 업샘플링의 밀집도(더 촘촘히)가 증가했다.
모델은 초기화 이후 이미지(GT)를 통한 학습을 진행하며 SDF함수가 점차 사물의 형태에 맞게 바뀐다.
이 함수가 예측한 위치정보를 주기적으로 점유그리드에 복사한다.
이 점유그리드의 정보를 통해 물체가 있을 만한 곳에 집중적 샘플링을 한다.
이를 통해 더 자세하게 공간의 구조를 알 수 있고 다시 그리드를 업데이트하는 과정을 반복한다.
그리드가 점점 정확해지므로 빈 공간을 샘플링을 점차 안하게 되고 따라서 효율이 좋아진다.
이러한 셀프 피드백 학습을 bootstrap방식이라고 한다.

위 그림을 보면 점차 공간의 구조를 잡아가는 모습을 볼 수 있다.
현실 고려 사항
카메라의 위치 정보는 gps오차등으로 인해 부정확할 수 있다.
따라서 카메라의 위치 값을 기존 센서 값을 그대로 쓰는게 아니고 학습가능한 파라미터를 하나 붙였다.
또 각 프레임마다 같은 물체여도 조명 등에 의해 색이 다를 수 있기 때문에,
프레임마다 이런 조명정보를 담는 appearance embedding벡터를 만들었다.
데이터 및 평가
이 모델은 웨이모 데이터셋을 사용했다.
움직이는 차량이 적고, 시야 방해요소가 없고, 악천후인 상황은 제외하고 32개의 시퀀스를 골라 벤치마크를 만들었다.
테스트에는 차량 얖쪽의 3개의 카메라 이미지만을 사용했다.
기하학적 평가지표
두 가지의 지표가 있다.
라이다의 데이터를 간접 정답으로 취급해 모델이 만든 3D세상과 비교했다.
Chamfer distance라는 지표는 포인트 클라우드 사이의 거리 평균을 잰다.
깊이 RMSE라는 지표도 있다.
모델이 예측한 깊이와 실제 라이다 센서의 거리값의 차이를 제곱해 평균 낸 뒤 루트를 씌운 값이다.
정리
이 모델의 입력과 출력은 아래와 같다.
<입력>
여러 카메라에서의 각 프레임별 RGB이미지
카메라 파라미터들
(선택적) 라이다 데이터
(선택적) sky 마스크
<출력>
전체 3D구
SDF기반 3D매쉬
자유 시점의 이미지
Depth map
움직이는 객체가 아닌 정적 배경을 복원하느데 집중했다.
<도입 기술 및 아이디어>
직육면체 해시 그리드
근거리/원거리/하늘 분리
도로 지면 초기화
bootstrap 샘플링
카메라포즈 보정, appearance embedding
'AI > 컴퓨터비전(CV)' 카테고리의 다른 글
| [CV 논문] HUGSIM: A Real-Time, Photo-Realistic and Closed-Loop Simulator for Autonomous Driving (1) | 2026.04.20 |
|---|---|
| Waymo 데이터셋을 직접 전처리해서 street gaussian학습/평가해보기 (2) | 2026.04.17 |
| [CV 논문] UniSim: A Neural Closed-Loop Sensor Simulator (0) | 2026.04.10 |
| Street-gaussian 학습환경 세팅 & 학습시켜보기 (0) | 2026.04.09 |
| [CV 논문] Street Gaussians: Modeling Dynamic Urban Scenes with Gaussian Splatting (2) | 2026.04.08 |