CN110574371A - 使用硬件加速器的立体摄像机深度确定 - Google Patents
使用硬件加速器的立体摄像机深度确定 Download PDFInfo
- Publication number
- CN110574371A CN110574371A CN201780090034.6A CN201780090034A CN110574371A CN 110574371 A CN110574371 A CN 110574371A CN 201780090034 A CN201780090034 A CN 201780090034A CN 110574371 A CN110574371 A CN 110574371A
- Authority
- CN
- China
- Prior art keywords
- bit representation
- neural network
- data
- network model
- operations
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0081—Depth or disparity estimation from stereoscopic image signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本文描述的是允许在给定输入图像的情况下进行密集深度图估计的系统和方法。在一个或多个实施方式中,开发了与先前方法显著不同的神经网络模型。深度神经网络模型的实施方式包括计算效率更高的结构和更少的层,但仍然产生良好的质量结果。此外,在一个或多个实施方式中,深度神经网络模型可以被特别配置和训练为使用一个或多个硬件加速器组件来操作,该硬件加速器组件可以加速计算并产生良好的结果,即使在硬件加速器组件的计算期间使用更低精度的位表示。
Description
技术领域
本公开总体涉及用于图像处理的系统和方法,更具体地,本公开涉及用于从立体图像有效地生成深度信息的系统和方法。
背景技术
为了解决许多计算机视觉任务,如三维重建、运动结构、视觉同步定位与映射(SLAM)、人脸识别、安全监控、自动驾驶车辆、场景理解等,深度图像和规则图像都是有用的输入。典型的摄像机获取图像的每个像素的颜色信息(红色、绿色和蓝色(RGB))。深度摄像机或深度摄像机系统试图获取图像中每个像素的空间坐标。传统上,深度图像和规则图像已由两个不同的物理摄像机或两组不同的传感器捕获。
现有的深度摄像机一般分为两类:有源深度摄像机和无源深度摄像机。有源深度摄像机将能量(通常以红外光或激光的形式)发射到环境中,捕获能量的反射,并基于反射来计算深度信息。有源摄像机的示例包括美国华盛顿州雷蒙德的微软公司的Kinect系统。然而,这样的系统是昂贵的,特别是与无源深度摄像机相比。此外,因为这样的系统通常使用红外发射器和收集器,所以它们在室外环境下不能很好地工作,因为阳光太强。其他有源深度摄像机使用激光,但这些系统非常昂贵,耗资数以万计美元甚至更多,并且往往消耗大量能量。
无源深度摄像机通常测量自然光以估计深度。大多数无源深度摄像机都配备两个摄像机,也称为立体摄像机。通过比较相同元素在两个摄像机图像中捕获的场景中的视差来估计深度信息。使用本机方法的立体深度摄像机简单地从图像中提取纹理或特征,并测量它们在立体(例如,左和右)图像中的视差。对于包含任何特征或纹理的区域,诸如白墙、亮地板、均匀颜色等,视差可能不会被成功地提取,因此不能估计深度信息。不幸的是,无纹理或无特征的区域在自然场景中是常见的。因此,使用本机算法的立体深度摄像机产生的深度图像通常遗漏了严重且负面影响应用的许多像素。
针对这些问题中的某些,一些立体深度摄像机系统使用了复杂的算法。然而,这些复杂的方法通常需要较高的计算能力。因此,它们的相应产品通常需要昂贵的图形处理器单元、高端中央处理单元或两者兼而有之。除了能量和计算成本之外,使用复杂方法来确定深度的另一个问题是通过比较立体图像来确定深度所需的时间。即使随着处理器速度的提高,这种时间延迟也足够显著,使得这种方法对于从实时或近实时地接收深度信息中受益的应用来说是不切实际的,诸如机器人或自动驾驶汽车。例如,如果确定深度信息的延迟太大,则自动驾驶车辆可能发生碰撞或以其他方式造成严重伤害。
因此,需要的是能够实时或近实时提供高质量密集深度图的系统和方法。
发明内容
本公开的实施方式提供了图像处理系统和用于处理图像数据以获得与由一对图像捕获的场景相关的深度信息的方法。
在本公开的一方面,图像处理系统,包括:处理器单元;以及非暂时性计算机可读介质或媒介,包括一个或多个指令序列,所述一个或多个指令序列在由所述处理器单元执行时,致使执行步骤,所述步骤包括:接收场景的一对图像,其中所述一对图像包括第一图像和第二图像;使用所述一对图像和包括多个操作的经训练神经网络模型执行深度图推断,其中所述经训练神经网络模型的所述多个操作的至少一些操作由通信地联接到所述处理器单元的硬件加速器组件执行;以及输出包括到所述场景中的表面的距离信息的深度图;以及硬件加速器组件,配置成使用与所述处理器单元使用的位表示不同的位表示来执行所述经训练神经网络模型的至少一些操作。
在本公开的另一方面,图像处理系统,包括:处理器单元;以及
非暂时性计算机可读介质或媒介,包括一个或多个指令序列,所述一个或多个指令序列在由所述一个或多个处理器中的至少一个执行时,致使执行步骤,所述步骤包括:接收场景的一对图像,其中所述一对图像包括第一图像和第二图像;使用所述一对图像和包括多个操作的经训练神经网络模型执行深度图推断,所述多个操作包括多个卷积和反卷积,并且所述经训练神经网络模型配置为通过以下方式减少计算要求:包括至少两个卷积操作,每个卷积操作分开地对对应于所述第一图像和所述第二图像的图像相关数据进行操作,而不是对对应于所述第一图像和所述第二图像的所述图像相关数据的组合进行操作,以及其中,所述两个早期卷积操作共享参数;以及不包括一组数据增强操作和一组一个或多个采样操作,其中所述一组数据增强操作和所述一组一个或多个采样操作包括在从其获得所述经训练神经网络的神经网络模型中;以及输出包括到所述场景中的表面的距离信息的深度图;以及硬件加速器组件,通信地联接至所述处理器单元,配置成执行所述经训练神经网络模型的至少一些操作。
在本公开的又一方面,处理图像数据以获得与由一对图像捕获的场景相关的深度信息的方法包括:在图像处理系统处接收所述场景的所述一对图像,所述一对图像包括第一图像和第二图像,所述图像处理系统包括:处理器单元,配置成通过将经训练神经网络模型的至少一些计算任务分配给硬件加速器组件来协调所述经训练神经网络模型的工作流;非暂时性计算机可读存储器,与所述处理器单元通信地联接,用于存储与所述一对图像相关的数据和包括与所述经训练神经网络相关的一个或多个指令序列的数据;以及硬件加速器组件,与所述处理器单元通信地联接,配置成使用与所述处理器单元使用的位表示不同的位表示来执行经训练神经网络模型的至少一些操作;使用所述图像处理系统,使用所述一对图像和包括多个操作的所述经训练神经网络模型执行深度图推断,其中所述经训练神经网络模型的所述多个操作中的至少一些操作由通信地联接到所述处理器单元的所述硬件加速器组件执行;以及输出包括到所述场景中的表面的距离信息的深度图。
附图说明
将参考本发明的实施方式,它们的示例可示于附图中。这些附图旨在是说明性的而非限制性的。虽然本发明大体上在这些实施方式的上下文中描述,但应理解,本发明的范围并不旨在限于这些特定实施方式。附图中的项目未按比例绘制。
图(“图”)1描绘了根据本公开的实施方式的深度图生成器系统。
图2描绘了根据本文件的实施方式的计算装置/信息处理系统的简化框图。
图3A–3M图示了根据本公开的实施方式的示例性深度神经网络模型,该模型已被训练并且可以被部署以从立体图像推断深度信息。
图4A–4N图示了根据本公开的实施方式的可在训练阶段使用的示例性深度神经网络模型。
图5描绘了根据本发明的实施方式的训练和使用用于深度图估计的神经网络模型的一般总体方法。
图6描绘了根据本公开的实施方式的训练用于深度估计的深度神经网络模型的示例性方法。
图7描绘了根据本公开的实施方式的微调(作为训练的一部分)浮点神经网络模型的方法,这通过模拟不同的位表示以产生用于在使用该位表示的硬件加速器组件上使用的神经网络。
图8图示了根据本公开的实施方式的微调(作为训练的一部分)浮点神经网络模型的方法,这通过模拟某一位表示以产生用于在使用该某一位表示的硬件加速器组件上使用的神经网络。
图9图示了根据本公开的实施方式,将在一个位表示方案中表示的值量化为不同位表示方案的方法。
图10描绘了根据本公开的实施方式的,使用具有硬件加速单元的经训练神经网络模型来实时地(或接近实时地)提供密集的深度图信息的方法。
图11图示了根据本公开的实施方式,在处理器相关的位表示与硬件加速器部件位表示之间转换的方法,执行整数计算,并将整数转换回浮点数以用于下一层。
具体实施方式
在以下描述中,出于解释目的,阐明具体细节以便提供对本发明的理解。然而,将对本领域的技术人员显而易见的是,可在没有这些细节的情况下实践本发明。此外,本领域的技术人员将认识到,下文描述的本发明的实施方式可以以各种方式(例如过程、装置、系统、设备或方法)在有形的计算机可读介质上实施。
附图中示出的组件或模块是本发明实施方式的示例性说明,并且意图避免使本发明不清楚。还应理解,在本论述的全文中,组件可描述为单独的功能单元(可包括子单元),但是本领域的技术人员将认识到,各种组件或其部分可划分成单独组件,或者可整合在一起(包括整合在单个的系统或组件内)。应注意,本文论述的功能或操作可实施为组件。组件可以以软件、硬件、或它们的组合实施。
此外,附图内的组件或系统之间的连接并不旨在限于直接连接。相反,在这些组件之间的数据可由中间组件修改、重格式化、或以其它方式改变。另外,可使用另外或更少的连接。还应注意,术语“联接”、“连接”、或“通信地联接”应理解为包括直接连接、通过一个或多个中间设备来进行的间接连接、和无线连接。
在本说明书中对“一个实施方式”、“一个或多个实施方式中”、“优选实施方式”、“实施方式”或“多个实施方式”的提及表示结合实施方式所描述的具体特征、结构、特性或功能包括在本发明的至少一个实施方式中,以及可包括在多于一个的实施方式中。另外,在本说明书的各个地方出现以上所提到的短语并不一定全都是指相同的实施方式或多个相同实施方式。
在本说明书的各个地方使用某些术语目的在于说明,并且不应被理解为限制。服务、功能或资源并不限于单个服务、单个功能或单个资源;这些术语的使用可指代相关服务、功能或资源的可分布或聚合的分组。
术语“包括”、“包括有”、“包含”和“包含有”应理解为开放性的术语,并且其后任何列出内容都是实例,而不旨在限于所列项目。本文所使用的任何标题仅是为了组织目的,并且不应被用于限制说明书或权利要求的范围。本专利文献中提到的每个参考文献以其全文通过引用并入本文。
此外,本领域的技术人员应认识到:(1)某些步骤可以可选地执行;(2)步骤可不限于本文中所阐述的特定次序;(3)某些步骤可以以不同次序执行;以及(4)某些步骤可同时地进行。
A.总体概述
本发明的方面包括即使场景包括无纹理或无特征区域,也能够产生密集深度图图像的系统和方法。在一个或多个实施方式中,可以通过使用建模中的某些技术并通过使用硬件加速器或加速器(诸如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)等)来实时(或接近实时)产生深度图。
在一个或多个实施方式中,深度图模型可以与Dispnet共享一些概念上的相似性,这是Mayer-等人在“A Large Dataset to Train Convolutional Networks forDisparity,Optical Flow,and Scene Flow Estimation(训练视差、光流和场景流量的卷积网络的大数据集)”,IEEE计算机视觉和模式识别国际会议(CVPR),2016(也可在arXiv预印arXiv:1512.02134,2015获得)所描述的,其通过引用整体并入本文。然而,如下文将更详细地解释的,本文中的实施方式包括,除其他以外,简化的神经网络层和其他修改。此外,可以在训练时、在部署期间或两者中设计实施方式,以便使用硬件加速器来使用8位处理进行高效处理。由于FPGA的运算能力和功耗限制,以往的基于FPGA的立体摄像机系统只能采用简单的立体深度算法。然而,本文的实施方式提供了一种使用像FPGA的硬件加速器来运行卷积神经网络(CNN)模型的新架构。还应该注意,除了减少处理时间之外,使用硬件加速器来实现本发明的方面可以帮助降低成本和功耗。
B.摄像机系统实施方式
图1描绘了根据本公开的实施方式的深度图生成器系统。图1所示的示例性实施方式包括两个摄像机,摄像机A 105A和摄像机B 105B,其可以安装在刚性物理结构上,诸如摄像机准备,并且指向大致相同的方向。为了方便起见,摄像机可以在本文被称为右(摄像机A105A)和左(摄像机B 105B),但是应注意它们可不同的定向(诸如,上下)。在一个或多个实施方式中,左105B和右105A摄像机之间的距离通常在5-50厘米之间,尽管可以使用其他距离。在一个或多个实施方式中,两个摄像机捕获相同场景但来自不同位置的图像(应该理解为意味静止图像、视频图像或两者)。两个图像中相同元素的视差提供了用于估计深度的线索。
在图1中还描绘了微控制器110,其通信地联接到每个摄像机。在一个或多个实施方式中,微控制器向摄像机发送一个或多个控制信号,从摄像机接收图像数据,并将图像数据传输到处理单元(例如,CPU 115),处理单元也通信地联接到微控制器110。微控制器可以向摄像机发送曝光和增益参数,并且可以向两个摄像机发送一个或多个曝光信号,以确保同时曝光,使得两个摄像机在同一时间点捕获它们各自的图像。如果场景包含动态对象,则同步曝光对于深度估计是重要的。示例性微控制器是美国加利福尼亚州圣何塞市Cypress(赛普拉斯)半导体公司的Z-USB FX3TM超高速USB 3.0外围控制器,但也可以使用其他微控制器。
如上所述,在图1中所示的示例性系统实施方式中还描绘了CPU 115,其可以是高级RISC机器(ARM)CPU或x86CPU。由英国剑桥的ARM Holdings公司设计的ARM Cortex-A53,是一款可以使用的示例性CPU,任何x86处理器都可以工作,比如加州圣克拉拉的英特尔公司设计的酷睿i3TM 2310M。在一个或多个实施方式中,CPU 115从微控制器110接收图像数据,执行整体深度图生成,并利用通信地联接到CPU的硬件加速器120以完成深度图生成过程的部分。在一个或多个实施方式中,硬件加速器120可以是FPGA、ASIC或DSP,其被配置为计算神经网络的部分的结果。在一个或多个实施方式中,如果CPU 115用作用于摄像机控制的微控制器,则微控制器110可以从系统100中除去。
在一个或多个实施方式中,系统100输出125深度图像,诸如分辨率为640×480的16位图像,其中每个像素值均表示深度值。在一个或多个实施方式中,输出125还可以包括来自左摄像机和右摄像机105的原始摄像机图像(例如,两个640×480灰度或彩色图像)。输出速率至少部分取决于CPU处理速率(例如,10Hz)。应该注意的是,可以使用其他位大小、分辨率和输出速率。
还应注意,系统100可以包括其他计算系统元件,如电源、电源管理、存储器、接口等,它们未在图1中示出,以避免模糊本发明的各个方面。参考图2提供了此类元件和计算系统的一些示例。
在一个或多个实施方式中,本专利文献的方面可涉及、可包括一个或多个信息处理系统/计算系统或者可在一个或多个信息处理系统/计算系统上实施。计算系统可包括可操作来计算、运算、确定、分类、处理、传输、接收、检索、发起、路由、交换、存储、显示、通信、显现、检测、记录、再现、处理或利用任何形式信息、智能或数据的任何手段或手段的组合。例如,计算系统可为或可包括个人计算机(例如,膝上型计算机)、平板电脑、平板手机、个人数字助理(PDA)、智能手机、智能手表、智能包装、服务器(例如,刀片式服务器或机架式服务器)、网络存储设备、摄像机或任何其他合适设备,并且可在大小、形状、性能、功能和价格方面改变。计算系统可包括随机存取存储器(RAM)、一个或多个处理资源(例如中央处理单元(CPU)或硬件或软件控制逻辑)、ROM和/或其他类型的存储器。计算系统的另外组件可包括一个或多个盘驱动器、用于与外部设备通信的一个或多个端口、以及各种输入和输出(I/O)设备(例如键盘、鼠标、触摸屏和/或视频显示器)。计算系统还可包括可操作为在各种硬件组件之间传输通信的一个或多个总线。
图2描绘根据本公开的实施方式的计算设备/信息处理系统(或是计算系统)的简化框图。应理解,计算系统可不同地配置并且包括不同组件,包括如图2中所示的更少或更多的部件,但应理解,针对系统200所示出的功能可操作为支持计算系统的各种实施方式。
如图2所示,计算系统200包括一个或多个中央处理单元(CPU)201,CPU 201提供计算资源并控制计算机。CPU 201可实施有微处理器等,并且还可包括一个或多个图形处理单元(GPU)219和/或用于数学计算的浮点协处理器。系统200还可包括系统存储器202,系统存储器202可呈随机存取存储器(RAM)、只读存储器(ROM)、或两者的形式。
如图2所示,还可提供多个控制器和外围设备。输入控制器203表示至各种输入设备204的接口,例如键盘、鼠标、触摸屏和/或触笔。计算系统200还可包括存储控制器207,该存储控制器207用于与一个或多个存储设备208对接,存储设备中的每个包括存储介质(诸如磁带或盘)或光学介质(其可用于记录用于操作系统、实用工具和应用程序的指令的程序,它们可包括实施本发明的各方面的程序的实施方式)。存储设备208还可用于存储经处理的数据或是将要根据本发明处理的数据。系统200还可包括显示控制器209,该显示控制器209用于为显示设备211提供接口,显示设备211可为阴极射线管(CRT)、薄膜晶体管(TFT)显示器、有机发光二极管、电致发光面板、等离子面板或其他类型的显示器。计算系统200还可包括用于一个或多个外围设备206的一个或多个外围控制器或接口205。外围设备的示例可包括一个或多个打印机、扫描仪、输入设备、输出设备、传感器等。通信控制器214可与一个或多个通信设备215对接,这使系统200能够通过各种网络(包括互联网、云资源(例如以太云、经以太网的光纤通道(FCoE)/数据中心桥接(DCB)云等)、局域网(LAN)、广域网(WAN)、存储区域网络(SAN))中的任一网络,或通过任何合适电磁载波信号(包括红外信号)来连接至远程设备。
在示出的系统中,所有主要系统组件可连接至总线216,总线216可表示多于一个的物理总线。然而,各种系统组件可在物理上彼此接近或可不在物理上彼此接近。例如,输入数据和/或输出数据可远程地从一个物理位置传输到另一物理位置。另外,实现本发明的各方面的程序可经由网络从远程位置(例如,服务器)访问。此类数据和/或程序可通过各种机器可读介质中的任一机器可读介质来传送,机器可读介质包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM和全息设备的光学介质;磁光介质;以及硬件设备,该硬件设备专门被配置成存储或存储并执行程序代码,该硬件设备例如专用集成电路(ASIC)、可编程逻辑器件(PLD)、闪存设备、以及ROM和RAM设备。
本发明的方面可利用用于一个或多个处理器或处理单元以使步骤执行的指令在一个或多个非暂态计算机可读介质上编码。应注意,一个或多个非暂态计算机可读介质应当包括易失性存储器和非易失性存储器。应注意,替代实现方式是可能的,其包括硬件实现方式或软件/硬件实现方式。硬件实施的功能可使用ASIC、FPGA、可编程的阵列、数字信号处理电路等来实现。因此,任何权利要求中的术语“手段”旨在涵盖软件实现方式和硬件实现方式两者。类似地,如本文使用的术语“计算机可读媒介或介质”包括具有实施在其上的指令程序的软件和/或硬件或它们的组合。利用所构想的这些替代实现方式,应当理解,附图以及随附描述提供本领域的技术人员编写程序代码(即,软件)和/或制造电路(即,硬件)以执行所需处理所要求的功能信息。
应当注意,本发明的实施方式还可涉及具有其上具有用于执行各种计算机实施的操作的计算机代码的非暂态有形计算机可读介质的计算机产品。介质和计算机代码可为出于本发明的目的而专门设计和构造的介质和计算机代码,或者它们可为相关领域中的技术人员已知或可用的。有形计算机可读介质的示例包括但不限于:诸如硬盘、软盘和磁带的磁性介质;诸如CD-ROM和全息设备的光学介质;磁光介质;以及专门配置成存储或存储并执行程序代码的硬件设备,例如,ASIC、FPGA、可编程逻辑器件(PLD)、闪存设备、以及ROM和RAM设备。计算机代码的示例包括机器代码(例如,编译器产生的代码)以及包含可由计算机使用解释器来执行的更高级代码的文件。本发明的实施方式可整体地或部分地实施为可在由处理设备执行的程序模块中的机器可执行指令。程序模块的示例包括库、程序、例程、对象、组件和数据结构。在分布的计算环境中,程序模块可物理上定位在本地、远程或两者的设定中。
本领域的技术人员将认识到,计算系统或编程语言对本发明的实践来说均不重要。本领域的技术人员将还将认识到,多个上述元件可物理地和/或在功能上划分成子模块或组合在一起。
C.用于推断的示例性网络结构实施方式
图3A–3M图示了根据本公开的实施方式的示例性深度神经网络模型,该模型已被训练并且可用于从立体图像推断深度信息。在一个或多个实施方式中,每个框310-x表示卷积或反卷积层,包括网络300中所有类型的层中的大多数计算。在一个或多个实施方式中,每个矩形315-x表示跟随卷积或反卷积层的校正线性单元(ReLU)层。在一个或多个实施方式中,每个矩形320-x表示若干类型的层中的一个,包括数据输入、切片、按元素操作、级联和输出。在一个或多个实施方式中,每个八角形325-x表示在层之间传递的数据块或中间结果。
1.主要分支实施方式
首先描述所描绘的网络实施方式300的主要结构。然后,将描述非相邻层之间的额外分支和跳跃连接。
对所描绘的网络实施方式的主要结构的总体概述如下。在一个或多个实施方式中,网络300接收由双图像层305表示的一对图像(例如,左图像和右图像)作为输入,并通过被描绘为切片_对320-1的按元素操作层来缩小其像素值。在一个或多个实施方式中,每个图像通过相同的两个卷积层,即conv1s 310-1和conv2s 310-2。在一个或多个实施方式中,这两个早期卷积层共享参数。这样的配置至少具有几个显著的益处。首先,通过使每个卷积层分别对图像进行操作,而不是对包含两个图像的堆栈进行操作,意味着卷积层更小,因此需要的更少的存储器。其次,在这个早期的卷积是在低级别上进行过滤的;因此,它们可以共享参数。尝试在更高级别上进行过滤的其他层上共享将导致模型性能降低。
在一个或多个实施方式中,所得到的特征图(即,中间数据块)由连接层cct2 320-5级联,这意味着从该层开始,来自两个图像的特征图被组合以一起进行处理。接下来的八个卷积层-包括conv3 310-3、conv3_1 310-4、conv4 310-5、conv4_1 310-6、conv5 310-7、conv5_1 310-8、conv6 310-9和conv6_1m 310-10-可以如图3C-E所示的典型方式排列。在一个或多个实施方式中,这些层表示压缩阶段,其中网络中的特征图的空间分辨率(即,宽度和高度)降低,而信道数量增加。
在一个或多个实施方式中,下一阶段使用反卷积扩展空间分辨率。在conv6_1m310-10之后,反卷积、卷积和级联几乎交织到输出;这些包括deconv5m 310-11、concat2320-6、卷积2m 310-14、deconv4 310-15、concat3 320-7、卷积4 310-18、deconv3 310-20、concat4 320-8、卷积6 310-22、deconv2 310-24、concat5 320-9、卷积8 310-26、deconv1310-27、concat6 320-10、卷积10 310-30、卷积11 310-31。
在一个或多个实施方式中,卷积层卷积11 310-31预测视差图。在典型的视差图中,点在场景中的深度与图像中对应图像点与摄像机中心的距离差成反比。从视差图,可以导出图像中像素的深度信息。最后一层,深度输出330,将视差图转换为深度图,并将其大小重设为所需的分辨率。
2.额外分支实施方式
如图3A–3M所示,所描绘的模型除了主分支之外还包括额外分支。在一个或多个实施方式中,卷积1m(图3E,310-12)在conv6_1处分支(图3E,325-19),接着是上采样_disp6至5(图3F,310-13),其最终重新连接到Concat2(图3F,320-6)处的主分支。在所描绘的实施方式中,卷积3(图3G,320-16)在concat5(图3G,325-24)处分支,该分支包括反卷积上采样_disp5至4(图3G,310-17)并在Concat3(图3H,320-7)处重新连接。在一个或多个实施方式中,卷积5(图3H,310-19)在concat4(图3H,325-29)之后分支,该分支包括反卷积向上采样_disp4至3(图3I,310-21)并在Concat4(图3H,320-29)处连接。在一个或多个实施方式中,该模型还包括卷积,卷积7(图3J,310-23),其在concat3(图3J,325-34)处分支;该分支包括反卷积上采样_disp3至2(图3J,310-25),并在Concat5(图3K,320-9)处重新连接到主分支。在所描绘的实施方式中,模型也在concat2(图3K、325-39)之后分支。该分支包括卷积卷积9(图3K,310-28)和上采样_disp2至1(图3L,310-29)并在Concat6(图3L,320-10)处重新连接。应注意,在所描绘的实施方式中,八角形项指示数据块,其也可称为BLOB(二进制大对象),并且“concatX”八角形(325-x)不是级联层。
3.跳跃分支实施方式
如图3A–3L所示,所描绘的模型除了主分支和额外分支外,还包括跳跃分支。例如,在所描绘的实施方式中,用于左图像和右图像的卷积conv1s(图3A、310-1)的输出由层cc1(图3B、320-4)级联,层cc1又连接到Concat6(图3L、320-10)。在所描绘的实施方式中,级联层cc2(图3B,320-5)的输出连接到Concat5(图3K,320-9)。如图所示,在conv3_1(图3C,325-13)处,形成连接到concat4(图3I,320-8)的跳跃分支。在一个或多个实施方式中,在conv4_1(图3D,325-15)处,另一跳跃分支形成并连接到Concat3(图3h,320-7)。最后,在conv5_1(图3E,325-17)处,形成连接到Concat2(图3F,320-6)的跳跃分支。
D.训练时的示例性网络结构实施方式
图4A–4K描绘了根据本公开的实施方式的可在训练时使用的示例性网络模型。应该注意的是,训练模型与图3A-3L所示并在上一节中描述的部署模型具有许多相似性。因此,为了避免不必要的重复,本部分描述了图4A–4K所描绘的训练网络实施方式与如图3A-3L所示的在推断时网络实施方式相比的差异。
如图4A–4K所示,在每次训练迭代中,网络的第一层图像对和GT(图4A,405)将一对训练图像和相应的ground truth(标注真值)(GT)视差图作为输入。在一个或多个实施方式中,通过层img0s_aug(图4A,420-3)、GenAugParam(图4B,420-4)和img1s_aug(图4B,420-6)对图像对执行数据增强,同时通过层Disp增强1(图4B,420-5)对视差ground truth执行相应的增强。在一个或多个实施方式中,这些数据增强层随机生成图像变换并将其应用于图像对,图像变换包括平移、旋转和颜色改变。在一个或多个实施方式中,与在推断时一样,将增强图像分别输入到卷积conv1s(图4B,410-1)。
在一个或多个实施方式中,来自层视差增强1(图4B,420-5)的增强ground truth视差图分别经过多个下采样层,包括下采样1(图4H,420-11)、下采样2(图4H,420-10)、下采样3(图4J,420-15)、下采样4(图4K,420-18)、下采样5(图4M,420-21)和下采样6(图4N,420-24)。在一个或多个实施方式中,每一个直接或间接地连接到损失层,诸如disp_损失6(图4I,420-12)、disp_损失5(图4I,420-13)、disp_损失4(图4J,420-16)、disp_损失3(图4L,420-19)、disp_损失2(图4M,420-22)和disp_损失1(图4N,420-25),连同辅助预测层(包括卷积1m(图4F,410-11)、卷积3(图4H,410-15)、卷积5(图4I,410-19)、卷积7(图4K,410-23)、卷积9(图4L,410-27)或最终视差预测层(卷积11(图4N,410-31))一起,以计算来自分支的辅助预测的损失或最终视差预测,这些分支参考图3A-3K中的推断网络结构描述。这些层被称为辅助预测,因为它们预测网络中间的视差,以帮助在训练期间将损失反向传播到早期层,这有助于速度收敛。
应当注意,训练时的网络包括更多层,包括数据增强层和采样层,这些层可以被有意地从部署的网络实施方式中除去。据发现,除去这些层对网络推断深度的最终性能几乎没有影响,但对处理要求有了实质性的降低。这些处理的降低,至少部分地,是可以使用硬件加速单元(如FPGA)来实现所部署的网络的原因之一。此外,通过降低计算要求,深度推断可以实时(或接近实时)进行。
E.示例性层配置
应注意,已部署或训练的网络模型实施方式的图(图3A-3M)以及训练期间的网络模型实施方式的图(图4A-4N),提供模型组件/层及其相关参数的图形和文本说明。然而,为了方便起见,表1描绘了与所示深度神经网络实施方式的一些层相关的信息。
表1:网络实施方式中某些层的示例性参数
本领域技术人员应认识到,这些参数是作为示例提供的,并且可以在不脱离本公开的精神和范围的情况下改变这些参数中的一个或多个。
F.方法实施方式
1.一般总体方法实施方式
图5描绘了根据本发明的实施方式的用于训练和使用用于深度图估计的神经网络模型的一般总体方法。
a)初始化
如所描绘的实施方式中所示,可能需要初始化(505)摄像机系统,例如图1中的摄像机105A和105B。初始化摄像机有助于为摄像机设置正确的曝光和增益参数,还可能涉及摄像机的校准。至少可以使用两种方法。第一方法包括使用已知参数。可替代地,可以使用第二方法,第二方法包括收集具有一组固定参数的少数样本图像,并且基于样本图像计算摄像机参数。摄像机初始化/校准在本领域中是众所周知的,并且没有特定方法对本公开是关键的。
b)训练深度神经网络模型
接下来,可以训练神经网络模型(510)。应注意的是,该模型可以使用真实数据(即,具有相应ground truth深度信息/视差图的捕获图像)、使用合成数据(即,具有相应ground truth深度信息/视差图的计算机生成图像)或两者来训练。
在一个或多个实施方式中,神经网络(例如图4A-4N所示的神经网络模型)使用合成数据和真实数据两者进行训练(515)。可以从三维(3D)对象模型的合成场景生成合成训练数据。为了生成训练数据,可以将3D对象模型放置在虚拟空间中,并且可以模拟任意姿势的双目摄像机以获得成对的图像和相应的视差图。真实数据可以从深度传感设备收集,例如红绿蓝深度(RGBD)摄像机或光探测和测距(LIDAR)摄像机系统。
图6描绘了根据本公开实施方式的训练用于深度估计的深度神经网络模型的示例性方法。应注意,图6所示的实施方式考虑使用具有计算能力的工作站来训练神经网络,但是使用硬件加速器组件(该硬件加速器组件可能不像工作站那样具有计算能力)来部署经训练神经网络,是高效和廉价的。
在所描绘的实施方式中,可以使用(605)初始训练数据集以便使用一个或多个工作站以浮点模式训练神经网络,优选地具有一个或多个图形处理器单元(GPU),以帮助满足训练的繁重计算要求。在一个或多个实施方式中,初始训练数据集可以是合成训练数据(即,具有相应视差图的计算机生成图像)。
在浮点模式网络收敛于合成训练数据之后,可以使用第二组训练数据来执行(610)附加训练。在一个或多个实施方式中,第二组训练数据可以是真实图像连同其对应的视差图作为ground truth,以在真实数据上微调网络以便提高在真实环境中的性能。
在实施方式中,如果使用硬件加速器组件(该组件使用与训练工作站不同的位表示进行计算)进行部署,则可以使用不同的位表示来微调模型,以便将其更好地对准用于其部署。在一个或多个实施方式中,假设硬件加速器单元使用8位固定值表示,则可以在8位模式下对上述浮点网络执行8位训练微调(615),以产生其中网络参数被量化为8位表示的8位网络。
图7描绘了根据本公开的实施方式的微调(作为训练的一部分)浮点神经网络模型的方法,这通过模拟一定位表示以产生用于在使用该一定位表示的硬件加速器组件上使用的神经网络。为了说明的目的,假设工作站对值使用32位浮点表示,并且硬件加速器是使用8位固定点表示进行操作计算的FPGA,尽管可以使用其他表示和实现。如图7所示,在每一层的计算期间,用于网络操作的与图像相关的输入数据(例如,作为输入图像数据的数据或例如通过进行一个或多个先前操作而从输入图像数据导出的数据)可以从32位浮点值转换(705)为8位固定值表示。类似地,操作参数数据(例如,层的权重)可以从32位浮点值转换(710)为8位固定点值。在一个或多个实施方式中,输入数据和操作参数数据的这些8位固定表示的值被去量化(715)为32位浮点值。然后,在一个或多个实施方式中,使用去量化的32位浮点表示的值来执行(720)一个或多个神经网络操作(例如,层操作,诸如卷积、反卷积等),并且该一个或多个操作的结果数据可以作为32位浮点值输出(725)。应当注意,转换和去量化可能涉及到转换到一个或多个中间位表示。
图8以图形方式示出了该方法的替代实施方式。如图8所示,与图像相关的输入数据802可以从32位浮点表示的值转换(805)为18位浮点表示的值。在实施方式中,当CPU发起将数据写入硬件加速器组件的存储器(例如,双数据速率随机存取存储器(DDR RAM))的请求/命令时,硬件加速器可以自动处理该过程。应注意的是,层参数数据是固定的或相对固定的,并且可以以8位整数存储在存储器中。相反,每一层的输入数据改变并且具有不同的范围;因此,输入数据不在存储器中以8位直接表示。在实施方式中,浮点值用于该数据并且为了节省空间和时间,可以在存储器中使用更短的浮点值。在所描绘的实施方式中,使用18位浮点,但也可以使用其他大小,例如16位浮点。如图所示,为了执行层一个或多个操作计算,可以使用诸如每次ABSMAX方法(如下所述)的转换将18位浮点值动态地转换(810)为8位整数。图8中所描绘的实施方式的其余部分以与图7中所描绘的相同的方式进行。应注意,替代方法可包括更少或更多位表示转换。
关于将处理器单元使用的浮点位表示转换为硬件加速单元使用的固定位表示,图9图示了根据本公开的实施方式将在一个位表示方案中表示的值量化为不同位表示方案的方法。在图形描述中,顶行905表示第一位表示方案,在本示例中是32位浮点表示,但可以是不同的表示,而底行910表示第二位表示方案,在本示例中是8位浮点表示,但可以是不同的表示。在一个或多个实施方式中,层的参数数据或其它数据(每一个均一般地在下面称为“Blob”数据)的、与图像相关的输入数据的不同表示方案之间的转换可以如下转换:
BlobFix8=BlobFP32/ABSMAX*127 (1)
BlobFP32=BlobFix8/127*ABSMAX (2)
其中ABSMAX(ABS最大)是数据阵列(例如,在与图像相关的数据(“图像”)或在滤波器阵列(“滤波器”)中)的绝对值的最大值。
作为示例,使用量化数据的操作(例如卷积)可以如下执行:
其中ABSMAXImage是图像相关数据中的绝对最大值,ABSMAXFilter是操作过滤器参数中的绝对最大值。本领域技术人员应当认识到可以执行其他转换操作。
c)对神经网络模型的修改
返回图5、6、训练后的神经网络模型可以修改(515/620)用于部署,以有助于降低计算成本。在一个或多个实施方式中,发现通过除去数据增强层、采样层或两者,经训练的模型仍然表现良好,但需要较少的计算时间和费用。因此,对于部署的经训练的网络,可以除去这些层中的一个或多个;其示例可以通过比较用于训练的图4A-4N的神经网络模型实施方式和图3A-3M的部署的神经网络模型实施方式来看到。
需要注意的是,神经网络模型可能相比典型模型具有其他修改。在一个或多个实施方式中,可以从开端对神经网络模型进行这些改变。
在一个或多个实施方式中,神经网络模型中的至少两个早期卷积操作可被配置为分别对对应于第一图像和第二图像的图像相关数据操作,而不是对表示图像相关数据的组合的一组数据操作。例如,如图3和4所示,两个卷积,convol1s(图3A中的310-1/图4C中的410-1)和convol2s(图3B中的图310-2/图4C中的410-2)均分别对与两个输入图像相对应的数据进行操作,然后将结果级联,而不是对与两个输入图像相关的数据堆栈进行操作。在一个两倍大小的堆栈上操作,需要的卷积要大得多,这增加了存储器和计算需求。此外,在一个或多个实施方式中,这些卷积操作可以共享参数。由于这些都是早期卷积,所以它们对图像的低级别特征进行操作,这使得参数共享更加合适。后期操作在差异更显著的更高级别特征上操作,因此,参数共享可能会不太合适。此外,在实施方式中,对于高层,来自左侧和右侧两者的特征被混合以找到对应性和视差;因此,来自左侧和右侧图像的特征可能不会在整个模型中分离。因此,更高层的参数是不共享的,因为参数是用于组合的两个图像。
在另一些实施方式中,某些操作可减少信道的数量以帮助减少计算。例如,在一个或多个实施方式中,反卷积操作deconv5m(图3E中的310-11/图4F中的410-12)和卷积操作Conv6_1m(图3E中的310-10/图4F中的410-10)可以各自将信道数量减少一半。这种减少大大减轻了硬件加速单元的计算和存储器负担,但对训练模型的输出性能几乎没有负面影响。
与典型的深度神经网络不同,神经网络模型的实施方式可以采用简单的修正线性单元(ReLU),而不是更复杂的单元,例如泄漏ReLU或噪声ReLU。可以使用的示例性ReLU函数是:
同样,简单的RELU减少了计算成本,但不会严重影响神经网络的整体性能。
回到图5,一旦网络已被训练和修改,其就可以部署(520)以获得深度信息,例如视差图或深度图,给定立体图像作为输入。
2.使用部署的经训练神经网络模型进行深度估计
a)一般部署的方法实施方式
图10描绘了根据本公开的实施方式,使用具有硬件加速单元的经训练神经网络模型来实时(或近实时)地提供密集深度图信息的方法。在一个或多个实施方式中,深度图估计系统,例如图1所示的系统,用于捕获(1005)场景的一组体图像。这些图像表示场景的两个视图。在一个或多个实施方式中,可以通过让CPU向微控制器发送期望新的一对立体图像的信号来捕获图像。微控制器随后可使两个摄像机同时捕获图像。曝光完成后,图像数据可以经由微控制器从摄像机发送到CPU。例如,如果摄像机的分辨率为640×480,如果摄像机是灰色的,则CPU接收640×480×2×8字节的数据;如果摄像机是彩色的,则CPU接收640×480×2×3×8字节的数据。如前所述,系统可不包括微控制器,其功能可由CPU执行。应当注意,描绘的方法实施方式不包括初始化/校准阶段;但是,如果需要初始化/校准,则可以以如上所述的类似方式来执行。
在一个或多个实施方式中,输入图像数据随后可以根据部署的神经网络模型进行处理(1010),例如图3A3-M中所示的那样的神经网络模型。在一个或多个实施方式中,对于每对捕获的图像,CPU和硬件加速器组件协同运行部署的深度神经网络。例如,在一个或多个实施方式中,CPU可以控制一般工作流,并顺序地将一个或多个层的计算任务分配给硬件加速器组件。在一个或多个实施方式中,对于分配给硬件加速器组件的每个层,它从CPU和/或存储器获取数据和层参数,执行该层的计算(例如卷积、反卷积、级联等),并将处理的数据返回(1015)给CPU和/或存储器。
在一个或多个实施方式中,一旦获得最终结果(可以是深度图图像或深度图像数据和原始输入图像数据),则将其输出(1020)。该最终输出数据可存储以供以后使用,经由通信协议(例如通用串行总线(USB)、以太网、串行、并行等)传输和/或由相应系统或相同系统用于随后的任务。例如,深度图信息可用于自动驾驶车辆的障碍物检测。
在一个或多个实施方式中,在结果已被输出和/或使用之后,系统可以返回(1025)到捕获下一对立体图像的步骤以开始下一个周期。此过程可以重复,直到达到停止条件。停止条件取决于深度图信息的应用。在自动驾驶车辆的情况下,只要车辆处于运行,它就可以继续。其他停止条件可以包括获得设定数量的深度图、操作一定量的时间、操作直到接收到停止指令等。
G.硬件加速器组件量化的实施方式
如前所述,硬件加速器组件可以不使用与处理器单元(或多个单元)使用的位表示方案相同的位表示方案。因此,在一个或多个实施方式中,对于由硬件加速器组件处理的过程,所需数据(例如,输入数据和层参数)被转换为适当的位表示。例如,对于由硬件加速器组件处理的卷积层、反卷积层、级联等中的每一个,CPU和/或硬件加速器组件转换数字。图11图示了根据本公开的实施方式,用于在与处理器相关的位表示到硬件加速器组件位表示之间转换的方法,执行整数计算,并将整数转换回浮点数以供下一层使用。在图11所描绘的示例中,硬件加速器是FPGA,但如前所述,也可以使用其他组件。另外,应当注意,所描绘的实施方式示出了与所涉及的组件(即CPU 1160、FPGA存储器1165和FPGA芯片1170)相关的步骤;然而,这些步骤可以不同地分配,但仍属于本公开的范围。
为了说明所描绘的方法,假设CPU使用32位浮点表示的值,而FPGA硬件加速器使用8位固定点表示进行操作计算。如图11所示,在层的计算期间,可将用于操作的图像相关输入数据1102从32位浮点值的高精度转换(1105)为18位浮点值。当CPU发起将数据写入FPGA的DDR存储器1165的请求/命令时,硬件加速器可以自动处理该过程。然后,18位浮点表示中的值可以由FPGA 1170量化(1110)为8位固定表示值。在所描绘的实施方式中,操作参数数据(例如,层的权重)1104直接从32位浮点值转换(1115)为8位固定点值,并存储在FPGA的存储器1165中。在实施方式中,由于在部署时层权重不改变并且具有固定范围,因此它们在存储器中可以以8位直接表示。
在一个或多个实施方式中,当FPGA执行层操作计算时,FPGA访问其存储器中的输入数据并将其量化(1110),并且还访问已经在8位固定表示中的参数。这两组数据可以进行诸如固定乘法累加操作(1120)的操作来产生结果数据,该结果数据可以是64位固定表示。在一个或多个实施方式中,该结果数据可以被去量化(1125)为浮点32位表示。
在一个或多个实施方式中,该结果数据可以是可能经历一个或多个附加操作的临时或中间结果数据。例如,数据可以经历一个或多个附加操作(例如1130和1135),例如缩放、偏移、批规一化、ReLU操作、最大池化等。
一旦完成了FPGA将对该层执行的所有操作,结果数据就被转换(1140)为18位浮点表示并存储在存储器中。应注意,如果FPGA存储器支持32位浮点存储器,则可以跳过从CPU到FPGA存储器和从FPGA核到FPGA存储器的18位转换(1105和1140)。因此,应该注意,该方法可能涉及更少或更多的位表示转换。
最后,CPU可以访问存储的值,其中,值的18位浮点表示可以转换(1145)为32位浮点值。根据层阶段,输出结果1150可以是神经网络的最终结果(例如深度图),或者可以是神经网络的中间结果,其中这些结果可以用于后续层。例如,在实施方式中,阶段1140之后的结果可以是进入框1110的下一层的“图像”。
本领域技术人员将理解,前文的示例和实施方式是示例性的,并且不限制本公开的范围。旨在说明的是,在本领域的技术人员阅读本说明书并研究附图后将对本领域的技术人员显而易见的本发明的所有、置换、增强、等同、组合或改进包括在本公开的真实精神和范围内。还应注意,任何权利要求书的元素可不同地布置,包括具有多个从属、配置和组合。
Claims (20)
1.图像处理系统,包括:
处理器单元;以及
非暂时性计算机可读介质或媒介,包括一个或多个指令序列,所述一个或多个指令序列在由所述处理器单元执行时,致使执行步骤,所述步骤包括:
接收场景的一对图像,其中所述一对图像包括第一图像和第二图像;
使用所述一对图像和包括多个操作的经训练神经网络模型执行深度图推断,其中所述经训练神经网络模型的所述多个操作中的至少一些操作由通信地联接到所述处理器单元的硬件加速器组件执行;以及
输出包括到所述场景中的表面的距离信息的深度图;以及
硬件加速器组件,配置成使用与所述处理器单元使用的位表示不同的位表示来执行所述经训练神经网络模型的至少一些操作。
2.根据权利要求1所述的图像处理系统,其中,所述处理器单元使用浮点位表示进行操作,并且所述硬件加速器组件使用更少的位并使用固定位表示。
3.根据权利要求1所述的图像处理系统,其中,所述经训练神经网络模型至少部分地是通过使用位表示转换以模拟在部署所述经训练神经网络时将由所述硬件加速器组件执行的操作来训练神经网络模型而获得的。
4.根据权利要求3所述的图像处理系统,其中,使用位表示转换以模拟在部署所述经训练神经网络时将由所述硬件加速器组件执行的操作的步骤包括:
将用于所述操作的输入数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
将用于所述操作的操作参数数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
将所述输入数据的固定位表示和所述操作参数数据的固定位表示去量化为浮点表示;
使用所述输入数据和所述操作参数数据的所去量化的浮点表示执行所述操作;以及
从所去量化的浮点表示中的所述操作输出一组结果数据。
5.根据权利要求4所述的图像处理系统,其中,去量化的浮点值表示是所述处理器单元使用的浮点位表示。
6.根据权利要求3所述的图像处理系统,其中,用于训练的所述神经网络模型包括一个或多个数据增强层和一个或多个采样层,所述一个或多个数据增强层和所述一个或多个采样层在创建所述经训练神经网络模型时被除去,以提高部署期间的处理时间。
7.根据权利要求1所述的图像处理系统,其中,所述经训练神经网络模型通过在所述经训练神经网络模型中包括两个早期卷积操作来减少计算,每个早期卷积操作分开地对对应于所述第一图像和所述第二图像的图像相关数据进行操作,而不是对表示对应于所述第一图像和所述第二图像的所述图像相关数据的组合的一组数据进行操作,其中,所述两个早期卷积操作共享参数。
8.根据权利要求1所述的图像处理系统,其中,所述图像处理系统通过执行以下步骤,使用与所述处理器单元使用的位表示不同的位表示来执行所述经训练神经网络模型的至少一些操作,步骤包括:
将用于所述操作的输入数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
将用于所述操作的操作参数数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
使用所述输入数据的固定位表示和所述操作参数数据的固定位表示在所述硬件加速器单元处执行所述操作以获得结果数据;以及
将所述结果数据的固定位表示去量化为浮点表示。
9.根据权利要求8所述的图像处理系统,其中,所述结果数据是暂时结果数据,并且所述图像处理系统进一步执行以下步骤,包括:
在向所述处理器单元递交所述结果数据之前,使用所述硬件加速器单元对所述暂时结果数据的所去量化的固定位表示执行一个或多个操作。
10.图像处理系统,包括:
处理器单元;以及
非暂时性计算机可读介质或媒介,包括一个或多个指令序列,所述一个或多个指令序列在由所述处理器单元执行时,致使执行步骤,所述步骤包括:
接收场景的一对图像,其中所述一对图像包括第一图像和第二图像;
使用所述一对图像和包括多个操作的经训练神经网络模型执行深度图推断,所述多个操作包括多个卷积和反卷积,并且所述经训练神经网络模型配置为通过以下方式减少计算要求:
包括至少两个卷积操作,每个卷积操作分开地对对应于所述第一图像和所述第二图像的图像相关数据进行操作,而不是对对应于所述第一图像和所述第二图像的所述图像相关数据的组合进行操作,以及其中,所述两个早期卷积操作共享参数;以及
不包括一组数据增强操作和一组一个或多个采样操作,其中所述一组数据增强操作和所述一组一个或多个采样操作包括在从其获得所述经训练神经网络的神经网络模型中;以及
输出包括到所述场景中的表面的距离信息的深度图;以及
硬件加速器组件,通信地联接至所述处理器单元,配置成执行所述经训练神经网络模型的至少一些操作。
11.根据权利要求10所述的图像处理系统,其中,所述处理器单元使用浮点位表示进行操作,并且所述硬件加速器组件使用更少的位并使用固定位表示。
12.根据权利要求10所述的图像处理系统,其中,所述经训练神经网络模型至少部分地是通过使用位表示转换以模拟在部署所述经训练神经网络时将由所述硬件加速器组件执行的操作来训练神经网络模型而获得的。
13.根据权利要求12所述的图像处理系统,其中,使用位表示转换以模拟在部署所述经训练神经网络时将由所述硬件加速器组件执行的操作的步骤包括:
将用于所述操作的输入数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
将用于所述操作的操作参数数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
将所述输入数据的固定位表示和所述操作参数数据的固定位表示去量化为浮点表示;
使用所述输入数据和所述操作参数数据的所去量化的浮点表示执行所述操作;以及
从所去量化的浮点表示中的所述操作输出一组结果数据。
14.根据权利要求10所述的图像处理系统,其中,所述图像处理系统通过执行以下步骤,使用与所述处理器单元使用的位表示不同的位表示来执行所述经训练神经网络模型的至少一些操作,步骤包括:
将用于所述操作的输入数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
将用于所述操作的操作参数数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器单元使用的固定位表示;
使用所述输入数据的固定位表示和所述操作参数数据的固定位表示在所述硬件加速器单元处执行所述操作以获得结果数据;以及
将所述结果数据的固定位表示去量化为浮点表示。
15.根据权利要求14所述的图像处理系统,其中,所述结果数据是暂时结果数据,并且所述图像处理系统进一步执行以下步骤,包括:
在向所述处理器单元递交结果数据之前,使用所述硬件加速器单元对所述暂时结果数据的所去量化的固定位表示执行一个或多个操作。
16.处理图像数据以获得与由一对图像捕获的场景相关的深度信息的方法,所述方法包括:
在图像处理系统处接收所述场景的所述一对图像,所述一对图像包括第一图像和第二图像,所述图像处理系统包括:
处理器单元,配置成通过将经训练神经网络模型的至少一些计算任务分配给硬件加速器组件来协调所述经训练神经网络模型的工作流;
非暂时性计算机可读存储器,与所述处理器单元通信地联接,用于存储与所述一对图像相关的数据和包括与所述经训练神经网络相关的一个或多个指令序列的数据;以及
硬件加速器组件,与所述处理器单元通信地联接,配置成使用与所述处理器单元使用的位表示不同的位表示来执行经训练神经网络模型的至少一些操作;
使用所述图像处理系统,使用所述一对图像和包括多个操作的所述经训练神经网络模型执行深度图推断,其中所述经训练神经网络模型的所述多个操作中的至少一些操作由通信地联接到所述处理器单元的所述硬件加速器组件执行;以及
输出包括到所述场景中的表面的距离信息的深度图。
17.根据权利要求16所述的方法,其中,所述处理器单元使用浮点位表示进行操作,并且所述硬件加速器组件使用更少的位并使用固定位表示。
18.根据权利要求16所述的方法,其中,用于训练所述经训练神经网络模型的神经网络模型包括一个或多个数据增强层和一个或多个采样层,所述一个或多个数据增强层和所述一个或多个采样层在创建所述经训练神经网络模型时被除去,以提高部署期间的处理时间。
19.根据权利要求16所述的方法,其中,所述经训练神经网络模型通过在所述经训练神经网络模型中包括两个早期卷积操作来减少计算,每个早期卷积操作分开地对对应于所述第一图像和所述第二图像的图像相关数据进行操作,而不是对表示对应于所述第一图像和所述第二图像的所述图像相关数据的组合的一组数据进行操作,其中,所述两个早期卷积操作共享参数。
20.根据权利要求16所述的方法,其中,所述图像处理系统通过执行以下步骤,使用与所述处理器单元使用的位表示不同的位表示来执行所述经训练神经网络模型的至少一些操作,步骤包括:
将用于所述操作的输入数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器组件使用的固定位表示;
将用于所述操作的操作参数数据从所述处理器单元使用的浮点位表示转换为所述硬件加速器组件使用的固定位表示;
使用所述输入数据的固定位表示和所述操作参数数据的固定位表示在所述硬件加速器组件处执行所述操作以获得结果数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/115228 WO2019109336A1 (en) | 2017-12-08 | 2017-12-08 | Stereo camera depth determination using hardware accelerator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110574371A true CN110574371A (zh) | 2019-12-13 |
CN110574371B CN110574371B (zh) | 2021-12-21 |
Family
ID=66750686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780090034.6A Active CN110574371B (zh) | 2017-12-08 | 2017-12-08 | 使用硬件加速器的立体摄像机深度确定 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11182917B2 (zh) |
EP (1) | EP3607744A4 (zh) |
CN (1) | CN110574371B (zh) |
WO (1) | WO2019109336A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112819140A (zh) * | 2021-02-02 | 2021-05-18 | 电子科技大学 | 基于OpenCL的FPGA一维信号识别神经网络加速方法 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110248861B (zh) | 2018-01-07 | 2023-05-30 | 辉达公司 | 在车辆操纵过程中使用机器学习模型来引导车辆 |
CN110352153A (zh) | 2018-02-02 | 2019-10-18 | 辉达公司 | 自主车辆中用于障碍物躲避的安全程序分析 |
CN111095291B (zh) | 2018-02-27 | 2024-04-09 | 辉达公司 | 由自动驾驶车辆实时检测车道和边界 |
CN110494863B (zh) | 2018-03-15 | 2024-02-09 | 辉达公司 | 确定自主车辆的可驾驶自由空间 |
WO2019182974A2 (en) | 2018-03-21 | 2019-09-26 | Nvidia Corporation | Stereo depth estimation using deep neural networks |
WO2019191306A1 (en) | 2018-03-27 | 2019-10-03 | Nvidia Corporation | Training, testing, and verifying autonomous machines using simulated environments |
CN112534475B (zh) * | 2018-05-17 | 2023-01-10 | 奈安蒂克公司 | 深度估计系统的自我监督训练 |
US11966838B2 (en) | 2018-06-19 | 2024-04-23 | Nvidia Corporation | Behavior-guided path planning in autonomous machine applications |
US10922882B2 (en) * | 2018-10-26 | 2021-02-16 | Electronics Arts Inc. | Terrain generation system |
WO2020102733A1 (en) | 2018-11-16 | 2020-05-22 | Nvidia Corporation | Learning to generate synthetic datasets for training neural networks |
US11902496B2 (en) * | 2018-12-05 | 2024-02-13 | Fotonation Limited | Depth sensing camera system |
US20200202195A1 (en) * | 2018-12-06 | 2020-06-25 | MIPS Tech, LLC | Neural network processing using mixed-precision data representation |
WO2020140047A1 (en) | 2018-12-28 | 2020-07-02 | Nvidia Corporation | Distance to obstacle detection in autonomous machine applications |
US11170299B2 (en) | 2018-12-28 | 2021-11-09 | Nvidia Corporation | Distance estimation to objects and free-space boundaries in autonomous machine applications |
US11182916B2 (en) | 2018-12-28 | 2021-11-23 | Nvidia Corporation | Distance to obstacle detection in autonomous machine applications |
WO2020163390A1 (en) | 2019-02-05 | 2020-08-13 | Nvidia Corporation | Driving lane perception diversity and redundancy in autonomous driving applications |
WO2020185779A1 (en) | 2019-03-11 | 2020-09-17 | Nvidia Corporation | Intersection detection and classification in autonomous machine applications |
CN114667437A (zh) | 2019-08-31 | 2022-06-24 | 辉达公司 | 用于自主驾驶应用的地图创建和定位 |
WO2021046529A1 (en) | 2019-09-07 | 2021-03-11 | Embodied Intelligence, Inc. | Systems and methods for robotic picking and perturbation |
EP4025395A1 (en) | 2019-09-07 | 2022-07-13 | Embodied Intelligence, Inc. | Training artificial networks for robotic picking |
US20210069908A1 (en) * | 2019-09-07 | 2021-03-11 | Embodied Intelligence, Inc. | Three-dimensional computer vision system for robotic devices |
AU2020363882B9 (en) | 2019-10-11 | 2024-03-28 | Pindrop Security, Inc. | Z-vectors: speaker embeddings from raw audio using sincnet, extended cnn architecture, and in-network augmentation techniques |
CN112785483B (zh) * | 2019-11-07 | 2024-01-05 | 深南电路股份有限公司 | 一种数据处理加速的方法及设备 |
US11694341B2 (en) | 2019-12-23 | 2023-07-04 | Texas Instmments Incorporated | Cascaded architecture for disparity and motion prediction with block matching and convolutional neural network (CNN) |
US11978266B2 (en) | 2020-10-21 | 2024-05-07 | Nvidia Corporation | Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications |
DE102021107903A1 (de) * | 2021-03-29 | 2022-09-29 | Conti Temic Microelectronic Gmbh | Verfahren und System zur Schätzung von Tiefeninformationen |
US20230083161A1 (en) * | 2021-09-16 | 2023-03-16 | Accenture Global Solutions Limited | Systems and methods for low latency analytics and control of devices via edge nodes and next generation networks |
CN115426265B (zh) * | 2022-11-02 | 2023-04-18 | 之江实验室 | 一种多模态网络下交换资源分配优化方法及装置、介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW550519B (en) * | 2002-02-27 | 2003-09-01 | Silicon Integrated Sys Corp | Device for generating real-time anaglyph |
JP2012029169A (ja) * | 2010-07-26 | 2012-02-09 | Olympus Imaging Corp | 表示装置 |
US20130156278A1 (en) * | 2011-12-19 | 2013-06-20 | Electronics And Telecommunications Research Institute | Optical flow accelerator for motion recognition and method thereof |
US20140064608A1 (en) * | 2012-09-03 | 2014-03-06 | Knu University-Industry Cooperation Foundation | Method of transforming stereoscopic image and recording medium storing the same |
US20150170371A1 (en) * | 2013-12-18 | 2015-06-18 | Nokia Corporation | Method, apparatus and computer program product for depth estimation of stereo images |
US20160360174A1 (en) * | 2015-06-02 | 2016-12-08 | Samsung Electronics Co., Ltd. | Tonal-zone adaptive tone mapping |
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN106600583A (zh) * | 2016-12-07 | 2017-04-26 | 西安电子科技大学 | 基于端到端神经网络的视差图获取方法 |
CN106683182A (zh) * | 2017-01-12 | 2017-05-17 | 南京大学 | 一种权衡立体匹配和视觉外形的三维重建方法 |
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
US20170200092A1 (en) * | 2016-01-11 | 2017-07-13 | International Business Machines Corporation | Creating deep learning models using feature augmentation |
US20170286830A1 (en) * | 2016-04-04 | 2017-10-05 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107274445A (zh) * | 2017-05-19 | 2017-10-20 | 华中科技大学 | 一种图像深度估计方法和系统 |
CN107403415A (zh) * | 2017-07-21 | 2017-11-28 | 深圳大学 | 基于全卷积神经网络的压缩深度图质量增强方法及装置 |
CN107403221A (zh) * | 2016-05-03 | 2017-11-28 | 想象技术有限公司 | 卷积神经网络的硬件实现 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053562B1 (en) * | 2010-06-24 | 2015-06-09 | Gregory S. Rabin | Two dimensional to three dimensional moving image converter |
US20120019528A1 (en) | 2010-07-26 | 2012-01-26 | Olympus Imaging Corp. | Display apparatus, display method, and computer-readable recording medium |
JP6485732B2 (ja) * | 2014-12-10 | 2019-03-20 | 株式会社リコー | 情報提供装置、情報提供方法及び情報提供用制御プログラム |
EP3359048B1 (en) | 2015-10-08 | 2023-07-19 | Decision Sciences Medical Company, LLC | Acoustic orthopedic tracking system and methods |
US11106973B2 (en) * | 2016-03-16 | 2021-08-31 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and system for bit-depth reduction in artificial neural networks |
-
2017
- 2017-12-08 EP EP17933955.1A patent/EP3607744A4/en active Pending
- 2017-12-08 US US16/483,399 patent/US11182917B2/en active Active
- 2017-12-08 WO PCT/CN2017/115228 patent/WO2019109336A1/en unknown
- 2017-12-08 CN CN201780090034.6A patent/CN110574371B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW550519B (en) * | 2002-02-27 | 2003-09-01 | Silicon Integrated Sys Corp | Device for generating real-time anaglyph |
JP2012029169A (ja) * | 2010-07-26 | 2012-02-09 | Olympus Imaging Corp | 表示装置 |
US20130156278A1 (en) * | 2011-12-19 | 2013-06-20 | Electronics And Telecommunications Research Institute | Optical flow accelerator for motion recognition and method thereof |
US20140064608A1 (en) * | 2012-09-03 | 2014-03-06 | Knu University-Industry Cooperation Foundation | Method of transforming stereoscopic image and recording medium storing the same |
US20150170371A1 (en) * | 2013-12-18 | 2015-06-18 | Nokia Corporation | Method, apparatus and computer program product for depth estimation of stereo images |
US20160360174A1 (en) * | 2015-06-02 | 2016-12-08 | Samsung Electronics Co., Ltd. | Tonal-zone adaptive tone mapping |
US20170200092A1 (en) * | 2016-01-11 | 2017-07-13 | International Business Machines Corporation | Creating deep learning models using feature augmentation |
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
US20170286830A1 (en) * | 2016-04-04 | 2017-10-05 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
CN107403221A (zh) * | 2016-05-03 | 2017-11-28 | 想象技术有限公司 | 卷积神经网络的硬件实现 |
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN106600583A (zh) * | 2016-12-07 | 2017-04-26 | 西安电子科技大学 | 基于端到端神经网络的视差图获取方法 |
CN106683182A (zh) * | 2017-01-12 | 2017-05-17 | 南京大学 | 一种权衡立体匹配和视觉外形的三维重建方法 |
CN107274445A (zh) * | 2017-05-19 | 2017-10-20 | 华中科技大学 | 一种图像深度估计方法和系统 |
CN107403415A (zh) * | 2017-07-21 | 2017-11-28 | 深圳大学 | 基于全卷积神经网络的压缩深度图质量增强方法及装置 |
Non-Patent Citations (3)
Title |
---|
ALEX KENDALL,ET AL: "End-to-End Learning of Geometry and Context for Deep StereoRegression", 《2017 IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION (ICCV)》 * |
J. DIAZ,ET AL: "High performance stereo computation architecture", 《INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS, 2005.》 * |
MATTEO POGGI,ET AL: "Efficient Confidence Measures for Embedded Stereo", 《INTERNATIONAL CONFERENCE ON IMAGE ANALYSIS AND PROCESSING》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112819140A (zh) * | 2021-02-02 | 2021-05-18 | 电子科技大学 | 基于OpenCL的FPGA一维信号识别神经网络加速方法 |
CN112819140B (zh) * | 2021-02-02 | 2022-06-24 | 电子科技大学 | 基于OpenCL的FPGA一维信号识别神经网络加速方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200013176A1 (en) | 2020-01-09 |
US11182917B2 (en) | 2021-11-23 |
CN110574371B (zh) | 2021-12-21 |
WO2019109336A1 (en) | 2019-06-13 |
EP3607744A1 (en) | 2020-02-12 |
EP3607744A4 (en) | 2020-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110574371B (zh) | 使用硬件加速器的立体摄像机深度确定 | |
US10970518B1 (en) | Voxel-based feature learning network | |
JP6745328B2 (ja) | 点群データを復旧するための方法及び装置 | |
CN108229479B (zh) | 语义分割模型的训练方法和装置、电子设备、存储介质 | |
CN107438866B (zh) | 深度立体:学习从现实世界形象预测新视图 | |
JP2024001220A (ja) | 深層学習システム | |
KR20220029335A (ko) | 깊이 이미지를 보완하는 방법 및 장치 | |
CN112652057B (zh) | 生成人体三维模型的方法、装置、设备以及存储介质 | |
CN113920307A (zh) | 模型的训练方法、装置、设备、存储介质及图像检测方法 | |
CN110838122B (zh) | 点云的分割方法、装置及计算机存储介质 | |
JP2023512540A (ja) | リアルタイムオブジェクト検出及び語意分割の同時行いシステム及び方法及び非一時的なコンピュータ可読媒体 | |
CN114842121B (zh) | 贴图生成模型训练和贴图生成方法、装置、设备及介质 | |
CN113850900B (zh) | 三维重建中基于图像和几何线索恢复深度图的方法及系统 | |
CN112270332A (zh) | 一种基于子流稀疏卷积的三维目标检测方法及系统 | |
CN115880435B (zh) | 图像重建方法、模型训练方法、装置、电子设备和介质 | |
CN114677479A (zh) | 一种基于深度学习的自然景观多视图三维重建方法 | |
CN113129352A (zh) | 一种稀疏光场重建方法及装置 | |
CN110738730A (zh) | 点云匹配方法、装置、计算机设备和存储介质 | |
CN115205463A (zh) | 基于多球面场景表达的新视角图像生成方法、装置和设备 | |
CN110827341A (zh) | 一种图片深度估计方法、装置和存储介质 | |
JP7185194B2 (ja) | ポイントクラウドグローバルテトリスパッキング | |
Arranz et al. | Multiresolution energy minimisation framework for stereo matching | |
Perez-Vicente et al. | Point Cloud Generation with Stereo and Monocular Depth Estimation on FPGA | |
CN116452655B (zh) | 一种应用于mpis工控主板的贴合定位方法、装置、设备及介质 | |
CN113312979B (zh) | 图像处理方法、装置、电子设备、路侧设备及云控平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |