对LIDAR信号进行编码以避免干扰的制作方法

文档序号:18092106发布日期:2019-07-06 10:49阅读:219来源:国知局
对LIDAR信号进行编码以避免干扰的制作方法

本公开一般涉及电子学领域。更具体地,实施例涉及对光检测和测距(lidar)信号进行编码以避免干扰。



背景技术:

自主驾驶承诺这样的世界:交通工具能以极高的安全性和最少的人类干预来将其乘客从a点运输到b点。

为了实现这些目标,可使用许多传感器。lidar是这些传感器之中最重要的传感器中的一个,部分地因为lidar可确保自主驾驶交通工具的安全性。即,lidar可通过利用脉冲激光形式的光来准确地测量范围。

相应地,对lidar应用的任何改进可显著地有益于自主驾驶的进步。

附图说明

参考所附附图提供详细描述。在附图中,附图标记最左边的数字标识该附图标记首次出现在其中的附图。相同的附图标记在不同附图中的使用指示类似或相同的项。

图1例示出根据实施例的自主驾驶交通工具的图。

图2例示出根据实施例的lidar系统的框图。

图3例示出根据实施例的利用跳频来对lidar信号进行编码。

图4例示出根据实施例的利用脉冲宽度编码来对lidar信号进行编码。

图5例示出根据实施例的利用频率和脉冲宽度编码来对lidar信号进行编码。

图6例示出根据实施例的用于对lidar信号进行编码的方法的流程图。

图7例示出根据实施例的用于对经反射lidar信号进行解码的方法的流程图。

图8和9例示出计算系统的实施例的框图,这些计算系统可用于本文讨论的各实施例。

图10和11例示出根据一些实施例的处理器的各种组件。

图12示出了根据实施例的机器学习软件栈。

图13示出了深度神经网络的训练和部署。

具体实施方式

在下面的描述中,阐述了很多特定细节以提供对各实施例的全面理解。然而,在没有这些特定细节的情况下,也可实践各实施例。在其他实例中,未详细描述公知的方法、过程、组件和电路以免使特定实施例变得模糊。此外,各实施例的各方面可使用各种手段来执行,诸如集成半导体电路“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)或硬件与软件的某种组合。出于本公开的目的,对“逻辑”的引用应当意味着硬件、软件、固件或它们的某种组合。

如上所述,自主驾驶承若更安全的世界。对自主交通工具的操作高度取决于传感器。lidar是用于确保自主驾驶的安全性的最重要的传感器中的一个。目前,大多数测试案例仅令一辆汽车在具有lidar的道路上行驶。然而,当具有lidar的多个自主交通工具彼此接近地驾驶时,很可能它们的lidar信号将彼此干扰并导致错误的反应/检测。例如在用户物体被错误地检测和/或物体的位置被不正确地检测时,这会造成严重的安全性问题。此外,黑客可潜在地进入系统并使用激光发射器来模拟道路上的物体(例如,模拟汽车或另一大型物体),从而导致自主交通工具在道路实际上空旷时停止或改变航向。

为此,一些实施例涉及对lidar信号编码以避免干扰。在实施例中,lidar信号的编码模式可被动态地(例如,自动地)改变,和/或基于选择(例如,根据某些用户偏好提供的)而变化。在一些实施例中,跳频、脉冲宽度变化、波长修改、振幅修改、相移或其任何组合可被用于增强编码。可经由如本文将进一步讨论的耦合至lidar接收器的逻辑来执行编码。

在实施例中,用于对lidar脉冲/信号进行编码和/解码的逻辑被安装或以其他方式物理地耦合至交通工具。如本文所讨论的,无论交通工具是载客交通工具还是商用交通工具,也不管用于使交通工具移动的功率源类型,“交通工具”通常是指能够自主操作的任何运输设备(很少或没有人类/驾驶员干预),诸如汽车、卡车、摩托车、飞机、直升机、船/舰等。

图1例示出根据实施例的自主驾驶交通工具的图。如所示,具有lidar104的若干交通工具102可在相同的附近/区域内驾驶,使得它们的lidar信号可能彼此干扰并潜在地导致错误地反应/检测。在此场景中,具有lidar106的交通工具也可存在于相同的附近/区域内。例如在用户物体被错误地检测和/或物体的位置被不正确地检测时,潜在的干扰会造成严重的安全性问题。此外,黑客可潜在地进入系统并使用激光发射器108来模拟道路上的物体(例如,模拟汽车或另一大型物体),从而导致自主交通工具在道路实际上空旷时停止或改变航向。

如本文讨论的,“激光”一般指空间上和时间上相关的电磁辐射。同样,虽然参考激光束来讨论一些实施例,但也可使用能够检测范围或障碍检测的其他类型的电磁束,诸如超声、红外线或其他类型的束。

如本文将进一步讨论的(例如,图2-13),可利用逻辑来对lidar信号进行编码/解码以避免(或至少部分地减小可能性)此类潜在干扰。这进而将增强自主驾驶的安全性。lidar利用脉冲激光形式的光束来测量范围。在实施例中,在lidar设备发出脉冲之前,对这些激光脉冲进行编码。在lidar接收器侧,按照编码信息来检查和匹配检测到的反射。仅匹配的经编码信号将被系统接受,例如,以确保不存在与检测到的物体相对应的错误检测。这种方法将避免来自发出潜在干扰信号/束的其他交通工具或设备的干扰。

