双目立体匹配算法mobilestereonet

通过视觉测量深度的方法目前分为如下几种,一种是双目立体匹配,该方法的好处是有一个明确的物理模型,存在视差的概念,深度信息是根据时差转换得到,另一种是单目运动,该方法也可以看成一种特殊的双目模型或者多目模型,只不过它是时间上的多目,还有一种方法是完全的单目深度估计,直接由网络端到端给出深度,单目网络在可解释性和可移植性上不如双目和单目运动,但是其效果没有比双目差太多。

随着近年来车载系统视觉方案不断完善,立体视觉问题不断收敛,学界出现了一批轻量级网络,效果还不差,这篇博客主要介绍一个轻量级双目立体匹配网络mobilestereonet,后文简称MSN。博主理解MSN主要贡献还是在与对网络模型的压缩,骨干和后面的特征提取大量使用深度可分离卷积,而论文中提及的一些网络结构,经过博主实验下来,这些并不重要(比如3d卷积用分组卷积替代,网络性能并没有明显降低),直接感受是,参数确实更少,计算也更少。

阅读更多

立体视觉

立体视觉,版权声明,资源来自百度文库。

立体视觉是计算机视觉重要的分支,立体视觉的主要任务是通过二维图像恢复三维环境,是一项困难的逆向工程。博主很久之前看到过这份ppt,感觉非常nice也非常全面,Post上来以供分享学习。

阅读更多

双目立体视觉中的相机标定与机器人位置标定

在基于双目立体视觉的工业机器人抓取系统中涉及三个坐标系:世界坐标系(现实世界中的坐标位置)、机器人坐标系(以机器人基座标 标识的坐标位置)和 相机坐标系(以双目相机中某相机光心位置为原点,光轴作为参考坐标轴的坐标表示)。这篇博客主要介绍立体视觉系统中坐标转化,以及实际操作中如何进行相机的标定和机器人的标定。

这篇博客主要是博主的实验流程记录,代码托管于github。

阅读更多

OpenCV实现Census变换

census        在立体视觉中,常常用到Census变换,Census变换是一种非参数局部变换,其将周围像素的强度映射到一个比特穿,从而捕获图像的结构。同时使用Census变换可以减少由相机增益和偏置引起变化的影响。在立体匹配过程中,将图像做Census变换后,计算像素点之间的明式距离进行匹配,可以得到较好的效果。

        这篇博客主要介绍介绍实现Census变换,由于使用OpenCV的容器和接口,所以直接使用OpenCV调用比较方便。

阅读更多

立体视觉中的内参矩阵、基础矩阵、本质矩阵

        立体视觉中的矩阵变换比较多。总的来说,内参矩阵 K是针对单相机的,通过焦距和主点位置直接表示了相机坐标系和图像坐标系之间的关系,如果考虑镜头的畸变,还需要有畸变系数,如果图像传感器有倾斜,还需要有倾斜因子。基础矩阵和本质矩阵是针对双目的,其中基础矩阵 F根据左右相机的RT关系,表示了对极线关系,基础矩阵是左右摄像机坐标系之间的关系,求解基础矩阵的核心是求左右相机的RT。本质矩阵 E是图像坐标系下的,结合了基础矩阵和内参矩阵,直接反应左右图像坐标系下对应点像素坐标的关系。

阅读更多

张正友标定法(二)张正友Matlab工具箱的使用

zzy1        有两份资料,一是加州理工大学开发的标定工具箱,其中实现了全套张正友标定,网站也同样也有详细的使用文档。另一份是OpenCV的标定工具箱,其中使用的也是张正友标定,只不过略有简化。如果你不是直接使用C++书写标定程序的话,强烈推荐加州理工大学的标定工具箱。

        张正友Matlab工具箱使用手册,这份文档详细介绍了该工具箱的使用。这篇博客是对这份文档的补充,所以,如果你本着学习工具箱使用方法而来,请点击题头的链接。学习玩使用手册,这篇博客的内容可能会对你进一步了解工具箱有一定帮助。

        再附上张正友1998年的Paper,我们开始学习吧。

阅读更多

旋转向量与旋转矩阵——罗德里格斯(Rodrigues)变换Matlab

        Matlab计算旋转矩阵有两种方法,一种是通过欧拉角,计算yaw,pitch和row轴的旋转角。这里要介绍的是另一种是直接绕一个向量旋转theta角的方法,就是Rodrigues变换,其中的向量就是旋转向量,其得到的矩阵就是旋转矩阵,这个矩阵和欧拉角的方法计算出来是一样的。

阅读更多

张正友标定法(一)张正友标定法的数学推导

        张正友标定法提出于1998年,自此相机标定只需要自行打印一张棋盘格就可以实现0.5pixel以上的精度,这样的精度已经可以满足绝大多数应用场合的要求。博主这一系列的博客分为三篇,本篇是第一篇,着重介绍数学推导,后面的博客会陆续介绍Matlab工具箱的使用及博主自己对代码的解释和修改。

阅读更多