ObjectNet3D是一个大型数据库,用于3D物体识别(从2Dimages中识别出3D物体)
把图片中的二维物体用3D shape(包含3D pose和the closest 3D shape,即3d物体某一角度的投影与2d图形重合,也就是知道了3d物体的姿态和形状,同时投影也将2d图形的边界标记出来了)标记出来
从2D图片中识别出3D location、pose、shape是计算机视觉的一个核心问题。(应用:机器人、无人驾驶、增强现实)
对于三维物体识别的诸多方法,均受益于各种给2D图形提供3D标注的数据库。(比如:用3D点云、3D CAD 模型来align 2D图形),通过这些提供的3d信息,可以用监督学习的方法来进行3d物体属性的识别。
大型的2D数据库对于2D图片的识别等方面有很大的帮助,类比于此,3D数据库对于3D的处理应该也是十分重要的。
因此论文作者提出建立大规模3d数据库----ObjectNet3D
包含物体类别、2D images、images中的物体、3D shape
()
而且,通过3d形状刻意渲染出任意数量的人造图片,同样可以用来帮助3d物体的识别。【1】
用3D shape标记2D物体:
1. 挑选出与2D物体相似的3D shape,但是让标注器每次都全扫描3d形状库不具有可行性。
解决:用这些3d形状渲染出的人造图片,用深度度量学习方法来对3d形状进行特征提取。从而对于一个2d图像中的物体可以只检索排名靠前的几个与它相似度大的3d形状(top K)
2. 在标记时确定3d物体的姿态是很容易出错的
相关工作:
1. 带视角的数据集
通常规模较小,视角粗分,场景简单。
而本文数据库可以对于网络上的真实图片给出连续的视角标注
2. 带深度或3d点云的数据集:
本文的数据库用3d形状来标记2d图像中的对象,信息更加丰富,元数据转为2d图像
3. 带2d-3d匹配的数据集
本文的数据库更多的物体种类、每个类别中更多3d形状且2d 物体与3d匹配更加精确
上述各种类型的数据集之间的对比:
数据库建设
方法:利用现存的图片数据仓库和3d图形仓库利用一定的方法进行匹配。
1. 物体类别
本文只考虑固定类别的物体(100种),从网上获取相关的3d shapes。对于像动物这种带关节的可变形的物体类别,需要对应的带关节的可变形的3d shapes来与之匹配。
2. 2d图像的获取
根据那100种物体类型,寻找相应的图片(从图片仓库中找,没有的从谷歌图片中爬取),物体的出现有时会呈现出一定的规律(如共同出现,某些场景中会包含什么物体等)
3. 3d 形状的获取
(1) 手动的挑选每个类别下子类的代表性3d形状并对于每个3d shape手动的挑选特征点(来自Trimble3D Warehouse)
(2) 扩充3d shapes数量(来自ShapeNet)
4. 相机模型
世界坐标系O、相机坐标系C,二者之间的旋转变换(旋转矩阵R和转换向量T是相机的外参数,相机内参数:焦距f、视角大小、u,v),即相机的投影矩阵M,这一系列参数明确了2d物体和3D形状匹配。
5. 标注过程
(1) 在图像中对每个物体都标出2d边框
(2) 通过这些边框与最相似的3d shapes进行匹配
(3) 用相机模型对进行2d-3d匹配,通过调整相机模型中的6个可变参数,使3d shape的投影与2d物体吻合程度最优(人为的调整,有一个可人为操作的界面)
6. 3D 形状检索
靠手工匹配是不可行的,所以提出了3D 形状检索方法,即利用人造图片来学习特征表示(只用人造图片来进行特征表示,使得同一个3d shapes生成的图片可以归为同一类)
然后对于一个给出的2d物体,对N个3d shapes与它进行距离计算D(距离计算方法:把某个3d shapes表示成该3d shape生成的人造图片的一个序列S,然后取距离的平均值)为了使人造图片更接近于真实图片,我们为它添加了背景和不同的光照【1】。
实验
四个不同的任务:生成物体辨别、2d物体探测、joint 2D detection and 3D pose estimation、基于图片的3d形状检索
1. 物体识别
DNNs对物体的识别的发展起到了很大的作用(预处理,减少图片的搜索空间),评价region proposal的标准是,看groud truth被打上标记的百分比,当一个区域与GT box重合的范围超过一定的值就认为是有效的。
2. 2d物体探测
用Fast R-CNN framework(最先进的物体检测方法)来对在本数据库上进行2d物体检测进行评价。
讲了用两个CNN网络进行物体检测的过程,如图:
用平均精度(AP)来评价2d物体检测的性能,AP就是精度回归曲线下的面积
Overall所有类得出他们的平均AP(mAP)表中给出了不同数据集不同区域推荐算法的mAP
在本数据集上用VGGNet with SelectiveSearch proposals得到的100个类别的AP
可以发现有些类别的容易识别,有些较难(内部种类繁杂或者可区分的特征较少)
group all 100 categories into 6 super-categories:container,electronics, furniture, personal items, tools and vehicles,分别看这6大类检测的误报率(误报主要是由于定位错误/类别或者背景混淆)
3. joint 2Ddetection and 3D pose estimation(连带检测2D和3D pose)
本数据集中用2D物体匹配了3d 物体,所以可以为本数据集中的物体提供连续的3d 姿态标记。作者在Fast R-CNN network的基础上做了改变,加入了一个viewpoint regression FC branch,对于每个类别,提供三个视角----azimuth, elevation andin-plane rotation.之前的方法只考虑了azimuth这个视角的估计错误,我们对这三个视角都进行了评估。我们推广了AVP和AOS
4. 基于图片的3d形状检索
(1) 对于每个3d形状,从不同的视角(视角的取样根据视点标记中三个视角的密度分布)渲染出100张人造图片。为了使人造图片更加仿真,随机添加背景。
(2) 同一个3d形状渲染出来的图片视为同一类(使能够应用深度度量学习方法对渲染出来的图片进行特征表示)
(3) 训练之后的网络可以将每张图片表示成一个特征向量(经过FC层的计算),3d形状就用特征向量的平均值来表示。
实验:
用渲染出来的图片作为输入,来检索生成该图片的3d 形状(性能评价:在top-k的检索结果中,正确图片所占的百分比)
Lifted structured embedding方法能够利用批当中测试用例的关系,因此有更好的表现,所以本数据集采用这种方法来进行真实图片的检索。
为了减少检索的数据量,我们对于我们数据中的每一个物体都从ShapeNetCore中选择了一个相近的3d图形
运用真实图片的测试过程:
(1) 从每个类别中随机抽取100个物体。然后对于每个物体让3个标注器判断在前二十的结果中是否有相似的3d形状
(2) 基于标注器的判断,对每个类别计算Recall@20
这种方法对于那种有足够数量的3d形状来涵盖形状不一的物体的类别时比较有效,但是对于3d形状很少的类别尤其是内部分类繁多的类别,效果有待增强。
总结:
1.建立了一个包含100个种类物体的大型数据库,用3d shape与2d物体进行匹配的方式给
数据库中的物体提供3d标注。
2.该数据库可以被用来作为基础,进行物体识别任务(包括:2d物体检测(用3d形状进行标记就自然的找出了2d物体的边界线)、3d物体姿态估计(通过调整相机模型中的6个可变参数,使3d shape的投影与2d物体吻合程度最优)、输入图片进行3d形状检索)
【1】Su, H., Qi,C.R., Li, Y., Guibas, L.J.: Render for cnn: Viewpoint estimation in imagesusing cnns trained with rendered 3d model views. In: ICCV. pp. 2686{2694(2015)