kinect 红外图像摄像头有几个红外摄像头

iPhone X脸部识别摄像头:原来是“新版”Kinect
作者:快科技
iPhone X脸部识别摄像头:原来是&新版&Kinect&对于苹果来说,iPhone X是一部很具有革命意义的手机,除了它的全面屏设计,更关键的还是革新的Face ID。由于手机还没有开卖,外界对于面容识别已经忧心忡忡,并开始各种唱衰。
iPhone X脸部识别摄像头:原来是&新版&Kinect
事实上,苹果对于外界担心Face ID的心情,早有准备所以他们强调,大家对新功能的所有担心,都会在拿到手机体验后消除,同时官方还强调,你的人脸信息都被存放在本地手机中,不牵扯到信息外漏。
需要注意的是,Face ID识别速度快且精准,都离不开前置3D摄像头的功劳,其是由PrimeSense来操刀完成的,2013年没有被苹果收购前,他们完成了微软Kinect的硬件设计,所以你可以把这个iPhone X的前置3D摄像头和面容识别功能,看作是一款新的Kinect(同样基于红外深度检测)。
iPhone X脸部识别摄像头:原来是&新版&Kinect
您可能也感兴趣:&&&&&&&&&&&&
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
iPhonex脸部识别
iPhoneX面部识别
相关的资讯有:
iPhonex脸部识别
iPhoneX面部识别
相关的博文有:
vivo X20是本月21日发布的一款全面屏新机, 它采用了主流的18:9设计,屏占比为85.3%...
9月30日消息,今年下半年 “全面屏”成为了各大手机厂商的主导方向,广视角能更好的加...
早有传言,三星Galaxy S9将于明年初发布,按照这个节奏的话,Galaxy S9的硬件部分应该...
据SK海力士(SK Hynix)今日发布的一份声明显示,收购东芝芯片业务部门后,贝恩资本(Bai...
监管文件显示,科斯罗萨西周四通知纽约时报公司董事会,他将因为出任Uber的新职位而卸...
苹果的iOS系统一直以流畅著称,安卓系统经过几代更新,流畅度有了大幅提升,但是和iOS...
昨天苹果为我们带来了 iOS 11.1 首个 Beta 系统,而今天,苹果也发布了 iOS 11.1 首个...
作为当今最流行的Linux发行版,Ubuntu做出了一个并不怎么艰难地决定:定于10月19日正...
期待已久的新一期克隆大作战现已正式打响啦~全新主题赛将带你体验不一样的竞技玩法,......
炉石传说十月传说卡组推荐,国庆上传说卡组,一起来看看吧。......
《绝地求生大逃杀》中的四排是需要有一些战术策略的,这样团队合作才能发挥出较好的效......
奇迹暖暖虚空歌者已经开启,第一关是奇怪的邀请函,下面为大家带来奇迹暖暖虚空歌者第......
Copyright (C)
All rights reserved.
请选择一张图片分享
要转发到新浪微博,请
要转发到QQ空间,请[转载]kinect红外激光器拆解
Kinect的工作原理在以前的文章中已经做过了一些介绍,今天主要讲一下除了PS1080芯片以外的另一个核心部件——红外激光投射器(IR
Projector)。国内外有很多关于PS1080芯片的详细介绍,但是对于其红外激光投射器的构造原理鲜有所闻,下面我们就对这个部件进行深入分析。
Kinect中投射器的作用是投射出随机的激光散斑,即结构光,通过红外摄像头采集所标记的结构光,交由PS1080芯片进行计算后得到最终的景深数据。
下图为Kinect红外激光投射器的原理图。根据PrimeSense在专利中的描述,红外激光生成器(42)射出准直后的激光束(44),通过光学衍射元件(DOE)进行散射,进而得到所需的散斑图案。PrimeSense所说的光学衍射元件可以通过多种组合来实现,具体可以参见其在国内申请的专利《用于使零级减少的光学设计》。在Kinect中,PrimeSense采用扩散片(48)和光栅(50)来实现,该设计专利可参见其美国专利《Optical
Pattern Projection》。
扩散片如下图所示
它的作用是将激光光束散射成不规则分布的点状散斑图案,由于扩散片对于光束进行散射的角度(FOV)有限,所以需要光栅(见下图)将散斑图案进行衍射“复制”后,扩大其投射角度。
&这种“复制”效果被称为光学卷积,从下图的原理图中我们看到,当光束通过扩散片(如毛玻璃)后产生的散斑,再经过光栅后进行卷积就能得到所需透射角度的散斑。
&下图为PrimeSense专利中激光散斑示意图,可以看到光斑卷积后形成9格散斑图案。
值得一提的是,专利中提到所有散斑中心零级的能量和不超过总能量的1%,也就是说按照MS官方的说法,Kinect所用激光功率为60mw,即使9块散斑零级能量之和为1%,各零级能量也不过0.067mw,远低于安全激光规定的0.4mw上限,所以从功率角度看,Kinect所提供的激光光源是安全的。鉴于测试手段有限,我们暂时还无法得知该激光散斑的最大光强(即零级光通量)是否也安全,但有一点是肯定的,对着Kinect激光投射器近距离直射眼睛是万万不可取的。
需要定制DOE的朋友可直接与我们联系:。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。一、Kinect视角场 1、43°垂直方向和57°水平方向可视范围。
2、视角场常量值定义
Format 获取或设置深度图像格式
MaxDepth 获取最大深度值
MinDepth 获取最小深度值
NominalDiagonalFieldOfView 获取红外摄像头的标准场视角,单位是度
NominalFocalLengthInPixels 获取红外摄像头的标准焦距,单位是像素点
NominalHorizontalFieldOfView 获取红外摄像头的水平视角,单位是度
NominalInverseFocalLengthInPixels 获取红外摄像头的标准焦距的倒数
NominalVerticalFieldOfView 获取红外摄像头的垂直视角,单位为度
Range 设置红外摄像头采用“默认模式”还是“近景模式”
TooFarDepth 获取红外值有效范围的最大值,即红外摄像头能看到的最远距离
TooNearDepth 获取红外值有效范围的最小值,即红外摄像头能看到的最近距离
UnknownDepth 未知红外距离的数值 &
3、通过骨骼跟踪对象Skeleton.ClippedEdges的属性,判断用户是否处于Kinect的有效视野范围内。 &&&& 将骨骼跟踪调节到最佳位置的方法有: &&& **用户移动到有效视野的横截面中:例如,再Kinect游戏中会提示玩家走近一些 &&& **通过KinectSensor.ElevationAngle属性控制Kinect的垂直仰角,改善用户的有效视角场横截面。 二、深度值与实际距离的对比 1、深度图像的每像素占用2字节,同常量DepthImage.BytesPerPiexl的定义,可以用short变量定义这个像素。其中,高13位表示从Kinect红外摄像头到最近物体对象的距离,以毫米为单位;低三位表示用户索引编号,DepthImageFrame.PlayerIndexBitmaskWidth定义了此值。 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2、Kinect深度会随着目标物体的距离而发生偏差,距离越远偏差越大。 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
三、深度图像的直方图 1、亮度直方图属于图像处理的基本运算,通过它可以提取有效的“亮度”特征。亮度直方图能体现每个亮度值在图像中的占有率。利用“亮度”特征值,并基于一定的亮度阀值,可以从果盘中分辨出红萝卜和西红柿。 2、直方图统计信息的价值 using S
using System.L
using System.W
using System.Windows.M
using System.Windows.Media.I
using Microsoft.K
using System.Windows.S
namespace KinectDepthHistogram
public partial class MainWindow : Window
//简化程序,未做预防性代码
KinectSensor sensor = KinectSensor.KinectSensors.First();
short[] pixelD
public MainWindow()
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
this.Unloaded += new RoutedEventHandler(MainWindow_Unloaded);
sensor.DepthStream.Enable();
sensor.DepthFrameReady += new EventHandler&DepthImageFrameReadyEventArgs&(sensor_DepthFrameReady);
private Int32 depthFrameBehind = <span style="color: #;
void sensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
bool receivedData = false;
using (DepthImageFrame DFrame = e.OpenDepthImageFrame())
if (DFrame == null)
// The image processing took too long. More than 2 frames behind.
depthFrameBehind++;
labelDepthFrameBehind.Content = depthFrameBehind.ToString();
pixelData = new short[DFrame.PixelDataLength];
DFrame.CopyPixelDataTo(pixelData);
//绘制深度直方图
DrawDepthHistogram(DFrame, pixelData);
receivedData = true;
if (receivedData)
BitmapSource source = BitmapSource.Create(<span style="color: #0, <span style="color: #0, <span style="color: #, <span style="color: #,
PixelFormats.Gray16, null, pixelData, <span style="color: #0 * <span style="color: #);
depthImage.Source =
void MainWindow_Unloaded(object sender, RoutedEventArgs e)
sensor.Stop();
void MainWindow_Loaded(object sender, RoutedEventArgs e)
sensor.Start();
#region DepthHistogram
//有效视距范围的阀值: 0.8米到3米
private const int LowDepthThreshold = <span style="color: #0;
private const int HighDepthThreshold = <span style="color: #00;
/// &summary&
/// 绘制深度图像的直方图
/// &/summary&
/// &param name="depthFrame"&&/param&
/// &param name="pixelData"&&/param&
private void DrawDepthHistogram(DepthImageFrame depthFrame, short[] pixelData)
int[] depths = new int[<span style="color: #96];
double chartBarWidth = Math.Max(<span style="color: #, DepthHistogram.ActualWidth / depths.Length);
//遍历深度像素数组,并获取深度值.并统计每一个深度值出现的次数
for (int i = <span style="color: #; i & pixelData.L i++)
//前13位为深度值,单位毫米
depth = pixelData[i] && DepthImageFrame.PlayerIndexBitmaskW
//有效视距内的统计
if (depth &= LowDepthThreshold && depth &= HighDepthThreshold)
depths[depth]++;
int maxValue = <span style="color: #;
//查找depth数组中的最大深度值
for (int i = LowDepthT i & HighDepthT i++)
maxValue = Math.Max(maxValue, depths[i]);
//绘制直方图,统计各个深度段的像素个数
DepthHistogram.Children.Clear();
for (int i = LowDepthT i & HighDepthT i++)
//显示有深度数值的
if (depths[i] & <span style="color: #)
Rectangle r = new Rectangle();
r.Fill = Brushes.G
r.Width = chartBarW
r.Height = DepthHistogram.ActualHeight * (depths[i] / (double)maxValue);
r.Margin = new Thickness(<span style="color: #, <span style="color: #, <span style="color: #, <span style="color: #);
r.VerticalAlignment = System.Windows.VerticalAlignment.B
DepthHistogram.Children.Add(r);
#endregion
阅读(...) 评论()&>&&>&&>&&>&正文
  Kinect是一个让游戏玩家无需任何游戏控制器的游戏控制方式。“Kinect”集成的传感器可以追逐到你身体的3D动作,对用户进行面部“辨识”,甚至还能听懂你的语音命令!Wii的局限在于仅能用手控制。而Kinect”项目能用上你身体的所有部分,包括头、手、脚、躯干。微软的目标是:“全身游戏”。
  这一切的细节在于Kinect的几个重要传感器功能,这些传感器包括:摄像头、深度传感器,多点阵列麦克风,以及一个可处理专用软件的处理器。
  RGB摄像头:Kinect项目的摄像头是一个RGB摄像头,这意味着它可以为XBox 360提供红、绿、蓝三个通道的颜色。它的作用在于面部识别和动作追踪。
  深度传感器:深度传感器由红外线投影机加单色CMOS传感器组成。虽然功能并不复杂,但它可以让XBOX360真正“看到”3D空间,而不是通过计算得出空间数据。
  多点阵列麦克风:主要功能当然是为了聊天,并可以帮助过滤环境噪声。这个功能可以让使用耳机的Xbox Live聊天党听到你更清晰的声音。
  定制处理器和微软的定制软件:Kinect项目的重中之重就是,所有的硬件都是由微软设计的软件进行控制的。这意味着将来可能不会出现第三方的兼容Kinect产品。
  此外,Kinect还拥有一个机械转动的底座,可以让摄像头本体能够看到的范围更广泛,并且可以随着玩家的位置灵活变动。
提示:支持键盘“← →”键翻页【图文】Kinect2.0教程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Kinect2.0教程
&&这是一个讲解如何在Unity中使用Kinect 2.0开发体感交互类游戏的示例
大小:1.64MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 kinect 红外图像 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信