azure kinect 是什么
- 官方支持的只有windows和Ubuntu18(可以通过apt 安装sdk),其他平台需要手动下载deb包安装
sdk安装
sdk主要提供了以下几个包
-
k4a-tools
这个工具包包含k4arecord(用来录制mkv格式的数据), k4aviewer(实时查看kinect 深度相机和彩色相机输出. -
libk4a1.4 & libk4a1.4-dev
这里的1.4是版本号,目前最高版本是1.4. 这个库提供了kinect的基本操作,比如获取深度相机和彩色相机的图像, 获取匹配后的rgbd数据, 获取点云等, 可以基于该库开发更底层的应用. -
libk4abt1.0&libk4abt1.0-dev
这个库主要提供了人体姿态(body track)估计的功能.
ubuntu18安装kinect sdk
sdk的官方安装文档还是要参考kinect azure sdk, 这里再复述下.
- 设置debian源
ubuntu18.04:
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/prod && apt-get update
- 安装kinect包
sudo apt-get install k4a-tools libk4a1.4-dev
安装k4a-tools时会自动安装 libk4a最新版本的库,也会包含深度引擎libdepthengine
如果你需要做人体姿态估计还需要安装姿态估计的包.
sudo apt-get install libk4abt
- 免root启动
按道理这时就可以使用k4aview打开相机了,但是此时打开相机还需要sudo权限,为了避免添加sudo,还需要复制99-k4a.rules到/etc/udev/rules.d/'
, 重新链接kinect即可.
三维重建
-
官方提供的opencv-kinfu例子,
这个例子依赖的第三方库较为复杂(opencv, opencv-contrib, vtk), 优点是可以实时看效果, 缺点是编译复杂且只能看融合的深度图(rgbd的可视化还要改下代码,使用opencv的colord_kinfu, 我是在docker中编译, 编译通过了但是在docker内无法打开kinect… -
open3d
open3d提供了一些三维重建库,同时对三维重建的数据采集设备支持的也很好, 比如就实现了kinect azure的python接口.接下来主要介绍基于open3d的三维重建.
基于open3d的三维重建
1.环境配置
pip install open3d==0.14.1
git clone https://github.com/isl-org/Open3D.git
git checkout v0.14.1
pip安装的open3d库要和git的open3d代码版本一致,否则会有些文件对不上…
2. 采集kinect数据
可以利用open3d自带的kinect包抓取mkv格式的数据
也可以直接用kinect sdk带的工具:
k4arecord out.mkv
- mkv转换为深度图和彩色图片
cd open3d
cd examples/python/reconstruction_system
python3 sensors/azure_kinect_mkv_reader.py --input /home/bst/out.mkv --output ~/fu_out
此时深度图会向rgb图对齐.
4. 三维重建
cd examples/python/reconstruction_system/
set -e
python3 run_system.py dataset/name/config.json --make --register --refine --integrate
参考资料:
-
pyk4a: 一个azure kinect sdk的一个封装, 直接使用python就能实现抓图,录像,点云获取等操作.