博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
张正友标定法小结
阅读量:3591 次
发布时间:2019-05-20

本文共 948 字,大约阅读时间需要 3 分钟。

六、张正友标定法小结

          这一博文,是玉米后补上的。因为觉得前面用了三篇博文来描述张氏标定法,略显散乱。在这里总结一下,使条理清晰一点。另外关于张氏标定所得参数也还有两点需要澄清。下面这个总结,其实也是在“A Flexible New Technique forCamera Calibration”中出现的。

一、张氏标定的过程:

       1.      打印一张棋盘格,把它贴在一个平面上,作为标定物。

       2.      通过调整标定物或摄像机的方向,为标定物拍摄一些不同方向的照片。

       3.      从照片中提取特征点(如角点)。

       4.      估算理想无畸变的情况下,五个内参和所有外参。

       5.      应用最小二乘法估算。实际存在径向畸变下的畸变系数。

       6.      极大似然法,优化估计,提升估计精度。

         通过这样的过程,我们就获得了具有高估计精度的五个内参,三个外参和两个畸变系数。利用这些信息,我们可以进行畸变矫正、图像校正和最终的三维信息恢复。

 

二、以下是对于张氏标定求得的内参,需要注意的一点:

         通过张氏标定,我们并不能得到:焦距(f)和像素的物理尺寸(sx,sy)两个参数。因为我们在求解内参阵A时,求解出的是α和β。

α=f/ sx,β= f/ sy 。分别代表焦距长度上,x轴和y轴像素的个数。

        虽然,没有求得焦距,但这并不影响,我们在三维坐标恢复时,进行三角运算。因为彼时,我们的计算中用到的也是α和β。

 

       大家可能会有疑问,既然我们无法得到焦距(f)和像素的物理尺寸(sx,sy)两个参数。那么在中,调用的cvCalibrateCamera2时返回的参数中是包含焦距(f)的。Opencv的这个函数也是用了张氏标定法。为什么可以得到f呢?

       答案是这条opencv函数对内参阵做了简化,其认为γ=0即像素的物理尺寸(sx,sy)两个参数相等。然后统一约掉物理尺寸s。得到的B阵如下:

       这样我们就可以解出f了。

       张氏标定的精确度可达到0.5个像素,这样的指标已经可以满足绝大多数的应用了。所以如此简单的方法,得到了这么高的精度。这样的方法是值得人们膜拜的。在此,在次向张正友教授致敬!

 

       在此,玉米又对张氏标定法进行了一个总结。张氏标定的原理分析就到此为止了。但是它的作用还会延续到下面两篇博文中。

       玉米才疏学浅,文中如有纰漏,请大家批评指正。

你可能感兴趣的文章
Vue使用组件的细节点
查看>>
Vue父子组件的数据传递
查看>>
给组件绑定原生事件
查看>>
在Vue中使用animate.css库
查看>>
Vue中多个元素或组件的过渡
查看>>
Vue中的列表过渡
查看>>
Vue项目打包后dist文件目录详解
查看>>
Vue异步组件实现按需加载
查看>>
Js使用removeEventListener对全局事件的解绑
查看>>
数据库事务简介
查看>>
SpringMVC数据绑定入门
查看>>
SpringBoot的pom.xml细节
查看>>
代码审计——命令执行
查看>>
致远OA任意文件下载漏洞(CNVD-2020-62422)
查看>>
解决elasticsearch max virtual memory areas vm.max_map_count [65530] is too low......报错
查看>>
解决Navicat连接SQL Server数据库,报错08001-命名管道提供程序:无法打开与SQL Server的连接[2].
查看>>
Spring Boot+Quartz+Sql Server+vue实现定时任务(带界面)
查看>>
解决vue工程报错This relative module was not found:
查看>>
解决vue工程报错Uncaught (in promise) Error: Request failed with status code 404
查看>>
vue+element-ui多选和按钮绑定并将值传往后端
查看>>