原文链接:https://zhuanlan.zhihu.com/p/78512354(建议参考原文链接)
https://mp.weixin.qq.com/s?__biz=MzU1MjY4MTA1MQ==&mid=2247485340&idx=1&sn=1b656f13931f2fd6694bab4e0b1c48d2&chksm=fbff2ca8cc88a5be551733cd9efe39d5cbc2c37cf73589aab147d299e57a425219320761ca71&scene=21#wechat_redirect(三维重建原理)

线结构光法是一种可以精确获得物体三维坐标的方法,将线结构光传感器安装在机器人上就赋予了机器人视觉感知的能力。本文将从单点激光测距原理、线结构光原理与线结构光标定这三部分对线结构光进行介绍。

  • 单点激光测距原理

单点激光测距原理是线结构光的基本原理,通过该方法得到物体距离相机的距离进而得到物体的三维坐标。单点激光测距原理图如下图所示。

<img src="https://pic2.zhimg.com/v2-4220dc7a9adb8eeb9b19abb66bd2a849_b.jpg" data-caption="" data-size="normal" data-rawwidth="866" data-rawheight="522" class="origin_image zh-lightbox-thumb" width="866" data-original="https://pic2.zhimg.com/v2-4220dc7a9adb8eeb9b19abb66bd2a849_r.jpg"/>

如图 是激光发射器, 是目标点, 是相机成像面。在该单点激光系统有几个不变的量, 为相机光心与激光发射器的距离称为基线长, 为激光线与基线的夹角, 为焦距长。

目标:获得 点在相机坐标系下三维坐标值。

那么关键是获得 值也就是 点的 值, 坐标值可以通过相机的透视投影求得。

值如何求解。做两条辅助线 过相机光心与 平行交相机成像面 过目标点与基线 平行。这样构造成两个相似三角形,根据相似三角形有如下公式:


基线长 角认为是已知量,下面标定讲到如何标定得到。


可以由像素、光心坐标与像元大小得到。

最后计算得:

  • 线结构光原理

以上讨论的单点激光,下面讨论线结构光。

线结构光分为两种形式如下图所示,其区别在于激光与相机的位置摆放不同(位置不同只与标定有关)。

<img src="https://pic2.zhimg.com/v2-a9fe737b997ad0ba7b199eba6d390d2d_b.jpg" data-caption="" data-size="normal" data-rawwidth="504" data-rawheight="409" class="origin_image zh-lightbox-thumb" width="504" data-original="https://pic2.zhimg.com/v2-a9fe737b997ad0ba7b199eba6d390d2d_r.jpg"/>

本文只讨论第一种方式。第一种方式的模型如图所示。

<img src="https://pic4.zhimg.com/v2-28753694ebdc2a2b3910deef08c1b54f_b.jpg" data-caption="" data-size="normal" data-rawwidth="826" data-rawheight="513" class="origin_image zh-lightbox-thumb" width="826" data-original="https://pic4.zhimg.com/v2-28753694ebdc2a2b3910deef08c1b54f_r.jpg"/>

激光 射出一个面激光照射在物体上形成一条激光线。现假设地面与相机感光面平行, 点与 点是激光线上的位置不同的两点,其中 点在相机上的成像在图像的 轴的中心点上(不准确)。面 与地面垂直,那么 是地面到光心 的高,同时也是点 的高,也就是 方向的值。

  • 线结构光测高

可以通过上面单点激光方法求得值,这是线结构光法求高。

  • 线结构光测距

这里有一个容易混淆的地方,高与距离,点 的高是 值,而点 到相机的距离是

