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

三点法求三维坐标精度误差评估实验相关推荐

  1. 三点求圆心坐标(三角形外心)

    //过三点求圆心坐标 Point waixin(Point a,Point b,Point c) { double a1 = b.x - a.x, b1 = b.y - a.y, c1 = (a1*a ...

  2. C#三点法计算圆心坐标和圆半径

    引用"System.Drawing" Using指令: using System.Drawing; 代码块: /// <summary> /// 三点法计算圆心坐标和圆 ...

  3. 三点法求点三维坐标实验

    1.实验目的 1)加深对标定原理的理解 2)验证一种单目求三维点坐标的方法 2.实验原理 1) ⎡⎣⎢uv1⎤⎦⎥=⎡⎣⎢1/dx0001/dy0u0v01⎤⎦⎥⎡⎣⎢f000f0001⎤⎦⎥⎡⎣⎢X ...

  4. 七参数坐标转换 matlab,利用三点法求解空间坐标系转换所需的七参数

    同一个物体的点云在不同坐标系中的坐标表示不同,有时候需要将其进行转换到同一坐标系中进行处理,经典的方法为七参数法(7-parameters),用matlab实现如下: %PS.好久不用matlab了, ...

  5. QT快速入门、三点求圆心实现详解

    在编程中,会经常用到数学计算,所以C++将常用的数学计算,例如求正余弦等,封装成函数(正是我们在3.2 数学计算中学习到的),我们只需要写入简单的语句就可以执行所需要的功能,这正是函数的意义.在这一章 ...

  6. 测试三角化,利用直接线性变换法求三维点坐标(三维重建task2-1)

    测试三角化,利用直接线性变换法求三维点坐标(三维重建task2-1) 本代码解决的问题:已知相机参数和匹配点,恢复三维点的坐标 这次代码最主要的内容就是:如何把矩阵用代码的形式表示. 然后最终获得:2 ...

  7. java求外接圆圆心_由三点三维坐标计算圆半径和圆心位置

    [实例简介] 通过输入任意三点空间坐标自动判断三点是否在一条直线上,若不在则求三点外接圆的圆心位置和半径,计算精度可调节.解决了"知三点求圆心半径"程序对于某些点无法计算的缺陷. ...

  8. 已知三角形的三个顶点的坐标,求三角形的面积

    已知:三角形ABC的三个顶点的坐标为: 求:三角形ABC的面积? 解1: 解2: 解2是解1的拓展与延伸,但是在实际的变成过程中,解2更利于我么更快的完成编程.

  9. 已知无人机姿态信息,以及图像上的像点坐标,怎么求像点对应的三维坐标

    如果已知无人机姿态信息(也就是无人机的位置和朝向)以及图像上的像点坐标,那么可以使用立体视觉的方法来求出像点对应的三维坐标. 具体来说,首先要将无人机的姿态信息转化为摄像头的欧拉角(或欧拉角加平移向量 ...

最新文章

  1. mysql给数据库重命令_mysql 重命令数据库
  2. [深入理解Android卷一全文-第十章]深入理解MediaScanner
  3. 数据库系统原理(第5章:数据库编程)
  4. ----斐波那契数列---eval函数----类递归思想 栈 进出 思想
  5. 关于x86、x86_64/x64、amd64和arm64/aarch64
  6. 火狐浏览器如何禁止网站发消息 火狐浏览器禁止网站发消息的方法
  7. WVI职业价值观测量表
  8. java实现rabbitmq发布/订阅模型(Publish/Subscribe queues), 生产者 消费者 交换机 消息队列
  9. scala 资源 copy 自知乎
  10. linux中lsattr命令,Linux命令(16)——chattr与lsattr命令
  11. ios 数组中的字典排序_iOS开发——根据数组中的字典中的某一元素排序
  12. Idea起服务报错java heap space,GC overhead limit exceeded,Information:javac 1.8.0_181 was used to comp解决办法
  13. 智能手环功能模块设计_基于嵌入式系统智能手环的设计开发
  14. Python爬虫实战之12306抢票开源
  15. 国内外优秀开源源码网站
  16. AngularJS中ngRouter和uiRouter的区别
  17. strstr函数的自己实现
  18. 联想拯救者7000充不上电的解决办法
  19. Android CardView卡片布局详解(八)
  20. 小乌龟提交本地的文件夹下多个项目

热门文章

  1. 游戏3D建模入门,有哪些建模软件可以选择?
  2. 荐读 | 从公有链到生态架构者,Conflux 做了些什么?
  3. 用matlab抽奖,现在社会上销售彩票的很多。一家三口在抽奖时,常常喜欢让孩子来抽,请问这是遵循了什么决策原则(   )...
  4. KVC原理分析及应用
  5. 新计算机分区,全新的电脑怎么给新硬盘分区?
  6. 裸辞闹了个乌龙,就当做个题提升自己吧
  7. 什么是 Web 3.0?|互联网的下一波浪潮解释
  8. EXCEL中进行经纬度坐标排重
  9. 聊聊Excel的大批量导入导出
  10. 老照片修复清晰?父母以前的老照片还能修复吗?