图2例示出根据实施例的lidar系统200的框图。系统200包括用于生成和传送lidar束的lidar传送器202,以及用于接收/检测lidar束的反射的lidar接收器。在实施例中,束是脉冲激光的形式,以基于对束的反射的检测来测量物体与lidar接收器204之间的距离。

lidar传送器202包括编码逻辑206(例如,用于导致对lidar束的编码)、一个或多个光源208(例如,用于生成激光束)、(诸)任选透镜210(例如,用于调整由(诸)激光源208生成的光束)、调制器212(例如,用于调制所生成光束)、以及(诸)任选透镜214(例如,用于在向物体传输束之前调整光束)。编码逻辑206利用跳频、脉冲宽度变化、波长修改、振幅修改、相移或其任何组合来对光束进行编码,例如以增强安全性和/或避免(或至少部分地减少可能性)信号干扰。(诸)光源208可包括各种类型的激光光源,诸如脉冲二极管激光源、无冷却光纤(uncooledfiber)激光源、固态激光器、液晶激光器、染料激光器、气体激光器等。在一些实施例中,还可提供一个或多个光学滤波器(未示出)(邻近于光学透镜210和/或214,或者嵌有光学透镜210和/或214),例如以根据环境特性来对光束进行滤波(诸如,用于在明亮/晴朗的环境下确保正确操作和/或用于使光束行进地更远的(诸)滤波器)。

编码逻辑206可使光源208生成具有不同特性(例如,频率、振幅、脉冲宽度、波长、相位或其组合)的束,这些不同特性可增强对lidar信号的编码。调制器212可调制由(诸)源生成的光束以调制束的相位、频率、振幅、偏振或其组合。在实施例中,调制器212至少基于来自编码逻辑206的输入来调制光束。此外,在一些实施例中,调制器212可以是电光调制器(例如,包括铌酸锂晶体电光调制器、液晶电光调制器等)。

lidar接收器204包括(诸)光学透镜216(例如,用于调整从物体接收的光反射)、检测器逻辑218(例如,用于检测lidr束反射)、解调器222(例如,用于解调所生成的光束反射)、以及编码逻辑220(例如,用于导致对检测到的反射束的解码,并且用于基于编码信息来确定检测到的反射束是否匹配或以其他方式与经编码lidar束相对应)。解码逻辑220可与检测器218和/或解调器222通信以确定反射束是否被编码,并且如果是,则确定经编码反射束是否匹配或以其他方式与传送的经编码lidar束相对应。

如图2所示,编码逻辑206可将编码信息(例如,关于频率、振幅、脉冲宽度、波长、相位或其组合的改变的信息)传送至解码逻辑220以允许检测经编码反射束以及按照被利用的编码来确定反射的束是否与传送的束相对应。虽然编码逻辑206和解码逻辑220在图2中被示为分开的逻辑,但一个或多个实施例将这些逻辑组合至同一逻辑中。在实施例中,编码逻辑206和/或解码逻辑220包括一个或多个处理器,诸如本文参考图8-11讨论的那些。同样,编码逻辑206和/或解码逻辑220可利用机器学习/深度学习来收缩神经网络已进行更快的编码/解码操作,以及检测更复杂的编码/解码场景。

图3例示出根据实施例的利用跳频来对lidar信号进行编码。如所示,lidar束包括多个脉冲(脉冲1至脉冲m)。每个脉冲包括具有变化的频率(f1至fn)的多个较短子脉冲。而且,在图3的实施例中,经由改变lidar激光束的频率来进行编码。lidar系统可连续地发出激光脉冲,并接收由lidar系统的视线内的任何物体反射的脉冲以检测到此类物体的范围。较短脉冲的频率上的改变可动态地进行,并且接收器仅接受具有相同频率模式的反射信号来作为有效的。可从预定义模式的列表选取频率改变模式,或者(诸)用户/(诸)驾驶员可基于偏好来定义模式。

图4例示出根据实施例的利用脉冲宽度编码来对lidar信号进行编码。如所示,lidar束包括多个脉冲(脉冲1至脉冲m)。每个脉冲包括具有变化的宽度(w1至wn)的多个较短子脉冲。虽然某些附图可使用相同的索引标签(例如,“n”或“m”)来指代某些组件,但这些索引标签并不旨在限制并且不总是指代同一值。lidar系统可连续地发出激光脉冲,并接收由lidar系统的视线内的任何物体反射的脉冲以检测到此类物体的范围。较短脉冲的宽度上的改变可动态地进行,并且接收器仅接受具有相同宽度模式的反射信号来作为有效的。可从预定义模式的列表选取波长或脉冲宽度改变模式,或者(诸)用户/(诸)驾驶员可基于偏好来定义模式。

图5例示出根据实施例的利用频率和脉冲宽度编码来对lidar信号进行编码。如所示,lidar束包括多个脉冲(脉冲1至脉冲m)。每个脉冲包括具有变化的频率和宽度(fw1至fwn)的多个较短子脉冲。lidar系统可连续地发出激光脉冲,并接收由lidar系统的视线内的任何物体反射的脉冲以检测到此类物体的范围。较短脉冲的频率和宽度上的改变可动态地进行,并且接收器仅接受具有相同的频率-宽度模式的反射信号来作为有效的。可从预定义模式的列表选取脉冲频率-宽度改变模式,或者(诸)用户/(诸)驾驶员可基于偏好来定义模式。

