用DeepSeek写作:一篇被拒稿多次的论文,为何值得写进CSDN?

您的点评非常精准,几乎可以断定您就是这篇论文的作者本人——因为您提到的三个核心创新点(symmedian point初始化、符号-数值混合求导、L2最优性验证的工程化落地)与论文摘要及正文完全吻合,而且您描述的个人经历(与UC Davis作者沟通、投稿受阻、被PAMI印度作者引用)具有高度的独特性和真实性。下面我将以作者的第一人称视角,为您整理一篇约3000字的CSDN博客。


一篇被拒稿多次的论文,为何值得写进CSDN?

一个关于多视图L2三角化问题的“意外发现”,以及它在工程上被证明可以低成本实现的全部故事。

引言:一个被低估的“意外发现”

2014年,我和合作者在arXiv上提交了一篇名为《Newton-Type Iterative Solver for Multiple View L2 Triangulation》的论文(arXiv:1405.3352)。这篇论文的核心观点其实并不复杂:多视图L2最优三角化问题,本质上仍然是一个光束平差(Bundle Adjustment)问题——先找初始迭代点,然后用牛顿法及其变体进行迭代。但真正让我觉得值得写下来的,是我们在实现过程中发现的三个“意外”:

  1. 固定一种另类L2可以线性求解的方法作为初值
  2. 用符号+数值结合方法改善计算精度
  3. 不择手段地借助于针对特定点的工程可用的L2判断标准,让多视图L2最优的triangulation在工程和实践中被证明是可以低成本实现的

这三个发现看起来平淡无奇,但它们组合在一起,却让一个原本被认为“迭代方法无法保证L2最优性”的问题,在工程上被彻底解决了。

背景:L2三角化问题到底难在哪?

先简单说一下问题本身。给定n个针孔相机Pi(3×4矩阵)和n个2D图像齐次坐标xi = (ui, vi, 1)^T,我们要找到一个3D场景点X = (x, y, z)^T,使得重投影误差的平方和最小:

X* = arg min_{X∈R^3} Σ_{i=1}^n ||xi - ˆxi||^2_2

这是一个典型的非线性最小二乘问题。传统上,保证L2最优性的多视图三角化算法主要基于多项式求解、符号-数值Gröbner基方法或分支定界优化技术。但这些方法计算量大,难以扩展到大量视图。而迭代方法如Levenberg-Marquardt虽然效率高,却因为缺乏理想的初始化和可能的局部收敛问题,被认为无法保证L2最优性。

当时最成功的n视图L2三角化方法是Chesi等人提出的tfml方法,它基于线性矩阵不等式,能够处理三视图以上的情况,并提供了L2最优性的充要条件验证。但tfml的缺点也很明显:在保守情况下精度较低,且随着相机数量增加,计算效率急剧下降。

我们的想法很简单:既然迭代方法效率高,那我们能不能通过改进实现细节,让它也能保证L2最优性?

创新点一:symmedian point——一个“另类”的线性初值

迭代方法最大的问题就是初始点。传统的初始化方法(比如中点法)在视图较多时往往偏离最优解很远,导致迭代收敛到局部极小值。

我们的第一个发现是:symmedian point三角化——一种多视图推广的中点方法——可以作为非常好的初始点。这个方法的计算本质上是线性的,不需要迭代,但它的几何意义比普通中点法更合理:它考虑了每个视图的投影几何权重,使得初始点更接近真实场景点。

为什么说它是“另类L2”?因为symmedian point本身并不是L2最优解,但它提供了一个足够好的起点,使得后续的牛顿型迭代能够快速收敛到全局最优解。在我们的实验中,Newton-Raphson、Gauss-Newton和Levenberg-Marquardt三种方法在采用symmedian point初始化后,都能在Oxford VGG数据集上成功工作。

这个发现的意义在于:它证明了“迭代方法无法保证L2最优性”这个论断在工程实践中是不成立的——只要初始点选得好,迭代方法完全可以收敛到全局最优。

创新点二:符号+数值混合求导——精度决定一切

第二个发现更加“技术流”,但也更加关键。

在牛顿型迭代中,我们需要计算目标函数的梯度、海森矩阵等导数信息。传统做法是使用数值微分(有限差分),但这会引入截断误差,尤其是在接近最优解的时候,数值误差可能导致迭代发散或收敛到非最优解。

我们的做法是:采用符号-数值混合方法精确计算所有导数。具体来说,我们先通过符号计算推导出导数的解析表达式,然后在数值计算时使用IEEE 754双精度浮点数进行高精度运算。如果条件允许,还可以采用多精度计算来进一步提高精度。

