三点法求三维坐标精度误差评估实验
1、 实验目的
1) 对实验做一个系统性的误差评价。
2) 验证本实验的精度能否达到测量空间角的要求。
2、 实验原理
参考论文[1]进行误差评估实验,但是由于论文中的评定指标并不都适合本次实验,所以要重新考虑哪些变量可以 作为判断三点法求三维坐标是否精确的指标,哪些不能。经过可操作性等考虑之后,选取了3维中的距离和空间 角作为指标;2维方面选取矫正和非矫正的图像作为指标。
说明:论文中提到,他们的3D test points是可测量的,而且在图像中的2D坐标也是能够用image segmentation准确 得到。但是由于一开始数据信息不够,我们就把双目标定的数据作为论文中的一个默认正确的参考数据。
3、 实验内容及结果
3D测量误差评价
1) 距离误差:
将双目立体标定作为参考真实值,将实验方法得到的坐标点作为比较值,得到:
参考真实3D点坐标:
约束距离得到的3D坐标点:
求得,三点法得到的空间距离相对误差为:
平均误差为: 2.15%
2) 空间角误差:
设3点A,B,C。计算向量AB和AC,那么法向量n = AB × AC 注意这里是用向量积表示求得的法向量。
这里得到选定的参考法向量为:
n1=( -0.8743, 1.3556 , 1.5040)
约束距离也就是三点法得到的法向量为:
n2=(0.9655, -1.0802, 0.3180)
这里只根据法向量很难比较出两个法向量之间的关系,所以利用余弦公式求得两个法向量的夹角,如果夹角很 小,说明两个法向量的空间角之间相差不是很远。
求得n1和n2之间的夹角为 :
Θ=124.02°
2D测量误差评价
1) 图像矫正后的精度
论文中提到将真实的2维点(根据图割得到?)与矫正后的点比较,这里的real points用立体标定棋盘提取角点方 法得到点作为标准:
矫正后的点:
选取的点,做差求距离,然后求平方和:
最后得到:
最大误差: 2.1912 平均值:1.3042
方差: 16.1861 标准差:4.0232
2)图像未矫正前的精度
这是未做畸变矫正得到的点:
同样做类1)过程处理:
最大误差: 3.6156 平均值:1.5180
方差: 96.2468 标准差:9.8105
4、 实验结果分析
1) 首先分析三维的距离误差,实际上对于单目来说,这个误差个人觉得可以接受,最大距离误差小于3%,也 就是说在2米的范围内,可以做到精确到6厘米以内,平均2.15%约为4厘米。
2) 到了空间角的误差,两个空间平面角相差124°,即使有运算过程或者一始假设双目正确实则错误的失误, 这个误差也难以接受,理想中的角度误差应该不超过10°,实际过程中角度误差不像距离误差那样容易控 制。
3) 二维加畸变矫正和未加的结果中可以比较得出来,图像加了畸变矫正后得到的图像坐标更接近于real points, 也就是参考点实际投影的坐标。
最终的结论:就是跟上次的实验得到结论有点相似:要想得到精确地控制空间角的方法,现在的精确度远远达不 到要求,角度对位置的变化很敏感,小小的误差,都可能造成角度的巨大翻转,精确的角度这要求怕是难以达 到。
参考资料[1]:A comparative review of camera calibrating methods with accuracy evaluation. J Salvi,X Armangué,J Batlle
---------------------
原文:https://blog.csdn.net/purgle/article/details/51745342
三点法求三维坐标精度误差评估实验相关推荐
- 三点求圆心坐标(三角形外心)
//过三点求圆心坐标 Point waixin(Point a,Point b,Point c) { double a1 = b.x - a.x, b1 = b.y - a.y, c1 = (a1*a ...
- C#三点法计算圆心坐标和圆半径
引用"System.Drawing" Using指令: using System.Drawing; 代码块: /// <summary> /// 三点法计算圆心坐标和圆 ...
- 三点法求点三维坐标实验
1.实验目的 1)加深对标定原理的理解 2)验证一种单目求三维点坐标的方法 2.实验原理 1) ⎡⎣⎢uv1⎤⎦⎥=⎡⎣⎢1/dx0001/dy0u0v01⎤⎦⎥⎡⎣⎢f000f0001⎤⎦⎥⎡⎣⎢X ...
- 七参数坐标转换 matlab,利用三点法求解空间坐标系转换所需的七参数
同一个物体的点云在不同坐标系中的坐标表示不同,有时候需要将其进行转换到同一坐标系中进行处理,经典的方法为七参数法(7-parameters),用matlab实现如下: %PS.好久不用matlab了, ...
- QT快速入门、三点求圆心实现详解
在编程中,会经常用到数学计算,所以C++将常用的数学计算,例如求正余弦等,封装成函数(正是我们在3.2 数学计算中学习到的),我们只需要写入简单的语句就可以执行所需要的功能,这正是函数的意义.在这一章 ...
- 测试三角化,利用直接线性变换法求三维点坐标(三维重建task2-1)
测试三角化,利用直接线性变换法求三维点坐标(三维重建task2-1) 本代码解决的问题:已知相机参数和匹配点,恢复三维点的坐标 这次代码最主要的内容就是:如何把矩阵用代码的形式表示. 然后最终获得:2 ...
- java求外接圆圆心_由三点三维坐标计算圆半径和圆心位置
[实例简介] 通过输入任意三点空间坐标自动判断三点是否在一条直线上,若不在则求三点外接圆的圆心位置和半径,计算精度可调节.解决了"知三点求圆心半径"程序对于某些点无法计算的缺陷. ...
- 已知三角形的三个顶点的坐标,求三角形的面积
已知:三角形ABC的三个顶点的坐标为: 求:三角形ABC的面积? 解1: 解2: 解2是解1的拓展与延伸,但是在实际的变成过程中,解2更利于我么更快的完成编程.
- 已知无人机姿态信息,以及图像上的像点坐标,怎么求像点对应的三维坐标
如果已知无人机姿态信息(也就是无人机的位置和朝向)以及图像上的像点坐标,那么可以使用立体视觉的方法来求出像点对应的三维坐标. 具体来说,首先要将无人机的姿态信息转化为摄像头的欧拉角(或欧拉角加平移向量 ...
最新文章
- mysql给数据库重命令_mysql 重命令数据库
- [深入理解Android卷一全文-第十章]深入理解MediaScanner
- 数据库系统原理(第5章:数据库编程)
- ----斐波那契数列---eval函数----类递归思想 栈 进出 思想
- 关于x86、x86_64/x64、amd64和arm64/aarch64
- 火狐浏览器如何禁止网站发消息 火狐浏览器禁止网站发消息的方法
- WVI职业价值观测量表
- java实现rabbitmq发布/订阅模型(Publish/Subscribe queues), 生产者 消费者 交换机 消息队列
- scala 资源 copy 自知乎
- linux中lsattr命令,Linux命令(16)——chattr与lsattr命令
- ios 数组中的字典排序_iOS开发——根据数组中的字典中的某一元素排序
- Idea起服务报错java heap space,GC overhead limit exceeded,Information:javac 1.8.0_181 was used to comp解决办法
- 智能手环功能模块设计_基于嵌入式系统智能手环的设计开发
- Python爬虫实战之12306抢票开源
- 国内外优秀开源源码网站
- AngularJS中ngRouter和uiRouter的区别
- strstr函数的自己实现
- 联想拯救者7000充不上电的解决办法
- Android CardView卡片布局详解(八)
- 小乌龟提交本地的文件夹下多个项目
热门文章
- 游戏3D建模入门,有哪些建模软件可以选择?
- 荐读 | 从公有链到生态架构者,Conflux 做了些什么?
- 用matlab抽奖,现在社会上销售彩票的很多。一家三口在抽奖时,常常喜欢让孩子来抽,请问这是遵循了什么决策原则( )...
- KVC原理分析及应用
- 新计算机分区,全新的电脑怎么给新硬盘分区?
- 裸辞闹了个乌龙,就当做个题提升自己吧
- 什么是 Web 3.0?|互联网的下一波浪潮解释
- EXCEL中进行经纬度坐标排重
- 聊聊Excel的大批量导入导出
- 老照片修复清晰?父母以前的老照片还能修复吗?