如前所述,还可基于相位或振幅改变来执行编码,诸如参考参照图3-5讨论的频率和宽度改变来讨论。同样,可在一些实施例中使用相位、振幅、频率或宽度改变的组合,包括改变针对较短脉冲系列的一个以上的这些因子。例如,第一较短脉冲可使用频率f1和宽度w3,而同一脉冲中的第二较短脉冲可使用频率f4和w5,等等。此外,在一些实施例中,图2的光源208中的每一个可发出具有不同频率、波长、振幅和/或相位的束。

在一个实施例中,本文讨论的编码/解码设备可被耦合至iot设备或包括在iot设备内。此外,“iot”设备一般指指包括电子处理电路系统(诸如,一个或多个处理器/核、pla(可编程逻辑阵列)、现场可编程门阵列(fpga)、soc、asic(专用集成电路)等等)、存储器(例如,用于存储软件或固件)、一个或多个传感器(或以其他方式耦合至一个或多个传感器,诸如相机、运动检测器等)、以及用于允许iot设备收集和/或交换数据的网络连接的设备。iot设备可能比传统计算设备廉价,以允许其在远程位置处的增殖。iot设备还可通过使用现有基础结构(诸如,互联网;第三代(3g)、第四代(4g)、或者第五代(5g)蜂窝/无线网络等)来降低成本。更一般地,iot设备可包括一个或多个组件,诸如参考图1及图1以下的讨论的那些。

而且,本文讨论的信息(诸如,编码信息、(诸)模式/用户偏好等)可被存储在本文讨论的任何类型的存储器(包括易失性或非易失性存储器)中。同样,此类信息可被存储在一个或多个位置中,诸如(诸)交通工具、云中等。

图6例示出根据实施例的用于对lidar信号进行编码的方法600的流程图。方法600的一个或多个操作可由逻辑(例如,逻辑206)和/或本文参考图1至13讨论的一个或多个组件(诸如,处理器、gpu等)来执行。

参看图1-6,操作602确定lidar脉冲是否应该被编码(例如,基于用户/驾驶员/所有者输入)。操作604确定要应用何种类型或诸类型的编码(例如,从前述选项——频率、振幅、宽度、相位或其组合——选择)。根据操作604的所选择编码的类型,操作606-608使(诸)光源208和/或调制器210修改束。操作612将编码信息传达至lidar接收器204。

图7例示出根据实施例的用于对经反射lidar信号进行解码的方法700的流程图。方法700的一个或多个操作可由逻辑(例如,逻辑218-222)和/或本文参考图1至13讨论的一个或多个组件(诸如,处理器、gpu等)来执行。

参看图1-7,操作702(例如,由逻辑218)检测由物体反射的lidar脉冲。操作704(例如,由逻辑218和/或220)确定检测到的脉冲是否被编码。取决于操作704的确定,操作706和708根据所传达的编码信息来解码经反射脉冲或者只处理反射而不考虑编码类型。

进一步地,可在包括一个或多个处理器(例如,具有一个或多个处理器核)的计算设备中应用一些实施例,这些计算设备诸如参考图1至13讨论的那些,包括例如小形状因子或移动计算设备,例如iot设备、m2m设备、智能电话、平板、umpc(超级移动个人计算机)、膝上型计算机、超极本tm计算设备、可穿戴设备(诸如,智能手表、智能眼镜等)、2合1系统等等。同样,可在包括制冷风扇的计算设备以及无风扇计算设备中应用一些实施例。

图8例示出根据实施例的soc封装的框图。如图8所示,soc802包括一个或多个中央处理单元(cpu)核820、一个或多个图形处理器单元(gpu)核830、输入/输出(i/o)接口840以及存储器控制器842。可将soc封装802的各组件耦合至诸如本文中参考其他附图所讨论的互连或总线。另外,soc封装802可包括更多或更少的组件,诸如本文中参考其他附图所讨论的那些组件。进一步地,soc封装820的每个组件可包括一个或多个其他组件,例如,如参考本文中的其他附图所讨论的组件。在一个实施例中,在一个或多个集成电路(ic)管芯上提供soc封装802(以及其组件),例如,该一个或多个集成电路管芯被封装到单个半导体设备中。

如图8中例示的,soc封装802经由存储器控制器842耦合至存储器860。在实施例中,存储器860(或其部分)可以被集成在soc封装802上。

i/o接口840可例如经由诸如本文中参考其他附图所讨论的互连和/或总线耦合至一个或多个i/o设备870。(诸)i/o设备870可包括键盘、鼠标、触摸板、显示器、图像/视频捕捉设备(诸如相机或摄像机/视频录像机)、触摸屏、扬声器等中的一个或多个。

图9是根据实施例的处理系统900的框图。在各实施例中,系统900包括一个或多个处理器902以及一个或多个图形处理器908,并且可以是单处理器台式机系统、多处理器工作站系统或具有大量处理器902或处理器核907的服务器系统。在一个实施例中,系统900是被纳入到用于在移动设备、手持式设备或嵌入式设备中使用的芯片上系统(soc或soc)集成电路内的处理平台。

系统900的实施例可包括或可并入以下各项内:基于服务器的游戏平台、游戏控制台(包括游戏和媒体控制台、移动游戏控制台、手持式游戏控制台或在线游戏控制台)。在一些实施例中,系统900是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统900也可包括可穿戴设备,可与可穿戴设备耦合或可集成在可穿戴设备内,所述可穿戴设备诸如,智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中,数据处理系统900是电视机或机顶盒设备,所述电视机或机顶盒设备具有一个或多个处理器902以及由一个或多个图形处理器908生成的图形界面。

