3D Object Detection 논문

3DVP: Data-Driven 3D Voxel Patterns for Object Category Recognition 리뷰 - 미완...

연구자H 2021. 1. 27. 16:32

cvpr2015에 published된 3D object detection 논문입니다. monocular.point-cloud,Fusion 방법 중 monocular방식에 해당하는 방식입니다. 

 

본 논문에서 새로운 객체 표현(object representation)인 3D voxel pattern(3DVP)를 제안합니다. 

 

이  3DVP에는 object의  key property(appearance, 3D shape, view point, occlusion, truncation 정보)를 encoding 되어있습니다.

 

 

3DVPs are abstract 3D represenations that capture patterns of visibility of an object category.

 

the visibility of an object instance is represented by a 3D voxel exemplar. which is a triplet of the 2D image of the object, its 2D segmentation mask and its 3D voxel model.

 

training stage, we obtain 3D voxzel exemplars in a data-driven approach. then we build a representative set of 3DVPs by clustering 3D voxel exemplars according to their visibility pattern. Finally, we specialized to detect objects with specific visibility patterns.

 

 

 

1. 3D Voxel Exemplars from data

 

3D voxel은 물체의 appearance, 3D shape, occlusion mask를 갖는다.

3D CAD model을 web에서 얻어온다. 2D image와 3D CAD model을 통해 3D voxel exemplar을 얻는다.

 

카메라 파라메터를 이용하여 3D CAD model을 이미지에 투영시켜 depth ordering mask를 얻는다.

 

2.Discovering 3DVP

 

3DVP는 유사한 visibility patterns을 갖는 3D Voxel exemplars을 대표한다. 3D space 상에서 3D voxel exemplar에 clustering 알고리즘을 적용하여 3DVP를 구할 수 있다. 

이를 위해 두 3D voxel examplar간의 similarity score을 계산해야한다. 밑의 식이 similarity score를 구하는 식이다.

두개의 feature vector x1,x2의 similarity를 구하는 식이다.

vector의 각 요소들이 같을 때. 그 voxel의 status가 무엇인지(empty, visible,self-occluded, occluded by other object, truncated)에 따라 다른 weight를 곱해준다. 각 status에 weight를 어떻게 할당해주냐에 따라 두 3D voxel exemplar가 비슷하다의 정의가 달라질수 있다.

예를 들어 5가지 상태에 모두 같은 같은 weight를 할당해줄수도 있고, 만약 occluded voxel에 더 큰 weight를 할당해준다면, 유사한 occluded region을 갖는 3D voxel exemplar들이 더 grouping 될 것이다. 

 

어떤 clustering 알고리즘을 사용할 것인가.

논문에는 두가지 clustering 알고리즘이 소개된다. K-means Affinity Propagation. 

 

3. Learning 3DVP Detectors

 

본 논문에서는 각 3DVP에 연관된 2D 이미지를 함께 사용하여 detector을 training 시켰다.

Our framework is general to integrate different classifiers in training the detectors, such as support vector machines or boosting.

 

2D bounding box에 occluder을 포함시켜 학습을 통해 occluder와 occludee간의 pattern을 학습하게 만들었다. 

 

 

 

4. Occlusion Reasoning with 3DVPs.

모든 3DVP detector들을 training 시킨 후, input 이미지에서 2D bounding box를 얻을 수 있다. 

detection한 object에 3DVP의 meta-data(2d segmentation mask, 3D pose, 3D shape)을 전송해줄수있다.

이 meta data는 global occlusion reasoning을 할수있게 해준다.

 

we design our occlusion reasoning model using an energy-based conditional random field model,

 

 

 

꽤 괜찮은 방법이라고 생각하지만 논문 내용이 엄청 추상적?인 것 같은 인상을 받았습니다. 아직 제가 많은 논문을 읽어보지 않아서 그렇게 생각하는 것일수도 있구요. 구현된 코드를 보고싶은데 matlab으로 구현되어있는 공식 코드가 있습니다. 저는 아직 matlab코드가 익숙치 않아서 코드까지 보진 않았습니다. 

 

3D CAD를 적용하는 방법이 꽤 괜찮다고 생각합니다. 또한 occlusion 된 부분을 추정하면서 detection 성능을 높인 아이디어도 제가 보기엔 괜찮아보입니다.