libfreenect2是一个Kinect for Windows v2设备的开源跨平台驱动程序。因为接下来需要通过kinect(微软旗下的一款应用于xbox的体感设备)来获取深度信息,以及物体轮廓框架信息,所以先准备安装libfreenect2驱动程序来提供kinect运行的API。
下面来讲一下这次坎坷的安装经历,分三个部分。
1
通过虚拟机来安装ubuntu,因为项目是要在linux下进行,所以得安装kinect在linux下的驱动,又因为是第一次接触linux(还好ubuntu的界面和windows还是挺相似的),在大佬的指导下先在github上找到了libfreenect2的安装教程及源码,便开始了一顿操作,最后因为无法build而没有继续,在查找解决方案时,突然看到了官方教程下的这样一句话:Virtual machines likely do not work, because USB 3.0 isochronous transfer is quite delicate.(虚拟机可能无法正常工作,因为USB 3.0同步传输非常复杂。)便彻底放弃了通过虚拟机来运行的方案,说实话当时心态是崩的。
2
然后我在win10下通过kinect官网介绍下载了Kinect for Windows SDK 2.0(微软专为在windows下开发的开发者提供的SDK),简单安装后便可以运行官方提供的几个例程,下面是当时运行的照片:
不得不说,在windows下开发kinect是真的方便,但是我们的要求是在linux下,这只能暂时体验一下。
3
在虚拟机无效的情况下也只能选择安装一个双系统了,安装过程可以说是踩遍了各种坑,因为我笔记本是有两块硬盘的(一块固态,一块机械,固态中装着win10),到现在我还不知道我为什么无法将ubuntu安装到机械硬盘上去,我安装了不下20次,对,真的有20次,各种方法都试过了,最后都是卡在紫屏,然后变为黑屏。在同学的提议下我安装到了c盘,也就是固态中,就不会有这个问题,然后就是在ubuntu16.04中安装libfreenect2,又遇到了显卡驱动的问题,又是各种查找,最后找到了一个国外论坛,看到和我相同问题的帖子,终于解决了这个烦人的问题。最后成功打开了libfreenect2的demo。
左上图是红外相机的画面,左下图是彩色相机的画面,右下图是深度相机的画面,我猜测,右上图应该就是彩色相机与深度相机画面的叠加合成。(深度相机的默认范围为0.5m~4.5m)所以可以看到在这个范围外的图像是黑色的。
以上便是我一星期的经历,这个对于大佬来说可能半小时就能完成的事,我却用了整整一星期,多少有点懊恼,但是这个过程还是有点收获的,至少是熟悉了github的用法,“精通”linux系统的安装与卸载,也掌握了其中常用的一些命令行。好了,终于可以步上kinect开发的正轨了!