자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

WBOY
풀어 주다: 2023-06-02 15:42:14
앞으로
977명이 탐색했습니다.

자율주행 응용을 위해서는 궁극적으로 3D 장면을 인식하는 것이 필요합니다. 그 이유는 간단합니다. 인간 운전자도 이미지를 바탕으로 운전할 수는 없습니다. 물체와의 거리, 장면의 깊이 정보는 2차원 인식 결과에 반영될 수 없기 때문에 이 정보는 자율주행 시스템이 주변 환경을 정확하게 판단하는 데 핵심이 된다.

일반적으로 자율주행차의 시각 센서(예: 카메라)는 차체 위쪽이나 실내 백미러에 설치됩니다. 어디에 있든 카메라가 얻는 것은 투시도(세계 좌표계에서 이미지 좌표계로)에서 실제 세계를 투영하는 것입니다. 이 보기는 인간의 시각 시스템과 유사하므로 인간 운전자가 쉽게 이해할 수 있습니다. 그러나 투시도의 치명적인 문제는 물체의 크기가 거리에 따라 변한다는 것입니다. 따라서 인지 시스템은 영상에서 전방의 장애물을 감지할 때 차량과 장애물의 거리를 알 수 없으며, 장애물의 실제 3차원 형태와 크기도 알 수 없습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

이미지 좌표계(투시도) vs. 세계 좌표계(조감도) [IPM-BEV]

3D 공간에 대한 정보를 얻으려면 다음 중 하나를 선택하세요. 가장 직접적인 방법은 LiDAR를 사용하는 것입니다. 한편, LiDAR에서 출력된 3D 포인트 클라우드는 장애물의 거리와 크기(3D 객체 감지)는 물론 장면의 깊이(3D 의미론적 분할)를 얻는 데 직접 사용될 수 있습니다. 반면에 3D 포인트 클라우드는 2D 이미지와 융합되어 두 이미지가 제공하는 서로 다른 정보를 최대한 활용할 수도 있습니다. 포인트 클라우드의 장점은 정확한 거리와 깊이 인식이고 이미지의 장점은 더 풍부한 의미 정보입니다.

그러나 LiDAR에는 높은 비용, 자동차 등급 제품의 대량 생산이 어렵고 날씨의 영향이 더 크다는 등의 단점도 있습니다. 따라서 카메라에만 기반한 3차원 인식은 여전히 ​​매우 의미 있고 가치 있는 연구 방향이다. 이 기사의 다음 섹션에서는 단일 카메라와 듀얼 카메라를 기반으로 한 3D 인식 알고리즘을 자세히 소개합니다.

01

단안의 3D 인식

단일 카메라 이미지를 기반으로 3D 환경을 인식하는 것은 잘못된 문제이지만 일부 기하학적 제약과 사전 지식을 사용하여 이 작업을 완료하는 데 도움이 될 수 있으며 심층 신경 네트워크는 이미지 특징에서 3D 정보를 예측하는 방법을 엔드투엔드 학습하는 데에도 사용할 수 있습니다.

객체 감지

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

단일 카메라 3D 객체 감지(M3D-RPN의 사진)

이미지 역변환

앞서 언급했듯이 이미지는 실제의 것입니다 세계 3D 좌표를 2D 평면 좌표로 투영하므로 이미지에서 3D 객체 감지에 대한 매우 직접적인 아이디어는 2D 이미지를 3D 세계 좌표로 역변환한 다음 세계 좌표계에서 객체 감지를 수행하는 것입니다. 이론적으로 이것은 잘못된 문제이지만 몇 가지 추가 정보(예: 깊이 추정) 또는 기하학적 가정(예: 지상에 위치한 픽셀)을 사용하여 해결할 수 있습니다.

BEV-IPM [1]은 이미지를 투시도에서 조감도(BEV)로 변환하는 것을 제안합니다. 여기에는 두 가지 가정이 있습니다. 하나는 도로 표면이 세계 좌표계와 평행하고 높이가 0이라는 것이고, 다른 하나는 차량 자체 좌표계가 세계 좌표계와 평행하다는 것입니다. 전자는 노면이 평평하지 않을 때 만족하지 못하는 반면, 후자는 차량 자세 매개변수(Pitch and Roll)를 통해 보정할 수 있는데, 이는 실제로 차량 좌표계와 세계 좌표계의 Calibration이다. 이미지의 모든 픽셀이 실제 세계에서 높이가 0이라고 가정하면 호모그래피 변환을 사용하여 이미지를 BEV 뷰로 변환할 수 있습니다. BEV 뷰에서는 노면과 접촉하는 직사각형인 타겟의 하단 박스를 검출하기 위해 YOLO 네트워크 기반의 방법을 사용합니다. 하단 상자의 높이는 0이므로 신경망을 훈련하기 위해 GroudTruth로 BEV 뷰에 정확하게 투영될 수 있습니다. 동시에 신경망에서 예측된 상자도 거리를 정확하게 추정할 수 있습니다. 여기서 가정은 타겟이 도로 표면과 접촉해야 한다는 것입니다. 이는 일반적으로 차량 및 보행자 타겟에 충분합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

BEV-IPM

