Kinect体感识别设备有一项最重要也是最基础的应用就是:识别特定动作。今天我们就在Windows系统利用KinectStudio、VisualGestureBuilder和Unity3d来实现特定动作的识别。
首先我们了解一下Kinect骨骼识别的原理:
Kinect骨骼图是由深度图得到的:KinectV2通过自己的红外发射器投射经调制的近红外光线,照射到物体之后发生反射,红外相机再接受反射光线,采用TOF技术测量深度,计算光的时间差。从而计算出物体的深度(距kinect的距离)。
然后将这个侦测到的3d深度图像转换到骨架追踪系统,该系统最多可以追踪6个人。Kinect采用分隔策略将人体从复杂的背景中区分开来在这个阶段,为每个人在深度图像中创建分割遮罩(有点儿像opencv里面识别轮廓),将人物同背景分割开来。
再然后,Kinect会寻找出可能是人的物体,毕竟Kinect所具备的感官只有“视觉”和“听觉”,它不能判定你是否具有智慧、是否具有生物特征。它只能通过自己的“眼睛”去看,只要相似度达到判定阈值,它就会判定眼前的东西为人。你可以试试用衣架挂一件衣服,Kinect也不会拒绝的)。
下面我们来开始本期的教学环节:
一、首先,打开Kinect Studio,转到Record界面。连接好你的Kinect。如果连接失败请打开“服务”,手动开启Kinect Monitor服务。
二、调整Kinect的位置便于我们录制自己/朋友的动作,点击左上方红色圆点按钮开始录制。然后进入Kinect的识别范围间断性地重复某一动作。比如笔者录制了一个向上拍手的动作:
点击结束录制,Kinect Studio会贴心地为我们自动保存这个录像片段。具体的保存位置你可以在FILE页找到。
多次重复是为了令样本的数量多一些,你也可以在间隔内稍微变换位置或者微微屈膝,让训练样本更多样化一些。
三、同Cort