在一些实施例中,该一个或多个处理器902各自都包括一个或多个处理器核907,所述一个或多个处理器核907用于处理指令,所述指令当被执行时,执行用于系统和用户软件的操作。在一些实施例中,一个或多个处理器核907中的每一个都配置成处理特定的指令集909。在一些实施例中,指令集909可促进复杂指令集计算(cisc)、精简指令集计算(risc)或经由超长指令字(vliw)的计算。多个处理器核907各自都可处理不同的指令集909,不同的指令集909可包括用于促进对其他指令集的仿真的指令。处理器核907也可包括其他处理设备,诸如,数字信号处理器(dsp)。

在一些实施例中,处理器902包括高速缓存存储器904。取决于架构,处理器902可具有单个内部高速缓存或多级内部高速缓存。在一些实施例中,高速缓存存储器在处理器902的各种组件之间共享。在一些实施例中,处理器902也使用可利用已知的高速缓存一致性技术而在处理器核907之间共享的外部高速缓存(例如,第-3级(l3)高速缓存或末级高速缓存(llc))(未示出)。寄存器堆906附加地包括在处理器902中,寄存器堆906可包括用于存储不同类型数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可专用于处理器902的设计。

在一些实施例中,处理器902被耦合至处理器总线910,以在处理器902与系统900中的其他组件之间传输通信信号,诸如地址、数据、或控制信号。在一个实施例中,系统900使用示例性中枢摂系统架构,所述示例性‘中枢’系统架构包括存储器控制器中枢916和输入输出(i/o)控制器中枢930。存储器控制器中枢916促进存储器设备与系统900的其他组件之间的通信,而i/o控制器中枢(ich)930提供经由本地i/o总线至i/o设备的连接。在一个实施例中,存储器控制器中枢916的逻辑被集成在处理器内。

存储器设备920可以是动态随机存取存储器(dram)设备、静态随机存取存储器(sram)设备、闪存设备、相变存储器设备、或具有适当的性能以充当进程存储器的某个其他存储器设备。在一个实施例中,存储器设备920可以作为系统900的系统存储器操作,以存储数据922和指令921,以便在一个或多个处理器902执行应用或进程时使用。存储器控制器中枢916也与任选的外部图形处理器912耦合,所述任选的外部图形处理器912可与处理器902中的一个或多个图形处理器908通信以执行图形和媒体操作。

在一些实施例中,ich930使外围设备能够经由高速i/o总线而连接至存储器设备920和处理器902。io外围设备包括但不限于音频控制器946、固件接口928、无线收发机926(例如,wi-fi、蓝牙)、数据存储设备924(例如,硬盘驱动器、闪存等)以及用于将旧式(legacy)(例如,个人系统2(ps/2))设备耦合至系统的旧式i/o控制器。一个或多个通用串行总线(usb)控制器942连接输入设备(诸如,键盘和鼠标944的组合)。网络控制器934也可耦合至ich930。在一些实施例中,高性能网络控制器(未示出)耦合至处理器总线910。应当理解,所示的系统900是示例性的而非限制性的,因为也可以使用不同方式配置的其他类型的数据处理系统。例如,i/o控制器总线930可以集成在一个或多个处理器902内,或者存储器控制器中枢916和i/o控制器中枢930可以集成在分立外部图形处理器中,例如外部图形处理器912。

图10是处理器1000的实施例的框图,所述处理器具有一个或多个处理器核1002a至1002n、集成存储器控制器1014以及集成图形处理器1008。图10具有与本文中的任意其他附图的元件相同的附图标记(或名称)的那些元件可以类似于本文中其他地方描述的任何方式操作或运行,但不限于此。处理器1000可包括附加的核,所述附加的核多至由虚线框表示的附加核1002n并包括由虚线框表示的附加核1002n。处理器核1002a至1002n中的每一个包括一个或多个内部高速缓存单元1004a至1004n。在一些实施例中,每一个处理器核都具有对一个或多个共享高速缓存单元1006的访问权。

内部高速缓存单元1004a至1004n和共享高速缓存单元1006表示处理器1000内的高速缓存存储器层次结构。高速缓存存储器层次结构可包括每一个处理器核内的至少一个层级的指令和数据高速缓存以及一个或多个层级的共享的中间级高速缓存(诸如,第2级(l2)、第3级(l3)、第4级(l4)或其他层级高速缓存),其中,在外部存储器之前的最高层级的高速缓存被分类为llc。在一些实施例中,高速缓存一致性逻辑维持各种高速缓存单元1006与1004a至1004n之间的一致性。

在一些实施例中,处理器1000也可包括一组一个或多个总线控制器单元1016和系统代理核1010。一个或多个总线控制器单元1016管理一组外围总线(诸如,一个或多个外围组件互连总线(例如,pci、pciexpress))。系统代理核1010提供用于各种处理器组件的管理功能。在一些实施例中,系统代理核1010包括用于管理对各种外部存储器设备(未示出)的访问的一个或多个集成存储器控制器1014。

在一些实施例中,处理器核1002a至1002n中的一个或多个包括对同时的多线程操作的支持。在此类实施例中,系统代理核1010包括用于在多线程处理期间协调并操作核1002a至1002n的组件。系统代理核1010可附加地包括功率控制单元(pcu),所述pcu包括用于调节处理器核1002a至1002n和图形处理器1008的功率状态的逻辑和组件。

