Orbbec深度相机开箱体验
首先,很高兴通过参加“点云PCL”公众号的活动,得到了一台深度摄像机(如下图)。
自己接触3D点云这一领域已经快有一年时间了,从起初PCL环境配置到基本的程序实现,每一步都对当初作为初学者的我有很大的挑战,我和师兄两个非计算机专业的人一点点琢磨、一点点探索遇到的每一个问题的解决方法,但仍旧有很多问题得不到解决,直到之后无意间发现了“点云PCL”公众号,发现公众号里面基本包含了作为一个初学者遇到的问题,包括PCL的配置、PCL中各个算法的原理介绍,这些都对我们学习点云有很大的帮助;同时“点云PCL”公众号内还有一些经典的、先进的算法介绍及其应用的文章,通过阅读这些文章不仅让我们对点云配准这方面有了更具体的了解,而且为我们处理点云问题提供的新的解决思路。希望”点云PCL”能够越办越好,为更多致力于学习点云的人提供帮助。接下来说一下,我围绕着深度摄像机做的一些尝试。
配置深度摄像机的过程
1.首先下载驱动和SDK:https://orbbec3d.com/develop/
1.1 下载驱动并安装:
1.2 下载SDK:
2. 在VS2017中配置
2.1 打开项目菜单,然后选择项目属性
近来很多3D的应用在兴起,3D传感器在进步,随着虚拟网络的发展转到物理实际中的应用,比如(ADAS,AR,MR)自动驾驶中需要理解 汽车行人交通标识,同时也需要理解三维物体的状态静止和移动。
2.2 头文件配置:在C++/常规/附加包含目录添加include文件夹路smaples\common文件夹路径
2.3 lib文件配置:①在链接器/常规/附加库目录中添加lib及其Plugins文件路径
②在链接器/输入/附加依赖项中添加如下lib文件
2.4 动态链接库配置:配置属性/调试/环境中添加bin路径:格式为path=(bin文件夹路径)
基于此 运行sample/cpp-api/DepthReanderEventCPP结果如下:
SDK自带的运行程序示例
3.1 骨架显示(SimpleBodyViewer)
3.2 手势跟踪(SimpleHandViewer)
根据深度图生成点云
1. 首先下载了NiViewer,可用于显示并保存深度图,格式为raw格式。
2. 下载ImageJ,可以可视化raw,同时可以将raw文件另存为txt文件。
3. 使用matlab和标定板测量相机内参
3.1 使用相机拍摄不同角度不同距离的标定板15张
3.2 打开matlab,选择app/ camera calibrator
3.3 将图片导入到matlab中
3.4 确定每个格子边长,根据自己标定板设定
3.5 选择三个径向畸变量和切向基变量,再点击校准
3.6 点击计算
3.7 得到内参如下
4. 根据txt文件和相机内参转化为点云并显示
主程序:
转化为点云的函数
可视化函数
点云显示结果:
资源
关于我们
目前微信交流群不断壮大,由于人数太多,目前有两个群,为了鼓励大家分享,我们希望大家能在学习的同时积极分享,将您的问题或者小总结投稿发到群主邮箱主邮箱dianyunpcl@163.com。