본문 바로가기
Vision

Complex-YOLO: Real-time 3D Object Detection on Point Clouds

by Hotbingsoo 2021. 9. 12.
반응형

Complex-Yolo

 

Complex-YOLO: Real-time 3D Object Detection on Point Clouds

Lidar based 3D object detection is inevitable for autonomous driving, because it directly links to environmental understanding and therefore builds the base for prediction and motion planning. The capacity of inferencing highly sparse 3D data in real-time

arxiv.org

 

 

Complex YOLO — 3D point clouds bounding box detection and tracking (PointNet, PointNet++, LaserNet…

Welcome to the final part of this multiple part series where we discuss five pioneering research papers for you to get started with 3D…

becominghuman.ai

CNN을 통해 비전분야에서 2D classification, object detection 등 비약적인 기술발전을 이뤘습니다. 정말 다양한 카메라 어플리케이션, 보안, 심지어 자율주행에서도 사용됩니다. 하지만 카메라를 이용하는 것 보다 보다 정밀하게 주변 환경을 '추정'이 아닌 '측정'을 하려는 노력이 계속 있어왔습니다. 특히 LiDAR로 부터 point cloud를 그대로 쓰거나 재가공해서 2D classification, 2D object detection을 3D로 확장하는 추세입니다. 

 

Complex-YOLO

3D data를 이용해 2D 인식을 3D로 확장한다는 것은 굉장히 자연스럽고 간단하게 들릴지 모르지만 Real-Time이라는 관점에서 많은 문제가 발생합니다. Convolution 비용이 큰 연산이고 2d 이미지에서도 빠르고 효율적으로 수행하기 위해 많은 노력이 필요했습니다. 이 연산을 단적으로 point cloud 데이터에 그대로 적용한다면 데이터 자체의 Sparsity, Distribution Irregularity,  Locality 등의 문제로 GPU에서 엄청난 비효율을 초래하게 됩니다. 이 문제를 Object Detection에서 성공적으로 해결한 연구가 Complex-YOLO입니다.

Complex-YOLO pipeline

위 그림은 Complex-YOLO의 pipeline입니다.

  1. LiDAR로 부터 수집된 pcl(3D)을 Bird-Eye-View RGB-map(2D)으로의 Conversion
  2. Con2D Bird-Eye-View 이미지의 Complex-YOLO를 통한 추론
  3. E-RPN을 이용한 angle regression

Complex-YOLO는 속도측면에서의 획기적인 발전을 아주 중요한 Contribution으로 말합니다. Paper 내에서도 자율주행에 있어서 accuracy와 efficiency 사이의 trade-off 에서 efficiency가 훨씬 중요하다고 합니다. 이를 가능하게 한 것이 MV3D(multi-view idea)의 컨셉의 차용입니다.

 

Point Cloud Preprocessing

Complex-YOLO는 Velodyne HDL64 모델의 센서로부터 가로 80m, 세로 40m 범위의 point cloud를 BEV(Bird-Eye-View) RGB-map 으로 변환해서 사용합니다. RGB-map은 height, intensity, density를 이용해 만들어집니다. Grid map \(\mathcal{S_{j}}\)는 1024x512로 약 8cm의 해상도로 만들어집니다.

$$ \mathcal{P}_{\Omega} = \{\mathcal{P}=[x,y,z]^{T} | x \in [0,40m], y\in[-40m,40m], z\in[-2m,1.25m]\} $$

$$ \mathcal{P}_{\Omega i\rightarrow j} = \{\mathcal{P}_{\Omega i} =[x,y,z]^{T}|\mathcal{S}_{j} = f_{\mathcal{PS}}(\mathcal{P}_{\Omega i},g) \} $$

 

Grid map이 생성되면 각각의 RGB 채널을 다음 수식과 같이 만듭니다.

$$ z_{g}(\mathcal{S_{j}}) = \mathrm{max}(\mathcal{P}_{\Omega i\rightarrow j}\dot[0,0,1]^{T})$$

$$ z_{b}(\mathcal{S_{j}}) = \mathrm{max}(I(\mathcal{P}_{\Omega i\rightarrow j}))$$

$$ z_{r}(\mathcal{S_{j}}) = \mathrm{min}(1.0,\mathrm{log}(N+1)/64)$$

이를 통해 \( z_{g}\)는 maximum height, \( z_{b}\)는 maximum intensity, \( z_{r}\)는 normalized density가 되게 됩니다. 이렇게 생성된 BEV RGB-map이 Complex-YOLO의 입력으로 들어가게 됩니다.

 

Architecture

Complex-YOLO Architecture

Complex-YOLO는 E-RPN(Euler Region Proposal Network)이 뒤에 붙은 YOLOv2라고 생각하시면 됩니다.

3x1024x512의 RGB-map을 입력으로 받고 출력으로 bounding box를 만드는 것이 최종 목표입니다. 

  • 5 priors per Cell
  • 6 parameters for Tx, Ty, Tw, Tl, Tim, Tre
  • 1 prior confidence score
  • 3 class(car, pedestrian, cycle) probability
  • 5 parameters for \(\mathcal{alpha}, Cx,Cy,Pw,Pl\)

cell 당 5개의 priors, 위치와 크기, 각도를 표현하는 6개의 파라미터, confidence score, 3개의 class에 대한 확률, 그리고 E-RPN 파라미터 5개까지 총 75(5(6+1+3+5))개의 feature를 계산해냅니다. 

Complex-YOLO Design

Euler Region Proposal Network(E-RPN)

3D Bounding box regression

E-RPN는 3D object의 위치 \(b_{x,y}\), 크기 \(b_{w},b_{l}\) 그리고 orientation \(b_{\phi}\) 를 얻어내기 네트워크입니다. 

$$  b_{x} = \sigma(t_{x})+c_{x} $$

$$ b_{y} = \sigma(t_{x})+c_{y}$$

$$ b_{w} = p_{w}e^{t_{w}}$$

$$ b_{l} = p_{l}e^{t_{l}}$$

$$ b_{\phi} = arg(|z|e^{ib_{\phi}})=arctan_{2}(t_{Im}, t_{Re})$$

Result

 

 

반응형

댓글