Python+KinectV2——PyKinect

Python调用Kinect 2

前言

Kinect 2 是微软的一款深度相机,微软本身提供了很好的SDK支持,SDK中包括了多个基础的API,例如RGB和Depth图像对齐,相机标定,图像像素空间转换,人体骨架识别函数等。但是其原生接口是C++的,并没有直接提供python的接口。
在Python中开发Kinect 目前有3种方法:
1、一种可行的方法是配置第三方驱动,即Libfreenect2以及OpenNi,但是这种方法有几个问题。

  • 配置过程十分麻烦,不同的电脑环境总会遇到不同的问题,需要一路踩坑过去。
  • 不能直接使用其SDK提供的函数支持,如骨架识别等。

2、第二种是利用Python和MATLAB联合编程(MATLAB提供了接口,可自行查找),因为MATLAB中有Kin2工具可以直接调用Kinect的SDK。也就是
Python——>MATLAB——>Kin2——>SDK——>Kinect2.
这种方式是我在第一种方法实在配不通的情况不得已自己摸索出来的。但是这种方式有很大的问题

  • 程序运行的时候会自动启动MATLAB的后台,占用内存大。
  • Matlab与python 通讯采用的是matlab提供的接口,对尺寸大的图像传输实时性受限,深度图还行,但是彩色图就明显有很大的延时了。
  • Python调用Matlab时初始化很慢,调试很麻烦。

3、第三种方法是安装Pykinect2库,这是Python中的一个第三方库,可以直接调用Kinect 2 的SDK,但是他同样存在几个问题。

  • 数据方面仅提供了获取RGB和Depth图像的接口。
  • 算法方面仅提供了人体检测和人体骨架检测的接口。

在第二种方法实在让我难以接受其延时性的情况下,我考虑了能否对pykinect 进行完善。在其github的issues中也不少了提问了如何扩展的问题,但仍然没有得到解决。而我将问题中几个存在bug的代码尝试修改后,竟然实现了。这已经是一年前的工作了,下面会详细介绍一下。

工作环境

系统:win10 家庭版
Python:3.6版本
IDE:Pycharm
驱动:Microsolft SDK
Python 库: Pykinect

资料准备

Kinect SDK(暂无)
Pykinect2 Github网站
Pykinect2 下载
建议直接在github中下载Pykinect 而不采用pip安装,因为github的版本会比pip稍微新一点。

Pykinect安装

将下载下来的zip文件解压缩,


未完待更…

发布了3 篇原创文章 · 获赞 0 · 访问量 136

猜你喜欢

转载自blog.csdn.net/scy261983626/article/details/104034812