Homography estimation(旋转估计)
以下内容节选自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算法过程如下:
- 均匀随机选择点集合中的一部分点;
- Fit a model to subset
- find all remaining points that are "close" to the model and reject the rest as outliers
- do this many times and choose the best model
举个例子,假设我们有一下点集,我们想用使用RANSAC来用一条直线拟合:
算法过程如下:
- sample (randomly) the number of points required to fit the model
- solve for model params using samples
- Score by the fraction of inliers within a present threshold 't' of the model
- 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(旋转估计)相关推荐
- Deep Image Homography Estimation
在知乎问题:深度学习应用在哪些领域让你觉得「我去,这也能行!」?中遇到一篇提交在arXiv 2016(arXiv不是正式发表,只是可以证明原创性,提供时间戳的网站)的文章<Deep Image ...
- ISP图像对齐(二):Deep Image Homography Estimation
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.4-点式建模与其利弊 二.原理过程 三.训练与效果 总结 前言 ISP 图像对齐笔记(二):Deep Image ...
- 文章《Deep Image Homography Estimation》
之前自己也在思考如何利用神经网络实现图像的配准,没思考出什么结果来.大部分的深度学习中使用的是单幅图像进行训练,如果输入的是变形图像和参考图像,其实可以借鉴图像匹配的网络,但是还是不清楚具体如何进行. ...
- Human Pose Estimation姿态估计调研
介绍 姿态估计的目标是在RGB图像或视频中描绘出人体的形状,这是一种多方面任务,其中包含了目标检测.姿态估计.分割等等.有些需要在非水平表面进行定位的应用可能也会用到姿态估计,例如图形.增强现实或者人 ...
- YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)
概述 YOLOv7姿态估计:一种快速准确的人体姿态估计模型 人体姿态估计是计算机视觉中的一项重要任务,具有各种应用,例如动作识别.人机交互和监控.近年来,基于深度学习的方法在人体姿态估计方面取得了 ...
- Hourglass Network 沙漏网络 (pose estimation姿态估计)
在ECCV2016<Stacked Hourglass Networks for Human Pose Estimation>这篇paper中提出 是一个姿态估计(pose estimat ...
- 【Hll】Hll HyperLogLog: Cardinality Estimation(基数估计算法源码解析)
1.概述 好文章,转载防丢失 主要是这里有源码,我遇到问题了,问题是flink在累加器中使用的时候,每次累加最终结果是1,2 每次到了2 就会重新回到1,很郁闷于是看看源码 2.背景 我们经常会统计某 ...
- python 全景图像拼接( python3.6 + opencv3.4.2.16) 融合
全景图像拼接 全景图像拼接的手动实现 环境: python3.6 + opencv3.4.2.16 ## 示例图片 本次实验使用的图像拼接素材为以下三张图像: https://andreame.com ...
- 自动驾驶 11-3: 根据 LIDAR 数据进行位姿估计 Pose Estimation from LIDAR Data
既然你已经学会了如何翻译, 旋转和缩放点云, 是时候谈谈我们该如何做 实际使用这些操作 用真实的点云 估计自动驾驶汽车的运动. 我们这样做的方式 一般是通过解决某事 称为点集配准问题, 这是最重要的问 ...
最新文章
- 如何制作风格迁移图?
- AngularJS中选择样式
- 万字总结,知识蒸馏如何在推荐系统中大显身手?
- [转载]web集群时利用memcache来同步session
- UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...
- Spring整合Hibernate图文步骤
- 51单片机怎么显示当前时间_单片机初学者必看
- LINQ系列:LINQ to XML操作
- python逐行读取数据时出现错误_Python利用逐行读取readline()打印出现空行的解决办法...
- python 怎么判断文件存在哪里_Python判断文件和文件夹是否存在的方法
- Spark-Kudu报错:kudu.client.NonRecoverableException: The table was deleted: Table deleted at xxx
- Maven多个mudule只编译、打包指定module
- Embeded linux之地址映射
- 直流有刷电机(可以用L298N来驱动)
- 小器件,大作用-光纤环形器在光纤传输中的应用
- MongoDB分片存储集群支撑海量数据
- 猜数字游戏,用户充值版(Java)
- 我是如何投资数字货币的(1.2版)
- 移动端性能专项测试之 CPU
- Python基础语法函数——经典函数实例
热门文章
- 乌班图18下安装QQ
- Matlab 在线版 —— 科研人员的福音!无需下载安装,可计算可作图
- 基金使用计划 数学建模 matlab,基金使用计划(数学建模).ppt
- html图片缩放6,html img图片不变形等比例缩放,兼容ie6
- 第一期码易猿游活动圆满结束 精彩仍将继续
- 平头哥面试——数字IC1
- 一个技术出身的市场人的小访谈
- Python编程入门教程(以在线评测平台为载体)
- 用JS实现PC端淘宝查看商品图片放大镜效果
- 谷歌10年,难说再见......