书籍作者:郭浩 | ISBN:9787111615521 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:8417 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
点云库(Point Cloud Library, PCL)是在吸收了点云相关研究基础上建立起来的跨平台开源库,
可在Windows、 Linux、 Android、 Mac OS X,以及大部分嵌入式实时系统上运行,目前已经得
到了广泛应用。本书为应用点云库技术的指导图书,旨在帮助读者对其以快速、有效的方式上手
操作并实际应用,大限度地节省读者的入门与技术提升时间。书中首先介绍了三维点云处理的
相关理论知识,之后则重点从实际的点云处理功能模块出发,通过大量具体的实践案例介绍如何
使用该项技术解决实际问题。
本书可作为计算机图形学、机器人、遥感测量、虚拟现实、人机交互、CAD/CAM逆向工程等领域
的科研人员进行产品开发、科研项目、课题项目时的参考指南,也可作为大中专院校及培训班相
关专业师生的学习手册。
郭浩:PCL(Point Cloud Learning)中国(www.pclcn.org)创始人之一。2008年开始致力于点云数据获取、智能化处理及相关应用的研发和教学工作,目前致力于PCL开源库在中国各个相关行业的传道、授业、解惑。在点云数据获取处理领域,公开发表EI/SCI论文十余篇及相关著作1本。
?适应点云数据发展的需求
?智能化感知时代必备技术
?无人仓储/虚拟现实/增强现实
?遥感测量/地形勘测/电力巡检
?
?机器人/人机交互/无人驾驶
?逆向工程技术/计算机图形学
本书内容涉及典型点云获取设备、主流平台(ROS和Windows)、实用点云数据处理案例、一线项目等,并提供全书所有源代码,帮助读者所学即可所用
为什么要写这本书
点云处理技术广泛应用在逆向工程、CAD/CAM、机器人学、激光遥感测量、机器视觉、虚拟现实、
人机交互、无人驾驶等诸多领域。由于其涉及计算机学、图形学、人工智能、模式识别、几何计
算、传感器等诸多学科,并且一直以来由于点云获取手段的昂贵,严重阻碍其在各个行业上的广
泛应用,也造成国内点云处理的理论性和工具性书籍匮乏。在2010年,随着消费级RGBD(低成本
点云获取)设备的大量上市,以微软的Kinect为前导,目前已有华硕、三星等多家公司开始量产
此类产品,正在形成基于RGBD的新一代机器视觉生态链,包括Google的Project Tango和Intel的
Realsense 3D相关技术产品,PCL(Point Cloud Library)应运而生并且发展迅速。PCL是在吸收
了点云相关研究基础上建立起来的跨平台开源库,可在Windows、Linux、Android、Mac OS X、部
分嵌入式实时系统上运行,它实现了大量通用算法和数据结构,涉及点云获取、滤波、分割、配准、
检索、特征提取、识别、追踪、曲面重建、可视化等基础模块以及人体骨骼识别提取、动作跟踪识
别等应用,并且新的其他应用正在大量增加。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就
在3D信息获取与处理上具有同等地位。笔者深信随着各大厂商对RGBD设备的大力推出,基于此设备
的各种应用将会大量涌现,而PCL不仅是这类应用的核心关键技术,还会基于它进行扩展,从而极大
地提高应用系统开发效率和稳定性。
三维信息的获取与处理是笔者所在研究团队的重要方向之一,在农业对象的三维信息获取与重建、
精细农业等领域不断探索新的获取技术和处理方法,同时也解决一些其他行业的三维应用问题。
在2011年7月发现了OpenCV的姐妹PCL及其网站的RSS更新,时刻关注PCL在3D信息获取和处理方面的
新动向,并与PCL结缘。在跟踪过程中发现,PCL对RGBD 数据的获取和处理提供了强大支持,并有大
量的机器人、虚拟现实、人机交互、机器视觉等领域的应用案例,目前几乎每半个月就有新的开发计
划,或者有新的资助者或开发者加入。加入PCL开发的团队来自包括全球的AIST, UC Berkeley,
University of Bonn, University of British Columbia, ETH Zurich, University of Freiburg,
Intel Reseach Seattle, LAAS/CNRS, MIT,University of Osnabr¨uck, Stanford University,
University of Tokyo, TUM, Vienna University of Technolog, and Washington University in
St Louis等知名高校和组织。资助PCL的组织和公司包括全球的Willow Garage, NVidia, Google,
Toyota, Trimble, Urban Robotics,Honda Research Institute等跨国软硬件公司,这一切表明PCL
强大的生命力和吸引力。同时我们团队已经把PCL作为开发出实际应用的基础平台和教学技术平台,
用于跨平台支持嵌入式设备的3D信息获取与处理的基础库之一。目前PCL还在快速成长阶段,国内由
本书团队早期整理的相关资料已经无法适应当前需要,鉴于此,经过团队讨论,把我们学习、授课课
件以及开发应用期间整理的资料与国内读者一起分享,加快PCL在其他各行业的应用,推动3D信息快速
获取与处理的发展。
本书目标
每一个最新版本的PCL都会被下载超过百万次,这个数字还不包括下载源码开展自行编译的用户。PCL在
全球范围内的使用者在迅速膨胀,并且每天都有更多的用户开始学习或者转型使用PCL。在国内,早期对
PCL进行应用开发的团队还不多,而随着国外众多知名组织和公司的加入和赞助,和OpenCV最初的发展一
样,相信国内的用户数量也会增长很快。
为此,本书希望能提供一个从入门到精通的学习过程,无论是初学3D点云处理的爱好者,还是行业从业人
员,希望都能从本书获益,最大限度地节省您的入门与技术提升时间,作为主编,我相信我们团队出书的
付出与努力,所节省的国内所有学习者的时间总和就是我们的社会贡献,最终快速提升你的技术能力。
注意:由于本书目标是学习手册,注重“理工”中的“工”,所以对理论部分的“理”进行了精简,力求
帮助广大读者所学即可所用。
读者对象
这里我们根据软件需求划分出一些需要使用PCL的用户类型,这些用户都是本书真正的读者群。
机器人研究或应用开发者
机器视觉的研究或应用开发者
人机交互研究或应用开发者
交互式体感游戏开发者
虚拟现实研究或应用开发者
CAD/CAM、逆向工程和3D打印工作者
工业自动化测量、检测领域的研究或应用开发者
激光雷达遥感的研究或应用开发者
相关专业的研究生和本科生
三维数据处理技术教学团队
3D技术的发烧友
如何阅读本书
本书分为如下三大部分。
第一部分为基础篇从第1章到第3章,简单介绍PCL的相关背景资料和基本使用方式,帮助读者了解一些基础背景
知识,感受自己的研究应用领域在PCL基础上有哪些应用前景,学习如何快速搭建项目开发环境(Windows、
Linux、ROS等平台)并熟悉PCL的使用方法以及编程规范,为读者使用PCL做好前期准备工作。
第二部分为模块篇从第4章到第13章,着重讲解PCL各个模块中涉及的3D点云处理的必要概念、模块API、入门级
实例和精通级实例。每章结构都是,先简单介绍本章涉及的相关概念,再重点介绍一些模块相关的类和函数,最
后分析入门级的模块应用实例和精通级的实例,让读者不需要太多点云处理基础,也能轻松掌握PCL各个功能模块。
第二部分涵盖点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等全部已基本定型
的模块。
第三部分是结合点云数据处理技术在不同行业的应用,与相关科研单位或公司合作撰写的行业应用实例,为读者在
学好技术后,拓展下行业应用思路和动手能力,从而熟悉各个行业的相关典型应用。
PCL版本
PCL的发布更新以15X的小版本号来表示,本书是基于PCL180版本。PCL正在不断开发和完善中,但基本架构和
设计思路基本确定,相信读者对本书介绍内容了解之后,对其他版本就轻车熟路了。请参照网站地址——http:
//docspointcloudsorg/trunk/moduleshtml。虽然本书中参考所用的API文档,仍然在不断更新类、函数,
但模块基本确定,不会对PCL的理解产生困难。
源代码
本书的源代码、工程文件及相关实例的整理来自于PCL官方网站,但笔者针对PCL官方网站所提供的例子不足之处,
进行了大量的修改和拓展,都以BSD(Berkeley Software Distribution)许可协议或者CCA(Creative Commons
Attribution)30的形式发布,读者可以自由使用和分享,如果需要应用于商业领域,请注明版权所有者。如果
你行使本许可授予的使用源代码的权利,就表明你接受并同意遵守本许可的条款,对其使用不得超越本许可授权的
范围。我的理解是:PCL相关的内容,是可以免费进行商业和学术使用的,最重要的是需要致谢作者和相关贡献者。
勘误和支持
由于作者的水平有限,编写的时间也很仓促,不妥之处在所难免,恳请读者批评指正。如果您有更多的宝贵意见,
也欢迎发送邮件至我们团队的邮箱guohaolys@caueducn,很期待能够听到读者的真挚反馈,同时也可以在本书
的赞助商PCLCN(wwwpclcnorg)的论坛上发布相关问题和意见。
关于电子版
书中有很多程序运行结果演示图,为了便于大家既能以便宜的价格买到本书,又能看到书中的原始图片,我们将于
PCLCN(Point Cloud Learning in China)的官方网站(wwwpclcnorg)推出本书的部分电子配图,敬请期待。
致谢
我首先要感谢PCL创始人Radu的允许和鼓励,才有本书的面世,同时要感谢Radu以及PCL的众多开发人员,是他们的
创新精神和辛勤努力才有这样一个优异的3D信息获取和处理的基础平台供大家分享。
感谢笔者团队参与整理工作的伙伴:华明睿、苏杨、陈子睿、牛全弟、戴开璇、唐诗叶、田孟潇、马羽昊、谌罗超。
同时感谢国家自然科学基金项目《基于非刚性点云数据的家畜(奶牛)体尺测量关键技术研究》(41601491)对笔者
团队的支持。
感谢本书的编者们以及来自PCLCN(Point Cloud Learning in China)社区(wwwpclcnorg)的科研和业界学者的
协同努力和辛苦劳动,以及此处未明确提及但对本书出版做出贡献的朋友。
最后感谢我的家人,特别是我的母亲和妻子,在我撰书期间对我刚出生女儿的照顾。
第1章概述
11PCL是什么
12点云处理技术与PCL的前世今生
13点云处理技术能给工程师们带来什么
131测绘领域
132无人驾驶领域
133机器人领域
134人机交互领域
135逆向工程与其他工业自动化领域
136BIM领域
14PCL的结构与核心内容
第2章PCL入门
21快速安装与源码编译安装
211Windows下配置安装PCL开发
环境
212ROS下配置搭建PCL开发环境
213用第三方预编译包从源码搭建
开发环境
214从源码搭建开发环境
22开发工程的建立与项目管理
221Windows下建立编译链接PCL
工程
222ROS下建立编译链接PCL工程
23PCL编码风格简介
231PCL编程规范
232如何编写新的PCL类
233PCL的点类型以及如何增加
自定义的点类型
234PCL中的异常处理机制
第3章输入输出(IO)
31IO涉及的设备及相关概念
311OpenNI及类Kinect设备
312以Project Tango为代表的便携式
消费级点云获取设备
313PCL目前支持的点云获取设备
314PCL中IO模块及类
32IO入门级实例解析
321PCD文件格式
322PCD文件IO操作
323两个点云中的字段或数据连接
324基于OpenNI接口的点云数据
获取
325PLY、LAS等常见数据格式与
PCD的转换
326利用Kinect2获取点云数据
33IO精通级实例解析
331ROS下进行点云数据实时获取
与可视化
332自选设备scanCONTROL与PCL
实时获取与可视化点云数据
333利用Tango进行点云数据获取
334基于Structure from Motion 的点云
数据获取
第4章kd tree与八叉树
41kd tree和八叉树的概念及
相关算法
411kd tree概念及相关算法
412PCL中kd tree模块及类
413八叉树概念及相关算法
414PCL中八叉树模块及类
42kd tree与八叉树入门级实例解析
421在PCL中如何实现快速邻域
搜索
422在PCL中如何实现点云压缩
423基于八叉树的空间划分及搜索
操作
424无序点云数据集的空间变化
检测
第5章可视化
51PCL中visualization模块及类
52可视化入门级实例解析
521简单点云可视化
522可视化深度图像
523PCLVisualizer可视化类
524PCLPlotter可视化特征直方图
53可视化精通级实例解析
531PCL结合Qt使用框架
532PCL结合MFC使用框架
533客户端浏览器上对点云进行
可视化
点云库PCL从入门到精通
目录
第6章点云滤波
61PCL中实现的滤波算法及相关概念
611PCL中的点云滤波方案
612双边滤波算法
613PCL中filters模块及类
62点云滤波入门级实例解析
621使用直通滤波器对点云进行滤波
处理
622使用VoxelGrid滤波器对点云进行
下采样
623使用StatisticalOutlierRemoval滤波
器移除离群点
624使用参数化模型投影点云
625从一个点云中提取一个子集
626使用ConditionalRemoval或Radius
OutlierRemoval移除离群点
627CropHull任意多边形内部点云
提取
63点云滤波精通级实例解析:IPhone X
手机外壳全尺寸检测
631项目需求概述
632利用滤波可以实现的功能
第7章深度图像
71RangeImage概念及相关算法
711深度图像简介
712PCL中RangeImage的相关类
72深度图像入门级实例解析
721如何从一个点云创建一个深度
图像
722如何从深度图像中提取边界
73深度图像精通级实例解析点云到
深度图的变换与曲面重建
第8章关键点
81关键点概念及相关算法
82关键点入门级实例解析
821如何从距离图像中提取NARF
关键点
822SIFT关键点提取
823Harris关键点提取
83关键点精通级实例解析:基于对应点
分类的对象识别
第9章采样一致性
91随机采样一致性相关概念及算法
92采样一致性入门级实例解析
93采样一致性精通级实例解析:两两点
云获取设备自动标定
931项目需求概述
932具体实现
第10章3D点云特征描述与提取
101特征描述与提取的概念及相关
算法
10113D形状内容描述子
1012旋转图像
1013PCL中特征描述与提取模块
及类
102点云特征描述与提取入门级实例
解析
1021PCL中描述三维特征相关基础
1022估计一个点云的表面法线
1023使用积分图进行法线估计
1024点特征直方图描述子
1025快速点特征直方图描述子
1026估计一点云的VFH特征
1027如何从一个深度图像中提取
NARF特征
1028特征描述算子算法基准化分析
1029RoPs特征
10210基于惯性矩与偏心率的
描述子
10211BoundaryEstimation进行边界
提取
103点云特征描述与提取精通级实例
解析
10313D对象识别的假设验证
1032隐式形状模型方法
1033点云数据视频流的刚性物体位姿
估计与跟踪定位软件
第11章点云配准
111PCL中实现的配准算法及相关
概念
1111一对点云配准
1112对应估计
1113对应关系去除
1114变换矩阵估算
1115迭代最近点算法
1116采样一致性初始对齐算法
1117PCL中Registration模块及类
112点云配准入门级实例解析
1121如何使用迭代最近点ICP
算法
1122如何逐步匹配多幅点云
1123如何使用正态分布变换进行
配准
1124交互式迭代最近点配准
1125刚性物体的位姿估计
113点云配准精通级实例解析
1131如何将扫描数据与模板对象进行
配准
1132基于VFH描述子聚类识别与
位姿估计
1133动态库封装DIY接口与测试
1134交互式多深度摄像头标定
软件
第12章点云分割
121点云分割概念及相关算法
1211聚类分割算法
1212基于随机采样一致性的分割
1213PCL中Segmentation模块及类
122点云分割入门级实例解析
1221在PCL中如何实现平面模型
分割
1222在PCL中如何实现圆柱体模型
分割
1223在PCL中如何实现欧式聚类
提取
1224基于区域生长的分割
1225基于颜色的区域生长分割
1226最小图割的分割
1227基于法线微分的分割
1228基于超体素的点云分割
1229渐进式形态学滤波地面分割
12210条件欧氏聚类点云分割
123点云分割精通级实例解析:运动
对象分割与配准算法实现
1231代码
1232各个关键功能步骤分析
1233运动分割与配准结果
第13章点云曲面重建
131surface模块中实现的算法及相关
概念
1311凸包算法
1312Ear Clipping三角化算法
1313贪婪投影三角化算法
1314移动立方体算法
1315泊松曲面重建算法
1316PCL中 surface模块及类
132点云曲面重建入门级实例解析
1321基于多项式平滑点云及法线估计
的曲面重建
1322在平面模型上构建凸(凹)
多边形
1323无序点云的快速三角化
1324基于B样条曲线的曲面重建
133点云曲面重建精通级实例解析:
平面点云的B样条曲线拟合
1331B样条曲线和B样条曲线拟合
概述
1332平面点云B样条曲线拟合详细
步骤
第14章电力线巡检
141电力线巡检概述
1411电力线巡检介绍
1412在电力线巡检领域做的工作
142电力线巡检应用实例解析
1421电力线点云获取
1422结果展示
1423总结
第15章文物古迹保护
151文物古迹保护概述
1511文物古迹保护介绍
1512在文物古迹保护领域所做
工作
152文物古迹保护应用实例解析:博物馆
文物三维数字化
1521应用概述
1522具体实施步骤
1523博物馆文物三维数字化结果
展示
1524三维数字化总结
第16章地形测量
161地形测绘概述
1611地形测量介绍
1612在地形测量领域所做工作
162地形测量应用实例解析:机载激光雷
达在山区地质灾害调查中的应用
1621应用概述
1622具体实施步骤
1623激光雷达获取地形数据结果
展示
1624激光雷达获取地形数据总结
第17章无人驾驶
171无人驾驶概述
1711无人驾驶介绍
1712在无人驾驶领域做的工作
172基于点云数据获取与处理技术的无人
驾驶公司列表
第18章逆向工程
181逆向工程概述
1811逆向工程介绍
1812在逆向工程领域所做工作
182逆向工程应用实例解析:汽车部件
逆向工程
1821汽车部件逆向工程概述
1822汽车部件逆向工程解决方案
1823汽车部件逆向工程结果展示
1824汽车部件逆向工程总结
第19章植物表型测量
191植物表型测量概述
1911植物表型测量介绍
1912在植物表型测量领域所做
工作
192植物表型测量应用实例解析
1921玉米果穗点云分割
1922玉米叶片点云与茎秆点云
分离
1923激光雷达林业资源调查
第20章家畜表型测量
201家畜表型测量概述
2011家畜表型测量介绍
2012在家畜表型测量领域所做
工作
202基于点云数据的家畜表型测量应用
实例解析
2021家畜多视角体表点云获取
2022基于点云数据的家畜自动化体尺
测点提取及交互式体尺测量
附录:国内外点云数据处理商业软件
集合
参考文献