Homography

  1. 这篇博客比较清晰准确的介绍了关于刚性变换,仿射变换,透视投影变换的理解

  2. 单应性变换 的 条件和表示
    用 [无镜头畸变] 的相机从不同位置拍摄 [同一平面物体] 的图像之间存在单应性,可以用 [透视变换] 表示 。

  3. opencv单应性变换求解, 传统方法
    cv2.findHomography和cv2.getPerspectiveTransform
    两者联系:
    都用于计算单应矩阵,即解一个线性方程组。由于单应矩阵有8个未知数(3*3,其中第9个数为1),所以至少需要4个点(每个点-x,y,提供2个约束方程)。

    两者区别:
    计算方法不同:getPerspectiveTransform用的是SVD分解,只需要四个点。
    输入参数不同:getPerspectiveTransform只会拿前4个点去计算,findHomography则会拿一堆点(>=4)去计算(其是不断从一堆点中重复拿出4个点去计算出一个结果,再采用一些优化算法RANSAC/LMEDS去筛选出最优解)

  4. Deep Image Homography Estimation 论文。利用深度学习估计Homography
    4.1 HomographyNet的结构
    4.2 HomographyNet数据集的制作方法,制作ground truth,进行监督训练
    原论文也容易理解github代码有很多, 详细看原论文 或者
    可以参考 基于深度学习(HomographyNet)的图像单应性估计)

    code:https://github.com/breadcake/Deep-homography-estimation-pytorch
    https://github.com/paeccher/Deep-Homography-Estimation-Pytorch
    有一个问题,4对偏移坐标, 不同scale对应相同转换?
    code中四个角选的是长度为128的正方形

  5. 关于传统方法单应性估计的原理code 可以参考 dastratakos:Homography-Estimation

  6. Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model
    和无监督光流方法类似,利用warp后的图像建立损失函数,无监督训练

    其中 DLT就是 通过4对point 求 H
    spatial transformation 就是透视投影 warp

    def photometric_loss(delta, img_a, patch_b, corners):corners_hat = corners + delta# in order to apply transform and center crop,# subtract points by top-left corner (corners[N, 0])corners = corners - corners[:, 0].view(-1, 1, 2)h = kornia.get_perspective_transform(corners, corners_hat)h_inv = torch.inverse(h)patch_b_hat = kornia.warp_perspective(img_a, h_inv, (128, 128))return F.l1_loss(patch_b_hat, patch_b)
    

    参考代码
    和 (https://github.com/breadcake/unsupervisedDeepHomography-pytorch)

  7. Content-Aware Unsupervised Deep Homography Estimation 2020
    该篇论文和6类似,都是无监督学习,只是6把warp等操作放在网络里,7放在了损失函数里.
    另外7引入了mask, 以及在损失函数上的创新。
    本篇论文鲁棒性更好,因为更多的考虑到非平面场景。

  8. 关于在pytorch如何实现warp等操作:

    1)比如 stn, 后面pytorch引入 gridsample采样函数。
    2)比如 kornia 库,也是基于stn.

  9. 最后再介绍一篇 基于深度学习 homography estimation:

    Motion Basis Learning for Unsupervised Deep Homography Estimation
    with Subspace Projection
    code

    特征:
    1)无监督
    2)首先生成8个homography flow, 网络预测8个homo-flow的weight
    homography flow 相比light flow 有更多的约束,homography flow是light flow的一个特殊情况,因为homography flow所有pixel的位移是通过一个转换关系得到的,而light flow是更generatic的情况。
    3)LRR模块引入网络结构
    4)更复杂有效的损失函数

[1]https://blog.csdn.net/abc20002929/article/details/8709902
[2]https://zhuanlan.zhihu.com/p/74597564
[3]https://zhuanlan.zhihu.com/p/37110107