또 다른 역변환 방법은 OFT(Orthographic Feature Transform)를 사용합니다[2]. 아이디어는 CNN을 사용하여 다중 스케일 이미지 특징을 추출한 다음 이러한 이미지 특징을 BEV 뷰로 변환하고 마지막으로 BEV 특징에서 3D 객체 감지를 수행하는 것입니다. 먼저, BEV 관점에서 3D 그리드를 구축해야 한다(본 글에서 실험한 그리드 범위는 80m x 80m x 4m, 그리드 크기는 0.5m이다). 각 그리드는 원근 변환을 통해 이미지의 영역(간단히 직사각형 영역으로 정의)에 해당하며, 이 영역의 이미지 특징의 평균값을 그리드의 특징으로 사용하여 3차원 그리드 특성을 얻습니다. 계산량을 줄이기 위해 3차원 그리드 특징을 높이 차원에서 압축(가중평균)하여 2차원 그리드 특징을 구합니다. 최종 객체 감지는 2D 메쉬 기능에서 수행됩니다. 3D 그리드를 2D 이미지 픽셀에 투영하는 것은 일대일로 대응되지 않습니다. 여러 그리드가 인접한 이미지 영역에 대응하므로 그리드 특징이 모호해집니다. 따라서 감지할 물체가 모두 도로 위에 있고 높이 범위가 매우 좁다는 가정도 필요하다. 따라서 실험에 사용된 3D 그리드는 높이가 4m에 불과해 지상의 차량과 보행자를 덮기에 충분하다. 그러나 교통 표지판을 감지하려는 경우 물체가 지면에 가깝다고 가정하는 이 방법은 적용할 수 없습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Orthographic Feature Transform

위의 두 가지 방법은 물체가 지면에 있다는 가정을 기반으로 합니다. 또한 또 다른 아이디어는 깊이 추정 결과를 사용하여 의사 포인트 클라우드 데이터를 생성하는 것입니다. 대표적인 작업 중 하나가 Pseudo-LiDAR[3]입니다. 깊이 추정 결과는 일반적으로 추가 이미지 채널(RGB-D 데이터와 유사)로 처리되며, 이미지 기반 객체 감지 네트워크는 3D 객체 경계 상자를 생성하는 데 직접 사용됩니다. 저자는 기사에서 깊이 추정을 기반으로 한 3차원 객체 탐지의 정확도가 LiDAR 기반 방법보다 훨씬 떨어지는 주된 이유는 깊이 추정의 정확도가 부족해서가 아니라, 데이터 표현 방법. 첫째, 이미지 데이터에서는 멀리 있는 물체의 면적이 매우 작아서 멀리 있는 물체를 감지하는 것이 매우 부정확합니다. 둘째, 인접한 픽셀 간의 깊이 차이가 매우 클 수 있습니다(예: 객체의 가장자리). 이 경우 특징 추출을 위해 컨볼루션 작업을 사용하는 데 문제가 있습니다. 저자는 이 두 가지 점을 고려하여 깊이 맵을 기반으로 입력 이미지를 LiDAR에서 생성된 것과 유사한 포인트 클라우드 데이터로 변환한 다음 포인트 클라우드 및 이미지 융합 알고리즘(AVOD 및 F-PointNet 등)을 사용하여 이를 수행할 것을 제안했습니다. 3D 객체를 감지합니다. Pseudo-LiDAR 방법은 특정 깊이 추정 알고리즘에 의존하지 않으며 단안 또는 쌍안경의 모든 깊이 추정을 직접 사용할 수 있습니다. Pseudo-LiDAR는 이러한 특별한 데이터 표현 방식을 통해 30미터 범위 내에서 물체 감지 정확도를 22%에서 74%까지 높일 수 있습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Pseudo-LiDAR

실제 LiDAR 포인트 클라우드와 비교할 때 Pseudo-LiDAR 방법은 여전히 ​​3D 객체 감지 정확도에 일정한 격차가 있는데, 이는 주로 깊이 추정으로 인해 발생합니다. 이는 정확도가 부족하기 때문에(단안이 양안이 좋음) 특히 물체 주변의 깊이 추정 오류가 감지에 큰 영향을 미치기 때문에 발생합니다. 따라서 Pseudo-LiDAR 역시 그 이후로 많은 확장을 거쳤습니다. Pseudo-LiDAR++[4]는 저선 LiDAR을 사용하여 가상 포인트 클라우드를 향상합니다. Pseudo-Lidar End2End[5]는 인스턴스 분할을 사용하여 F-PointNet의 개체 프레임을 대체합니다. RefinedMPL [6]은 전경 지점에만 가상 포인트 클라우드를 생성하여 포인트 클라우드 수를 원본의 10%로 줄여 오검출 횟수와 알고리즘 계산량을 효과적으로 줄일 수 있습니다.

핵심 사항 및 3D 모델

자율 주행 응용 분야에서는 감지해야 하는 많은 대상(예: 차량, 보행자)의 크기와 모양이 상대적으로 고정되어 알려져 있습니다. 이러한 사전 지식을 활용하여 타겟의 3차원 정보를 추정할 수 있습니다.

DeepMANTA[7]는 이러한 방향의 선구적인 작품 중 하나입니다. 첫째, Faster RNN과 같은 전통적인 이미지 객체 감지 알고리즘을 사용하여 2D 객체 프레임을 획득하고 차량의 주요 지점도 감지합니다. 그런 다음, 이러한 2D 객체 프레임과 키 포인트를 데이터베이스에 있는 다양한 3D 차량 CAD 모델과 매칭하고, 유사도가 가장 높은 모델을 3D 객체 감지 출력으로 선택합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Deep MANTA

