以下内容节选自https://bitesofcode.wordpress.com/2017/09/12/augmented-reality-with-python-and-opencv-part-1/comment-page-1/#comment-61

对于上图中,怎么估计\(\begin{bmatrix}h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix}\)?
我们可以使用Random Aample Consebsus(RANSAC)

RANSAC算法过程如下:

  1. 均匀随机选择点集合中的一部分点;
  2. Fit a model to subset
  3. find all remaining points that are "close" to the model and reject the rest as outliers
  4. do this many times and choose the best model

举个例子,假设我们有一下点集,我们想用使用RANSAC来用一条直线拟合:

算法过程如下:

  1. sample (randomly) the number of points required to fit the model
  2. solve for model params using samples
  3. Score by the fraction of inliers within a present threshold 't' of the model
  4. repeat 1-3 until the best model is found with high confidence

运行这个算法的结果图如下,显示了第一次迭代的前三个步骤, 之后的是Score步骤:

对于我们homograpy estimation,

在Opencv中

# assuming matches stores the matches found and
# returned by bf.match(des_model, des_frame)
# differenciate between source points and destination points
src_pts = np.float32([kp_model[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)
dst_pts = np.float32([kp_frame[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)
# compute Homography
M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)

以上代码中5.0是阈值距离来决定一个匹配是否跟预估的Homography 一致,在预估了homography之后,我们可以投影四个角点:

# Draw a rectangle that marks the found model in the frame
h, w = model.shape
pts = np.float32([[0, 0], [0, h - 1], [w - 1, h - 1], [w - 1, 0]]).reshape(-1, 1, 2)
# project corners into frame
dst = cv2.perspectiveTransform(pts, M)
# connect them with lines
img2 = cv2.polylines(img_rgb, [np.int32(dst)], True, 255, 3, cv2.LINE_AA)
cv2.imshow('frame', cap)
cv2.waitKey(0)

结果如下:

转载于:https://www.cnblogs.com/rogerjin/p/7852472.html

Homography estimation(旋转估计)相关推荐

  1. Deep Image Homography Estimation

    在知乎问题:深度学习应用在哪些领域让你觉得「我去,这也能行!」?中遇到一篇提交在arXiv 2016(arXiv不是正式发表,只是可以证明原创性,提供时间戳的网站)的文章<Deep Image ...

  2. ISP图像对齐(二):Deep Image Homography Estimation

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.4-点式建模与其利弊 二.原理过程 三.训练与效果 总结 前言 ISP 图像对齐笔记(二):Deep Image ...

  3. 文章《Deep Image Homography Estimation》

    之前自己也在思考如何利用神经网络实现图像的配准,没思考出什么结果来.大部分的深度学习中使用的是单幅图像进行训练,如果输入的是变形图像和参考图像,其实可以借鉴图像匹配的网络,但是还是不清楚具体如何进行. ...

  4. Human Pose Estimation姿态估计调研

    介绍 姿态估计的目标是在RGB图像或视频中描绘出人体的形状,这是一种多方面任务,其中包含了目标检测.姿态估计.分割等等.有些需要在非水平表面进行定位的应用可能也会用到姿态估计,例如图形.增强现实或者人 ...

  5. YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)

    概述 YOLOv7姿态估计:一种快速准确的人体姿态估计模型 ​ 人体姿态估计是计算机视觉中的一项重要任务,具有各种应用,例如动作识别.人机交互和监控.近年来,基于深度学习的方法在人体姿态估计方面取得了 ...

  6. Hourglass Network 沙漏网络 (pose estimation姿态估计)

    在ECCV2016<Stacked Hourglass Networks for Human Pose Estimation>这篇paper中提出 是一个姿态估计(pose estimat ...

  7. 【Hll】Hll HyperLogLog: Cardinality Estimation(基数估计算法源码解析)

    1.概述 好文章,转载防丢失 主要是这里有源码,我遇到问题了,问题是flink在累加器中使用的时候,每次累加最终结果是1,2 每次到了2 就会重新回到1,很郁闷于是看看源码 2.背景 我们经常会统计某 ...

  8. python 全景图像拼接( python3.6 + opencv3.4.2.16) 融合

    全景图像拼接 全景图像拼接的手动实现 环境: python3.6 + opencv3.4.2.16 ## 示例图片 本次实验使用的图像拼接素材为以下三张图像: https://andreame.com ...

  9. 自动驾驶 11-3: 根据 LIDAR 数据进行位姿估计 Pose Estimation from LIDAR Data

    既然你已经学会了如何翻译, 旋转和缩放点云, 是时候谈谈我们该如何做 实际使用这些操作 用真实的点云 估计自动驾驶汽车的运动. 我们这样做的方式 一般是通过解决某事 称为点集配准问题, 这是最重要的问 ...

最新文章

  1. 如何制作风格迁移图?
  2. AngularJS中选择样式
  3. 万字总结,知识蒸馏如何在推荐系统中大显身手?
  4. [转载]web集群时利用memcache来同步session
  5. UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...
  6. Spring整合Hibernate图文步骤
  7. 51单片机怎么显示当前时间_单片机初学者必看
  8. LINQ系列:LINQ to XML操作
  9. python逐行读取数据时出现错误_Python利用逐行读取readline()打印出现空行的解决办法...
  10. python 怎么判断文件存在哪里_Python判断文件和文件夹是否存在的方法
  11. Spark-Kudu报错:kudu.client.NonRecoverableException: The table was deleted: Table deleted at xxx
  12. Maven多个mudule只编译、打包指定module
  13. Embeded linux之地址映射
  14. 直流有刷电机(可以用L298N来驱动)
  15. 小器件,大作用-光纤环形器在光纤传输中的应用
  16. MongoDB分片存储集群支撑海量数据
  17. 猜数字游戏,用户充值版(Java)
  18. 我是如何投资数字货币的(1.2版)
  19. 移动端性能专项测试之 CPU
  20. Python基础语法函数——经典函数实例

热门文章

  1. 乌班图18下安装QQ
  2. Matlab 在线版 —— 科研人员的福音!无需下载安装,可计算可作图
  3. 基金使用计划 数学建模 matlab,基金使用计划(数学建模).ppt
  4. html图片缩放6,html img图片不变形等比例缩放,兼容ie6
  5. 第一期码易猿游活动圆满结束 精彩仍将继续
  6. 平头哥面试——数字IC1
  7. 一个技术出身的市场人的小访谈
  8. Python编程入门教程(以在线评测平台为载体)
  9. 用JS实现PC端淘宝查看商品图片放大镜效果
  10. 谷歌10年,难说再见......