素材巴巴 > 程序开发 >

【论文阅读】Triplet-Center Loss for Multi-View 3D Object

程序开发 2023-09-18 07:53:29

Triplet-Center Loss for Multi-View 3D Object Retrieval

原文(cvpr18接受):https://arxiv.org/abs/1803.06189

摘要

  • 目标
  • 本文贡献
  • 相关工作

  • Model-based methods
    得到3D形状特征(polygan meshes, surfaces, voxel grid, point clouds et. al),然后利用3D CNN来解决。但是3D特征不论是获取还是计算都比较复杂。
  • 现阶段,view-based 要比 model-based 效果要好很多,并且 view-based methods比较方便,可以做到实时应用,并且随着gpu和数据量的增加,这种方法用的也越来越多。

  • 针对3d object retrieval里用到的loss function:

  • center loss
    主要是与softmax loss结合,减小类内距离
  • 本文工作

    普通的深度学习网络大多专注于找到不同类之间的边界,没有过多考虑类内的距离和不同类之间的关系(比如空间关系),因此在3D object retieval任务中找到robust and discriminative features是提高性能的重要环节。
    image1

    上图从左到右依次为softmax loss, center loss + softmax loss, TCL。
    可以看出普通分类只是在找类间边界而没有考虑类内变化,而center loss减小了类内变化,但是因为没有考虑latter one(不是很清楚怎么解释,可能是没有考虑类间边界样本的距离)容易造成类间重叠。而TCL解决了这些问题。
    ###TCL(triplet-center loss)
    先写一下triplet loss 和 center loss的公式:

  • center loss

  • L c = 1 2 ∑ i = 1 N D ( f ( x i ) , c y i ) L_{c} = frac{1}{2}sum_{i=1}^ND(f(x^i),c_y^i) Lc​=21​∑i=1N​D(f(xi),cyi​)

    c y i c_y^i cyi​分别class y i y_i yi​的中心, D ( ) D() D()是squared Euclidean distance。

    之前提过triplet loss的优势是考虑了类间关系,主要不足是费时、center loss的优势是减少了类内变化,主要不足是没有考虑类间关系,所以为了同时改进这两点并且结合优势,作者把两种loss结合起来,提出了TCL:

    L t c = ∑ i = 1 M m a x ( D ( f ( x i ) , c y i ) + m − m i n j ≠ y i D ( f ( x i ) , c j ) , 0 ) L_tc = sum_{i=1}^Mmax(D(f(x^i),c_{y^i}) + m - min_{jneq{y^i}}D(f(x^i),c_j),0) Lt​c=∑i=1M​max(D(f(xi),cyi​)+m−minj̸​=yi​D(f(xi),cj​),0)

    D ( f ( x i ) , c y i = 1 2 ∣ ∣ f ( x i ) − c y i ∣ ∣ 2 2 D(f(x_i),c_{y^i} = frac{1}{2}left|left|f(x^i) - c_{y^i}right|right|_2^2 D(f(xi​),cyi​=21​∣∣​∣∣​f(xi)−cyi​∣∣​∣∣​22​

    TCL只计算样本与同类中心之间的距离,减少了计算复杂度,并考虑到了离样本最近的不同类之间的距离,使得不同类之间可以保持一定的距离。
    (还有一部分反向传播的过程,不太好写,感兴趣的可以去看论文)

    同时论文结合了softmax loss,可以作为监督使得训练过程中可以找到更好的class centers也就将metric learning和classfication task结合起来,并且TCL和softmax loss互相独立,可以直接相加。
    最后论文里用到的损失函数是

    L t o t a l = λ t c + L s o f t m a x L_{total} = lambda_{tc} + L_{softmax} Ltotal​=λtc​+Lsoftmax​

    λ lambda λ是调整TCL对训练过程影响的超参数。最后的实验有如何选择和调整 λ lambda λ的实验和验证。

    本文用MVCNN做基本框架,大体流程为
    这里写图片描述

    与triplet loss和center loss的比较

  • center loss
  • 这里写图片描述
    通过实验的可视化效果,可以看到TCL和softmax loss结合效果要明显好一些,类间距离更远,类内距离更近。

    实验

    作者用ModelNet40 和ShapeNet Core 55数据集做的实验,实验做的很全,包括 λ lambda λ的选取、不同损失函数的比较,不同数据集的比较、不同域间的比较、还和model-based 方法比较了一下。具体实验设置和配置参数建议看论文,写起来太多了。

    总结

    实验结果看起来还是很好的,并且有可视化效果,但是用到的数据集都是CAD模型渲染出来的虚拟数据,背景单一,特征也都比较好提取,所以训练过程会简单点,如果加入噪声过多可能可视化效果就不会这么好了(猜测)
    如果知道数据集的类间空间关系的话,也许可以把空间关系作为center的一个监督信息,使得类间关系和真实的空间关系一致,也许对于视角估计之类的任务有帮助。


    标签:

    上一篇: graphql开发示例 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。