Computer Vision은 컴퓨터가 이미지, 비디오 등과 같은 시각 데이터에서 정보를 추출하고 인식하는 데 사용하는 기술이다. 이 기술은 분류(Classification), 객체 탐지(Object Detection), 분할(Segmentation) 등 다양한 실세계 문제를 해결하기 위해 연구되고 있으며 자율주행, 의료, 얼굴 인식 등 활용되는 분야도 다양하다. 이번 글에서는 Monocular Camera 데이터를 기반으로 한 3D 객체 탐지 문제와 이 문제를 해결하기 위한 방법론에 대해 알아본다.
1. Monocular Camera
데이터를 수집하는 센서 중에서 radar, camera, LiDAR(Light Detection And Ranging)는 3D 객체 탐지를 목적으로 널리 사용되고 있는 센서 종류이다. 이 중 카메라 센서는 가격이 저렴하고 접근이 쉬우며 데이터가 갖는 의미를 이해하기 쉽다는 장점이 있다. 하지만 날씨나 시간대에 따라 데이터의 품질이 영향을 많이 받고, 3D 공간을 잘 표상할 수 없다는 단점을 갖는다.
스테레오 카메라를 사용하거나 여러 대의 카메라를 사용한다면 앞선 단점을 조금은 보완할 수 있지만, 특히 단안 카메라(monocular camera)를 사용했을 때는 3D 공간에서 충분한 깊이 정보를 얻기가 어렵다. 이러한 특징을 갖는 단안 카메라 데이터에서 객체의 3D 공간 상 위치를 찾기 위한 연구는 크게 1) image-only, 2) depth-assisted, 3) prior-guided 세 개 방식으로 나뉜다.
2. Image-Only Monocular 3D Object Detection
3D 객체 탐지 문제에서 예측해야 하는 것은 3D cuboid로, 다음과 같이 표기할 수 있다.
아래 첨자 c와 함께 표기된 x, y, z는 3D cuboid의 중심 좌표, l, w, h는 각각 cuboid의 길이, 너비, 높이를 뜻한다. theta 값은 cuboid가 향하고 있는 각도(yaw angle), class는 해당 객체가 어떤 카테고리에 속하는지를 의미한다.
Image-only 방식들은 대부분 별도의 전처리나 후처리 없이 end-to-end로 학습이 가능하여 간단하고 효율적이지만 3D 객체의 깊이 정보 오류가 심한 편이다.
2.1. Single-stage anchor-based methods
앵커(anchor)는 여러 크기와 종횡비(Aspect Ratio)를 조합하여 미리 정의한 여러 개의 박스로, 객체 탐지 모델에서 객체의 bounding box를 예측할 때 사용한다. 이 방법론에서는 이미지 내 각 픽셀 [u, v]에 대해 2D와 3D 앵커 박스 그리고 깊이 앵커가 미리 정의되어 있다.
이미지는 합성곱 신경망(Convolutional Neural Network)을 통과하면서 앵커 박스에 기반하여 2D 박스와 3D 박스 정보를 예측하게 된다.
이러한 앵커 기반 프레임워크를 제안한 연구로 M3D-RPN(Brazil and Liu)가 있다.
2.2. Single-stage anchor-free methods
이 방법은 앵커 박스의 도움 없이 3D 객체의 여러 값들을 예측한다. 이미지가 2D 합성곱 신경망을 통과하는 것은 같으나, 신경망에 각 값을 예측하기 위한 여러 개의 헤드가 붙는다. 객체의 카테고리를 예측하는 category head, 객체의 중심 좌표를 예측하는 keypoint head, 중심 좌표 위치 조정값을 예측하는 offset head, 깊이 값을 예측하는 depth head, 객체의 크기를 예측하는 size head, 객체가 향하는 방향 각도를 예측하는 orientation head를 포함한다.
관련 모델로는 CenterNet(Zhou et al.), FCOS3D(Wang et al.) 등이 있다.
2.3. Two-stage methods
제목과 같이 이번에는 두 단계로 나뉘어 객체 검출이 진행되는데, 첫 번째 단계에서는 2D 검출 모델을 통해 이미지로부터 2D 박스를 생성한다. 두 번째 단계에서는 전체 이미지에서 예측한 관심영역(Region of Interest)만 잘라내 3D 객체의 속성 값들을 예측하고, 이 값들을 사용해 2D 박스를 3D 공간으로 올린다.
2-Stage 2D 객체 탐지 모델과 유사한 구조를 띄는 유형으로, Faster R-CNN을 확장하여 만든 ROI-10D(Manhardt et al.)가 이에 속한다.
3. Depth-Assisted Monocular Object Detection
단안 3D 객체 탐지 문제를 해결하는 데 있어 가장 중요한 문제인 깊이 추정을 보완하기 위해서 많은 연구들은 깊이 추정을 할 수 있는 보조 네트워크를 미리 학습시킨 후 사용하고 있다. 이 방식은 pre-training 네트워크가 필요하다는 점에서 비용이 발생하고 end-to-end가 어렵다는 단점이 있다. 또한, 미리 학습한 정보가 목표로 하는 데이터셋에 일반화가 잘 될거라고 장담할 수도 없다.
3.1. Depth-image based methods
아래 그림과 같이 RGB 이미지 네트워크와 미리 학습해 둔 depth 이미지 네트워크, 두 개의 백본 네트워크를 사용하는 경우가 많다. 두 네트워크에서 얻은 정보를 융합하면 깊이에 대한 정보가 포함된 이미지 특징을 얻을 수 있다. 이는 더 정교하고 정확한 3D bounding box를 예측하기 위해 사용된다.
3.2. Pseudo-LiDAR based methods
이 방법은 depth image를 pseudo-LiDAR 점군 데이터로 변환한다. 실제 LiDAR 센서로부터 점군 데이터를 수집하는 것이 아니라, depth 이미지로부터 점군 데이터를 추출하여 사용한다. 그리고 LiDAR-based 검출 모델을 사용해서 점군으로부터 3D 객체를 예측한다.
4. Prior-Guided Monocular 3D Object Detection
사전에 제공되는 정보(prior knowledge)는 보조 네트워크를 통해서 또는 추가 정보나 조건을 통해서 객체의 위치를 더 정확하게 예측하도록 도울 수 있다. 사전 정보의 종류는 네 가지가 있다.
4.1. Object Shapes
이미지로부터 3D 객체의 모양을 재구성하여 객체의 위치를 결정하는 데 활용한다. 1) computer-aided design(CAD) 모델, 2) wireframe 모델, 3) signed distance function(SDF), 4) points, 5) voxels 총 다섯 종류의 재구성 도안이 있다. 모양 재구성 네트워크를 학습해야 하므로 단계가 추가된다는 점, CAD와 같은 모델링 데이터로 학습한 네트워크가 실세계 인스턴스에 일반화하기 어렵다는 점이 단점으로 작용할 수 있다.
4.2. Geometric consistency
2D 이미지의 픽셀 좌표계와 3D 포인트 좌표계 간의 기하학적 관계를 이용해서 두 박스 간 일관성을 높인다. 기하학 조건은 1) 2D-3D boxes consistency, 2) keypoints, 3) object’s height-depth relationship, 4) inter-objects relationship, 5) ground plane constraints 가 있다. 이는 꽤나 범용적으로 적용이 가능하고 검출 정확도 향상에 도움이 되지만 작업 과정에서 시간이 다소 소요될 수 있다.
4.3. Temporal Constraints
이미지들의 시퀀스에서 추출한 시간적 관계성을 이용하여 객체 트래킹 및 위치 탐지의 정확도를 높인다.
4.4. Segmentation
분할 마스크는 각 인스턴스의 3D 모양을 재구성하는 데 유용한 정보를 제공하여 중요한 역할을 한다. 하지만 segmentation 모델 학습을 위한 픽셀 어노테이션은 많은 비용이 필요하다.