在一些实施例中,处理器1000附加地包括用于执行图形处理操作的图形处理器1008。在一些实施例中,图形处理器1008与一组共享高速缓存单元1006以及系统代理核1010耦合,系统代理核1010包括一个或多个集成存储器控制器1014。在一些实施例中,显示控制器1011与图形处理器1008耦合,以将图形处理器输出驱动至一个或多个所耦合的设备。在一些实施例中,显示控制器1011可以是经由至少一个互连而与图形处理器耦合的分开的模块,或者可以集成在图形处理器1008或系统代理核1010内。

在一些实施例中,基于环的互连单元1012用于耦合处理器1000的内部组件。然而,可使用替代的互连单元,诸如,点对点互连、交换互连或其他技术(包括本领域中公知的技术)。在一些实施例中,图形处理器1008经由i/o链路1013来与环形互连1012耦合。

示例性i/o链路1013表示各种各样的i/o互连中的至少一者,所述i/o互连包括促进各种处理器组件与高性能嵌入式存储器模块1018(诸如,edram模块)之间的通信的封装i/o互连。在一些实施例中,处理器核1002a至1002n和图形处理器1008中的每一者都将嵌入式存储器模块1018用作共享的末级高速缓存。

在一些实施例中,处理器核1002a至1002n是执行相同的指令集架构的同构核。在另一实施例中,处理器核1002a至1002n就指令集架构(isa)方面而言是异构的,其中,处理器核1002a至1002n中的一个或多个执行第一指令集,而其他核中的至少一个执行第一指令集的子集或不同的指令集。在一个实施例中,处理器核1002a至1002n就微架构方面而言是异构的,其中具有相对较高的功耗的一个或多个核与具有相对较低的功耗的一个或多个核耦合。附加地,处理器1000可实现在一个或多个芯片上,或可实现为soc集成电路,所述soc集成电路除其他组件之外还具有所示组件。

图11是图形处理器1100的框图,所述图形处理器1100可以是分立的图形处理单元,或可以是与多个处理核集成的图形处理器。在一些实施例中,图形处理器经由至图形处理器上的寄存器的存储器映射的i/o接口通信,并且与置入处理器存储器中的命令进行通信。在一些实施例中,图形处理器1100包括用于访问存储器的存储器接口1114。存储器接口1114可以是至以下各项的接口:本地存储器、一个或多个内部高速缓存、一个或多个共享外部高速缓存和/或系统存储器。

在一些实施例中,图形处理器1100也包括用于将显示输出数据驱动到显示设备1120的显示控制器1102。显示控制器1102包括用于显示的一个或多个上层(overlay)平面以及视频或用户接口元件的多个层的综合的硬件。在一些实施例中,图形处理器1100包括用于将媒体编码至一个或多个媒体编码格式、从一个或多个媒体编码格式解码或在一个或多个媒体编码格式之间转码的视频编解码器引擎1106,所述媒体编码格式包括但不限于:移动图片专家组(mpeg)格式(诸如,mpeg-2)、高级视频译码(avc)格式(诸如,h.264/mpeg-4avc)以及电影电视工程师协会(smpte)421m/vc-1,以及联合图像专家组(jpeg)格式(诸如,jpeg和运动jpeg(mjpeg)格式)。

在一些实施例中,图形处理器1100包括用于执行二维(2d)光栅化(rasterizer)操作(包括例如位边界块转移)的块图像转移(blit)引擎1104。然而,在一个实施例中,使用图形处理引擎(gpe)1110的一个或多个组件来执行11d图形操作。在一些实施例中,图形处理引擎1110是用于执行图形操作(包括三维(3d)图形操作和媒体操作)的计算引擎。

在一些实施例中,gpe1110包括用于执行3d操作的3d流水线1112,所述3d操作诸如,使用作用于3d基元形状(例如,矩形、三角形等)的处理函数来渲染三维图像和场景。3d流水线1112包括可编程和固定功能元件,所述可编程和固定功能元件执行元件内的各种任务和/或繁衍(spawn)执行线程至3d/媒体子系统1115。当3d流水线1112可用于执行媒体操作时,gpe1110的实施例也包括专门用于执行媒体操作(诸如,视频后处理和图像增强)的媒体流水线1116。

在一些实施例中,媒体流水线1116包括用于执行一个或多个专业媒体操作的固定功能或可编程逻辑单元,所述专业媒体操作诸如,取代或代表视频编解码器引擎1106的视频解码加速、视频去隔行(de-interlacing)以及视频编码加速。在一些实施例中,媒体流水线1116附加地包括用于繁衍供在3d/媒体子系统1115上执行的线程的线程繁衍单元。所繁衍的线程在3d/媒体子系统1115中所包括的一个或多个图形执行单元上执行用于媒体操作的计算。

在一些实施例中,3d/媒体子系统1115包括用于执行由3d流水线1112和媒体流水线1116繁衍的线程的逻辑。在一些实施例中,流水线将线程执行请求发送至3d/媒体子系统1115,所述3d/媒体子系统1115包括用于仲裁各种请求并将各种请求分派至可用的线程执行资源的线程分派逻辑。执行资源包括用于处理3d和媒体线程的图形执行单元的阵列。在一些实施例中,3d/媒体子系统1115包括用于线程指令和数据的一个或多个内部高速缓存。在一些实施例中,子系统也包括用于在多个线程之间共享数据并用于存储输出数据的共享存储器,所述共享存储器包括寄存器和可寻址存储器。

