深度检测的光栅扫描的制作方法

文档序号:6356720阅读:201来源:国知局
专利名称:深度检测的光栅扫描的制作方法
技术领域
本发明涉及深度检测,尤其涉及深度检测的光栅扫描。
背景技术
深度相机系统获得和物理空间内人或其他对象的位置有关的数据。该信息可被称为“深度信息”。深度信息可被输入到计算系统内的应用用于各种各样的应用。可能有许多应用,如出于军事、娱乐、体育和医疗目的。例如,关于人的深度信息可被映射到三维(3-D) 人类骨架模型并用于创建动画人物或化身。为了确定深度信息,深度相机可将光投影到相机的视野内的对象上。光反射离开对象并返回相机,在相机处光被处理以确定深度信息。然而,被反射回相机的光的强度可以是非常弱的。因此,信噪比(S/N)可以是差的。此外,如果对象的一部分扩展到相机的视野之外,那么对象的该部分的深度不能被确定。因此,需要进一步的改进以允许对深度相机的视野内对象的深度进行更精确的确定。一种这样的需要是改进从对象反射的光信号的S/N。另一种需要是提供对视野更好的控制。

发明内容
提供了一种用于确定深度相机的视野内的一个或多个对象的深度信息的机器实现的方法和系统。该方法和系统提供深度相机的视野内的对象的深度的精确确定。该方法和系统可提供从对象反射的光信号的好的S/N。该方法和系统可允许深度相机的视野被动态地调节。一实施例是确定到对象的距离的机器实现的方法。该方法包括从相机内的光源发送光。在相机的视野内的对象上,光被光栅扫描。在检测器处接收来自对象的光的所反射的图像。基于所反射的图像确定到该对象的一个或多个距离。—实施例是深度相机,该深度相机包括发送光的光源、与光源光学通信的扫描元件、光检测器以及距离确定逻辑。扫描元件通过按χ-方向和y_方向扫描来光栅扫描视野上的光。光检测器接收来自视野内对象的被扫描的光的所反射的图像。距离确定逻辑基于所反射的图像确定到视野内的对象的一个距离或多个距离。一实施例是光栅扫描图案以确定深度信息的机器实现的方法。该方法包括从相机内的光源发送光。在发送光的同时控制扫描元件来扫描相机的视野内的线。在相机内的线性阵列检测器处接收来自视野内的对象的图像。该图像对应于扫描线的至少一部分。做出关于是否扫描图案内另一线的确定。如果另一线要被扫描,则重复发送、控制以及接收。分析接收到的图像的空间特性。基于该空间分析确定到视野内的对象的一个距离或多个距罔。提供本发明内容以用简化形式介绍在下面的说明书中进一步描述的精选概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所
4要求保护的主题的范围。


