kinect v2 面部模型
原文 请戳这里
http://blog.csdn.net/dustpg/article/details/39455813
使用SDK: Kinect for Windows SDK v2.0 public preview1409
同前面,因为SDK未完成,不附上函数/方法/接口的超链接。
是的,微软在9月16日更新了SDK。没看具体更新内容,但是感觉上解决了一些bug,比如x86的Fusion。
这次说说高清面部帧的面部模型。
Kinect 2可以根据面部进行实时面部建模,感觉高大上,但是目前不能捕捉舌头,是个遗憾。
毕竟颜艺中舌头的地位可不低啊。
说到模型自然当然就是顶点集合啦,目前面部模型的定点数是1347,利用GetFaceModelVertexCount获取,
请注意这是函数,而不是宏定义,也就是说强烈建议使用动态分配,而不是静态分配。
嗯,1347,1+3+4+7=15,也就说是三角面咯。但是这节不涉及,毕竟这节是2D的,将顶点显示出来就好了。
怎么获取面部模型呢?首先,面部模型对应的接口是IFaceModel,使用IFaceModel::CalculateVerticesForAlignment,
同前面,每(高清面部)帧需要更新面部对齐IHighDefinitionFaceFrame::GetAndRefreshFaceAlignmentResult.
那么怎么获取IFaceModel,一种方法是利用IHighDefinitionFaceFrame::get_FaceModel等(帧源也能),但是这样,
相当于每帧都会创建一个面部模型,即使我们释放掉,内存也没有回收。有点像内存泄漏,不过只是内部引用计数未归零。
这样会严重导致性能。所以使用函数CreateFaceModel即可,看参数名就知道了,很简单。
所以我们的大致步骤:
创建资源与事件
在高清面部临帧事件里面更新 面部对齐, 计算面部模型,将面部模型顶点映射为彩色空间
在刻画是顺便画这些点即可。
当然,还要保证跟踪ID有效,事件模式在多个事件就有点麻烦了,没有轮询模式简单。
为了效率,这里选择ICoordinateMapper::MapCameraPointsToColorSpace即数组转换,省去单个转换中虚函数的开销。
所以我们需要申请两块定点缓存,一个3D的一个2D的。
自然,动态内存分配需要时间,加上假设第一次分配成功但是第二次分配失败还要回滚。这里一次申请即可。
- // 创建顶点缓存
- if (SUCCEEDED(hr)){
- m_pFaceVertices = reinterpret_cast<CameraSpacePoint*>(malloc(
- (sizeof(CameraSpacePoint) + sizeof(ColorSpacePoint)) * m_cFaceVerticeCount)
- );
- if (!m_pFaceVertices) hr = E_OUTOFMEMORY;
- }
- // 修改数据
- if (SUCCEEDED(hr)){
- const_cast<const ColorSpacePoint*>(m_ImagaRenderer.data.face_points) =
- reinterpret_cast<const ColorSpacePoint*>(m_pFaceVertices + m_cFaceVerticeCount);
- const_cast<UINT&>(m_ImagaRenderer.data.face_points_count) = m_cFaceVerticeCount;
- }
也算是小技巧吧,不过因为使用了const,所以还有点麻烦。
差不多就是这样:
下载地址....见评论区或者到笔者资源区里面寻找,这连10kb的东西都要审核...
这次是2D,下次是3D,不知道是用D3D,还是抱Unity的大腿....
kinect v2 面部模型相关推荐
- 基于kinect v2的模型三维重建算法(个人毕设总结)
3.29 https://blog.csdn.net/u010848251/article/details/70992345 根据调试中遇到的问题 对文章中的代码进行了修改 问题解决依据: https ...
- Kinect for Windows SDK v2.0 开发笔记 (十三) 高清面部帧(4) 面部模型构建器
(转载请注明出处) 使用SDK: Kinect for Windows SDK v2.0 public preview1409 同前面,因为SDK未完成,不附上函数/方法/接口的超链接. 这次让 ...
- Kinect for Windows SDK v2.0 开发笔记 (十二) 高清面部帧(3) 面部模型(2D)
(转载请注明出处) 使用SDK: Kinect for Windows SDK v2.0 public preview1409 同前面,因为SDK未完成,不附上函数/方法/接口的超链接. 是的, ...
- Kinect v2 Examples with-SDK 提示 技巧和示例简介
原帖:https://rfilkov.com/2015/01/25/kinect-v2-tips-tricks-examples/#t26 所有在KinectScripts文件夹中管理的目的是什么: ...
- 深度相机(五)--Kinect v2.0
原文:http://blog.csdn.net/qq1175421841/article/details/50412994 ----微软Build2012大会:Kinect for Windows P ...
- Robotiq+UR3e+Kinect V2 Gazeobo仿真成功,解决robotiq抖动问题
Robotiq+UR3e+Kinect V2 Gazeobo仿真成功,解决夹爪漂的问题 1.前言 用ur机械臂已经很久了,都是本科大创,本科毕设,现在做.从ubuntu16用到ubuntu18,从UR ...
- 【论文翻译】用于移动机器人导航的Kinect v2:评估和建模
吐槽:哇,为了图像检测的期末报告,我花了两天时间,真是一句一句的翻译过来了. 话说中文网站资料是真的靠不住...为了Kinect2的使用,我在中文网站上摸索了一个多月,自己摸鱼走了快两个月的弯路,原来 ...
- ubuntu 16.04 ROS + kinect v2 安装
参考: ubuntu 16.04 ROS + kinect v2 driver安装方法:安装驱动时遇到的问题及解决方法(1) 以下为参考链接部分内容以及我安装过程中的操作 安装libfreenect2 ...
- 【计算机视觉】深度相机(六)--Kinect v2.0 手势样本库制作
目录为1.如何使用Kinect Studio录制手势剪辑:2.如何使用Visual Gesture Builder创建手势项目:3.如何在我的C#程序中使用手势:4.关于录制.剪辑手势过程中的注意事项 ...
最新文章
- 从网页模版切图到网页生成全攻略(转)
- bootstrap怎么用_不用自己写css,不用bootstrap,写样式有tailwindcss就足够了
- IOS SEL (@selector) 原理及使用总结(一)
- python中文件操作中不同的文件操作有何差异_Python学习基础篇 -6: Python中的文件操作...
- 硬件结构(中):EqualLogic PS5000 对等存储“动车组”
- excel appliacation 不能分配角色_用了5年Excel,换了这个神奇的报表工具,不禁感叹:国产真香...
- CSS中属性个属性值怎么区分,[CSS] 详细解释 @media 属性与 (max
- 诗与远方:无题(六十八)
- cut out数据增强_ChIP-Seq数据分析(PE型)
- NodeJS自定义包和模块的导入(require)、导出(exports)
- 【印刷技术】印刷油墨的粘度,如何设定?
- Ubuntu 双系统安装流程
- 纸牌游戏——小猫钓鱼(队列、栈)
- 3DS MAX 导入骨骼动画插件
- numpy之arange函数
- 离谱:火狐浏览器重启后插件,书签,浏览记录全部没了???
- ~~因果图法示例分析
- 安卓高通Diag命令解析
- 网络爬虫框架——Scrapy框架解析
- Using XSS to bypass CSRF protection