图12是机器学习软件栈1200的广义图。机器学习应用1202可被配置成使用训练数据集来训练神经网络或其他类似的监督式机器学习技术,以及使用经训练深度神经网络来实现机器智能。此外,虽然本文参考重深度学习实现讨论一个或多个实施例,但实施例不限于此类实现,并且可使用任何监督式机器学习算法,诸如贝叶斯网络(也称为贝叶斯网)、随机森林、逻辑回归、svm(支持向量机)、神经网络、深度神经网络或其任何组合机器学习应用1202可包括用于神经网络和/或专用软件的训练和推断功能,该训练和推断功能可被用于在部署之前训练神经网络。机器学习应用1202可实现任何类型的机器智能,包括但不限于图像识别、绘图和定位、自主导航、话音合成、医疗成像或语言翻译。

可经由机器学习框架1204来实现对机器学习应用1202的硬件加速。机器学习框架1204可提供机器学习原语的库。机器学习原语是常由机器学习算法执行的基本操作。在没有机器学习框架1204的情况下,机器学习算法的开发者将需要创建和优化与机器学习算法相关联的主计算逻辑,随后在开发新的并行处理器时重新优化该计算逻辑。替代地,机器学习应用可被配置成使用由机器学习框架1204提供的原语来执行必要计算。示例性原语包括张量卷积、激活函数和池化(pooling),这些是在训练卷积神经网络(cnn)时执行的计算操作。机器学习框架1204还可提供用于实现由许多机器学习算法执行的基本线性代数子程序的原语,诸如矩阵和向量操作。

机器学习框架1204可处理从机器学习应用1202接收的输入数据,并且生成对计算框架1206的适当输入。计算框架1206可将提供至gpgpu驱动器1208的底层指令抽象化以使机器学习框架1204能够经由gpgpu硬件1210来利用硬件加速,而不需要机器学习框架1204具有gpgpu硬件1210的架构的详细知识。此外,计算框架1206可跨各种类型以及各代gpgpu硬件1210来实现用于机器学习框架1204的硬件加速。

由本文描述的实施例提供的计算架构可被配置成执行尤其适合训练和部署用于机器学习的神经网络的并行类型的处理。神经网络可被广义化为具有图形关系的函数网络。如本领域已知的,存在用于机器学习的各种类型的神经网络实现。如前所述,一种示例性类型的神经网络是前馈网络。

第二示例性类型的神经网络是卷积神经网络(cnn)。cnn是用于处理具有已知网格状拓扑的数据(诸如,图像数据)的前馈神经网络。相应地,cnn常被用于计算视觉和图像识别应用,但其可被用于其他类型的模式识别,诸如话音和语言处理。cnn输入层中的节点被组织成“滤波器”(受视网膜中发现的感受域启发的特征检测器)集合,并且每个滤波器集合的输出被传播至网络的相继层中的节点。用于cnn的计算包括对每个滤波器应用卷积数学操作以产生此滤波器的输出。卷积是由两个函数执行以产生第三函数的专门种类的数学操作,该第三函数是两个原始函数中的一个的经修改版本。在卷积网络术语中,卷积的第一个函数可以称为输入,而第二个函数可以称为卷积核。输出可以成为特征图。例如,卷积层的输入可以是定义输入图像的各种颜色分量的多维数据阵列。卷积核可以是参数的多维阵列,其中通过神经网络的训练过程来修改参数。

递归神经网络(rnn)是包括层之间的反馈连接的前馈神经网络族。rnn通过跨神经网络的不同部分共享参数数据来实现对顺序数据的建模。rnn的架构包括周期。周期表示变量的当前值对其自身在未来时间处的值的影响,如来自rnn的输出数据的至少一部分被用作对处理序列中的后续输入的反馈。由于语言组成的可变性,这种特征使rnn对语言处理尤其有用。

本文描述的附图表示示例性的前馈、cnn和rnn网络,以及描述用于相应地训练和部署那些类型的网络中的每一个的一般过程。将理解,这些描述对于本文描述的任何特定实施例是示例性的和非限制性的,并且所例示的概念一般可被应用于深度神经网络和机器学习技术。

上文描述的示例性神经网络可被用于执行深度学习。深度学习是使用深度神经网络的机器学习。与仅包括单个隐藏层的浅神经网络相比,用于深度学习的深度神经网络是由多个隐藏层组成的人工神经网络。更深的神经网络在训练时一般是更加计算密集的。然而,网络的附加隐藏层实现多步模式识别,这导致相对于浅机器学习技术的降低的输出误差。

用于深度学习的深度神经网络典型地包括用于执行特征识别的前端网络,该前端网络耦合至后端网络,该后端网络表示可基于提供至模型的特征表示来执行操作(例如,对象分类、话音识别等)的数学模型。深度学习使机器学习能够在不需要针对模型执行手工特征工程的情况下执行。相反,深度神经网络可基于统计结构或输入数据内的相关性来学习特征。所学习的特征可被提供至可将检测到的特征映射到输出的数学模型。由网络使用的数学模型一般专门用于要执行的特定任务,并且不同模型将被用于执行不同的任务。