3D-RCNN[8]은 이미지를 기반으로 장면 내 각 타겟의 3D 형상과 자세를 복원하기 위해 Inverse-Graphics 방법을 사용할 것을 제안합니다. 기본 아이디어는 대상의 3D 모델에서 시작하여 매개변수 검색을 통해 이미지에서 대상과 가장 잘 일치하는 모델을 찾는 것입니다. 이러한 3D 모델은 일반적으로 제어 매개변수가 많고 검색 공간이 넓습니다. 따라서 기존 방법은 고차원 매개변수 공간에서 최적의 결과를 검색하는 데 좋은 결과를 얻지 못합니다. 3D-RCNN은 PCA를 사용하여 매개변수 공간(10-D)의 차원을 줄이고, 심층신경망(R-CNN)을 사용하여 각 대상의 저차원 모델 매개변수를 예측합니다. 예측된 모델 매개변수는 각 대상의 2차원 이미지나 깊이 맵을 생성하는 데 사용될 수 있으며, 이를 GroudTruth 데이터와 비교하여 얻은 Loss는 신경망의 학습을 가이드하는 데 사용될 수 있습니다. 이 손실을 렌더링 및 비교 손실이라고 하며 OpenGL을 기반으로 구현됩니다. 3D-RCNN 방식은 입력 데이터가 많이 필요하고 Loss의 설계가 상대적으로 복잡하여 엔지니어링에서 구현하기가 어렵습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

3D-RCNN

MonoGRNet [9]은 단안 3D 객체 감지를 4단계로 나누어 2D 객체 프레임, 3D 중심의 깊이를 예측하는 데 사용되는 방법을 제안합니다. 객체 및 3D 객체 중심의 2D 투영 위치와 8개 모서리 점의 3D 위치입니다. 먼저, 영상 속 예측된 2D 객체 프레임을 ROIAlign으로 연산하여 객체의 시각적 특성을 획득합니다. 그런 다음 이러한 특징을 사용하여 물체의 3D 중심 깊이와 3D 중심의 2D 투영 위치를 예측합니다. 이 두 가지 정보를 이용하여 물체의 3차원 중심점 위치를 얻을 수 있습니다. 마지막으로 3D 중심 위치를 기준으로 8개의 꼭지점의 상대적 위치를 예측합니다. MonoGRNet은 물체의 중심만을 핵심 포인트로 삼는다고 생각하면 되며, 2D와 3D의 매칭은 포인트 거리의 계산이다. MonoGRNetV2[10]는 중심점을 여러 핵심점으로 확장하고 깊이 추정을 위해 3D CAD 객체 모델을 사용하는데, 이는 이전에 소개된 DeepMANTA 및 3D-RCNN과 매우 유사합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

MonoGRNet

Monoloco[11]은 주로 보행자의 3D 감지 문제를 해결합니다. 보행자는 자세와 변형이 더욱 다양한 비강체 개체이므로 차량 감지보다 더 까다롭습니다. Monoloco는 또한 핵심 포인트 탐지를 기반으로 하며, 핵심 포인트의 상대적인 3D 위치를 선험적으로 깊이 추정에 사용할 수 있습니다. 예를 들어, 보행자의 어깨부터 엉덩이까지의 길이 50cm를 기준으로 보행자의 거리를 추정한다. 이 길이를 벤치마크로 사용하는 이유는 인체의 이 부분이 변형이 가장 적고 가장 높은 정확도로 깊이 추정에 사용될 수 있기 때문입니다. 물론, 심층 추정 작업을 완료하기 위해 다른 핵심 사항을 보조 자료로 사용할 수도 있습니다. Monoloco는 다층 완전 연결 네트워크를 사용하여 주요 지점 위치에서 보행자까지의 거리를 예측하는 동시에 예측의 불확실성도 제공합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Monoloco

요약하자면, 위의 방법들은 2D 이미지에서 핵심 포인트를 추출하고 이를 3D 모델과 매칭하여 타겟의 3D 정보를 얻는 것입니다. 이 유형의 방법은 대상이 상대적으로 고정된 형상 모델을 가지고 있다고 가정하므로 일반적으로 차량에는 적합하지만 보행자에게는 상대적으로 어렵습니다. 또한 이러한 유형의 방법을 사용하려면 2D 이미지에 여러 핵심 지점을 표시해야 하며 이 역시 시간이 많이 소요됩니다.

2D/3D 기하학적 제약

Deep3DBox[12]은 이러한 방향의 초기이자 대표적인 작업입니다. 3D 객체 프레임을 표현하려면 중심, 크기, 방향 등 9차원 변수가 필요합니다(3D 방향은 Yaw로 단순화될 수 있으므로 7차원 변수가 됩니다). 이미지 2D 객체 감지는 4개의 알려진 변수(2D 중심 및 2D 크기)를 포함하는 2D 객체 프레임을 제공할 수 있지만, 이는 7 또는 9 자유도로 변수를 해결하기에는 충분하지 않습니다. 이 세 가지 변수 세트 중 크기와 방향은 시각적 특징과 비교적 밀접한 관련이 있습니다. 예를 들어, 객체의 3차원 크기는 해당 카테고리(보행자, 자전거, 자동차, 버스, 트럭 등)와 밀접한 관련이 있으며, 시각적 특징을 통해 객체 카테고리를 예측할 수 있습니다. 중심점의 3차원 위치는 원근 투영으로 인한 모호성으로 인해 순수하게 시각적 특징만으로 예측하기 어렵습니다. 따라서 Deep3DBox는 먼저 2D 개체 상자 내의 이미지 기능을 사용하여 개체 크기와 방향을 추정할 것을 제안합니다. 그런 다음 2D/3D 기하학적 구속조건을 사용하여 중심점의 3D 위치를 해결합니다. 이러한 제약 조건은 이미지에 대한 3D 개체 프레임의 투영이 2D 개체 프레임에 의해 밀접하게 둘러싸여 있다는 것입니다. 즉, 3D 개체 프레임의 적어도 하나의 꼭지점은 2D 개체 프레임의 각 측면에서 찾을 수 있습니다. 이전에 예측된 크기와 방향을 카메라의 보정 매개변수와 결합하여 중심점의 3D 위치를 해결할 수 있습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