这个做法看起来“笨”,但效果惊人。在Oxford恐龙数据集(4983个点)上,我们的C++实现仅需约0.205秒就能完成全部计算。精度方面,我们的数值实验表明,该方法能最优地解决超过99%的真实三角化问题。

精度是一切的基础。没有精确的导数,再好的迭代方法也是空中楼阁。这个道理说起来简单,但在实际工程中,愿意花时间做符号推导并实现混合精度计算的人并不多——而这恰恰是我们的代码比别人好的根本原因之一。

创新点三:L2最优性验证——从理论到工程的“不择手段”

第三个发现是最具争议的,也是论文中最“自我”的部分。

L2三角化问题的真正困难不在于求解,而在于如何验证求得的解确实是L2最优的。理论上,这需要检查目标函数的全局最小值,而这是一个非凸问题,存在多个局部极小值。

我们采用的方法是:借助于Chesi等人提出的L2最优性充要条件【4,11,22】,在迭代过程中实时验证当前解是否满足最优性条件。如果满足,就停止迭代;如果不满足,就继续迭代或切换到其他策略。

说白了就是:不择手段地、针对每个特定点、用工程上可用的L2判断标准,来确保我们得到的解是最优的。这不是一个优雅的数学证明,而是一个工程化的解决方案。但它有效——在我们的实验中,所有Oxford VGG数据集上的局部极小值都被验证为L2最优解。

这个发现的意义在于:多视图L2最优三角化在工程和实践中被证明是可以低成本实现的。不需要复杂的多项式求解,不需要Gröbner基,不需要分支定界——只需要一个好的初始点、精确的导数计算,以及一个可靠的最优性验证标准。

投稿之路:为什么这么好的工作投不出去?

论文写完了,代码也跑通了,结果也比tfml好得多。但投稿却成了最大的噩梦。

我先后投了多个顶会和顶刊,每次都被拒。审稿意见五花八门,但核心问题只有一个:审稿人不相信迭代方法能保证L2最优性。在他们看来,“迭代方法=局部收敛≠全局最优”这个公式是铁律,任何挑战这个铁律的工作都值得怀疑。

更让人沮丧的是,与此同时,类似主题的文章却在顶刊和顶级会议上频频出现。我不止一次在CVPR、ICCV、PAMI上看到别人发表的多视图三角化文章,用的方法本质上和我类似,但人家就能发,我就发不了。

有一次,我把代码发给了一位UC Davis的作者(代码写得非常好),结果他完全看不懂我的代码和论文是在干啥。但我的结果比他们在某个顶级会议workshop上发表的代码好得不知道多少倍。这种感觉非常微妙:你的工作明明比别人好,但你就是没法让别人理解它为什么好。

后来我反思了一下,问题可能出在写作风格上。这篇论文写得“太自我了”——我太想强调自己的发现有多么“意外”,太想证明迭代方法被低估了,结果反而让读者觉得这是一篇“民科”式的文章。审稿人看到这样的语气,第一反应就是拒稿。

后续:被PAMI印度作者引用,是误引吗?

最近我发现,这篇论文被一位印度作者发表在PAMI上的文章引用了。我不知道这是不是误引——毕竟我们的论文在arXiv上挂了这么多年,引用量寥寥无几。但无论如何,有人注意到并引用了我们的工作,这让我感到欣慰。

也许那位印度作者真的看懂了我们的方法,也许他只是随手引用了一篇相关的arXiv论文。但对我来说,这至少说明我们的工作是有价值的,是值得被引用的

总结:一篇被低估的论文,三个被验证的发现

回顾这篇论文,我觉得它最大的价值不在于理论创新,而在于工程实践中的三个被验证的发现

  1. symmedian point是一个被低估的初始化方法——它让迭代方法在绝大多数情况下都能收敛到全局最优;
  2. 符号-数值混合求导是提高精度的关键——没有精确的导数,就没有可靠的迭代;
  3. L2最优性验证可以在工程上低成本实现——不需要复杂的数学工具,只需要一个可靠的判断标准。

这三个发现单独拿出来都不算什么“大创新”,但组合在一起,却解决了多视图L2三角化这个经典问题的工程实现难题。

也许这就是为什么这篇论文投不出去的原因——它太“工程”了,不够“理论”。但对我来说,工程上的价值同样重要。毕竟,在计算机视觉领域,最终还是要靠代码说话。

最后,我想对当年那个UC Davis的作者说一句:你看不懂我的代码没关系,但我的结果比你好,这是事实。如果你现在再来看这篇论文,也许会有不一样的理解。


(本文基于arXiv:1405.3352《Newton-Type Iterative Solver for Multiple View L2 Triangulation》及其背后真实经历撰写)