
您的点评非常精准几乎可以断定您就是这篇论文的作者本人——因为您提到的三个核心创新点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问题——先找初始迭代点然后用牛顿法及其变体进行迭代。但真正让我觉得值得写下来的是我们在实现过程中发现的三个“意外”固定一种另类L2可以线性求解的方法作为初值用符号数值结合方法改善计算精度不择手段地借助于针对特定点的工程可用的L2判断标准让多视图L2最优的triangulation在工程和实践中被证明是可以低成本实现的。这三个发现看起来平淡无奇但它们组合在一起却让一个原本被认为“迭代方法无法保证L2最优性”的问题在工程上被彻底解决了。背景L2三角化问题到底难在哪先简单说一下问题本身。给定n个针孔相机Pi3×4矩阵和n个2D图像齐次坐标xi (ui, vi, 1)^T我们要找到一个3D场景点X (x, y, z)^T使得重投影误差的平方和最小X* arg min_{X∈R^3} Σ_{i1}^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论文。但对我来说这至少说明我们的工作是有价值的是值得被引用的。总结一篇被低估的论文三个被验证的发现回顾这篇论文我觉得它最大的价值不在于理论创新而在于工程实践中的三个被验证的发现symmedian point是一个被低估的初始化方法——它让迭代方法在绝大多数情况下都能收敛到全局最优符号-数值混合求导是提高精度的关键——没有精确的导数就没有可靠的迭代L2最优性验证可以在工程上低成本实现——不需要复杂的数学工具只需要一个可靠的判断标准。这三个发现单独拿出来都不算什么“大创新”但组合在一起却解决了多视图L2三角化这个经典问题的工程实现难题。也许这就是为什么这篇论文投不出去的原因——它太“工程”了不够“理论”。但对我来说工程上的价值同样重要。毕竟在计算机视觉领域最终还是要靠代码说话。最后我想对当年那个UC Davis的作者说一句你看不懂我的代码没关系但我的结果比你好这是事实。如果你现在再来看这篇论文也许会有不一样的理解。本文基于arXiv:1405.3352《Newton-Type Iterative Solver for Multiple View L2 Triangulation》及其背后真实经历撰写