2D와 3D 개체 프레임 사이의 기하학적 제약 조건(참조 [9]의 그림)

2D/3D 제약 조건을 사용하는 이 방법에는 매우 정확한 2D 개체 프레임 감지가 필요합니다. Deep3DBox 프레임워크에서는 2D 객체 프레임의 작은 오류로 인해 3D 객체 프레임 예측이 실패할 수 있습니다. Shift R-CNN [13]의 처음 두 단계는 Deep3DBox와 매우 유사합니다. 2D 객체 상자와 시각적 특징을 통해 3D 크기와 방향을 예측한 다음 기하학적 제약을 통해 3D 위치를 해결합니다. 그러나 Shift R-CNN은 처음 두 단계에서 얻은 2D 개체 프레임, 3D 개체 프레임 및 카메라 매개 변수를 입력으로 결합하고 완전히 연결된 네트워크를 사용하여 보다 정확한 3D 위치를 예측하는 세 번째 단계를 추가합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Shift R-CNN

2D/3D 기하학적 제약조건을 사용할 때 위의 방법들은 모두 초제약 방정식 세트를 풀어 물체의 3D 위치를 구하는데, 이 과정은 후처리 단계는 신경망 내에 있지 않습니다. Shift R-CNN의 첫 번째 단계와 세 번째 단계도 별도로 훈련됩니다. MVRA[14]는 이 초제약 방정식의 솔루션 프로세스를 네트워크에 구축하고 이미지 좌표의 IoU 손실과 BEV 좌표의 L2 손실을 각각 설계하여 객체 프레임의 오류와 거리 추정의 오류를 측정하여 엔드투엔드를 완료하는 데 도움을 줍니다. 훈련을 종료합니다. 이러한 방식으로 물체의 3D 위치 예측 품질은 이전 3D 크기 및 방향 예측에도 피드백 효과를 줍니다.

3D 객체 프레임을 직접 생성

모두 2D 이미지에서 시작하기 전에 소개된 세 가지 방법, 일부는 이미지를 BEV 보기로 변환, 일부는 2D 핵심 포인트를 감지하여 3D 모델과 일치, 일부 기하학적 제약 2D 및 3D 개체 프레임을 사용합니다. 또한, 조밀한 3D 객체 후보부터 시작하여 2D 이미지의 특징을 기반으로 모든 후보 프레임에 점수를 매기는 방식도 있습니다. 점수가 높은 후보 프레임이 최종 출력이 됩니다. 이 전략은 객체 감지의 기존 슬라이딩 윈도우 방법과 다소 유사합니다.

Mono3D[15]는 이러한 방식의 대표적인 제품입니다. 먼저, 대상의 이전 위치(z 좌표는 지상)와 크기를 기반으로 조밀한 3D 후보 상자를 생성합니다. KITTI 데이터세트에서는 프레임당 약 40K(차량) 또는 70K(보행자 및 자전거) 후보 상자가 생성됩니다. 이러한 3D 후보 상자가 이미지 좌표에 투영된 후 2D 이미지의 특징에 따라 점수가 매겨집니다. 이러한 기능은 의미론적 분할, 인스턴스 분할, 컨텍스트, 모양 및 위치 사전 정보에서 비롯됩니다. 이러한 모든 특징을 결합하여 후보 상자에 점수를 매긴 다음 점수가 더 높은 것을 최종 후보로 선택합니다. 그런 다음 이러한 후보자는 최종 3D 객체 프레임을 얻기 위한 다음 채점 라운드를 위해 CNN을 통과합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Mono3D

M3D-RPN[16]은 앵커 기반 방법입니다. 이 메서드는 각각 2D 및 3D 개체 프레임을 나타내는 2D 및 3D 앵커를 정의합니다. 2D 앵커는 이미지에 대한 조밀한 샘플링을 통해 획득되고, 3D 앵커의 매개변수는 훈련 세트 데이터에서 얻은 사전 지식을 기반으로 결정됩니다. 구체적으로, 각 2D 앵커는 IoU에 따라 이미지에 표시된 2D 객체 프레임과 매칭되고, 해당 3D 객체 프레임의 평균값을 사용하여 3D 앵커의 매개변수를 정의합니다. M3D-RPN에서는 표준 컨볼루션 작업(공간 불변성 포함)과 깊이 인식 컨볼루션이 모두 사용된다는 점을 언급할 가치가 있습니다. 후자는 이미지의 행(Y 좌표)을 여러 그룹으로 나눕니다. 각 그룹은 서로 다른 장면 깊이에 해당하며 서로 다른 컨볼루션 커널에 의해 처리됩니다. ㅋㅋㅋ 앵커는 아직 촘촘한 샘플링을 기반으로 하기 때문에 필요한 계산량이 매우 많아 실용성에 큰 영향을 미칩니다. 검색 공간을 더욱 줄이기 위해 2차원 이미지에 대한 탐지 결과를 사용하는 일부 후속 방법이 제안되었습니다.

TLNet[17]은 2차원 평면에 Anchor를 촘촘하게 배치합니다. 앵커 간격은 0.25미터, 방향은 0도와 90도, 크기는 타겟의 평균입니다. 이미지에 대한 2차원 감지 결과는 3차원 공간에서 여러 개의 뷰 콘을 형성하며, 이러한 뷰 콘을 통해 배경에 있는 많은 수의 앵커를 필터링할 수 있으므로 알고리즘의 효율성이 향상됩니다. 필터링된 앵커는 이미지에 투영되고 ROI 풀링 후에 얻은 특징은 3D 객체 프레임의 매개변수를 더욱 구체화하는 데 사용됩니다. 자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

TLTNet

