基于三个kinect的人体建模
基于三个kinect的人体重建,首先要对三个kinect相机进行标定,得到相机内外参数。这样每个相机看到空间一点的坐标是一致的,三个相机坐标系得以统一。标定方法是两两标定,即取某一kinect相机(记为A)为参考,其他两个(记为B、C)分别与A标定,得到两组相机参数。这里,我是用的matlab自带的标定方法stereoCameraCalibrator,见链接matlab。例如,用两个处于同一水平线的kinect(如下图所示)进行标定测试,得到的参数是旋转矩阵R为:
0.9949 -0.0196 0.0991
0.0235 0.9990 -0.0384
-0.0983 0.0405 0.9943
平移向量T为:
-280.5068 2.5255 -25.4387
由标定结果可以看出,R矩阵接近于单位矩阵,表明两相机位置上是基本平行的。平移向量中-280.5068表示两相机x方向距离为28cm,而x方向的实际距离为26~27cm,这说明标定精度还是比较可靠的。
标定之后可以得到两组相机参数(旋转矩阵和平移向量),这在之后的点云拼接中会有用。
点云获取
通过sdk中内置的转换函数,将由kinect获取到的深度图像转换为点云数据,并保存。如下图所示为一个角度获取的点云。
点云处理
由于点云的数据量非常庞大,并且存在着冗余数据和噪声干扰,增加了计算复杂度。因此在点云拼接之前需要预先对点云进行处理。这其中的关键问题是提取点云数据中能反映曲面特征的点,精简数据并且去除噪声,提高重建的精度和效率。去噪方法是联合双边滤波算法
点云拼接
三维点云拼接实质是将不同坐标系下得到的数据点云进行坐标变换,通过两片或多片数据点云中找出正确的排列关系,拼接成一片完整的数据点云。其中的关键问题就是利用旋转矩阵和平移矩阵,通过ICP算法对点云进行配准。
基于三个kinect的人体建模的更多相关文章
- 基于3D卷积神经网络的人体行为理解(论文笔记)(转)
基于3D卷积神经网络的人体行为理解(论文笔记) zouxy09@qq.com http://blog.csdn.net/zouxy09 最近看Deep Learning的论文,看到这篇论文:3D Co ...
- 菜鸟学习Spring——SpringIoC容器基于三种配置的对比
一.概述 对于实现Bean信息定义的目标,它提供了基于XML.基于注解及基于java类这三种选项.下面总结一下三种配置方式的差异. 二.Bean不同配置方式比较. 三.Bean不同配置方式的适用场合. ...
- Kinect测量人体身高的程序
对着书上敲得,从中体会kinect骨骼识别与深度识别的原理.大体原理是懂了,但有些细节还没有完全弄明白. using System; using System.Collections.Generic; ...
- Unity之串口通信(基于三姿态传感器)
原地址:http://www.cnblogs.com/alongu3d/archive/2013/05/02/3054962.html /******************************* ...
- Apache和Nignx基于三种方式搭建web站点并设置用户访问控制达到优化整个站点性能
个人用户主页: 1:Vim /etc/http/con.d/userdir: UserDir disabled //个人用户主页开启 UserDir public_html //指定 ...
- (三)Kinect姿势识别
Kinect给我们内置了许多姿势如举手等,具体可参考枚举KinectGestures.Gestures,也可以通过Kinect姿势管理器,自定义姿势导入(坑较多,内置的基本够用了)也可以根据关节坐标自 ...
- 基于点云的3ds Max快速精细三维建模方法及系统的制作方法 插件开发
基于点云的3ds Max快速精细三维建模方法及系统的制作方法[技术领域][0001]本发明涉及数字城市三维建模领域,尤其涉及一种基于点云的3d ...
- 3D建模与处理软件简介
[前言]自半年前笔者发表博客“什么是计算机图形学”以来,时常有人来向笔者询问3D模型的构建方法与工具.笔者的研究方向是以3D技术为主,具体包括3D建模,3D处理及3D打印三个方面,在3D建模与处理方面 ...
- Kinect开发学习笔记之(一)Kinect介绍和应用
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
随机推荐
- [css 实践篇]CSS中的尺寸单位
绝对单位 px: Pixel 像素 pt: Points 磅 pc: Picas 派卡 in: Inches 英寸 mm: Millimeter 毫米 cm: Centimeter 厘米 q: Qua ...
- XAF-属性编辑器中的EditMask,DisplayFormat格式化字符串该如何设置
XAF项目中有个DisplayFormat和EditMask设置,其中: 任何地方看到的DisplayFormat都是用于显示时,即非修改状态的编辑器,显示值的格式. EditMask是指编辑时的格式 ...
- 高可用Kubernetes集群-4. kubectl客户端工具
六.部署kubectl客户端工具 1. 下载 [root@kubenode1 ~]# cd /usr/local/src/ [root@kubenode1 src]# wget https://sto ...
- Qt中容器类应该如何存储对象
Qt提供了丰富的容器类型,如:QList.QVector.QMap等等.详细的使用方法可以参考官方文档,网上也有很多示例文章,不过大部分文章的举例都是使用基础类型:如int.QString等.如果我们 ...
- 4.hive的外部表和内部表
1.外部表和内部表区别 创建表时:创建内部表时,会将数据移动到数据仓库指向的路径:若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变. 删除表时:在删除表的时候,内部表的元数据和数据会被一 ...
- Spark入门(Python)
Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到”大数据(Big Data)”广告的原因.它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰富生态系统,允许使用 ...
- hbase Problem binding to node1/192.168.1.13:16020 : 地址已在使用
这是hbase 从0.9.x升级到1.x后HMaster与HRegionServer端口冲突问题 在hbase升级到1.0.0版本后,默认端口做了改动.其中16020端口是hmaster服务和hreg ...
- Codeforces Round #613 Div.1 D.Kingdom and its Cities 贪心+虚树
题目链接:http://codeforces.com/contest/613/problem/D 题意概述: 给出一棵树,每次询问一些点,计算最少删除几个点可以让询问的点两两不连通,无解输出-1.保证 ...
- USACO 2.3.3 Zero Sum 和为零(深搜枚举)
Description 请考虑一个由1到N(N=3, 4, 5 ... 9)的数字组成的递增数列:1 2 3 ... N. 现在请在数列中插入“+”表示加,或者“-”表示减,抑或是“ ”表示空白,来将 ...
- 20181113-3 Beta阶段贡献分配规则
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2382 在新成员加入后,我们经过商讨,决定沿用alpha阶段贡献分分配规则 ...