单应性Homography梳理,概念解释,传统方法,深度学习方法相关推荐

  1. OpenCV用代码解释单应性的基本概念

    OpenCV用代码解释单应性的基本概念 用代码解释单应性的基本概念 基础理论 单应矩阵是什么? 单应变换如何有用? 示范代码 从共面点估计姿势 用代码解释单应性的基本概念 基础理论 单应矩阵是什么? ...

  2. 透视变换 单应性矩阵怎么求 matlab,单应性(homography)变换的推导

    矩阵的一个重要作用是将空间中的点变换到另一个空间中.这个作用在国内的<线性代数>教学中基本没有介绍.要能形像地理解这一作用,比较直观的方法就是图像变换,图像变换的方法很多,单应性变换是其中 ...

  3. 计算机视觉 单应性 Homography

    该博客内容发表在泡泡机器人公众号上,请尊重泡泡机器人公众号的版权声明 在ORB-SLAM初始化的时候,作者提到,如果场景是平面,或者近似平面,或者低视差时,我们能应用单应性矩阵(homography) ...

  4. Homography matrix(单应性矩阵)在广告投放中的实践

    原文首发于微信公众号「3D视觉工坊」. 前言 由于近期在研究相机与投影仪的标定程序时,需要将结构光图片与灰点相机拍摄得到的图片中,找出角点之间的对应性,使用了如下一条代码: Mat HomoMatri ...

  5. OpenCV中的「透视变换 / 投影变换 / 单应性」—cv.warpPerspective、cv.findHomography

    文章目录 引言 透视变换(projective transform) 单应性(Homography) opencv代码 仿射变换相关函数 投影变换相关的函数 鸟瞰图代码示例 小结 引言 图像的几何变换 ...

  6. 单应性Homograph估计:从传统算法到深度学习

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文作者:白裳 https://zhuanlan.zhihu.com/p/74597564 本文已由原 ...

  7. sift算法_单应性Homograph估计:从传统算法到深度学习

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文作者:白裳 https://zhuanlan.zhihu.com/p/74597564 本 ...

  8. 单应性矩阵 matlab,单应性矩阵MATLAB程序

    单应性(Homography)描述的是同一个平面上的点,在两幅视图上的像点之间存在一一对应的映射关系,本质上是将一个目标点在两幅图像中相互转移.对应关系如图所示. 本文计算单应性矩阵在两个图像平面中都 ...

  9. 单应性(Homography)变换

    我们已经得到了像素坐标系和世界坐标系下的坐标映射关系: 其中,u.v表示像素坐标系中的坐标,s表示尺度因子,fx.fy.u0.v0.γ(由于制造误差产生的两个坐标轴偏斜参数,通常很小)表示5个相机内参 ...

最新文章

  1. 新建arcgis api for android 项目失败
  2. SimplifiedHibernate:简化了的Hibernate
  3. Django中Ajax提交数据的CSRF问题
  4. pytorch 实现线性回归
  5. 注解方式实现aop-快速入门
  6. java序列化_夯实Java基础系列22:一文读懂Java序列化和反序列化
  7. 论证通过!依托顶尖985大学,争创国家实验室!
  8. 关于Redis Cluster的几个问题
  9. LINUX一个正确的mime xml范例
  10. 基于RRT算法的路径规划
  11. access无法 dolby_Win10专业版装不了dolby该怎么办?Win10 dolby音效驱动安装教程
  12. 【墨墨英语单词库免费开源无偿分享】小学、初中、高中、大学四六级专四专八、考研、托福、雅思等词书文本大合集
  13. PHP实现图片转字符画
  14. 面试手写代码的经验分享
  15. 产品部和业务部门是什么关系
  16. 高级语言程序设计(C语言)----第三章(上) 数据类型、运算符和表达式
  17. Java中为什么有时候通过指定编码集无法解决乱码
  18. linux进化树分析的软件,进化树分析及相关软件使用说明
  19. 太原师范学院计算机考研资料汇总
  20. python里raise是什么意思_Python中raise与raise...from之间有何区别?

热门文章

  1. 华为服务器上传文件,云服务器上传文件方式
  2. web前端面试重点难点问题
  3. 订单并发问题分析及解决
  4. 若依前后端分离框架学习-6:日志管理
  5. Mybatis二级缓存的缺陷
  6. Python-Django毕业设计高校田径运动会管理(程序+LW)
  7. 猪齿鱼V2.1.0 发布 移动办公、知识在线协作, 项目管理快人一步
  8. 超级详细的Lua语言的基础教程
  9. 大数据开发:Spark入门详解
  10. html 标签 转码 解码