SS3D [18]은 CenterNet 구조와 유사한 네트워크를 사용하여 이미지에서 다양한 2D 및 3D 정보를 직접 출력하는 보다 효율적인 단일 단계 감지를 사용합니다. , 개체 범주, 2D 개체 프레임, 3D 개체 프레임 등이 있습니다. 여기서 3D 객체 프레임은 일반적인 9D 또는 7D 표현이 아니라(이 표현은 이미지에서 직접 예측하기 어렵습니다) 이미지에서 예측하기가 더 쉽고 거리를 포함하여 더 많은 중복성을 포함하는 2D 표현입니다. .(1-d), 방향(2-d, sin 및 cos), 크기(3-d), 8개 꼭지점의 이미지 좌표(16-d). 2D 개체 상자의 4D 표현과 결합하면 총 26D 기능이 됩니다. 이러한 모든 특징은 3D 객체 프레임을 예측하는 데 사용됩니다. 예측 프로세스는 실제로 26D 특징과 가장 잘 일치하는 3D 객체 프레임을 찾는 것입니다. 특별한 점은 이 해결 과정이 신경망 내부에서 수행되므로 미분 가능해야 한다는 것입니다. 이 점 역시 이 기사의 주요 하이라이트입니다. 간단한 구조와 구현의 이점을 활용하여 SS3D는 20FPS의 속도로 실행될 수 있습니다.

SS3D

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

FCOS3D[19] 역시 단일 단계 탐지 방법이지만 SS3D보다 간결합니다. 3D 객체 프레임의 중심을 2D 영상에 투영하여 2.5D 중심(X, Y, 깊이)을 구하는데, 이는 회귀의 목표 중 하나로 사용됩니다. 또한 회귀 대상에는 3D 크기와 방향도 포함됩니다. 여기서 방향은 각도(0-pi) + 방향의 조합으로 표시됩니다.

FCOS3D자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

SMOKE[20]도 CenterNet과 유사한 구조를 통해 이미지에서 2D 및 3D 정보를 직접 예측하는 유사한 아이디어를 제안했습니다. 2D 정보에는 영상 상의 객체의 핵심점(중심점, 모서리점)의 투영 위치가 포함되고, 3D 정보에는 중심점의 깊이, 크기, 방향 등이 포함됩니다. 영상의 위치와 중심점의 깊이를 통해 물체의 3차원 위치를 복원할 수 있습니다. 그런 다음 각 모서리 지점의 3D 위치를 3D 크기 및 방향을 통해 복원할 수 있습니다.

위에 소개된 단일 단계 네트워크의 아이디어는 복잡한 전처리(예: 이미지 역변환) 및 후처리(예: 3D 모델 매칭) 없이 이미지에서 3D 정보를 직접 반환하는 것입니다. 정확한 기하학적 제약 조건도 없습니다(예를 들어 3D 개체 프레임의 모서리 점이 2D 개체 프레임의 각 측면에서 하나 이상 발견될 수 있습니다). 이러한 방법은 다양한 유형의 객체의 평균 실제 크기 및 2D 객체의 크기와 깊이 간의 결과적 일치성과 같은 소량의 사전 지식만을 사용합니다. 이러한 사전 지식은 객체의 3D 매개변수의 초기 값을 정의하며, 신경망은 실제 값과의 편차만 회귀하면 되므로 검색 공간이 크게 줄어들어 네트워크 학습의 어려움이 줄어듭니다.

깊이 추정

이전 섹션에서는 단안 3D 개체 감지의 대표적인 방법을 소개했습니다. 아이디어는 초기 이미지 변환, 3D 모델 매칭 및 2D/3D 기하학적 제약 조건부터 이미지 예측 3D 정보를 통한 최근 직접까지 다양합니다. 이러한 사고의 변화는 주로 심도 추정 분야의 컨볼루션 신경망의 발전에서 비롯됩니다. 이전에 소개된 대부분의 단일 단계 3D 객체 감지 네트워크에는 깊이 추정 분기가 포함되어 있습니다. 여기서의 깊이 추정은 조밀한 픽셀 수준이 아닌 희소한 목표 수준에서만 이루어지지만 객체 감지에는 충분합니다.

자율주행 인식에는 객체 감지 외에도 의미론적 분할이라는 또 다른 중요한 작업이 있습니다. 의미론적 분할을 2D에서 3D로 확장하는 가장 직접적인 방법은 조밀한 깊이 맵을 사용하여 각 픽셀의 의미 및 깊이 정보를 사용할 수 있도록 하는 것입니다.

위의 두 가지 점을 바탕으로 단안 깊이 추정은 3D 인식 작업에서 매우 중요한 역할을 합니다. 이전 섹션에서 3D 객체 감지 방법을 소개한 것과 유사하게 완전 컨벌루션 신경망을 조밀한 깊이 추정에 사용할 수도 있습니다. 아래에서는 이 방향의 현재 개발 상황을 소개하겠습니다.

단안 깊이 추정의 입력은 이미지이고, 출력도 이미지(일반적으로 입력과 동일한 크기)이며, 그 위의 각 픽셀 값은 입력 이미지의 장면 깊이에 해당합니다. 이 작업은 의미론적 분할이 각 픽셀의 의미론적 분류를 출력한다는 점을 제외하면 이미지 의미론적 분할과 다소 유사합니다. 물론, 입력은 비디오 시퀀스일 수도 있으며, 깊이 추정의 정확성을 향상시키기 위해 카메라나 객체 모션에서 가져온 추가 정보를 사용합니다(비디오 의미론적 분할에 해당).