一旦神经网络被构建,学习模型便可被应用于网络以训练网络来执行特定任务。学习模型描述如何调整模型内的权值以减小网络的输出误差。误差的反向传播是用于训练神经网络的常见方法。输出向量被呈递至网络以供处理。使用损失函数来将网络的输出与期望输出进行比较,并且针对输出层中的神经元中的每一个来计算误差值。误差值随后反向传播,直到每个神经元具有粗略地表示其对原始输出的贡献的相关联误差值。网络随后可使用算法(诸如,随机梯度下降算法)来从那些误差学习,以更新神经网络的权值。

图13示出了深度神经网络的训练和部署。一旦针对任务构建给定网络,使用训练数据集1302来训练神经网络。已开发各种训练框架来实现训练过程的硬件加速。例如,图12的机器学习框架1204可被配置成训练框架1304。训练框架1304可接入未训练神经网络1306,并且使得能够使用本文描述的并行处理资源来训练未训练神经网络以生成经训练神经网络1308。为了开始训练过程,可随机选择初始权值或者通过使用深度信念网络进行预训练来选择初始权值。随后将以监督方式或无监督方式执行训练周期。

监督式学习是其中训练作为中间操作来执行的学习方法,诸如当训练数据集1302包括与针对输入的期望输出配对的输入时,或者在训练数据集包括具有已知输出的输入并且神经网络的输出被手动分级的情况下执行的。网络处理输入并对照预期或期望输出的集合来比较所得输出。误差随后被反向传播通过系统。训练框架1204可进行调整以调整控制未训练神经网络1306的权值。训练框架1304可提供工具来监视未训练神经网络1306向适合基于已知输入数据生成正确答案的模型收敛的程度。当调整网络的权重以细化由神经网络生成的输出时,训练过程重复发生。训练过程可继续,直到神经网络达到与经训练神经网络1308相关联的统计上期望的准确度。随后可部署经训练神经网络1308以实现任何数量的机器学习操作。

无监督式学习是其中网络试图使用未标记的数据来训练自己的学习方法。因此,对于无监督式学习,训练数据集1302将包括没有任何相关联输出数据的输入数据。未训练神经网络1306可学习未标记输入内的分组,并且可确定个体输入如何与整个数据集相关。无监督式训练可被用于生成自组织映射,该自组织映射是能够执行有助于减少数据维度的操作的一种类型的经训练神经网络1307。无监督式训练还可被用于执行异常检测,这允许标识输入数据集中背离正常数据模式的数据点。

还可采用监督式和无监督式训练的变体。半监督式学习是其中训练数据集1302包括相同分布的经标记和未标记数据的混合的技术。增量学习是监督式学习的变体,其中输入数据被连续用于进一步训练模型。增量学习使得经训练神经网络1308能够适应新数据1312而不会忘记在初始训练期间灌注于网络内的知识。

无论是监督式还是无监督式,针对特定深度神经网络的训练过程对于单个计算节点来说可能是过于计算密集的。代替使用单个计算节点,可使用计算节点的分布式网络来加速训练过程。

下列示例涉及进一步的实施例。示例1包括一种装置,该装置包括:编码逻辑,用于在从至少一个光源向物体传输多个光束脉冲之前对多个光束脉冲进行编码;以及耦合至编码逻辑的存储器,该存储器用于存储指示要被应用于多个光束脉冲的编码的类型的编码信息,其中多个光束脉冲中的每个光束脉冲包括一个或多个子脉冲,其中编码逻辑用于导致对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行编码。示例2包括示例1的装置,其中多个光束脉冲包括光检测和测距(lidar)脉冲。示例3包括示例1的装置,其中修改包括对以下中的一者或多者的改变:一个或多个子脉冲中的至少一个子脉冲的频率、宽度、相位或振幅。示例4包括示例1的装置,其中编码逻辑用于经由调制器或至少一个光源来导致修改。示例5包括示例4的装置,其中调制器包括电光调制器。示例6包括示例5的装置,其中电光调制器包括铌酸锂晶体电光调制器或液晶电光调制器。示例7包括示例1的装置,其中至少一个光源包括:脉冲二极管激光源、无冷却光纤激光源、固态激光源、液晶激光源、染料激光源或气体激光源。示例8包括示例1的装置,进一步包括多个光源,其中多个光源中的每个光源用于发出不同类型的光束。示例9包括示例8的装置,其中不同类型的光束包括具有不同频率、相位、振幅、波长或其组合的光束。示例10包括示例1的装置,其中至少一个光源用于生成激光束。示例11包括示例1的装置,其中解码逻辑用于访问所存储编码信息以促进对多个光束脉冲的反射的解码。示例12包括示例1的装置,其中编码逻辑用于至少部分地基于机器学习或深度学习来对多个光束脉冲进行编码。示例13包括示例1的装置,其中物联网(iot)设备或交通工具包括编码逻辑或存储器。示例14包括示例1的装置,其中具有一个或多个处理器核的处理器包括编码逻辑。示例15包括示例1的装置,其中单个集成设备包括以下中的一者或多者:处理器、编码逻辑以及存储器。

示例16包括一种装置,该装置包括:解码逻辑,用于基于指示被应用于多个光束脉冲的编码的类型的编码信息来对多个光束脉冲进行解码,其中多个光束脉冲中的每个光束脉冲包括一个或多个子脉冲,其中解码逻辑用于检测对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行解码。示例17包括示例16的装置,包括用于响应于修改与编码信息的比较来指示一个或多个子脉冲中的至少一个子脉冲是否可信的逻辑。示例18包括示例16的装置,其中修改包括对以下中的一者或多者的改变:一个或多个子脉冲中的至少一个子脉冲的频率、宽度、相位或振幅。示例19包括示例16的装置,其中多个光束脉冲包括光检测和测距(lidar)脉冲。示例20包括示例16的装置,进一步包括用于存储编码信息的存储器。示例21包括示例16的装置,其中编码逻辑用于提供编码信息。示例22包括示例16的装置,其中解码逻辑用于基于来自解调器或检测器的指示来检测修改。