图1描绘了运动捕捉系统的示例实施例。图2描绘了图1的运动捕捉系统的示例框图。图3描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。图4描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。图5A描绘了可使用飞行时间来确定光栅扫描的光的深度信息的深度相机的一实施例的框图。图5B描绘了使用结构化光图案来确定深度信息的深度相机的一实施例的框图。图6是确定到深度相机的视野内一个或多个对象的距离的过程的一实施例的流程图。图7是扫描深度相机的视野内的图案的过程的一实施例的流程图。图8A是基于飞行时间确定到相机的视野内的对象的一个或多个距离的过程的一实施例的流程图。图8B是基于接收到的图像的空间分析确定到相机的视野内的对象的一个或多个距离的过程的一实施例的流程图。图9是生成参考图像的过程的一实施例的流程图。
具体实施例方式提供了用于确定到深度相机的视野内一对象(或多个对象)的一个或多个距离的技术。技术可包括光栅扫描在相机的视野内的对象上的光。在相机处接收从该对象反射的光的图像。基于所反射的图像确定到该对象的一个或多个距离。在一实施例中,生成视野内一个或多个对象的3D映射。在一实施例中,确定到对象的(诸)距离包括确定从相机内的光源发送光到接收来自对象的所反射的图像之间的飞行时间。可为光栅扫描内不同的点确定单独的飞行时间信息。因此,可确定对象的3D映射。在一实施例中,光栅扫描光包括光栅扫描图案到视野内。确定到对象的(诸)距离可包括确定在相机处接收到的图案的所反射的图像与参考图案之间的空间差。扫描到视野内的图案可以是已知的图案,诸如网格或任何其他已知的图案。参考图案可以是对离开深度相机已知距离处的参考图像上的图案进行光栅扫描所得出的图像。收集深度相机的视野内的一个或多个对象的深度信息的一种可能使用是向运动捕捉系统输入深度信息。然而,可以理解的是深度信息并不限于运动捕捉系统。出于说明的目的,将描述一示例运动捕捉系统10。图1描绘了其中个人可以与应用交互的运动捕捉系统10的示例实施例。运动捕捉系统10包括显示器196、深度相机系统20、以及计算环境或装置12。深度相机系统20可包括图像相机组件22,其具有深度检测光发送器24、深度检测光接收器25和红-绿-蓝(RGB)相机28。在一实施例中,深度检测光发送器24发射准直光束(collimated light beam)。准直光的示例包括但不限于,红外线(IR)激光。在一实施例中,深度检测光组件是LED。通过深度检测光接收器25检测从视野内对象8反射离开的光。也称为个人或玩家的用户站在深度相机系统20的视野6中。线2和4表示视野 6的边界。在该示例中,深度相机系统20和计算环境12提供了其中显示器196上的化身 197跟踪对象8 (例如,用户)的移动的应用。例如,当用户举起手臂时,化身197可举起手臂。化身197在3-D虚拟世界中站在路198上。可定义笛卡尔世界坐标系,其包括沿着深度相机系统20的焦距(例如水平)延伸的ζ轴、垂直延伸的y轴、以及横向且水平延伸的 χ轴。注意,附图的透视被修改成简化表示,显示器196在y轴方向上垂直延伸,ζ轴垂直于 y轴和χ轴且与用户所站立的地平面平行地从深度相机系统20延伸出来。一般而言,运动捕捉系统10用于识别、分析和/或跟踪对象。计算环境12可包括计算机、游戏系统或控制台等,以及执行应用的硬件组件和/或软件组件。深度相机系统20可以包括相机,相机用于在视觉上监视诸如用户等的一个或多个对象8,从而可以捕捉、分析并跟踪用户所执行的姿势和/或移动,来执行应用中的一个或多个控制或动作,如使化身或屏幕上人物活动起来或选择用户界面(UI)中的一菜单项。运动捕捉系统10可以连接到诸如显示器196等可向用户提供视觉和音频输出的视听设备,如电视机、监视器、高清电视机(HDTV)等,或甚至是墙或其他表面上的投影。音频输出也可经由单独的设备来提供。为驱动显示器,计算环境12可包括提供与应用相关联的视听信号的诸如图形卡等视频适配器,和/或诸如声卡等音频适配器。显示器196可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等连接到计算环境12。可使用深度相机系统20来跟踪对象8,使得用户的姿势和/或移动被捕捉并用于使化身或屏幕上人物活动起来,和/或被解释为对计算机环境12所执行的应用的输入控制。对象8的某些移动可被解释为可以和除控制化身之外的动作相对应的控制。例如,在一实施例中,玩家可使用移动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。玩家可使用移动来从主用户界面选择游戏或其他应用,或以其他方式导航选项菜单。由此,对象8的全范围运动可以用任何合适的方式来获得、使用并分析以与应用进行交互。个人可在与应用交互时抓握诸如支柱等物体。在此类实施例中,个人和物体的移动可用于控制应用。例如,可以跟踪并利用手持球拍的玩家的运动来控制模拟网球游戏的应用中的屏幕上球拍。在另一示例实施例中,可以跟踪并利用手持诸如塑料剑等玩具武器的玩家的运动以便在提供海盗船的应用的虚拟世界中控制对应的武器。运动捕捉系统10还可用于将目标移动解释为游戏和出于娱乐和休闲目的的其他应用范围之外的操作系统和/或应用控制命令。例如,操作系统和/或应用的实际上任何可控方面可由对象8的移动来控制。图2描绘了图Ia的运动捕捉系统10的示例框图。深度相机系统20可被配置以捕捉具有深度信息的视频,深度信息包括可包括深度值的深度图像。在此描述了通过使用光栅扫描照明对象来确定深度值的技术。深度相机系统20可将深度信息组织为“Z层”,或可与从深度相机系统20沿其视线延伸的Z轴垂直的层。深度相机系统20可包括图像相机组件22,如捕捉物理空间中的场景的深度图像的深度相机。图像相机组件22可包括深度检测光发送器24和深度检测光接收器25来捕获深度信息。例如,深度相机系统20可使用深度检测光发送器24将光发射到物理空间上并使用深度检测光接收器25来检测从物理空间内一个或多个对象的表面所反射的光。在某些实施例中,深度检测光发送器24发送脉冲式红外光,从而可以测量出射光脉冲与相应的入射光脉冲之间的时间并将其用于确定从深度相机系统20到物理空间中的对象上的特定位置的物理距离。可将传出光波的相位与传入光波的相位进行比较来确定相移。注意的是,被发送的光可被调制以帮助确定相位差。然后可以使用被调制的光的相移来确定从深度相机系统20到目标或对象上的特定位置的物理距离。在另一示例实施例中,深度相机系统20可使用结构化光来捕捉深度信息。在该分析中,图案化的光(例如,被显示为诸如网格图案或条纹图案等已知图案)可经由例如深度检测光发送器24被投影到场景上。在深度检测光接收器25处接收到的图案可被分析以确定深度信息。在一实施例中,图案被空间地分析。在一实施例中,图案针对外观变形被分析。 即,相比于参考图案,接收到的图案基于对象离开相机的距离看起来可能是变形的。可使用红-绿-蓝(RGB)相机28来捕捉图像。深度信息可与来自RGB相机28的图像合并以创建深度图像。深度相机系统20还可包括话筒30,话筒30包括例如接收声波并将其转换成电信号的变换器或传感器。另外,话筒30可用于接收诸如声音等音频信号,所述音频信号由个人提供来控制由计算环境12运行的应用。音频信号可包括诸如说出的单词、口哨、叫声和其他话语等个人的口声,以及诸如拍手或跺脚等非口声。深度相机系统20可包括与图像相机组件22进行通信的处理器32。处理器32可包括标准化处理器、专用处理器、微处理器等等,可执行包括例如用于确定深度图像的指令 (将在以下详细描述)在内的指令。深度相机系统20还可包括存储器组件34,存储器组件34可存储可由处理器32执行的指令、以及存储RGB相机所捕捉的图像或图像帧、或任何其他合适的信息、图像等等。 根据一示例实施例,存储器组件34可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘、或任何其他合适的有形计算机可读存储组件。存储器组件34可以是经由总线21与图像捕捉组件22和处理器32进行通信的单独组件。根据另一实施方式,存储器组件34可被集成到处理器32和/或图像捕捉组件22中。深度相机系统20可以经由通信链路36与计算环境12进行通信。通信链路36可以是有线和/或无线连接。根据一实施例,计算环境12可经由通信链路36向深度相机系统20提供时钟信号,该信号指示何时从位于深度相机系统20的视野中的物理空间捕捉图像数据。此外,深度相机系统20可通过通信链路36向计算环境12提供深度信息和由RGB 相机28捕捉的图像。计算环境12然后可使用深度信息和所捕捉的图像来控制应用。例如,如图2所示,计算环境12可包括诸如姿势过滤器集合等姿势库190,每一姿势过滤器具有关于可被执行的姿势(在用户移动时)的信息。例如,可为各种手姿势提供姿势过滤器, 如手的挥击或投掷。通过将检测到的运动与每一过滤器进行比较,可标识个人执行的指定姿势或移动。也可确定执行移动的范围。计算环境还可包括用于执行存储在存储器194中的指令以向显示设备196提供音频_视频输出信号并实现如此处所描述的其他功能的处理器192。
图3描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。计算环境能被用于基于深度信息确定到深度相机的视野内的对象的距离。上面描述的诸如计算环境12等计算环境可以包括诸如游戏控制台等多媒体控制台100。多媒体控制台100包括具有1级高速缓存102、2级高速缓存104和闪存R0M(只读存储器)106的中央处理单元 (CPU) 101。1级高速缓存102和2级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101可被提供成具有一个以上的核,以及由此的附加的1级和2级高速缓存102和104。诸如闪存ROM等存储器106可存储在多媒体控制台 100通电时在引导过程的初始阶段期间加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速和高分辨率图形处理的视频处理流水线。数据经由总线从图形处理单元108输送到视频编码器/视频编解码器114。视频处理流水线将数据输出到A/V (音频/视频)端口 140以传输到电视机或其它显示器。存储器控制器110连接到GPU 108以便于处理器访问各种类型的存储器112,诸如RAM(随机存取存储器)。多媒体控制台100包括可在模块118上实现的I/O控制器120、系统管理控制器 122、音频处理单元123、网络接口 124、第一 USB主控制器126、第二 USB控制器128和前面板 I/O子部件130。USB控制器126和128用作外围控制器142 (1)-142 (2)、无线适配器148、 和外置存储器设备146(例如闪存、外置CD/DVD ROM驱动器、可移动介质等)的主机。网络接口(NW IF) 124和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器143来存储在引导过程期间加载的应用数据。提供媒体驱动器 144且其可包括DVD/CD驱动器、硬盘驱动器、或其它可移动媒体驱动器。媒体驱动器144对于多媒体控制台100可以是内置的或外置的。应用数据可经由媒体驱动器144访问,以由多媒体控制台100执行、回放等。媒体驱动器144经由诸如串行ATA总线或其它高速连接等总线连接到I/O控制器120。系统管理控制器122提供涉及确保多媒体控制台100的可用性的各种服务功能。 音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应的音频处理流水线。音频数据经由通信链路在音频处理单元123与音频编解码器132之间传输。音频处理流水线将数据输出到A/V端口 140以供外置音频播放器或具有音频能力的设备再现。前面板I/O子部件130支持暴露在多媒体控制台100的外表面上的电源按钮150 和弹出按钮152以及任何LED(发光二极管)或其它指示器的功能。系统供电模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路。CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其它组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和/ 或高速缓存102、104中并在CPU 101上执行。应用可呈现在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中包含的应用和/或其它媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。多媒体控制台100可通过将该系统连接到电视机或其它显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100允许一个或多个用户与该系统交互、看电影、 或听音乐。然而,随着通过网络接口 124或无线适配器148可用的宽带连接的集成,多媒体控制台100还可作为较大网络社区中的参与者来操作。当多媒体控制台100通电时,保留指定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可以包括存储器(例如,16MB)、CPU和GPU周期(例如,5%)、网络带宽(例如,8kbs)等的保留。因为这些资源是在系统引导时保留的,所以所保留的资源在应用看来是不存在的。具体地,存储器保留可以是足够大以包含启动内核、并发系统应用和驱动程序。 CPU保留可为恒定,使得若所保留的CPU使用不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来显示由系统应用生成的轻量消息(例如,弹出窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图可与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下, 优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率或引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在一组在上述所保留的系统资源中执行的系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用可被调度为在预定时间并以预定时间间隔在CPU 101上运行,以为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存分裂最小化。当并发系统应用需要音频时,则由于时间敏感性而异步调度音频处理给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。输入设备(例如,控制器142(1)和142(2))由游戏应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器可控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维持有关焦点切换的状态信息。控制台100可从包括相机28的图2的深度相机系统20接收附加输入。图4描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。计算环境能被用于基于深度信息确定到深度相机的视野内的对象的距离。计算环境220包括计算机241,计算机241通常包括各种有形计算机可读存储介质。这可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器 222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM) 260。基本输入/输出系统224 (BIOS)包括如在启动时帮助在计算机 241内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM 260通常包含处理单元259可以立即访问和/或目前正在操作的数据和/或程序模块。图形接口 231与GPU 229进行通信。作为示例而非局限,图4描绘了操作系统225、应用程序226、其它程序模块 227和程序数据228。
9
计算机241还可包括其他可移动/不可移动、易失性/非易失性计算机存储介质, 如从不可移动、非易失性磁介质读取或对其写入的硬盘驱动器238,从可移动、非易失性磁盘254读取或对其写入的磁盘驱动器239,以及从诸如CDROM或其他光介质等可移动、非易失性光盘253读取或对其写入的光盘驱动器240。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性有形计算机可读存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动238通常由诸如接口 234 等不可移动存储器接口连接至系统总线221,并且磁盘驱动239和光盘驱动240通常由诸如接口 235等可移动存储器接口连接至系统总线221。以上讨论并在图4中描绘的驱动器及其相关联的计算机存储介质为计算机241提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,硬盘驱动器238被描绘为存储操作系统258、应用程序257、其它程序模块256和程序数据255。注意,这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据228相同,也可以与它们不同。操作系统258、应用程序257、其他程序模块256和程序数据255在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘251和定点设备252 (通常被称为鼠标、跟踪球或触摸垫),向计算机241输入命令和信息。其他输入设备(未示出)可以包括麦克风、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常由耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB),来连接。包括相机28的图2的深度相机系统20可为控制台100定义附加输入设备。监视器242或其他类型的显示器也经由接口,诸如视频接口 232连接至系统总线221。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器244和打印机243,它们可以通过输出外围接口 233连接。计算机241可使用至一个或多个远程计算机,诸如远程计算机246的逻辑连接在网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件, 但是在图4中仅示出了存储器存储设备247。逻辑连接包括局域网(LAN) 245和广域网 (WAN) 249,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机241通过网络接口或适配器237连接至LAN 245。当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他装置。调制解调器250可以是内置或外置的,它可以经由用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,相对于计算机 241所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制, 图4示出了远程应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。图5A示出了深度相机系统20的一实施例的框图。在一实施例中,图5A的深度相机系统20基于光栅扫描的光的飞行时间确定距离。深度相机系统20可在图1的示例运动捕捉系统10中使用;然而,其也可以在其他系统中使用。深度相机系统20具有光源524、 束分裂器506、旋转扫描元件508、检测器504a、处理逻辑532以及存储534。光源524、束分裂器506以及扫描元件508 —起形成深度检测光发送器24。检测器504a是图2的设备的深度检测光接收器25的一实施例。在一实施例中,光源524发射准直光束(collimated light beam)。除了光束,光源524可发射红外线激光。在一实施例中,光源524发射光脉冲的序列。该序列可以协助确定飞行时间的方式被编码或调制。例如,可基于在所发送的被调制的光和接收到的光之间的相位差来确定飞行时间。在一实施例中,光源524是点源(point source) 0通过束分裂器506将光发送到扫描元件508上。注意的是,为了帮助减少组件的数量,束分裂器506 是可选的组件,在一实施例中,扫描元件508具有反射光的一个或多个表面509。在一实施例中, 扫描元件508在处理逻辑532的控制下旋转。在一实施例中,扫描元件508旋转使得来自光源524的光以χ-方向和y-方向在视野上扫描。注意的是,扫描元件508可包括多于一个的旋转元件。例如,一个元件可如图5A中描绘的旋转以χ-方向扫描,而第二元件可旋转进出图5A的页面。对于本领域的普通技术人员而言,用于2维光栅扫描的技术是公知的。 视野的χ-组件由线2、4描绘。注意的是,也存在视野的y_组件(没有在图5A中描绘)。在扫描元件508上描绘了圆形箭头以显示示例旋转方向。相反,方向可以是顺时针方向的。实线箭头描绘了和扫描元件508的所描绘的位置相对应的光路径。虚线箭头对应于这样的光路径,所述光路径和当扫描元件508旋转到其他角度时的位置相对应。因此, 虚线箭头及时对应不同的点。注意的是,虽然扫描元件508被描绘为具有多个表面的旋转元件,但是可使用其他类型的扫描元件。在一实施例中,扫描元件508能够以χ-方向扫描多条线,每条线具有不同的y_位置。在以X-方向扫描一条线后,扫描元件508以按新的y_位置扫描第二条线的方式被控制。例如,扫描元件508可按转进并转出图5B的页面的方向被旋转。注意的是,线不是必须连续的。能使用多个不同的扫描路径。以下描述进一步的详细内容。从视野内的一个或多个对象8反射离开的光由检测器504a捕捉。在该示例中,光从对象8反射离开并返回扫描元件508 (如双箭头描绘的)。光接着返回到束分裂器506并接着到检测器504a。如先前提到的,束分裂器506不是必需的。检测器504a可以是例如, CMOS检测器、光电二极管检测器或电荷耦合器件(CCD)。在一实施例中,检测器504a收集的数据被分析为单个数据点。随着光栅扫描继续照明对象8的新的部分,检测器504a可收集额外数据。在图5A描绘的实施例中,照明的轴与图像轴对齐。这由扫描元件508和对象之间的双头箭头描绘。照明的轴由靠近对象8的箭头指示。图像轴由靠近扫描元件508的箭头指示。在其他实施例中,照明的轴不与图像轴对齐。处理逻辑532能够基于由检测器504a捕捉的图像确定到对象8的距离。在一实施例中,基于从源524发送光到在检测器504a处接收所反射的图像之间的飞行时间来确定到对象8的距离。注意的是,由于来自源524的光是跨视野被扫描的,检测器504a将收集和视野内不同的χ-和y_位置相对应的多个单独的数据点。在一实施例中,处理逻辑532是执行存储在诸如存储534等存储器内的指令的处理器。然而,处理逻辑532能全部或部分使用硬件来实现。在一实施例中,处理逻辑532包括应用专用集成电路(ASIC)。注意的是,存储534可以是诸如RAM、R0M、寄存器等等的可寻址存储器。然而,存储534也可以包括不可寻址存储。例如,存储534可包括无需由处理器可寻址的锁存。图5B描绘了使用光图案来确定深度信息的深度相机20的一实施例的框图。该实施例与图5A的不同,其中该实施例具有线性阵列检测器504b而不是检测器50如。由此,线性阵列检测器504b是图2的设备的深度检测光接收器25的一实施例。通过使用图5A的实施例,使用光栅扫描来照明视野内的对象8。然而,在这种情况下,图案被光栅扫描到视野内。可空间地分析图案来确定深度信息。例如,可基于所反射的图案内的变形 (deformation)或扭曲(warping)来确定深度信息。注意的是,基于线性阵列检测器504b 的有利位置这可以是外观变形。深度相机20可在图1的示例运动捕捉系统10中使用;然而,其也可以在其他系统中使用。深度相机20具有光源524、束分裂器506、旋转扫描元件508、线性阵列检测器 504b、处理逻辑532以及存储。光源524、束分裂器506、以及扫描元件508 —起形成深度检测光发送器对。线性阵列检测器504b是深度检测光接收器25的一实施例。在一实施例中,光源5 发射准直光束(collimated light beam)。除了光束,光源5 可发射红外线激光。在一实施例中,光源5 发射光脉冲的序列。在一实施例中,光源5M是点源(point source) 0通过束分裂器506将光发送到扫描元件508上。扫描元件508可以和图5A中的扫描元件类似,将不详细描述。在这个实施例中, 扫描元件508被用以将图案投影到视野内。因此,图案可被投影到可能在视野内的任意对象8上。在一实施例中,图案是诸如网格或条纹图案等的已知图案。注意的是,因为图案是跨视野被光栅扫描的,所以在任一时刻只有图案的一个点被投影。由于所有能量被集中在一个小点上,因此这允许非常高的S/N。换言之,在任一时刻只有图案的一部分被投影。从视野内的一个或多个对象8反射离开的光由线性阵列检测器504b捕捉。在该示例中,光从对象8反射离开并返回扫描元件508(如双箭头描绘的)。光接着返回到束分裂器506并接着到检测器504b。注意的是,线性阵列检测器504b可收集多个数据点。例如, 线性阵列检测器504b可收集扫描线的多个点。在扫描元件508被移动以在不同的y_位置扫描新线后,线性阵列检测器504b可被用以收集一组新的数据点。线性阵列检测器504b 可以是例如,CMOS检测器、光电二极管检测器或CCD。在一实施例中,线性阵列检测器504b 能够检测线性区域上的光。因此,线性阵列检测器504b收集由投影到对象上的图像引起的所反射的图像。对象8离开相机的距离可对接收到的图案有影响。例如,一人可考虑将图案投影到离开相机已知距离处的参考对象8上。如果相同的图案被投影到离开相机不同距离处的对象8上,图案可看起来是“扭曲的”或“变形的”。在一实施例中,利用视差影响使得图案从线性阵列检测器504b的有利位置看来是变形的。可分析变形的本质和量来确定到对象的距离。在一实施例中,可做出对象8的ζ-方向映射。即,对每个χ-和y-位置扫描点,可确定ζ-位置。 由此,处理逻辑532能够基于由线性阵列检测器504b捕捉的图像确定到对象8的距离。在图5B描绘的实施例中,照明的轴与图像轴对齐。这由扫描元件508和对象之间的双头箭头描绘。照明的轴由靠近对象的箭头指示。图像轴由靠近扫描元件508的箭头指示。在其他使用线性阵列检测器504b的实施例中,照明的轴不与图像轴对齐。图6是确定到深度相机的视野内一个或多个对象8的距离的过程600的一实施例的流程图。过程600可在图5A或5B的深度相机中使用。然而,过程600不限于那些实施例。在步骤602,从深度相机20内的光源5M发送光。例如,图5A-5B的任一深度相机 20内的光源5M发送光。光可以是准直的。在一实施例中,光是红外线。在一实施例中,光是激光束。在一实施例中,光源5M发射光的脉冲。在一实施例中,脉冲被结构化使得已知的图案能在相机的视野上被光栅扫描。在步骤604,在相机的视野内的对象8上,光被光栅扫描。在一实施例中,来自光源 5M的光被反射离开扫描元件508,使得已知的图案在相机的视野内被光栅扫描。图案能够是任意已知图案。在某些实施例中,图案是不规则的使得图案的不同部分具有唯一的子图案。换言之,图案的不同部分是彼此唯一的。注意的是,通过光栅扫描图案,整个图案不被同时发送。在步骤606,在光检测器504处接收光的所反射的图像。光检测器504可以是点检测器50 或线性阵列检测器504b。注意的是,在一段时间内接收到光。例如,随着扫描元件508光栅扫描视野上的光,检测器504随着时间检测光的连续的部分。在步骤608,基于所反射的图像确定到对象8的一个或多个距离。在一实施例中, 基于飞行时间信息确定该一个或多个距离。在一实施例中,基于接收到的一个图像或多个图像的空间分析来确定该一个或多个距离。在一实施例中,基于在接收到的图案内的该图案的外观变形确定该一个或多个距离。图7是将已知图案扫描到深度相机的视野内的过程700的一实施例的流程图。已知图案实质上能够是任意图案,使得接收到的图像能针对图案内的外观变形被分析以确定距离。过程700是步骤602-604的一实施例。注意的是,在操作中,过程700可被反复重复以再一次扫描图案(或扫描不同的图案)。扫描已知的图案可在其中基于图案的所反射的图像的外观变形来确定深度的实施例中使用。然而,注意的是,基于飞行时间确定深度的实施例也扫描已知图案。在步骤702,确定用于扫描图案的线的数据。该数据可包括光源5M的脉冲序列以及如何控制扫描元件508来扫描线。在一实施例中,存储534存储该数据使得通过访问合适的存储器地址来执行步骤702。在步骤704,从光源5 发送用于图案的一条线的光,与此同时,控制扫描元件508 来将该线扫描进视野内。注意的是,扫描线不需要照明一连续的路径。然而,扫描线可具有通过未被照明的部分来分隔的被照明的部分。光源5M可以是脉冲的以生成这样的扫描线。然而,扫描线可以是连续的路径。在一实施例中,扫描线在视野内大致水平。注意的是, 扫描线可以稍微有些斜使得y-位置跨扫描线稍微改变。然而,注意的是,扫描线可以以任意方向。例如,扫描线可以是对角的使得其从视野内的左上到右下。如果希望的,扫描线可以较多或较少地垂直。并且,扫描线不需要是直线。由此,在某些实施例中,扫描线是弯曲的。步骤706是关于是否要扫描新线的确定。在一实施例中,扫描线是预定的长度。例如,扫描线可对应于扫描元件508的预定的旋转角度。注意的是,这可导致预定的视野。并且,扫描线可对应于预定数量个光脉冲。然而,旋转角度或光脉冲的数量都不需要被预定。 在一实施例中,被扫描的线的长度是动态可适的。因此,通过改变正在其上执行光栅扫描的
13范围,视野是动态可适的。例如,可存在能被扩展或缩小的默认视野。作为一特定的示例, 如果确定感兴趣的对象8已经被扫描过了,那么视野能被动态地缩小。作为另一特定的示例,如果确定感兴趣的对象8还没有被完整地扫描过,那么视野能被动态地扩展。例如,如果感兴趣的对象8是用户的手,视野能被更改以更加有效地捕捉关于该手的深度信息。一旦确定要扫描新线,就确定用于下一线的数据(步骤702)。再一次,可访问存储 534来确定下一组数据。通过扫描更多的线来继续过程700,直到在步骤708中确定所有的线已经被扫描。扫描线的数量可以是预定的或动态可调节的。注意的是,动态调节线的数量允许视野被动态地调节。确定是否要扫描更多的线的因素可包括感兴趣的对象8是否已经被完整地扫描。注意的是,过程700的一个变形是扫描线而不扫描任何特定的图案。例如,基于飞行时间确定深度的实施例不需要扫描任何特定的图案。图8A是确定到相机的视野内的对象8的一个或多个距离的过程800的一实施例的流程图。过程800是过程600的步骤608的一实施例。在该实施例中,基于飞行时间信息做出确定。在某些实施例中,图5A的深度相机可使用过程800。然而,不排除在此描述的其他深度相机使用过程800。在步骤802,确定从光源5 发送光直到由检测器504接收到光之间的飞行时间。可为光栅扫描的一个部分执行该计算。例如,可为光的一个脉冲做出计算。在一实施例中,比较是被发送的光和接收到的图像之间的相位差的比较。例如,光源可以是以某个频率调制的激光束。在被调制的发送的激光束和接收到的图像之间的相位差能被用以确定到对象8的距离。具体地,可基于相位差的量以及调制频率来确定距离。在一实施例中,比较是在发送光和接收图像之间的时间差的直接测量。例如,光源 5M发送出光的短脉冲。当检测器504接收光脉冲时,电路计算发送和接收之间非常精确的时间差。能基于时间差和光频率来确定距离。在步骤804,与视野的哪个部分被研究的指示符相关联地存储距离测量。如步骤 806中确定的,通过研究光栅扫描的其他部分,过程800继续处理更多的数据直到扫描的所有部分被分析。在可选的步骤808,基于在步骤804内存储的数据生成对象8的3D映射。图8B是确定到相机的视野内的对象8的一个或多个距离的过程850的一实施例的流程图。在某些实施例中,图5B的深度相机可使用过程800。然而,不排除在此描述的其他深度相机20使用过程800。过程850是过程600的步骤608的一实施例。在该实施例中,基于关于接收到的图案的空间信息做出确定。例如,可使用图案看上去变形的量来确定距离。在步骤852,分析在线性阵列检测器504b处接收到的光。该数据可对应于所有扫描线或扫描线的任一子集。注意的是,对象8的有限大小表示只可返回图案的一部分。然而,能以一种方式构造图案使得只分析图案的一小部分就能确定到对象8的距离。在一实施例中,视差影响被用以确定深度信息。例如,检测器504可以偏离光发送器的轴使得视差影响导致从检测器504的有利位置看起来的图案的外观变形。然而,基于图案的变形确定深度信息并不限于视差影响。在一实施例中,通过将图案的接收到的图像与一个或多个参考图像进行比较来确定深度信息。每个参考图像可对应于离开相机的不同距离。生成参考图像的进一步详细内容结合图9描述。如提到的,接收到的图像可看起来以对应于离开相机的距离的量变形。 每个参考图像可包括针对一给定距离的变形量和变形性质。通过比较接收到的图像与参考图像,可确定深度。注意的是,不需要将整个接收到的图像与给定的参考图像进行比较。例如,接收到的图像能被分成不同的片断,各个片断与参考图像相应的部分进行比较。在步骤854,存储到对象8的一个或多个距离。注意的是,基于对于图案的不同部分的变形量,可确定不同的深度信息。因此,步骤邪4可存储对象8的不同部分的不同深度信息。在可选的步骤808,基于在步骤854内存储的数据生成对象8的3D映射。图9是生成参考图像的过程900的一实施例的流程图。生成参考图像的深度照相机20可具有线性阵列检测器504b以执行过程900 ;然而,这不是必需的。参考图像可在过程850的步骤852内使用。在步骤902,将图案光栅扫描到离开深度相机已知距离处的对象 8上。在一实施例中,图案是结构化的图案,诸如网格或其他已知图案。在步骤904,在线性阵列检测器504b处检测从参考对象8反射的图像。注意的是, 检测参考图像可包括检测多条不同的扫描线。例如,如果检测诸如网格的已知图案,那么可收集对应于多条不同的扫描线的数据。在步骤906,存储参考图像。过程900可为离开深度相机不同的已知距离处的参考对象8重复。注意的是,可以不需要根据经验来确定参考图像。数学地确定在离开相机的各个距离处的假想对象8的参考图像的模型是可能的。例如,当与诸如网格等的已知图案一起工作时,数学地确定参考图像是可能的。在此所述技术的上述详细描述是为了说明和描述而提供的。并非旨在穷举本技术或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择上述实施例来最好地解释本技术的原理及其实践应用,从而使本领域其他人能够在各种实施例中并用各种适于所构想的特定用途的修改一起最好地利用本技术。本技术的范围旨在由所附权利要求书来定义。
权利要求
1.一种机器实现的方法,包括 从相机内的光源发送光(602);在所述相机的视野内的对象上光栅扫描所述光(604);在检测器处接收来自所述对象的所述光的一个或多个所反射的图像(606);以及基于所述一个或多个所反射的图像确定到所述对象的一个或多个距离(608)。
2.如权利要求1所述的机器实现的方法,其中基于所述一个或多个所反射的图像确定到所述对象的一个或多个距离包括确定从所述光源发送所述光到在所述检测器处接收到所述一个或多个所反射的图像之间的一个或多个飞行时间。
3.如权利要求2所述的机器实现的方法,其中从光源发送光包括发送一脉冲序列,接收所述光的一个或多个所反射的图像包括接收针对各个脉冲的单独的所反射的图像,所述一个或多个飞行时间包括确定发送和接收各个脉冲之间的飞行时间。
4.如权利要求1至3中的任一项所述的机器实现的方法,其中在所述视野内的对象上光栅扫描所述光包括光栅扫描所述视野内的图案,接收一个或多个所反射的图像包括接收所述图案的至少一部分的图像。
5.如权利要求4所述的机器实现的方法,其中确定到所述对象的一个或多个距离包括分析在所述图案的所述至少一部分内的外观变形。
6.如权利要求5所述的机器实现的方法,其中分析在接收到的图案的所述至少一部分内的外观变形包括将所述图案的所述至少一部分与一个或多个参考图像进行比较,一个或多个参考图像中的各个参考图像是通过在离开所述相机已知距离处的参考对象上光栅扫描所述图案在检测器处接收到的图像。
7.如权利要求1至6中的任一项所述的机器实现的方法,其特征在于,还包括 基于一个或多个确定的到所述对象的距离生成所述对象的深度映射。
8.如权利要求1至7中的任一项所述的机器实现的方法,其特征在于,还包括 通过改变正在其上执行光栅扫描的范围,动态地修改所述视野。
9.一种深度相机,包括 发送光的光源(524);与所述光源光学通信的扫描元件(508),所述扫描元件通过以χ-方向和y_方向扫描来在视野上扫描所述光;接收来自所述视野内对象的被扫描的光的所反射的图像的光检测器(504);以及基于所反射的图像确定到所述视野内所述对象的一个距离或多个距离的逻辑(532)。
10.如权利要求9所述的深度相机,其中所述逻辑通过确定从发送所述光到在所述光检测器处接收到所反射的图像之间的飞行时间来确定到所述视野内一个或多个对象的一个距离或多个距离。
11.如权利要求10所述的深度相机,其中所述光源发送一脉冲序列,所述光检测器接收针对各个脉冲的单独的所反射的图像,所述逻辑确定在发送和接收各个脉冲之间的飞行时间。
12.如权利要求9至11中的任一项所述的深度相机,其中所述扫描元件扫描来自所述光源的所述光的图案,所述光检测器是线性阵列检测器,距离确定逻辑通过确定所述图案的接收到的图像与参考图像之间的空间差来确定到所述视野内的对象的一个或多个距离,所述参考图像是通过在离开所述相机已知距离处的参考对象上光栅扫描所述图案来产生的图像。
13.如权利要求9至12中的任一项所述的深度相机,其中距离确定逻辑确定所述视野内对象的深度映射。
14.如权利要求9至13中的任一项所述的深度相机,其特征在于,进一步包括通过改变 χ-方向上的扫描或y_方向上的扫描中的一个或多个来修改所述视野的逻辑。
全文摘要
提供了深度检测的光栅扫描。提供了用于确定到深度相机的视野内的对象的距离的技术。技术可包括在对象上光栅扫描光并检测从对象反射的光。基于所反射的图像确定到该对象的一个或多个距离。可生成该对象的3D映射。在一实施例中,可基于从相机内的光源发送光到接收从对象反射的图像之间的飞行时间来确定到对象的(诸)距离。光栅扫描光包括光栅扫描图案到视野中。确定到对象的(诸)距离可包括确定在相机处接收到的图案的所反射的图像与参考图案之间的空间差。
文档编号G06T7/00GK102222329SQ20111007205
公开日2011年10月19日 申请日期2011年3月16日 优先权日2010年3月17日
发明者D·伊, J·卢蒂安 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1