앞서 언급했듯이 2D 이미지에서 3D 정보를 예측하는 것은 잘못된 문제이므로 기존 방법에서는 기하학적 정보, 동작 정보 및 기타 단서를 사용하여 손으로 디자인한 특징을 통해 픽셀 깊이를 예측합니다. 의미론적 분할과 유사하게 추정의 정확도를 높이기 위해 슈퍼픽셀(SuperPixel)과 조건부 무작위 필드(CRF)의 두 가지 방법이 사용되는 경우가 많습니다. 최근 몇 년 동안 심층 신경망은 다양한 이미지 인식 작업에서 획기적인 발전을 이루었으며 깊이 추정도 예외는 아닙니다. 많은 연구를 통해 심층 신경망이 직접 디자인한 기능보다 훈련 데이터를 통해 우수한 기능을 학습할 수 있다는 것이 나타났습니다. 이 섹션에서는 주로 지도 학습을 기반으로 한 방법을 소개합니다. 그 밖에 양안 시차 정보, 단안 듀얼 픽셀(Dual Pixel) 차이 정보, 비디오 모션 정보 등을 활용한 비지도 학습 아이디어에 대해서는 나중에 소개하겠습니다.

이 방향의 초기 대표적인 작업은 Eigen et al.이 제안한 전역 및 로컬 단서 융합에 기반한 방법입니다. 단안 깊이 추정의 모호함은 주로 글로벌 규모에서 비롯됩니다. 예를 들어 기사에서는 실제 방과 장난감 방이 이미지상으로는 매우 다르게 보일 수 있지만 실제 피사계 심도는 매우 다르다고 언급했습니다. 이는 극단적인 예이지만 실제 데이터세트에는 방과 가구 크기의 변화가 여전히 존재합니다. 따라서 본 방법에서는 영상 전체에 대한 묘사 특징을 얻기 위해 영상에 대해 다계층 콘볼루션과 다운샘플링을 수행하고, 이를 활용하여 전역 깊이를 예측하는 것을 제안한다. 그런 다음 다른 로컬 분기(상대적으로 높은 해상도)를 사용하여 로컬 이미지의 깊이를 예측합니다. 여기서 전역 깊이는 로컬 깊이 예측을 돕기 위해 로컬 분기에 대한 입력으로 사용됩니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

글로벌 및 지역 정보 융합 [21]

문학 [22]은 다양한 해상도의 깊이 맵을 예측하기 위해 컨볼루셔널 신경망에서 출력된 다중 스케일 특징 맵을 사용하는 것을 추가로 제안했습니다( [21]에는 단 두 가지 해상도가 있습니다). 이러한 서로 다른 해상도의 특징 맵은 연속 MRF를 통해 융합되어 입력 이미지에 해당하는 깊이 맵을 얻습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

다중 규모 정보 융합 [22]

위의 두 기사는 모두 컨볼루션 신경망을 사용하여 깊이 맵을 반환하는 것입니다. 또 다른 아이디어는 회귀 문제를 분류 문제로 변환하는 것입니다. 연속된 깊이 값을 불연속적인 간격으로 나누고, 각 간격은 카테고리 역할을 합니다. 이 방향의 대표적인 작품은 DORN [23]이다. DORN 프레임워크의 신경망도 코딩 및 디코딩 구조이지만 완전 연결 레이어 디코딩, 특징 추출을 위한 확장 컨볼루션 사용 등 세부 사항에는 약간의 차이가 있습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

DORN 깊이 분류

앞서 언급했듯이 깊이 추정은 의미론적 분할 작업과 유사하므로 수용 필드의 크기도 깊이 추정에 매우 중요합니다. 위에서 언급한 피라미드 매듭과 확장된 컨볼루션 외에도 최근 인기 있는 Transformer 구조는 전역 수용 필드를 가지므로 이러한 작업에 매우 적합합니다. 문헌[24]에서는 예측의 로컬 정확도와 전역 일관성을 동시에 보장하기 위해 Transformer와 다중 스케일 구조를 사용하는 것이 제안되었습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Transformer for Dense Prediction

02

Bincular 3D Perception

영상에서 사전 지식과 상황 정보를 활용할 수 있지만 정확한 단안 3D 인식이 가능합니다. 완전히 만족스럽지는 않습니다. 특히 딥러닝 전략을 사용할 때 알고리즘의 정확성은 데이터 세트의 크기와 품질에 따라 크게 달라집니다. 데이터 세트에 나타나지 않은 장면의 경우 알고리즘은 깊이 추정 및 객체 감지에서 큰 편차를 갖습니다.

양안시는 관점 변환으로 인한 모호함을 해소할 수 있어 이론적으로는 3차원 인식의 정확도를 향상시킬 수 있습니다. 그러나 쌍안경 시스템은 하드웨어 및 소프트웨어 측면에서 상대적으로 높은 요구 사항을 가지고 있습니다. 하드웨어적인 측면에서는 정확하게 등록된 카메라 두 대가 필요하며, 차량 운행 중에 등록의 정확성이 보장되어야 합니다. 소프트웨어 측면에서 보면 알고리즘은 두 대의 카메라의 데이터를 동시에 처리해야 하며 계산 복잡성이 높고 알고리즘의 실시간 성능을 보장하는 것이 더욱 어렵습니다.

일반적으로 단안 시지각에 비해 양안 시지각에 관한 작품은 상대적으로 적습니다. 몇 가지 대표적인 기사를 선정하여 아래에 소개하겠습니다. 또한 Tesla가 AI Day에서 시연한 360° 인식 시스템과 같이 다목적을 기반으로 하지만 시스템 응용 수준에 편향된 작품도 있습니다.

객체 감지