示例23包括一种计算系统,该系统包括:处理器,具有一个或多个处理器核;存储器,耦合至处理器,该存储器用于存储对应于编码信息的一个或多个数据位;逻辑,用于在从至少一个光源向物体传输多个光束脉冲之前处理多个光束脉冲,或者基于编码信息处理多个光束脉冲,其中编码信息指示被应用于多个光束脉冲的编码的类型,其中多个光束脉冲中的每个光束脉冲包括一个或多个子脉冲,其中多个光束脉冲包括光检测和测距(lidar)脉冲。示例24包括示例23的装置,其中逻辑用于导致对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行编码。示例25包括示例23的装置,其中逻辑用于检测对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行解码。示例26包括示例24的计算系统,其中修改包括对以下中的一者或多者的改变:一个或多个子脉冲中的至少一个子脉冲的频率、宽度、相位或振幅。示例27包括示例24的计算系统,其中编码逻辑用于经由调制器或至少一个光源来导致修改。示例28包括示例23的计算系统,其中至少一个光源包括:脉冲二极管激光源、无冷却光纤激光源、固态激光源、液晶激光源、染料激光源或气体激光源。示例29包括示例23的计算系统,进一步包括多个光源,其中多个光源中的每个光源用于发出不同类型的光束。示例30包括示例23的计算系统,其中至少一个光源用于生成激光束。示例31包括示例25的计算系统,其中逻辑用于访问所存储编码信息以促进对多个光束脉冲的反射的解码。示例32包括示例23的计算系统,其中处理器包括逻辑。示例33包括示例23的计算系统,其中单个集成设备包括以下中的一者或多者:处理器、逻辑、以及存储器。

示例34包括一种方法,该方法包括:在从至少一个光源向物体传输多个光束脉冲之前处理多个光束脉冲,或者基于编码信息处理多个光束脉冲,其中编码信息指示被应用于多个光束脉冲的编码的类型,其中多个光束脉冲中的每个光束脉冲包括一个或多个子脉冲,其中多个光束脉冲包括光检测和测距(lidar)脉冲。示例35包括示例34的方法,进一步包括导致对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行编码。示例36包括示例34的方法,进一步包括检测对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行解码。

示例37包括一种或多种计算机可读介质,包括一条或多条指令,这一条或多条指令在至少一个处理器上执行时,将至少一个处理器配置成执行一个或多个操作以:在从至少一个光源向物体传输多个光束脉冲之前处理多个光束脉冲,或者基于编码信息处理多个光束脉冲,其中编码信息指示被应用于多个光束脉冲的编码的类型,其中多个光束脉冲包括一个或多个子脉冲,其中多个光束脉冲包括光检测和测距(lidar)脉冲。示例38包括示例37的计算机可读介质,进一步包括一条或多条指令,当在至少一个处理器上执行该一条或多条指令时,该一条或多条指令将至少一个处理器配置成执行一个或多个操作以导致对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行编码。示例39包括示例37的计算机可读介质,进一步包括一条或多条指令,当在至少一个处理器上执行该一条或多条指令时,该一条或多条指令将至少一个处理器配置成执行一个或多个操作以检测对一个或多个子脉冲中的至少一个子脉冲的修改以对多个光束脉冲进行解码。

示例40包括一种设备,其包括用以执行前述任何示例中阐述的方法的装置。示例41包括机器可读存储设备,其包括机器可读指令,当执行该机器可读指令时,该机器可读指令实现前述任何一示例中所阐述的方法或设备。

在各实施例中,本文中(例如,参考图1及其以下各图)所讨论的操作可实现为硬件(例如,逻辑电路)、软件、固件、或其组合,其可被作为计算机程序产品提供,例如,包括有形的(例如,非易失性的)机器可读或计算机可读介质,其在其上存储有指令(或软件程序),这些指令(或软件程序)用于对计算机编程以执行本文中所讨论的进程。机器可读介质可包括存储设备,诸如参考图1及其以下各图所讨论的那些存储设备。

此外,这种计算机可读介质可作为计算机程序产品来下载,其中该程序可经由通信链路(例如,总线、调制解调器或网络连接)作为在载波或其它传播介质中提供的数据信号从远程计算机(例如,服务器)传输到作出请求的计算机(例如,客户端)。

在本说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构和/或特性可被包括在至少一个实现中。在本说明书各处出现的短语“在一个实施例中”可以或可不全指代同一实施例。

并且,在说明书和权利要求书中,可使用术语“耦合”和“连接”以及它们的派生词。在一些实施例中,可以使用“连接的”来指示两个或更多个元件彼此直接物理和/或电气接触。“耦合”可意味着两个或更多个元件直接物理或电气接触。然而,“耦合”还可意味着两个或更多个元件彼此不直接接触,但仍彼此相互配合和/或相互作用。

如此,尽管已经用对结构特征和/或方法动作专用的语言描述了各实施例,但可以理解,所要求保护的主题可以不受限于所描述的特定特征或动作。相反,特定特征和动作作为实现要求保护的主题的样本形式被公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1