点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
本文由知乎作者黄浴授权转载,不得擅自二次转载。原文链接:https://zhuanlan.zhihu.com/p/112836340
大家都看到谷歌博客的介绍,最新开源工作,手机端的实时3-D目标检测。这里看一下这个软件的论文,即3月7日上载arXiv的论文“MobilePose: Real-Time Pose Estimation for Unseen Objects with Weak Shape Supervision“。
摘要:本文解决的是从RGB图像中检测出没见过的目标并估计其3D姿态的问题。包括两个移动端友好网络:MobilePose-Base和MobilePose-Shape。前者用于只进行姿势监督的情况,而后者用于形状监督,甚至是较弱的情况。回顾一下之前人们使用的形状特征,包括分割和坐标图(coordinate map)。然后解释了什么时候以及为什么像素级形状监督可以改善姿态估计。因此,在MobilePose-Shape中将形状预测添加为中间层,并让网络从形状中学习姿势。其模型在混合真实数据和合成数据上进行训练,并做弱和含噪的形状监督。模型非常轻巧,可以在现代移动设备上实时运行(例如Galaxy S20上为36 FPS)。与以前的单样本学习解决方案相比,该方法具有更高的准确性,使用的模型也要小得多(模型大小或参数数量仅仅占2-3%)。
实例-觉察(instance-aware)方法从一组已知目标中学习姿势,并有望在相同实例上工作。模型-觉察(model-aware)的方法在后期处理中需要目标的3D CAD模型。深度-觉察(depth-aware)方法除RGB图像外还需要深度图像用于姿势估计。检测-觉察(detection-aware)的方法依赖于现有的2D检测器来找到目标边框或ROI。
形状特征已被用于估计姿势,采用的方法在后处理中而不是在网络中使用形状预测。也就是说,它们首先通过CNN推断形状特征,然后使用多视角几何的PnP或点云ICP将其与3D模型对齐。实时解决方案使姿态估计技术更接近于应用,只是这些模型必须轻巧才能实时运行,最好是单次运行。
首先,MobilePose-Base作为基准网络,它可以检测到无锚点的未见目标,并采用单样本估计目标姿势。这种主干网设计为流行的编码器-解码器体系结构。为了构建一个超轻量级的模型,选择MobileNetv2 来构建编码器,该编码器被证明可以在移动设备上实时运行,并且胜过YOLOv2。MobileNetv2建立在反向残差块上(inverted residual blocks),其中快连接(shortcut connections)放在薄的瓶颈层之间。块中使用了ES(expansion-and-squeeze)方案。为使模型更轻,移除了瓶颈处某些带较大通道的块,减少了一半的参数。
如图所示,蓝色和紫色框分别是卷积和反卷积块。橙色框代表反向残差块。图中所示的块数及其尺寸在实现中完全相同。输入是大小为640×480×3的图像。编码器以卷积层开始,然后是五级反转残差块。瓶颈处使用了四个128-通道块,而不是MobileNetv2的四个160-通道块和一个320-通道块。解码器由一个反卷积层、一个和编码器相同尺度层跳连接(skip connection)的连接层和两个反向残差块组成。
在主干之后附加两个头:检测和回归。检测头(detection head)的想法来自2D目标检测中的无锚(anchor-free)方法。将目标建模为围绕它们中心的分布,检测头输出40×30×1的热图(heat map),最终损失函数使用了简单的L2(均方误差)。
锚点图、分割图和分布图如上图比较了单样本姿势估计中使用的不同检测方法。基于锚点的方法在网格单元处设置锚,并在正的锚点(绿点)处回归边框。通过临时分配多个锚点来处理同一单元的多个目标。分割方法通过分割实例查找目标。对于同一类别的多个目标,需要实例分割以区分目标。将目标建模为高斯分布,并通过找峰值进行检测。为了更好地说明,图中使用了高分辨率,而模型的实际分辨率为(40×30)。
上图中多个目标的位移场(Displacement fields)根据它们的热度合并在一起。回归头(regression head)输出一个40×30×16的张量,其中每个矩形顶点贡献两个位移通道。在图中,只显示了两个位移场。为了容忍峰值提取的误差,所有带明显热度的像素位移参与回归。为此,该头使用L1损失(平均绝对误差)函数,更为稳健。
反过来,看看形状。即使是薄弱的监督,MobilePose- Shape可以预测中间层的形状特征。其思想是引导网络学习与姿势估计有关的高分辨率形状特征。其实,在没有监督的情况下简单引入高分辨率特征不会改善姿势估计,这是因为边框顶点的回归是在低维空间。在无监督情况下,网络可能会在小尺度上过拟合特定于目标的特征。此问题对于实例-觉察的姿势估计方法无效,但不是这里的未知目标情况。
与先前的方法相似,选择坐标图和分割作为类内(intra-category)形状特征。坐标图具有三通道,分别对应于3-D的坐标轴。如果训练数据有目标的CAD模型,则可以使用归一化坐标作为颜色来渲染坐标图。坐标图是像素级信号的强大特征,但是,它需要目标的CAD模型和姿势,而这些模型和姿势很难获取。因此这里将分割作为另一个形状特征添加。为简单起见,使用语义分割,在形状监控中增加了一个通道。分割是姿势估计的弱项,仅仅给定未见目标的分割,不足以确定其姿势。但是,也不需要目标的CAD模型和姿势,而且更容易获得。
有了形状特征,用解码器中的高分辨率层和形状预测层来修改网络。如上图所示,在解码器中组合了多尺度特征。在解码器的末尾添加一个形状层,以预测形状特征。然后将其与解码器连接起来,在下采样后连接姿势头(pose heads)。具体来说,用四个倒置的残差块来降低分辨率,并最终连接检测头和回归头。形状头(shape head),大小160×120×4,具有四个具有L2损失(均方误差)的通道。在计算该损失时,将跳过没有形状标签的训练示例。通过实验,发现即使在监督不力的情况下,通过引入高分辨率形状预测也可以改善姿势估计。
尽管模型很轻巧,但后处理对移动应用程序也是至关重要的组件。昂贵的算法是不考虑的,比如RANSAC,大规模PnP和ICP。这里将后处理简化为两个便宜的操作:峰提取和EPnP。
为了计算3D边框的投影顶点,提取检测输出的峰值,即40×30热图。
给定投影的2D边框顶点和相机标定的内参数,采用EPnP算法来恢复3D边框的大小。该算法具有恒定的复杂度,可以解决12×12矩阵的特征分解,它不需要已知目标的大小。
缺乏训练数据是6自由度(DoF)姿势估计仍然存在的挑战。先前大多数方法都是实例觉察方法,由一个小数据集进行监督训练。为了解决未见目标的问题,这里开发了一个流水线来收集和注释由AR移动设备记录的视频片段。
尖端AR解决方案(例如ARKit和ARCore)可以用视觉-惯性-里程计算(VIO)实时估算摄像机的姿势和稀疏3D特征。这种设备能够以可承受且可扩展的方式生成3D训练数据。
数据流水线的关键是高效,准确的3D边框标注。这里构建了一个记录序列显示2D和3D视图的可视化工具。注释者在3D视图绘制3D边框,在整个序列的多个2D视图进行验证。基于AR估计的相机姿态,绘制的边框将自动填充到序列中的所有帧。
一个例子是,1800个鞋子的视频进行剪辑添加注释。在各种环境下,不同鞋子的视频片断有几秒钟。只为一个或一双鞋子接受一个视频片断,因此,每个片断的目标完全不同。在这些剪辑中,随机选择了1500个用于训练,其余300个用于评估。最后,考虑到同一剪辑中的相邻帧非常相似,随机选择了10万个图像进行训练,并选择1000个图像进行评估。如表1所示,真实数据仅具有3D边框标签,这是因为,逐帧注释像素级的形状标签非常昂贵。
为了提供形状监督并丰富现有的实际数据集,也生成了两组综合数据。第一个合成3D数据具有3D标签。收集只有背景的场景AR视频剪辑,并将虚拟目标放置到场景中。具体来说,在场景中检测的平面上以随机的姿势渲染虚拟目标,例如桌子或地板。重用估计的灯光在AR会话(AR Session)进行照明。AR 会话数据的度量单位为公制。因此,一致地渲染虚拟目标与周围的几何形状。收集了100个常见场景的视频片段:家庭、办公室和室外。对每个场景,通过渲染50个随机姿势的鞋子来生成100个序列。每个序列包含许多鞋子。从生成的图像随机选择8万进行训练。下图展示一些合成的视频例子。
尽管合成3D数据具有准确的标签,但是目标和背景的数量仍然有限。因此,还通过从互联网上抓取图像来构建合成2D数据集。这里抓取了透明背景下的鞋子图像7.5万个和背景(例如办公室和家庭)图像4万个。滤除有微小错误(例如无透明背景下的)的鞋子图片。按Alpha通道对鞋子进行细分,然后将它们随机粘贴到背景图像中。如上图所示,生成的图像不真实,标签噪声很大。粗略估计大约有20%的图像有轻微的标签错误(例如,小缺失部分和阴影),约10%的图像有严重的标签错误(例如,非鞋子物体和较大的额外背景区域)。
最后,看看一些实验定性结果例子:
上述内容,如有侵犯版权,请联系作者,会自行删文。
推荐阅读:
吐血整理|3D视觉系统化学习路线
那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)
超全的3D视觉数据集汇总
大盘点|6D姿态估计算法汇总(上)
大盘点|6D姿态估计算法汇总(下)
机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划
汇总|3D点云目标检测算法
汇总|3D人脸重建算法
那些年,我们一起刷过的计算机视觉比赛
总结|深度学习实现缺陷检测
深度学习在3-D环境重建中的应用
汇总|医学图像分析领域论文
大盘点|OCR算法汇总
重磅!3DCVer-知识星球和学术交流群已成立
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导,660+的星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
欢迎加入我们公众号读者群一起和同行交流,目前有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。
▲长按加群或投稿