3DOP[25]는 먼저 듀얼 카메라의 이미지를 사용하여 깊이 맵을 생성하고 깊이 맵을 포인트 클라우드로 변환한 다음 이를 그리드 데이터 구조로 양자화하고 이를 입력으로 사용하여 3D 객체를 생성합니다. 후보자. 후보를 생성할 때 일부 직관과 사전 지식이 사용됩니다. 예를 들어 후보 상자에 있는 포인트 클라우드의 밀도가 충분히 크고, 높이가 실제 객체와 일치하며, 상자 외부의 포인트 클라우드와의 높이 차이가 충분히 큽니다. , 후보 상자와 여유 공간 간의 중첩이 충분합니다. 이러한 조건을 통해 3차원 공간에서 최종적으로 약 2K개의 3차원 객체 후보가 샘플링된다. 이러한 후보를 2D 이미지에 매핑하고 ROI Pooling을 통해 특징 추출을 수행하여 객체 범주를 예측하고 객체 프레임을 세분화합니다. 여기에 입력되는 이미지는 카메라의 RGB 이미지이거나 깊이 맵일 수 있습니다.

일반적으로 2단계 탐지 방법입니다. 첫 번째 단계에서는 깊이 정보(포인트 클라우드)를 사용하여 객체 후보를 생성하고, 두 번째 단계에서는 이미지 정보(또는 깊이)를 사용하여 추가 미세화를 수행합니다. 이론적으로 포인트 클라우드 생성의 첫 번째 단계도 LiDAR로 대체할 수 있으므로 저자는 실험적인 비교를 수행했습니다. LiDAR의 장점은 거리 측정이 정확하기 때문에 작은 물체, 부분적으로 가려진 물체, 멀리 있는 물체에 더 잘 작동한다는 것입니다. 양안시의 장점은 포인트 클라우드 밀도가 높아 근거리에서 장애물이 적고 물체가 상대적으로 클 때 더 잘 작동한다는 것입니다. 물론 비용과 계산 복잡도를 고려하지 않고 이 둘을 통합하면 최상의 결과를 얻을 수 있을 것이다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

3DOP

3DOP는 이전 섹션에서 소개한 Pseudo-LiDAR[3]과 비슷한 아이디어를 가지고 있습니다. 포인트 클라우드로 변환한 후 포인트 클라우드 객체 감지 분야의 알고리즘을 적용합니다.

이미지에서 깊이 맵을 추정한 다음 깊이 맵에서 포인트 클라우드를 생성하고 마지막으로 포인트 클라우드 객체 감지 알고리즘을 적용합니다. 이 프로세스의 각 단계는 개별적으로 수행되며 엔드투엔드 학습은 수행되지 않습니다. 가능한. DSGN [26]은 BEV 뷰에서 3D 표현을 생성하고 깊이 추정과 객체 감지를 동시에 수행하기 위해 Plane-Sweep Volume과 같은 중간 표현을 사용하여 왼쪽과 오른쪽 이미지에서 시작하는 단일 단계 알고리즘을 제안했습니다. 이 프로세스의 모든 단계는 미분 가능하므로 엔드투엔드(end-to-end) 학습이 가능합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

DSGN

사실, 객체 학습을 위해서는 장면의 모든 위치에서 깊이 정보를 얻을 필요가 없지만, 관심 지점의 위치를 ​​추정하는 것으로 충분합니다. 이전에도 단안 알고리즘을 소개할 때 비슷한 아이디어가 언급되었습니다. Stereo R-CNN [27]은 깊이 맵을 추정하지 않지만 RPN 프레임워크 아래 두 카메라의 특징 맵을 함께 쌓아 객체 후보를 생성합니다. 여기서 왼쪽 및 오른쪽 카메라의 정보를 함께 연결하는 핵심은 주석 데이터의 변경입니다. 아래 그림과 같이 왼쪽, 오른쪽 라벨박스 외에 왼쪽, 오른쪽 라벨박스의 Union도 추가되어 있습니다. 왼쪽 또는 오른쪽 상자에서 IoU가 0.7을 초과하는 앵커는 Positive 샘플로 사용되며, Union 상자에서 IoU가 0.3 미만인 앵커는 Negative 샘플로 사용됩니다. Positive's Anchor는 왼쪽 및 오른쪽 레이블 상자의 위치와 크기를 동시에 반환합니다. 이 방법에서는 개체 프레임 외에도 모서리 점을 보조 수단으로 사용합니다. 이 모든 정보를 사용하여 3D 개체 프레임을 복원할 수 있습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

Stereo R-CNN

은 전체 장면에 대해 조밀한 깊이 추정을 수행하며 이는 객체 감지에 나쁜 영향을 미칠 수도 있습니다. 예를 들어, 객체 가장자리와 배경의 중첩으로 인해 깊이 추정 편차가 크고, 전체 장면의 깊이 범위가 넓으면 알고리즘 속도에도 영향을 미칩니다. 따라서 [28]에서는 Stereo RCNN과 유사하게 관심 객체에서만 깊이를 추정하고 객체에 대한 포인트 클라우드만 생성하는 방법을 제안하였다. 이러한 객체 중심의 포인트 클라우드는 최종적으로 객체의 3차원 정보를 예측하는 데 사용됩니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

객체 중심 스테레오 매칭

깊이 추정

단안 인식 알고리즘과 마찬가지로 깊이 추정도 양안 인식의 핵심 단계입니다. 이전 섹션의 양안 객체 감지에 대한 소개에서 판단하면 장면 수준 깊이 추정 및 객체 수준 깊이 추정을 포함한 많은 알고리즘이 깊이 추정을 사용합니다. 다음은 양안 깊이 추정의 기본 원리와 여러 대표적인 연구에 대해 간략하게 검토한 것입니다.

