多点DLT (Direct Linear Transformation) 算法

阅读前可以先参看上一篇代数视觉博客:
四点DLT (Dierct Linear Transformation) 算法

对于大于4个点的数据点来进行 DLT 算法变换, 如果数据点的标注都十分准确,那么将所有数据点都放进 A 矩阵中进行求解的话, 与只放4个点没有区别,因为一致性会让矩阵 A 的秩仍为8.

但由于现实操作中, 数据点总是不准确带有噪声的, 盲目将全部点带入矩阵 A 会导致Ah=0 中的 h 只有 0 解, 这并不是我们想要的. 因此我们需要进行改造

为了让所有点都可用,我们将所有点的数据构成的 Ai 矩阵的前两行组成 A 矩阵. 然后我们可以构造 Ah=0. 但前面已经说明,这样直接求解会导致零解. 因此我们将等于零换为它们乘积的范数近似为0, 即||Ah||=0 但为了避免 h 为零解, 我们加入一项对 h 的约束, ||h||=1

因此我们可以多点DLT的算法改成一个优化损失函数的算法

min ||Ah|| s.t. ||h||=1

进一步的,我们可以改写上式成

min||Ah||||h||

算法表如下
image

引用: Multiple View Geometry in Computer Vision Second Edition

posted @   WilliamHuang2022  阅读(287)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示