0、关键词
Database Construction, 3D Object Recognition, 3D Pose Annotation, 3D Shape Annotation
1、链接
该论文来自Stanford,一作是一位在Stanford大学Computational Vision & Geometry Lab实验室访学的Michigan华人博士学生Yu Xiang(向宇),这之前他在复旦取得学士和硕士学位。现在他已是德州大学达拉斯分校的助理教授(An assistant professor in the CS department at UT Dallas)。值得说明的是,向宇博士同时也是3D数据集PASCAL3D+的一作。这些扎实的benckmarks工作以及一系列与3D目标检测相关的算法研究,足以证明他在这个领域的重要地位。
论文链接:https://cvgl.stanford.edu/papers/xiang_eccv16.pdf
论文代码:https://github.com/yuxng/ObjectNet3D_toolbox
论文官方网站介绍:https://cvgl.stanford.edu/projects/objectnet3d/
该论文提出的数据集ObjectNet3D主要服务于3D目标识别任务,即基于2D RGB图像的3D物体姿态估计和形状重建任务,其中2D目标检测(classification and localization)作为中间任务,也是必要的存在。下图是一张标注实例的展示。
2、主要内容概述
※ Abstract
We contribute a large scale database for 3D object recognition, named ObjectNet3D, that consists of 100 categories, 90,127 images, 201,888 objects in these images and 44,147 3D shapes. Objects in the 2D images in our database are aligned with the 3D shapes, and the alignment provides both accurate 3D pose annotation and the closest 3D shape annotation for each 2D object. Consequently, our database is useful for recognizing the 3D pose and 3D shape of objects from 2D images. We also provide baseline experiments on four tasks: region proposal generation, 2D object detection, joint 2D detection and 3D object pose estimation, and image-based 3D shape retrieval, which can serve as baselines for future research using our database. Our database is available online at http://cvgl.stanford.edu/projects/objectnet3d.
申明大规模数据集ObjectNet3D主要用于3D目标识别任务,或者称之为3D目标检测任务,并精确地给出了数据集包含的类别、图像数量、物体个数,以及3D形状数量。数据集中,2D图像均与3D形状完成了对齐,也就是说每一个2D物体都有人工标注的3D姿态和3D形状(CAD模型)。(PS:尽管文章声称这些标注标签是精确的,但碍于当时技术发展,后续的更高质量的同类数据集如Pix3D和Objectron等均定量化地证明了,ObjectNet3D的标签并不十分精确)文章还提供了多个任务上的baseline(包括2D目标检测、3D姿态估计和3D形状检索),这是数据集工作所必须的内容。
※ Introduction
基于2D RGB图像的3D目标识别是一项重要且被广泛地研究了的任务(Recognizing 3D properties of objects from 2D images, such as 3D location, 3D pose and 3D shape, is a central problem in computer vision that has wide applications in different scenarios including robotics, autonomous driving and augmented reality.)这一领域的发展,离不开相应数据集的构建(providing 3D annotations to 2D objects)。代表性数据集如NYU Depth(RGB-D),KITTI(RGB + point cloud),PASCAL3D+(RGB + 3D CAD models)。有了这些benchmarks,各类监督学习算法才得以被提出和进行公平地比较。
然而,现存的带有3D标注信息的数据集大都缺乏较大规模(limited in scale),包括2D物体的数量或2D图片的总数量(either in the number of object categories or in the number of images),至少,这一领域的数据集的规模没有达到大规模2D图像数据集那样,如ImageNet和MS-COCO。因此,见证了图像分类、检测和分割在大规模数据集的加持下取得的进展后,本文作者认为一个对等的大规模3D目标识别数据集很有存在的必要。(After witnessing the progress on image classification, 2D object detection and segmentation with the advance of such large scale 2D image databases, we believe that a large scale database with 3D annotations would significantly benefit 3D object recognition.)(这一段引出了本文提出的数据集ObjectNet3D的必要性,说法和写作值得借鉴)
接下来的第三段,作者主要介绍提出的数据集ObjectNet3D的具体规模,以及搜集和制作的大致流程。ObjectNet3D数据集中图片筛选自ImageNet repository,3D shapes筛选自ShapeNet repository。关于标注标签,每张图像中的物体都含有一个bounding box,以及对应的对齐后的3D shape CAD模型,其中对齐是指3D形状投影后与2D物体的区域基本上重合,如下图1所示。这些3D形状标签使得ObjectNet3D数据集可以用于3D物体识别(姿态估计和最相近3D形状检索),同时,3D形状的投影可以产生近似的segmentation boundaries。
第四段中,作者着重强调自己的工作重心,即对齐2D物体与3D形状模型,是非常重要的(non-trivial)。这主要体现在两点:1)需要从成百上千的3D形状模型中挑选出与待标注的2D物体最相近的一个,如果让人类标注者逐个对比挑选,是不可行的(not feasible);2)要对齐3D形状模型与待标注2D物体的姿态,往往是极容易发生错误的(error-prone),因此对齐标注的质量很难控制。针对以上两个问题,作者在文章中提出了解决方案:Ⅰ)作者使用现有的算法deep metric learning method(参考原文文献),完成3D形状模型的预挑选。算法使用渲染后的3D模型图片作为输入,提取对应的feature embedding,然后对于给定的2D物体图片,返回topK的相似3D模型作为标注者的备选对象;Ⅱ)为了保证标注质量,作者定制化地开发了对其3D模型与2D物体的标注工具,标注界面允许标注者选取多种相机参数,来最大化地对其模型与物体(To guarantee the quality of the alignment, we have designed an annotation tool to align the 3D shape with the 2D object. Our annotation interface allows annotators to interactively find a set of camera parameters for each object that produce good alignment.)。
最后一段,作者重申他们基于ObjectNet3D数据集提出了一些baseline方法,以供后续研究。
※ Related Work
这一章主要回归一些代表性的3D目标识别数据集。(We review representative datasets related to 3D object recognition)
● Datasets with viewpoints. 这类数据集提供2D图像的bounding box与viewpoints,但这些数据集的视角标注大都存在规模小、视角离散化粗略、场景内容简单等问题(small in scale, coarse in viewpoint discretization and simple in scene context),作者拿3DObject和EPFL Car数据集举了具体的例子。与这类数据集相比,ObjectNet3D提供了连续的视角标注标签,且图像均来自真实场景。(It provides continuous viewpoint annotation to realistic images from the web)
● Datasets with depths or 3D points. 这类数据集使用深度图像或点云完成与2D图像中物体的配准(registration)。使用深度信息的数据集举例包括RGB-D Object、NYU depth、SUN RGB-D;使用点云的数据集举例为KITTI,数据集的具体描述见原文。与这些数据集相比,作者为每个2D物体提供的3D模型标注,拥有比深度和点云更丰富的信息。(we align a 3D shape to each 2D object and provide 3D shape annotation to objects, which is richer information than depth or 3D points and allows us to transfer meta-data from the 3D shape back to the image.)
● Datasets with 2D-3D alignments. 提供2D-3D之前对齐标注的开创性工作为LabelMe3D(An influential work in building datasets with 2D-3D alignment is LabelMe3D)。这之后,类似的提供2D图像与3D形状对的数据集有IKEA、PASCAL3D+,与这两个数据集不同的是(它们存在一些缺陷 it is insufficient to cover the variations of common object categories and their geometry variability),ObjectNet3D提供了更大规模的image-shape对。下表1是与各个代表性的举例数据集的对比。
※ Database Construction
Our goal is to build a large scale database for 3D object recognition. We resort to images in existing image repositories and propose an approach to align 3D shapes (which are available from existing 3D shape repositories) to the objects in these images. In this way, we have successfully built the ObjectNet3D database.
具体分以下6个步骤介绍数据集的构建过程:
● 3.1 Object Categories
首先要明确,数据集ObjectNet3D是面向物体识别任务的(object category recognition)。由于要提供2D物体的3D形状作为标注,因此均挑选的是刚性物体(rigid object categories),至于非刚性的组合式或铰链式物体类别(deformable and articulated objects),尤其是动物和人体等类别,在对齐阶段,需要挪动部件以拟合2D物体的轮廓,这是极其困难的。作者声称将留作下一阶段的研究目标(We consider the extension to non-rigid object categories as a future work.)(PS:德国马普所的大佬Michael Black一直致力于研究digital person,3D human shape的相关进展,可以关注他们的产出)。表2中展示了ObjectNet3D数据集包含的100个刚性物体类别,其中包含了12类PASCAL VOC数据集中的刚性类别,以及9类3DObject数据集中的刚性类别。
● 3.2 2D Image Acquisition
在明确100个物体类别后,作者选择从ImageNet数据集中挑选2D图像。ImageNet按照词网络分层(WordNet hierarchy)的方式组织图片,每一个节点表示一个同义词集合(synset),作者便根据上一步骤设定的物体类别,从这些同义词集中下载对应的图片。但是,对于类别can, desk lamp and trophy作者未能在ImageNet数据集中找到对应同义词集,且类别fork and iron的对应图像数量极少,因此作者额外地补充了这些类别的图片(Google Image Search.)。下图2展示了一些 物体类别对应的图片。数据集中,大部分图像中的物体类别十分显著(salient),这是由ImageNet主要被用于图像分类决定的。(PS:这也从侧面说明,3D目标识别数据集,目前尚不能很好地支持多目标检测任务,即像2D目标检测数据集MS-COCO那样,一张图像中包含多种未知的物体类别和数量)
● 3.3 3D Shape Acquisition
首先,作者人工地从Trimble 3D Warehouse中为100个物体类别挑选代表性3D形状模型,这些3D模型覆盖了绝大多数类别中对应的子类别(subcategories)。比如,对于car这一类别,会挑选 sedans, SUVs, vans, trucks等多种子类别。图3a中展示了bench这一类别对应的7种子类别,这些3D形状已被统一地完成视角对齐(e.g., front view of bench),以及尺寸归一化(their sizes normalized to fit into a unit sphere.)。此外,每种3D形状模型还需要人工地挑选部分代表性关键点,如图3a中的红点所示,这些关键点可以在进行image-shape的对齐过程中辅助识别形状的姿态。最后,从Trimble 3D Warehouse中总计完成了783个3D形状模型的搜集。
然后,为了增加3D形状的类别数量,作者又从ShapeNet repository中继续挑选。ShapeNet的构造与ImageNet类似,作者选择使用ShapeNetCore subset来辅助挑选。ShapeNetCore包含了55个物体类别,其中42个与ObjectNet3D的100个类别重合,作者又额外地下载了43,364个3D形状模型以扩充3D shapes的数量,一些样例展示见图3b。这些3D模型明显比来自Trimble 3D Warehouse中的模型更具多样性,且包含更丰富的纹理信息(These 3D models are valuable since they capture more shape variations and have rich texture/material information.)。
● 3.4 Camera Model
这一步骤需要将2D图像中的物体与3D形状进行对齐(align an object in an image with a 3D shape),因此需要指定相机模型,作者使用的相机模型见下图4a。
作者构建的相机模型主要分三个部分:1)以3D模型的中心点为原点的世界坐标系(world coordinate system),该坐标系内的3D物体用坐标轴表征;2)相机坐标系(camera coordinate system),该坐标系内的3个坐标轴用表示,且相机默认是朝向轴的反方向。在这种假设想,两个系统间的旋转可以用三个变量表示,分别是方位角azimuth ,高度变化elevation ,平面内旋转in-plane rotation,系统间的平移也可以用三个变量表示,其中表示相机到物体模型原点的距离。和一起表征了相机模型的外参( extrinsic parameters);3)相机模型的内参(intrinsic parameters)包括焦距(focus length)和视口大小(viewport size),作者统一将焦距设置为1,视口大小固定为2000,也就是单位焦距相当于真实世界中的2000个像素。另外,还假定主点坐标(principal point)为,一般为2D图像的中心位置坐标。
至此,相机模型的投影矩阵构成如下:
在标注过程中,为了完成image-shape的对齐,会默认固定住参数和,而调整获取另外6个参数:。(PS:这些设置是作者在设计和开发数据集标注工具时必须考虑的。)
● 3.5 Annotation Process
标注主要工作是为2D图像中的物体提供3D标注。作者分三步骤描述:Ⅰ)为2D物体标注bounding box,被遮挡或截断的物体也需要标注(Occluded objects and truncated objects are also labeled.);Ⅱ)对于每一个由bounding box确定的物体,将其与某个最相似的3D形状匹配起来,这些3D形状根据每类物体类别已完成搜集和分类(见图3a中来自Trimble 3D Warehouse的3D模型),平均每类有7~8个3D形状供标注者挑选;Ⅲ)标注者将挑选的3D形状与2D物体对齐,对齐过程与3.4章节介绍的相机模型有关,作者开发了专用的标注界面,见图4b。标注者通过调整界面中的按钮,一张张地切换2D图像,并为每个物体修改得到最合适的相机参数。这一修改调整的过程是极其复杂的,原文段落表述如下:
Annotators have full control of all the 6 camera parameters using the interface: azimuth, elevation, distance, in-plane rotation and principal point. Whenever these parameters are changed, we re-project the 3D shape to the image and display the overlap, which is helpful for the annotator to find a set of camera parameters that align the 3D shape with the 2D object well. Our criterion for the alignment is maximizing the intersection over union between the projection of the 3D shape and the 2D object. Fig. 4(b) shows the finished alignment for a computer keyboard.
图5展示了数据集中某几个类别对应的视角分布情况(viewpoint distribution)
● 3.6 3D Shape Retrieval
完成3D形状标注后,作者提及图3b中来自ShapeNetCore的3D模型。这些模型对应100个物体类别中的42个,且每个类别对应的3D形状成百上千,不利于人工挑选最合适的一个。因此,作者想到使用形状检索的方式,来辅助地推荐最相似的3D形状(So we develop a 3D shape retrieval method by learning feature embeddings with rendered images, and we use this method to retrieve the closest 3D shapes for objects in the 42 object categories.)。
具体地,我们假设一个2D物体为,其对应的个3D形状集合,目标任务是按照这个形状与物体的相似度进行排序。作者将其归类为度量学习问题(a metric learning problem),也就是测量2D物体与3D形状之前的距离。下一步,为了便于沟通起这两个不同的域,作者使用3D形状渲染出来的一系列2D图像来表示它,其中表示3D形状渲染出来的第张图像,表示渲染图像的总数量,作者选择的是。接着,作者将2D物体与3D形状之前的距离度量,转化为2D物体与一系列由3D形状渲染所得的图像集合之间的平均距离。也就是说,现在,问题转化为求解两张2D图像之间的距离,这是一个被广泛研究的问题(which is an active research field in the literature.)
作者选择了彼时最好的方法lifted structured feature embedding method(具体描述见原参考文献),它表现好于contrastive embedding或triplet embedding。训练阶段,仅使用被渲染得到的图像作为训练集,每个3D形状渲染后的图像集作为同一类别。测试阶段,计算每个2D物体与渲染图像的欧氏距离,然后计算平均距离作为2D物体与3D形状的相似度。另外,为了减小渲染图像与真实图像的差异(minimize the gap between rendered images and real test images),作者给渲染图像增加了背景和光照变换,参考方法见原文引用文献。
※ Baseline Experiments
这一章节,作者给出了在提出的数据集上四个任务的baseline:object proposal generating, 2D object detection, joint 2D detection and 3D pose estimation, and image-based 3D shape retrieval. 实验时,数据集中training/validation (trainval) set有45,440张图片,test set有44,687张图片。
● 4.1 Object Proposal Generation
作者选择了四种区域提案算法(four different region proposal methods)在数据集上验证其表现:SelectiveSearch, EdgeBoxes, Multiscale Combinatorial Grouping (MCG), Region Proposal Network (RPN)(具体算法细节见原参考文献)。作者使用detection recall来衡量region proposal的好坏,图6中展示了不同设置下(different number of object proposals per image and different IoU thresholds),四种方法的recall表现变化,其中RPN使用了AlexNet和VGGNet两种不同的backbones。可以大致发现两个结论:1)在proposals的数量为1000左右时,所有方法的recall在IoU为0.5时,精度接近90%;2)RPN+VGGNet在IoU为0.5~0.7之间表现最优,而MCG在各个IoU下持续表现更鲁棒。更多关于实验结果的解读,参见原文。(PS:内容不够,解读来凑)
● 4.2 2D Object Detection
作者选择SOTA算法Faster R-CNN来验证2D目标检测的性能。同样地,作者选择使用AlexNet和VGGNet两种不同的backbones,模型均在ImageNet上完成了预训练。图7展示了检测网络Faster R-CNN的大致架构,然后作者再对检测过程作以简单介绍(First, an input image is fed into a sequence of convolutional layers to compute a feature map of the image. Then, given a region proposal, the RoI pooling layer extracts a feature vector for the region proposal from the feature map. The feature vector is then processed by two Fully Connected (FC) layers, i.e., FC6 and FC7 each with dimension 4096. Finally, the network terminates at two FC branches with different losses (i.e., the third branch for viewpoint estimation in Fig. 7 is not used here), one for object class classification, and the other one for bounding box regression (see Faster R-CNN [11] for more details).)。由于本文中数据集有100个类别,因此FC接分类的分支有101个输出(background作为一个额外的类别),接检测框回归的分支有404个输出。
目标检测使用Average Precision (AP)来度量检测精度,针对多目标检测任务,则使用mean AP (mAP)来度量性能。表3展示了mAP的结果,从中作者作以三点解读:1)使用VGGNet比AlexNet的结果更好;2)四种region proposal方法中,SelectiveSearch和MCG比EdgeBoxes表现更好,而RPN则更能受益于VGGNet强大的特征提取优势;3)VGGNet+RPN可以在文章提出的数据集上达到67.5的mAP,作为对比,含有200个物体类别的ImageNet,在2015年的挑战赛上的最佳mAP结果为62.0。(PS:内容不够,解读来凑)
图8则展示了每个类别的AP检测结果(the detection AP of each category),从中可以发现一些相对容易检测的类别( aeroplane, motorbike and train),和一些难检测的类别(cabinet, pencil and road pole),这些难检测类别大都有较大的类内差距或具有难以辨识的特征(These categories either have large intra-class variability or have less discriminative features)(PS:内容不够,解读来凑)
作者进一步将100个类别按照6个大类重新分组,然后借助diagnosing工具(参考原文献),报告Fasle Positive检测样例(We group all 100 categories into six super-categories: container, electronics, furniture, personal items, tools and vehicles, and analyze the detection false positives of these six groups using the diagnosing tool from [14])。图9展示了分析结果。对于tools和vehicles,localization error占据了大部分Fasle Positive检测结果,而对于其他类别,confusion with other categories or background是占据最大的检测误差。(PS:内容不够,解读来凑)
● 4.3 Joint 2D Detection and Continuous 3D Pose Estimation
作者借助Faster R-CNN的检测结构,在最后一个FC层增加了第三个分支,用于联合预测物体的3D姿态,参见图7右下角的粉色区域(a viewpoint regression FC branch)。对于该分支,共计3×101个输出,即每个类别对应3个姿态变量:azimuth, elevation and in-plane rotation。和bounding box的回归一样,作者选择使用smoothed L1 loss回归3D姿态。
至于3D姿态估计的度量标准,作者选择了两种:PASCAL3D+中使用的Average Viewpoint Precision (AVP);KITTI中使用的Average Orientation Similarity (AOS)。然而,这两个标准均只用于度量azimuth,为了度量3个角度,作者拓展了上述两个度量标准,它表示的是估计的旋转矩阵与GT旋转矩阵之间的测地距 (the geodesic distance between the estimated rotation matrix and the GT rotation matrix )。对于AVP,当时,认为姿态估计正确;对于AOS,利用两个姿态之间的余弦相似性(cosine similarity),即来定量化度量。
表4展示了具体的度量结果。图8中展示了每个类别的AOS的结果(由于AOS的计算方式,检测AP总是比AOS要高一些)。通过图8中AOS与AP之间的差异,我们可以发现一些姿态估计较差的物体类别,如comb, fork和teapot,这些物体大都具有对称性或具有极大的平面内旋转角度(These categories may be nearly symmetric or have large in-plane rotation angles.)。如图10,为了进一步理解3个姿态角的误差分布,作者再次借助diagnosing工具,统计了6大类中的误差结果。可以发现,azimuth占据了绝大多数的误差,对于tools和personal items两大类,in-plane rotation误差则明显增大。
● 4.4 Image-based 3D Shape Retrieval
本章节主要介绍在3.6章节提出的基于deep metric learning的3D形状检索方法的一些细节。比如基于3D形状生成100个渲染图像时,会兼顾多种姿态视角(These viewpoints are sampled from a distribution estimated with kernel density estimation using the viewpoint annotations (azimuth, elevation and in-plane rotation) in our database for that category.);为了模拟真实图像,渲染的2D图像会随机地加入背景信息,这些背景选择自SUN database;为了验证得到最优的方法,作者对比了三种度量方法,即contrastive embedding、triplet embedding和lifted structured feature embedding,提取特征的网络backbone均使用GoogleNet。
为了度量learned embedding,对于每个3D形状,作者随机地选择100张渲染的图像中一半作为训练集,另一半用于测试,完成训练后,给定一张渲染的图像,检索返回topK测试图像。用Recall@K作为度量标准(which is computed as the percentage of testing images which have at least one correctly retrieved image among the top K retrieval results.)。
表5中展示了对比结果,显然,lifted structured feature embedding方法是最好的,因此被选做标注工具的3D形状辅助推荐方法(The goal is to provide the top K ranked 3D shapes for each 2D object, then ask annotators to select the most similar 3D shape among the K returned ones, since it is not feasible to ask an annotator to select the most similar shape among hundreds or even thousands of 3D shapes.)。(PS:这一段描述似乎与3.6章节大量重复)图12展示了部分3D形状检索的测试样例。
最后,作者还设计了user study来进一步验证形状检索方法在真实图像上的性能。作者随机地从42个类别(3D形状从ShapeNetCore中扩充过)中各挑选出100个物体,然后要求3名标注者判定在3D形状检索的top-20中是否有与物体相似的结果,然后基于判定结果计算每个类别的Recall@20,最终结果见图11。平均Recall@20为69.2%,基本满足大量的3D形状标注任务。
※ Conclusions
In this work, we have successfully built a large scale database with 2D images and 3D shapes for 100 object categories. We provide 3D annotations to objects in our database by aligning a closest 3D shape to a 2D object. As a result, our database can be used to benchmark different object recognition tasks including 2D object detection, 3D object pose estimation and image-based 3D shape retrieval. We have provided baseline experiments on these tasks, and demonstrated the usefulness of our database.
立足于提供的2D image-3D shape对,突出数据集的大规模性和有用性。
3、新颖点
文章整体上中规中矩,行文十分清晰流畅,是一篇工作饱满内容翔实的中等佳作,这从文章多个界限分明的主标题和副标题上,可见一斑。这说明工作扎实的情况下,没必要整太多花活,一五一十地将工作与创新点介绍清楚即可。
4、总结
本文虽然中规中矩,但很多写作方面的内容,以及整体实验部分的安排,值得借鉴:
1)写作内容上,需要说明的重点部分,基本都给出了细节,很多看似没必要的补充和解释,则有两点好处:1)扩充了文章内容;2)更加详尽的分析总不会让人拒绝;
2)诚然,本文的主要贡献在于提出了全新的大规模数据集ObjectNet3D,虽然为数据集类文章,但按照以往经验,最好还是需要体现novelty和innovation的。文章给出的四个任务上的baseline,均非原创,但每一个任务上又加入了部分新的工作,尤其是联合3D姿态估计和形状检索任务,这在一定程度上挽回了仅仅包含单纯的数据集搜集和构建的单薄和缺陷。
3)本文的一作Yu Xiang(向宇),同样也是PASCAL3D+数据集的一作,在2014年完成了PASCAL3D+的制作之后,作者又扩展了自己的工作,包括与原PASCAL3D+数据集标注界面极为相似的标注工具,以及各类2D图像和3D模型。基于自己已经完成的工作,扩充得到了更扎实的ObjectNet3D数据集,这表明了连续工作的重要性。