양안 깊이 추정의 원리는 실제로 매우 간단합니다. 즉, 왼쪽과 오른쪽 이미지의 동일한 3D 지점 사이의 거리 d를 기반으로 합니다(두 카메라가 동일한 높이를 유지한다고 가정하면 수평 방향이 고려됨), 카메라 초점 거리 f와 두 카메라 사이의 거리 B(기준선 길이)를 사용하여 3D 점의 깊이를 추정합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

쌍안경 시스템에서는 f와 B가 고정되어 있으므로 시차인 거리 d만 추정하면 됩니다. 각 픽셀에 대해 해야 할 일은 다른 이미지에서 일치하는 지점을 찾는 것뿐입니다. 거리 d의 범위가 제한되어 있으므로 일치하는 검색 범위도 제한됩니다. 가능한 각 d에 대해 각 픽셀의 일치 오류를 계산할 수 있으므로 비용 볼륨이라는 3차원 오류 데이터가 얻어집니다. 일치 오류를 계산할 때 일반적으로 픽셀 근처의 로컬 영역이 고려됩니다. 가장 간단한 방법 중 하나는 로컬 영역의 모든 해당 픽셀 값의 차이를 합산하는 것입니다.

MC-CNN[29]은 두 이미지 패치의 유사성을 계산하여 매칭 프로세스를 공식화하고 신경망을 통해 이미지 패치의 특성을 학습합니다. 데이터에 레이블을 지정하면 훈련 세트를 구성할 수 있습니다. 각 픽셀에서 포지티브 샘플과 네거티브 샘플이 생성되며, 각 샘플은 한 쌍의 이미지 패치입니다. 포지티브 샘플은 동일한 3D 포인트(동일한 깊이)의 두 이미지 블록이고 네거티브 샘플은 서로 다른 3D 포인트(다른 깊이)의 이미지 블록입니다. 음성 샘플에는 다양한 선택 사항이 있습니다. 양성 샘플과 음성 샘플 간의 균형을 유지하기 위해 무작위로 하나만 샘플링됩니다. 양성 및 음성 샘플을 사용하여 신경망을 훈련하여 유사성을 예측할 수 있습니다. 여기서 핵심 아이디어는 감독 신호를 사용하여 신경망이 일치하는 작업에 적합한 이미지 특징을 학습하도록 안내하는 것입니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

MC-CNN

MC-Net에는 주로 두 가지 단점이 있습니다. 1) 비용 볼륨 계산은 로컬 이미지 블록에 의존하며, 이는 텍스처가 적거나 반복되는 일부 텍스처에서 발생할 수 있습니다. 패턴 영역은 큰 오류를 가져옵니다. 2) 후처리 단계는 수동 설계에 의존하므로 시간이 많이 걸리고 최적성을 보장하기 어렵습니다. GC-Net[30]은 이 두 가지 점을 개선했습니다. 먼저 의미론적 특징을 더 잘 추출하기 위해 왼쪽 이미지와 오른쪽 이미지에 대해 다층 컨볼루션 및 다운샘플링 작업을 수행합니다. 각 시차 수준(픽셀 단위)에 대해 왼쪽 및 오른쪽 특징 맵을 정렬(픽셀 오프셋)한 후 접합하여 해당 시차 수준의 특징 맵을 얻습니다. 모든 시차 수준의 특징 맵을 병합하여 4D 비용 볼륨(높이, 너비, 시차, 특징)을 얻습니다. 비용 볼륨에는 단일 이미지의 정보만 포함되며 이미지 간 상호 작용은 없습니다. 따라서 다음 단계는 3D 컨볼루션을 사용하여 Cost Volume을 처리하여 왼쪽과 오른쪽 이미지 간의 관련 정보와 서로 다른 시차 수준 간의 정보를 동시에 추출할 수 있도록 하는 것입니다. 이 단계의 출력은 3D 비용 볼륨(높이, 너비, 시차)입니다. 마지막으로 최적의 시차값을 얻기 위해서는 시차차원에서 Argmin을 찾아야 하는데 표준 Argmin을 도출할 수 없다. Soft Argmin은 GC-Net에서 파생 문제를 해결하는 데 사용되므로 전체 네트워크를 end-to-end로 학습할 수 있습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

GC-Net

PSMNet[31]은 GC-Net과 구조가 매우 유사하지만 두 가지 측면에서 개선되었습니다. 1) 피라미드 구조와 아트러스 컨볼루션을 사용하여 추출 다중 해상도 정보를 제공하고 수용 영역을 확장합니다. 글로벌 기능과 로컬 기능의 융합 덕분에 비용 규모 추정도 더욱 정확해졌습니다. 2) 여러 개의 중첩된 Hour-Glass 구조를 사용하여 3D 컨볼루션을 향상합니다. 글로벌 정보의 활용도가 더욱 높아집니다. 일반적으로 PSMNet은 글로벌 정보 활용을 개선하여 픽셀 수준의 로컬 정보보다는 다양한 규모의 컨텍스트 정보에 더 의존하는 시차 추정을 수행했습니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

PSMNet

Cost Volume에서 시차 수준은 불연속적입니다(픽셀 단위). 신경망이 학습하는 것은 이러한 개별 지점의 비용 분포이며, 분포의 극단 지점은 현재 위치의 시차 값에 해당합니다. 그러나 시차(깊이) 값은 실제로 연속적이어야 하며, 이를 추정하기 위해 불연속적인 점을 사용하면 오류가 발생합니다. CDN에서는 연속 추정 개념을 제안하고 있다[32]. 불연속 점과 오프셋이 함께 연속적인 불일치 추정치를 형성합니다.

자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석

CDN

위 내용은 자율주행을 위한 3D 시각 인식 알고리즘의 심층 해석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