如何进行相机的绝对位置估计?
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
棋盘格,我们通常拿来做标定用,但如果可以有这样的效果,是不是感觉高级那么一点点?
在这之前,我们还是先了解几个基本概念:
1
几何畸变
1)几何畸变模型通常定义在归一化的的图像平面上
2)多项式畸变模型(又名Brown-Conrady模型)
径向畸变(枕形、桶形):光线在远离透镜中心的地方比靠近中心的地方更加弯曲,用数学表达式表示为:k_1,k_2,…
切向畸变:透镜不完全平行于图像平面,即sensor装配时与镜头间的角度不准。用数学表达式表示为:p_1,p_2,…(通常可以忽略不计)。
上述两种畸变如下图所示:
其中,k_1r^2+k_2r^4 为补偿系数,补偿系数服从二次函数。对于该畸变模型我的理解是以图像中心点为圆心相同半径的点补偿量相同,不同半径的补偿量有服从二次函数。如图所示相同半径的圆周上补偿量相同。
3)FOV模型
径向畸变通过正切函数建模(对于严重畸变很有效,比如鱼眼镜头)
4)深度相机畸变模型
深度相机畸变有两种,第一种是与RGB相机相同的畸变,如上面2中介绍的畸变一样,矫正的是二维平面的畸变,矫正方法可以使用棋盘格。第二种畸变是深度畸变,如果使用深度相机在一个平面上采集图像,理论上深度图像每一个像素值大小都相等,采集的是一个平面,深度图的像素值大小代表深度,但实际采集的深度图不平整,此外深度图边缘畸变较大。
2
几何畸变校正
1)输入:原始图像
2)输出:矫正后的图像
3)已知:相机矩阵和畸变系数
4)多项式畸变模型的解决方法:
OpenCV cv::undistort() 和 cv::undistortPoints()(包含在imgproc模块中)
cv::projectPoints() (包含在calib3d模块中)。其中而undistort()可以直接对图形去畸变,而undistortPoints()是只针对像素点去畸变。projectPoints()用于计算原2d点和重投影2d点的距离作为重投影误差。
相机畸变校正:
3
相机标定 #1
1)未知:内参和外参(5* + 6DoF)
内参*数量根据用户偏好会有所不同
2)已知:3D点 X_1,X_2,…,X_n,对应的投影点x_1,x_2,…,x_n,
3)限制条件:n x 投影矩阵x_i = K[R|t]X_i
4
相机标定 #2
1)未知:内参 + m x 外参(5* + m x 6DoF)
2)已知:3D点 X_1,X_2,…,X_n,及从第j个相机x_i^jp拍摄对应的投影点
3)限制条件:n x m x 投影矩阵x_i = K[R|t]X_i
4)解决方法:
OpenCV cv::calibrateCamera() 和 cv::initCameraMatrix2D()
MATLAB中相机标定工具箱
GML C++相机标定工具箱
具体的相机标定示例如下:
最后,我们给出相机的绝对位姿估计(Perspective-n-Point,也就是PnP)
5
相机的绝对位姿估计
1)未知:相机位姿(六自由度)
2)已知:3D点 X_1,X_2,…,X_n,对应的投影点x_1,x_2,…,x_n,和相机矩阵K
3)限制条件:n x 投影矩阵 x_i = K[R|t]X_i
4)解决方法(n≥3)→ 3特征点算法
OpenCV cv::solvePnP() 和 cv::solvePnPRansac()
高效的PnP(EPnP)
部分代码及执行效果如下图所示:
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2
在「3D视觉工坊」公众号后台回复:3D视觉优质源码,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3
在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
整理不易,请给工坊点赞和在看!
如何进行相机的绝对位置估计?相关推荐
- 物体抓取位姿估計算法綜述_基于深度学习的物体抓取位置估计
主讲题目:基于深度学习的物体抓取位置估计 主要内容:机械臂抓取技术简介与入门方法 主讲嘉宾:东北大学研究生,主要研究物体六自由度位姿估计,机械臂抓取. 知乎视频www.zhihu.com 往期干货资 ...
- 无人机利用视觉slam实现位置估计
无人机利用视觉slam实现室内位置估计 自己近期所做的以及思考的东西 我们实验室买了阿木的p200(带t265)无人机用于无人机的控制研究,通过阿木实验室的ros功能包px4_command可以无脑的 ...
- Azure Kinect 3深度相机开发--人体姿态估计并输出各个关节点坐标
Azure Kinect 3深度相机开发--人体姿态估计并输出各个关节点坐标 前言 一.VS配置Azure Kinect 3开发环境(C++) 1.下载并安装Azure Kinect3 SDK 2.配 ...
- Simulink永磁同步电机控制仿真系列五:使用滑模观测器的反电动势法位置估计
引言 应用于永磁同步电机的转子位置估计方法有多种,常用观测电机反电动势或观测电机磁链的方式估计转子位置,针对不同的观测状态量又有多种不同的观测方法.以下使用滑模观测器观测电机反电动势,进而估计永磁同步 ...
- OpenCV打开相机,调整窗口大小位置
OpenCV打开相机,调整窗口大小位置 import cv2cap = cv2.VideoCapture(0) cv2.namedWindow('test_cam',cv2.WINDOW_NORMAL ...
- 基于永磁同步电机的容积卡尔曼滤波ckf转速位置估计,估计效果很好
基于永磁同步电机的容积卡尔曼滤波ckf转速位置估计,估计效果很好 ID:6915673332014059
- 永磁同步电机无速度传感器控制(二)——脉振高频注入法(一)【位置估计原理】
1.高频注入法 前面已经讲过了一种无速度传感器实现方法--滑模观测器法.在开始一个新的位置估计策略之前,我们先聊一聊这个方法本身的特点.从前面对滑模的讲述可知,滑模观测器法是通过构造一个滑模面,然后设 ...
- 永磁同步电机无速度传感器控制(一)——滑模观测器(一)【位置估计原理】
无速度传感器控制就从滑模开始吧,基于反正切函数的转子位置估计应该是无速度传感器里面稍微简单的一类啦,就拿这个入手啦~滑模反正切分为多个文章进行解释,观测器数学和物理原理.观测器效果和波形分析.文章链接 ...
- 霍尔FOC转子位置估计算法
3.1研究现状 目前,针对开关霍尔拟合转子位置研究技术主要分为两类: 第一类方案是非模型法,主要围绕处理霍尔传感器信号,通常利用信号处理技术拟合转子位置.现有多种数据处理方法,如基于一阶或高阶逼近的方 ...
最新文章
- 你所知道的Java单例模式并不是单例模式
- 2015春季学期阅读计划
- 【深度学习】基于区域生长的图像分割算法!
- 简单程序计算无穷级数e^x
- CodeForces - 1407E Egor in the Republic of Dagestan(最短路+dp)
- OpenCV稀疏矩阵SparseMat
- 雪城大学信息安全讲义 4.1~4.2
- rcs开机启动mysql_linux添加开机自启动脚本示例详解-阿里云开发者社区
- 惠普服务器新加硬盘找不到,HP服务器更换硬盘后如何查看是否成功同步状态?...
- pygame编写井字棋游戏
- Ubuntu fastboot 烧写
- 关于“小于/等于/大于”的英文缩写
- 媒企农三方共建专属基地 探索助力吉林乡村振兴
- 如何使用BEACON功能?
- 右中秋夜大观园即景联句三十五韵
- 常用类:Java比较器
- Github项目被fork后如何删除
- 股市逃顶的技巧和方法
- 2017黑科技趋势最具看点的十大新品
- mongoDB1: 安装与基础操作
热门文章
- Silverlight实例教程 - Validation数据验证开篇
- 嵌入式多媒体设计7--QDockWidget大小调整及隐藏标题
- Excel 2007 (Excel.Application) Workbooks.Add 出现内存不够的解决办法
- 在三层交换机上配置DHCP
- “评IDC,送免费主机”活动,主机无任何限制,无广告
- MySQL优化篇:慢查询日志
- 为什么LINUX不需要碎片整理
- (转自scrum中文网)给Scrum Master的十个建议,你值得拥有
- Spring Boot + GraphQL 才是 API 的未来!
- 一次线上生产问题的全面复盘 【定位-分析-解决】