科技>计算机>图形图像
玩转3D视界——3D机器视觉及其应用

玩转3D视界——3D机器视觉及其应用"

作者:刘佩林等
ISBN:9787121382581
定价:¥88.0
字数:350千字
页数:292
出版时间:2020-02
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

3D 机器视觉是计算机视觉的重要组成部分。本书对3D 机器视觉的基础知识、核心算法及应用进行了系统、全面的介绍,具体包括3D 传感器、3D 数据表示、3D 数据存储与压缩、3D 数据处理、3D 几何测量与建模、3D 物体识别和3D 动作识别等。本书力求理论结合实际,在原理与概念讲解的基础上,辅以简单的应用实例,便于读者深刻地理解各部分的知识点并学以致用。为满足读者自检与思考的需要,书中给出了一些思考题,并列出了主要文献供读者参考。

前言

【前言】 这是一本介绍3D 机器视觉及其应用的书。在写这本书时,我和我的团队刚刚研发了基于时间飞行(ToF)法的3D 相机,并期待着我们的3D 相机——SmartToF?有规模化的应用。而在推广3D ToF 应用的过程中,我们意识到,系统、全面地介绍3D 机器视觉技术对3D 应用的推广至关重要,遂着手编写这本《玩转3D 视界——3D 机器视觉及其应用》,希望能和广大从事机器视觉技术的同仁在“3D 视界”中一起“玩”起来。 我们希望通过本书让更多进行机器视觉研究的同仁了解3D 机器视觉,方便他们构建3D 机器视觉的知识体系,因而在书中我们介绍了3D 传感器、3D 数据处理、3D 物体识别与建模等多个层面的基础知识和算法。本书涉及光学、电子技术、信号处理、模式识别等领域的知识,虽无法全面完整地介绍所有知识点,但我们努力对构建3D 机器视觉的知识体系所需的基础知识进行了介绍,本书可作为一本入门书籍。 本书也可以作为3D 机器视觉开发者的应用指南。当前,各大手机厂商先后在手机中植入3D 相机,3D 机器视觉应用的帷幕已经拉开,面向3D 视觉的海量应用亟待开发。目前,2D 机器视觉已在各行各业中得到了应用,相比之下,3D机器视觉领域还缺乏完善的软件开发环境和数据资源,需要从事机器视觉研究工作的同仁共建3D 视觉的开发环境,面向应用实现各种3D 算法的软、硬件。在本书中,我们介绍了自己开发的SmartToF ?的开发环境架构,一方面,使读者能在此基础上快速实现和验证自己开发的3D 算法;另一方面,为构建特定领域3D机器视觉软件系统提供了架构参考。 我们力求通过本书让读者了解3D 机器视觉的基本原理、方法,与此同时,我们也介绍了目前存在的问题,以期和相关同仁共同探讨3D 机器视觉技术的未来。每个新技术的发展都遵循一定的规律,3D 机器视觉技术也是如此。当前3D机器视觉正处在应用的起步阶段,还有各种问题需要解决,如3D 传感器的电信号处理、光源控制及光照环境自适应等,要实现智能3D 相机,为每台机器人装配“慧眼灵瞳”,还需要各位同仁共同努力。 王伟行、王俊、贾佳璐、潘光华、金成铭、陈琢、郭维谦等人参与了本书的初稿及后续修订工作,他们对本书的创作起到了非常大的作用,再次向他们表示衷心的感谢。在本书出版过程中,电子工业出版社的编辑王群也给予了很多帮助,在此也向她表示谢意。 由于作者水平有限,书中难免有错误和不当之处,欢迎业界专家、读者给予批评和指正。 刘佩林 【推荐序一】 在这个3D 机器视觉飞速发展的时代,众多爱好者纷至沓来,却遗憾地发现并没有合适的资料可供参考,想要投身于这一新兴行业,只能在迷茫中慢慢开拓。作为3D ToF 领域的深入研究者,我也曾感慨于3D 相关教材的稀缺。因而当受到作者的邀请为本书作序时,我感到既兴奋又荣幸。兴奋于有一本面向3D 初学者的基础教材即将面世,荣幸于能让很多3D 爱好者在入门阶段看到我想说的话。这本书的内容重视基础,理论和实践关联度高,真切地为每一个入门者着想。阅读其中的内容,从硬件到应用,也让我回想起自己曾经和ToF 一点一滴的故事。 1985 年,我萌生了设计3D ToF 传感器的想法。彼时,依据光通过空间的时间来测量距离,只考虑了点与点之间的距离,“ToF”这个术语甚至还没有出现,利用这样的方式进行成像的研究更是一个无人问津的领域。但在那时,我就希望能做出一个类似于3D 相机的东西,让它都能够测量与物体之间的距离。1987 年,我完成了第一台激光扫描仪的原型,并将其应用于一个自动门传感器。它是基于一个大功率的激光二极管所发射的脉冲光实现的,光线穿过旋转的透镜后发生偏转,达到扫描整个场景的目的。 脉冲光在反射后被一个高速光电二极管接收,再通过一个由双极晶体管构成的放大器进行放大。在整个过程中,由一个模拟积分器完成时间测量,从激光二极管触发开始,到放大器输出反射光脉冲结束。通过这样的方式,我们得到了一台能以2 纳秒的精度每秒测量10000 个点的距离的扫描仪,在这个反射系统中,2 纳秒相当于30 厘米的精度。 然而,我始终心心念念的应用其实是一个既能够打开自动门,又能够在自动门关闭时保护其间的人和货物的传感器,这需要厘米级的距离分辨率。厘米级意味着什么?光在空间中的传播速度众所周知,若想要在光往返厘米级的距离所需的时间内响应,需要超高速的光电子器件和电子电路。可是当时的激光雷达技术只能做到几纳秒范围内的定时分辨率,几纳秒的时间乘以光速,仅可达到米级的分辨率。也就是说,要实现厘米级的分辨率,系统性能需要在原有基础上提高100 倍。 如今,30 多年过去了,3D ToF 也从一个无人提及的词汇成为一个日渐常用的术语。硬件产品愈加成熟,从成像芯片到传感器模块,再到一体化相机。基于3DToF 的应用同样十分广泛,自主驱动汽车、自动门感应器、无人机避障、自动引导车辆、姿态控制及机器人清洁工等,各行各业的应用场景不胜枚举。3D ToF 成像领域的蓬勃发展,吸引了一大批初级爱好者和高级工程师的参与。但同时,乐观之余也要保留一丝冷静,3D ToF成像的实现并不容易。它需要各种不同的、各具挑战性的工程领域的基础知识,如电子技术、照明技术、光学、图像处理、高等数学、统计学、噪声、大气物理等。恕我孤陋寡闻,据我所知,在目前从事这一广泛领域课题研究的教师中,还没有一位能够以直接的方式成功地实现3D ToF 应用。 这也正是本书的价值所在,或许本书在内容深度上并不深,但在广度上却覆盖了初学者可能遇到的方方面面的问题。本书同样着力于规划科学的学习路线,将广度的内容以清晰的逻辑编织起来,努力帮助读者建立明确的思路,是不可多得的优秀图书。 这本书的功能在于让工程师从电子、信息科学或物理等方面,成功地将3D技术应用到他们的项目中去。本书同样可以为产品管理工程师提供技术诀窍,以便他们对所需的镜头系统、照明光功率、距离分辨率、距离精度、帧率等参数做出规划和调整。 Beat De Coi 【推荐序二】 近年来,以深度学习为代表的机器学习技术极大地推动了计算机视觉研究和应用的发展。一些多年来在该领域持续进行研究的科研人员在回顾这些进展时,也都会惊叹不已。对于计算机视觉领域中的很多基础问题,如2D图像中的图像分类、目标检测、图像分割、物体匹配、人脸识别等,之前很多研究人员都估计还需要数十年才能得到解决,但近年来这些问题一个接一个地被攻破,并且相关技术也被迅速地应用到不同的实际系统之中。在这种形势下,我一直在思考计算机视觉研究下一步的发展方向是什么。在深思熟虑之后,我觉得可以确认的一点是,由处理2D图像信息向处理3D图像及视频信息发展,肯定是未来的一个发展趋势。 尽管已经预测到3D视觉信息处理是计算机视觉领域未来的发展趋势,但当作者邀请我为本书作序时,我再一次惊叹于当前计算机视觉技术的发展速度,因为在技术快速发展的同时,相关的传感器芯片和元器件产业也都在高速发展,从而推动整个行业一起向前发展。在惊叹的同时,收到作者发来的邀请我也非常荣幸,因为和许多读者一样,对于3D图像及视频信息处理,我也算是一个入门者,近年来刚开始接触,很荣幸能够推荐本书给大家,和大家一起加入3D视觉信息处理的方法研究和应用开发的大队伍。 在翻阅整本书之后,我不禁感慨,现在的研究环境和条件真是好。记得十多年前,我为了获取一个场景的3D图像信息,在编写程序绘制黑白棋盘格、打印棋盘格、固定双目摄像头、拍摄图像序列、计算不同摄像头间图像对应点、估计摄像头参数、校正畸变后,最终得到的深度图还很不稳定,对环境的纹理要求非常苛刻。有了本书介绍的3D相机和开发环境,大家可以非常方便地得到高质量的3D图像及视频信息,自己只需将精力放在需要研究和解决的具体问题上 本书在写作上非常注重可读性,章节内容组织合理、语言叙述通俗易懂,对基础知识的讲解非常到位,同时又非常强调理论与实践相结合,从零开始讲解了多个具体的3D视觉信息处理应用,是一本难得的从读者角度出发介绍3D机器视觉方法和应用的优秀书籍。相信广大读者在基于本书的内容进行学习时,能够很快进入3D视觉信息处理的方法研究和应用开发阶段,在最短的时间内将知识融会贯通。 中国科学院自动化研究所模式识别国家重点实验室教授 兴军亮