此时基线与激光面的夹角 (oap)变为 (oap')。

现举例如何求激光线上任意点的高。如图是激光线。

<img src="https://pic3.zhimg.com/v2-8838dadd86b1b3ff9ef0c741f0ab42d6_b.jpg" data-caption="" data-size="normal" data-rawwidth="1125" data-rawheight="506" class="origin_image zh-lightbox-thumb" width="1125" data-original="https://pic3.zhimg.com/v2-8838dadd86b1b3ff9ef0c741f0ab42d6_r.jpg"/>

黑色线是激光线由于照射在不规则的物体上形成的图像。红色线是相机x轴方向的中心点(是光心在成像平面上投影的x值,不一定是图像像素中心)。激光线上任意一点的高(z值)是其所在相同高度平面激光中心点的高。那就将问题转化为单点激光测距问题。

利用单点激光测距公式 可通过图像上激光点的y值确定。

  • 线结构光标定

线结构光标定的目的是为了获得几个不变的量,焦距 、基线长 、角度

如图单点激光测距。

<img src="https://pic2.zhimg.com/v2-dd3875723bd1fd156ceba68dde6f1411_b.jpg" data-caption="" data-size="normal" data-rawwidth="1710" data-rawheight="940" class="origin_image zh-lightbox-thumb" width="1710" data-original="https://pic2.zhimg.com/v2-dd3875723bd1fd156ceba68dde6f1411_r.jpg"/>

公式 表示这几个量之间的关系,此时焦距 、基线长 、角度 变成了未知数。为求解这几个未知数,假设有Object1、Object2、Object3这些点,这些点的高度差都为L,L为已知量,那么每一个点都可以由上面的公式得到:


那么有4个未知量,至少有4个方程来求解。如图是标定板。

<img src="https://pic2.zhimg.com/v2-ce628a1ba7861e6b8f57f97d7a07046d_b.jpg" data-caption="" data-size="normal" data-rawwidth="1710" data-rawheight="940" class="origin_image zh-lightbox-thumb" width="1710" data-original="https://pic2.zhimg.com/v2-ce628a1ba7861e6b8f57f97d7a07046d_r.jpg"/>

黑色竖线是画在标定板上,红色横线表示相机在不同高度的位置。

标定方法如下:

1.调整相机与标定板平行,相机中轴线与黑色竖线平行;

2.调整相机高度上升或下降使激光线沿黑色竖线上升或下降,每次调整相机都拍照;

3.记录每次激光线与黑色竖线的交点坐标。

一条竖线计算来标定会引入很多误差,也可以设计多条竖线,用极大似然估计来减少误差。

opencv基础:结构光立体成像原理及标定相关推荐

  1. 安检x光机原理计算机实现,安检x光机成像原理介绍

    安检x光机是我们都很熟悉的一种安检设备,但很少有人去了解安检x光机成像原理.本文将为大家介绍安检x光机成像原理. 安检x光机成像原理 安检x光机主要由X光管和X光机电源以及控制电路等组成,而X光管又由 ...

  2. 【工程/物理光学(二)——几何光学基础与光的成像】

    工程/物理光学 [工程/物理光学(一)--光的电磁理论基础] [工程/物理光学(三)--光的干涉] [工程/物理光学(四)--光的衍射技术] [工程/物理光学(五)--激光技术] 几何光学基础与光的成 ...

  3. 深度相机分类介绍:结构光+立体深度+飞行时间

    深度相机分类介绍:结构光+立体深度+飞行时间 摘要 结构光(Structured Light and Coded Light) 双目立体视觉或者直译为立体深度(Stereo Depth) 飞行时间(T ...

  4. 基于条纹投影的结构光3D成像的研究分享

    作为本次大创的研究成果之一,我们大创小组将对本次大创学习到的知识做一个总结与大家分享讨论,旨在对初学者提供一定的帮助.对于使用条纹投影的结构光3D成像技术,本大创小组由全员新手不断通过对多篇论文的理解 ...

  5. 3D视觉概述与立体成像原理

    3D视觉概述 一.何为3D视觉 二.双目成像原理(ZED系列) 三.TOF时间飞行法(Kinect系列) 四.结构光成像原理(D435系列) 一.何为3D视觉 二.双目成像原理(ZED系列) 三.TO ...

  6. 双目格雷码结构光三维测量系统原理解析

    背景 比较经典的光学三维测量方法有:双目立体视觉.线激光扫描.格雷码结构光.相移结构光.立体匹配方法误匹配点较多,线激光方法扫描速度慢,相移结构光方法计算效率低,而格雷码方法基本具有以上一个方法的所有 ...

  7. opencv线结构光三维重建

    下面是从CSDN下载的一个程序,用到了其他的一些库,大致实现了HALCON示例中的线结构光三维重建的功能,下面是完整代码,具体解释见注释 #include <opencv2/highgui/hi ...

  8. 结构光双目视觉测距原理

    结构光视觉技术是一种主动投影式的三维测量技术,通过使用投影仪和相机组成的系统来对物体进行三维测量 系统结构: 硬件系统: 常见编码方法: 结构光图案编码 常用的是格雷码和传统的二进制码相比,格雷码的编 ...

  9. opencv基础:罗德里格斯旋转公式(Rodrigues' rotation formula)推导 rodrigues()函数原理

    参考:1-https://openhome.cc/Gossip/WebGL/Rodrigues.html(比较好的理解流程) 2-https://www.cnblogs.com/wtyuan/p/12 ...

最新文章

  1. Python的os.walk()方法详细讲解
  2. 3.1 目标定位-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. “敏捷版”全链路压测
  4. matplotlib新版本下的霍兰德人格分析雷达图
  5. 手写call,apply和bind(分析三者的用法与区别)
  6. 离职总结:大公司与小公司的个人体验
  7. 用计算机处理信息教学反思,《人工智能处理信息》教学反思
  8. linux创建文件结构体,Linux file 结构体和 inode 结构体,Go语言入门技术,Go语言基础...
  9. java xml接口实例_Java访问WebService接口方法 , 返回xml数据,能根据 下面的能给我写个实例吗?略急...
  10. Linux 局域网路由新手指南:第 2 部分
  11. c51单片机时钟程序汇编语言,51单片机汇编语言--延时程序的延时时间
  12. 无法使用struts2注释_带有注释且没有struts.xml文件的Struts 2 Hello World示例
  13. ubuntu linux 1604 编译安装tesseract-ocr 4.0
  14. linux如何切换到root用户
  15. Java程序设计教程(第三版) 雍俊海 9.6 答案/代码
  16. 判断多边形是凹多边形还是凸多边形,以及求凹点
  17. VSCode去除.pytest_cache文件夹
  18. phpmyadmin java_phpMyAdmin的配置
  19. (附源码)springboot教材订购系统 毕业设计 081419
  20. websocket连接不上

热门文章

  1. n维数组的操作-04-p2
  2. [Silverlight 4 RC]WebBrowser概览
  3. CSS定义通用透明效果
  4. 话里话外:按单制造企业用什么来做生产计划
  5. 删除Flex中TREE组建里的文件夹图标.
  6. Vue-cli搭建vue基础项目
  7. CentOS7通过yum安装Openresty
  8. AIR:使用 HTML + Javascript 开发桌面应用
  9. FlashDevelop打包IOS应用教程
  10. Scala初步学习(三)