截至目前,最精确可行的光学测距方法可能就是ToF(time of flight),例如LDM激光测距、IDM红外测距等等具体技术已经实现了产品化;另一方面,如今许多三维扫描仪都采用了三角测距法,特别是对手持式扫描设备而言。然而上述这些技术都不太适用于Kinect这种家用设备:首先是测量环境的限制,其次还要考虑成本因素。

PrimeSense的测距技术类似一部分结构光技术,“结构光”指一些具有特定模式的光,其pattern的图案可以是线、点、面等多种图形。结构光扫描法的原理是首先将结构光投射至物体表面,再使用摄像机接收该物体表面反射的结构光图案,由于接收图案必会因物体的立体形状而发生变形,那么就可以试图通过该图案在摄像机上的位置和形变程度来计算物体表面的空间信息。普通的结构光方法仍然是部分采用了三角测距原理进行深度计算。

参考Google Patents上的Range mapping using speckle decorrelation(No. US7433024B2)以及DEPTH MAPPING USING PROJECTED PATTERNS(No. 0118123 A1)两篇技术文档,已经有前人对PrimeSense的方法进行了详细解释。

PrimeSense将其深度测量技术命名为Light coding,与结构光法不同的是,Light coding的光源被称为“激光散斑(laser speckle)”,是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。

当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。在PrimeSense的专利上,标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Natal规定的用户活动空间是距离电视机1米到4米的范围,每隔10cm取一个参考平面,那么标定下来我们就已经保存了30幅散斑图像。需要进行测量的时候,拍摄一副待测场景的散斑图像,将这幅图像和我们保存下来的30幅参考图像依次做互相关运算,这样我们会得到30幅相关度图像,而空间中有物体存在的位置,在相关度图像上就会显示出峰值。把这些峰值一层层叠在一起,再经过一些插值,就会得到整个场景的三维形状了。

转载于:https://www.cnblogs.com/xiaodukuko/p/5547557.html

关于kinect的一些想法相关推荐

  1. 超强实操!手把手教学Kinect深度图与RGB摄像头的标定与配准

    作者 | aipiano @CSDN 编辑 | 3D视觉开发者社区 导读 Kinect作为微软推出的XBOX360体感周边外设,具有获取深度信息的能力.但由于Kinect自身RGB摄像头分辨率有限,其 ...

  2. Kinect深度图与摄像头RGB的标定与配准(转载文章)

    作者原文地址:http://blog.csdn.net/aichipmunk/article/details/9264703 自从有了Kinect,根据深度图提取前景就非常方便了.因此出现了很多虚拟现 ...

  3. Kinect深度图与摄像头RGB的标定与配准(文末总结不容错过)

    作者原文地址:Kinect深度图与RGB摄像头的标定与配准_aipiano的博客-CSDN博客_深度摄像头标定 自从有了Kinect,根据深度图提取前景就非常方便了.因此出现了很多虚拟现实.视频融合等 ...

  4. [译]Kinect for Windows SDK开发入门(九):骨骼追踪进阶 下

    1. 基于景深数据的用户交互   到目前为止我们只用了骨骼数据中关节点的X,Y值.然而Kinect产生的关节点数据除了X,Y值外还有一个深度值.基于Kinect的应用程序应该利用好这个深度值.下面的部 ...

  5. Kinect深度图像滤波

    from:Kinect深度图像滤波 最近在做机器视觉方面的一点工作,用Kinect作sensor获取深度数据.颜色.手势识别等.非常感激CNBlog上的两篇博文:(1)独钓寒江的http://www. ...

  6. 微软CEO:别被Google的TPU诱惑,Kinect“复活” | Build 2018

    夏乙 允中 假装发自 西雅图 量子位 出品 | 公众号 QbitAI  微软Build 2018大会今天午夜在大洋彼岸开幕. 大会首日,微软集中火力大谈人工智能.云计算.物联网.AR等技术.在今天 ...

  7. Kinect for Windows SDK开发入门

    Kinect for Windows SDK开发入门(一):开发环境配置 首先来看一下Kinect设备: 1. Kinect设备 黑色的Kinect设备如下图:基座和感应器之间有一个电动的马达,通过程 ...

  8. Kinect开发之PowerPoint播放助手

    前言: 之前写过一篇关于姿势(pose)识别的博文,之后又定义了几个姿势实现了体感俄罗斯方块.姿势识别是通过关节点与关节点之间的相对位置关系来进行判断.当判断成立,即执行指定的指令.那么,我们就可以指 ...

  9. Kinect的介绍和应用【转】

    一.Kinect简介 Kinectfor Xbox 360,简称 Kinect,是由微软开发,应用于Xbox 360 主机的周边设备.它让玩家不需要手持或踩踏控制器,而是使用语音指令或手势来操作 Xb ...

最新文章

  1. 爬虫之requests模块发送带参数的请求
  2. 分布式任务队列 Celery — Overview
  3. EventBus初解
  4. MySQL内核月报 2015.01-MySQL · 捉虫动态· InnoDB自增列重复值问题
  5. 在caffe上跑自己的数据
  6. 在Linux机器上配置NUD
  7. PCB相关的基础知识
  8. WPF 实现截屏控件之移动(二)(仿微信)
  9. 传统ELK分布式日志收集的缺点?
  10. 【ios】在真实设备上运行
  11. C语言课后习题(12)
  12. Ubuntu每次启动都显示System program problem detected的解决办法
  13. execjs执行报: ‘gbk‘ codec can‘t decode byte 0xac in position 62: illegal multibyte sequence
  14. .net的辅助工具列表
  15. 查看Sql Server2016是否激活
  16. 国科大学习资料--操作系统(杨力祥)--2016年思考题(含解答)
  17. 基于GJB438C-2021的软件需求规格说明
  18. 谐波分析matlab仿真,教程:利用GUI对Simulink模型进行谐波分析
  19. Python--快速爬取千张高清壁纸
  20. ABO血型系统遗传规律表

热门文章

  1. 检验mysql安装成功win7,手把手教你win7系统成功安装 RMySQL的处理对策
  2. CIO们拼命都想上的“网红”中台,也有它的另一面
  3. php 获取域名_在PHP中截取当前页面URL地址及URL信息的方法
  4. excel多列多行堆叠成多列一行_「Excel技巧」如何利用indirect函数快速将一列转为多行多列排版...
  5. hnu 暑期实训之公交系统
  6. 双系统安装和ros安装踩坑
  7. Evolution Game DP
  8. 4-2 面向复用的软件构造技术
  9. 【五级流水线CPU】—— 7. 协处理器访问指令(2条)
  10. set容器内元素的访问