目录

第1 章 引言·············································································································.1 1.1 何为“3D 视界”·······················································································.1 1.2 如何玩转3D 视界······················································································.2 1.3 本书的主要内容·························································································.4 1.3.1 章节内容························································································.4 1.3.2 应用介绍························································································.5 1.4 面向的读者································································································.6 第2 章 3D视界的硬实力与软实力——3D 相机与开发平台·······························.8 2.1 概述············································································································.8 2.2 双目相机··································································································.10 2.2.1 双目相机原理···············································································.10 2.2.2 立体匹配方法···············································································.13 2.3 结构光3D 相机························································································.17 2.3.1 结构光相机原理···········································································.17 2.3.2 结构光的分类···············································································.19 2.3.3 结构光的标定与匹配···································································.21 2.4 ToF 相机···································································································.24 2.4.1 ToF相机的发展历程和分类························································.25 2.4.2 ToF相机原理···············································································.26 2.4.3 ToF的标定与补偿·······································································.32 2.5 三种相机的对比及典型应用···································································.35 2.5.1 三种相机的对比···········································································.35 2.5.2 三种3D 相机的典型应用····························································.37 2.6 DMAPP 开发平台····················································································.42 2.6.1 SmartToF SDK——数据获取与处理···········································.43 2.6.2 DMAPP 架构················································································.47 2.6.3 DMAPP 的特点与优势································································.49 2.7 总结与思考······························································································.49 参考文献···········································································································.50 第3 章 3D数据表示方法·····················································································.51 3.1 概述··········································································································.51 3.2 深度图······································································································.52 3.3 点云··········································································································.55 3.3.1 点云概念介绍···············································································.55 3.3.2 点云数据获取···············································································.56 3.3.3 3D 相机数据与点云的转换·························································.58 3.3.4 点云数据分类及应用···································································.62 3.4 体素··········································································································.64 3.4.1 体素和体数据的概念···································································.64 3.4.2 点云的体素化···············································································.66 3.4.3 体素的应用场景···········································································.67 3.5 三角剖分··································································································.68 3.5.1 三角剖分的概念···········································································.68 3.5.2 Delaunay三角剖分的原理···························································.69 3.5.3 Delaunay三角剖分生成算法·······················································.71 3.5.4 3D 空间下的Delaunay三角剖分算法········································.75 3.6 3D 数据存储格式·····················································································.76 3.6.1 3D 数据存储格式概述·································································.76 3.6.2 3MF文件的格式与特点······························································.81 3.6.3 3MF文件的数据要求··································································.84 3.6.4 3MF文件的生成··········································································.85 3.7 总结与思考······························································································.86 参考文献···········································································································.87 第4 章 3D数据处理·····························································································.88 4.1 概述··········································································································.88 4.2 深度图滤波······························································································.96 4.2.1 空域滤波······················································································.96 4.2.2 时域滤波····················································································.104 4.3 点云滤波器与过滤器·············································································.107 4.3.1 体素滤波器················································································.107 4.3.2 统计过滤器················································································.109 4.3.3 半径过滤器················································································.111 4.3.4 直通过滤器················································································.112 4.4 3D 数据压缩··························································································.113 4.4.1 3D 数据压缩的概念与意义·······················································.113 4.4.2 单帧深度图压缩算法·································································.114 4.4.3 深度视频序列压缩算法·····························································.121 4.4.4 3D 压缩实例···············································································.124 4.5 总结与思考····························································································.131 参考文献·········································································································.132 第5 章 3D几何测量与重建···············································································.133 5.1 概述········································································································.133 5.2 3D 测量··································································································.134 5.2.1 3D 测量简述···············································································.134 5.2.2 3D 测量的主要算法与步骤·······················································.138 5.2.3 实践:盒子尺寸测量·································································.143 5.3 3D 重建··································································································.147 5.3.1 3D 重建综述···············································································.147 5.3.2 3D 重建的主要算法与步骤·······················································.151 5.3.3 实践:木头人重建·····································································.158 5.4 总结与思考····························································································.163 参考文献·········································································································.164 第6 章 3D物体分割与识别···············································································.166 6.1 概述········································································································.166 6.2 目标分割································································································.167 6.2.1 阈值分割····················································································.168 6.2.2 平面检测····················································································.172 6.3 几何形状识别························································································.177 6.3.1 几何不变矩················································································.177 6.3.2 3D 关键点检测···········································································.182 6.4 语义识别································································································.188 6.4.1 基于RGB-D 数据的语义识别···················································.189 6.4.2 基于3D 数据的语义识别··························································.196 6.5 总结与思考····························································································.207 参考文献·········································································································.208 第7 章 3D活体检测与动作识别········································································.210 7.1 概述········································································································.210 7.2 人脸识别································································································.211 7.2.1 人脸识别概述·············································································.211 7.2.2 人脸识别相关方法·····································································.213 7.2.3 人脸识别的实现·········································································.217 7.3 人体骨架识别························································································.224 7.3.1 人体骨架识别概述·····································································.224 7.3.2 人体骨架识别相关方法·····························································.225 7.3.3 人体骨架识别相关数据集·························································.231 7.3.4 实例:人体骨架识别·································································.233 7.4 跌倒检测································································································.242 7.4.1 跌倒检测概述与意义·································································.242 7.4.2 跌倒检测原理分析·····································································.243 7.4.3 实例:跌倒检测算法·································································.246 7.5 手势识别································································································.251 7.5.1 手势识别概述·············································································.252 7.5.2 手势分割····················································································.255 7.5.3 静态手势识别·············································································.260 7.5.4 动态手势识别·············································································.267 7.6 总结与思考····························································································.271 参考文献·········································································································.271 附录 缩略语·········································································································.277

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个