一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

深度光度学习(DPL)系统、装置和方法与流程

2022-09-15 06:35:27 来源:中国专利 TAG:

深度光度学习(dpl)系统、装置和方法
1.相关申请的交叉引用
2.本技术要求于2020年2月3日提交的美国临时申请序列 no.62/969,574的优先权,该美国临时申请的全部内容通过引用并入本文。
技术领域
3.本公开总体上涉及成像系统,更具体地,涉及生成由成像系统捕获的样本表面的3d重建。


背景技术:

4.光度立体技术可用于计算机视觉,以基于光的朗伯反射来估计深度和表面取向。可以根据使用具有不同照明方向的固定视角拍摄的输入图像,来计算物体的表面法线和反射率图。


技术实现要素:

5.在一些实施例中,本文公开了一种成像系统。成像系统包括成像装置和计算系统。成像装置包括相对于被配置为支撑样本的台定位在多个位置和多个角度处的多个光源。成像装置被配置为捕获样本的表面的多个图像。计算系统可以与成像装置通信。计算系统可以被配置为通过以下方式生成样本的表面的3d重建:通过从成像装置接收样本的表面的多个图像,通过成像装置经由深度学习模型生成基于多个图像的样本的表面的高度图,以及基于由深度学习模型生成的高度图输出样本的表面的3d重建。
6.在一些实施例中,本文公开了一种生成样本的表面的3d重建的方法。计算系统从成像装置接收位于成像装置的台上的样本的表面的多个图像。计算系统经由深度学习模型生成基于多个图像的样本的表面的高度图。计算系统基于由深度学习模型生成的高度图输出样本的表面的3d重建。
7.在一些实施例中,本文公开了一种非暂时性计算机可读介质。非暂时性计算机可读介质包括一个或更多个指令序列,当由一个或更多个处理器执行时,该一个或更多个指令序列使得计算系统执行操作。操作包括:通过计算系统,从成像装置接收位于成像装置的台上的样本的表面的多个图像。操作还包括:通过计算系统经由深度学习模型,生成基于多个图像的样本的表面的高度图。操作还包括:通过计算系统,基于由深度学习模型生成的高度图输出样本的表面的3d重建。
附图说明
8.为了能够详细理解本公开的上述列举的特征的方式,可以通过参考实施例来获得对上述简要概括的本公开的更具体的描述,其中一些实施例在附图中示出。然而,要注意的是,附图仅示出了本公开的典型实施例,因此不应被视为对本公开的范围的限制,因为本公开可以允许其他等效实施例。
9.图1是示出根据示例实施例的成像系统的框图。
10.图2示出了根据示例实施例的来自图1的成像系统的深度学习模块的示例性架构。
11.图3是示出根据示例实施例的训练深度学习模块的方法的流程图。
12.图4a是示出根据示例实施例的生成样本的3d重建的方法的流程图。
13.图4b是示出根据示例实施例的生成微观表面的3d重建的方法的流程图。
14.图5示出了根据示例实施例的样本的示例性3d重建。
15.图6a示出了根据示例实施例的系统总线计算系统架构。
16.图6b示出了根据示例实施例的具有芯片组架构的计算机系统。
17.为了便于理解,在可能的情况下,相同的参考数字已用于表示附图中共同的相同元件。在一个实施例中公开的元件可以有益地用于其他实施例而无需具体叙述是可预期的。
具体实施方式
18.光度立体可以是一种用于3d重建的技术,该技术可以通过从不同的照明角度计算物体的表面法线来执行。该技术可以有效地估计具有大特征的静态物体的高度轮廓,但通常不适用于具有较小特征的物体或在具有小凹陷的平坦环境中,例如在半导体晶片中。本文描述的一种或更多种技术提供了对使用光度立体的传统3d重建技术的改进。例如,本文描述的一种或更多种技术可以包括使用神经网络、伴随表面法线计算的进步的复合方法,以补偿预期噪声。一种或更多种技术包括在光度立体模型中结合样本噪声和不均匀样本照明的几种方法。在一些实施例中,下面讨论的建议模型可以展示合成和实验数据集上降低的噪声敏感性。这种方法可以实现复杂表面的快速检查和重建,而无需使用破坏性或昂贵的分析方法。
19.一般来说,用于深度估计的光度立体的大多数应用都是针对宏观尺度的物体。最近,通过正则化最小化方法计算反照率、表面法线和高度图的微观立体方法已被用于深度估计。然而,在将发光二极管(led)灯或其他光源设置在成像台附近的情况下,由于特征的大小和近场照明条件,使用微观输入图像给3d重建带来了挑战。这些表面和照明条件可能会限制经典光度立体在微观表面上的性能。
20.本文描述的一种或更多种技术利用深度光度学习模型来使用卷积神经网络对微观表面进行3d重建,而不是微观光度立体方法的熵最小化架构。例如,本文描述的一种或更多种技术可以包括使用合成和实验输入来训练深度学习模块,以将深度光度学习性能与经典光度立体实施进行比较。例如,在合成数据上,可以通过在合成输入图像中加入不均匀的照明轮廓、高斯噪声和表面倾斜来模拟非理想表面和照明条件,并分析深度光度习和光度立体方法对这些条件的鲁棒性。这种深度学习技术的使用可以减少系统对朗伯表面的依赖。
21.图1示出了根据示例性实施例的用于样本的倾斜照明和支撑在台上的样本的表面的3d重建的示例性计算环境100。如图所示,根据示例实施例,计算环境100可以包括与计算系统150通信的装置102。装置102 可以被配置为用一个或更多个光源104、106照射样本101。一个或更多个光源104、106可以被配置为将倾斜光108、110以一定角度朝向样本101 引导。倾斜照明可以作为反射光112从样本101的表面被反射。装置102 可以包括相机设备
114,相机设备114具有被配置为捕获反射光的图像传感器。在一些实施例中,光源104、106可以移动到位于物体周围的不同位置,其中在每个位置处拍摄图像。
22.在一些实施例中,装置102可以将相机设备114捕获的图像提供给计算系统150以用于处理。计算系统150可以经由一个或更多个通信信道与装置102通信。在一些实施例中,一个或更多个通信信道可以表示为经由互联网(例如蜂窝或wi-fi网络)的单独连接。在一些实施例中,一个或更多个通信信道可以使用直接连接(例如射频识别(rfid)、近场通信 (nfc)、蓝牙
tm
、低能耗蓝牙
tm
(ble)、wi-fi
tm
、zigbee
tm
、环境反向散射通信(abc)协议、usb、wan或lan)来连接终端、服务和移动设备。计算系统150可以被配置为分析由相机设备114捕获的图像并生成样本101的形貌。
23.如图所示,计算系统150可以包括预处理引擎152和深度学习模型 154。预处理引擎152和深度学习模型154中的每一个可以包括一个或更多个软件模块。一个或更多个软件模块可以是存储在介质(例如,计算系统150的存储器)上的代码或指令的集合,这些代码或指令的集合表示实施一个或更多个算法步骤的一系列机器指令(例如,程序代码)。这样的机器指令可以是处理器解释以实施指令的实际计算机代码,或者替代地,可以是被解释以获得实际计算机代码的指令的更高级别的编码。一个或更多个软件模块还可以包括一个或更多个硬件组件。示例算法的一个或更多个方面可以由硬件组件(例如,电路)本身执行,而不是作为指令的结果。
24.深度学习模型154可以被配置为生成样本的3d重建。在一些实施例中,可以使用一个或更多个合成训练数据集来训练深度学习模型154。为了创建合成数据集,预处理引擎152可以通过在空白高度图上随机放置多个(例如,100个)非重叠的半球来创建一个或更多个合成高度图。在一些实施例中,半径均匀地在大约四个到大约二十个像素之间的半球可以被添加作为正方向上的凸块和负方向上的孔(例如,反之亦然),其中高度表示为32位像素值。在一些实施例中,预处理引擎152可以进一步使用一个或更多个建模和渲染包在程序上将每个高度图转换为3d形状。在一些实施例中,预处理引擎152可以为多个照明光矢量(例如,八个照明光矢量)计算“点”光源的位置。对于每个光矢量,可以使用光线追踪引擎 (例如,cycles光线追踪引擎)渲染单色16位图像。
25.在一些实施例中,深度学习模型154可以实现卷积神经网络(cnn)。在一些实施例中,cnn模型可以类似于pytorch中的u-net模型。在一些实施例中,可以用三种类型的合成训练数据集训练深度学习模型154:没有噪声和没有倾斜的第一训练数据集(例如,“dpl”),具有固定量的高斯噪声但没有倾斜的第二训练集(例如,“dpln”),以及没有噪声但有倾斜的第三训练集(例如,dplt)。在一些实施例中,每个数据集包含大约500个训练示例。深度学习模型154的性能可以在各种大小的测试数据集上被量化。例如,测试数据集可以包括大小为10的dpl和dpln (增加可能被添加到初始数据集的输入图像的高斯噪声量)和大小为50 的dplt。
26.在一些实施例中,可以修改深度学习模型154以包括倾斜角作为具有倾斜的训练示例的附加输入。在一些实施例中,为了对实验数据进行验证,可以使用多个训练示例的数据集来重新训练深度学习模型154,该多个训练示例的数据集具有更好的匹配光照轮廓,并且深度学习模型154可以被专门生成以匹配实验光矢量。
27.在一些实施例中,计算系统150还可以包括集成引擎156。虽然深度学习模型154可
以被配置为直接预测最终高度图,但是在一些实施例中,深度学习模型154可以用于预测样本的局部表面。在预测样本的局部表面之后,集成引擎156可以被配置为使用该局部表面预测来生成高度图。例如,集成引擎156可以被配置为集成3d重建的表面法线以生成高度图。通常,可以根据法线图[n
x
,ny,nz]计算梯度图g=[p,q]。在一些实施例中,可以通过最小化以下函数来求解方程
[0028][0029]
在一些实施例中,欧拉-拉格朗日方程可能要求p和q满足泊松方程:
[0030][0031]
在一些实施例中,集成引擎156可以使用各种技术来求解泊松方程以计算高度图。
[0032]
图2示出了根据示例实施例的深度学习模型154的架构200。如图所示,架构200包括输入层202、多个卷积层204、多个激活层206、多个最大池化层208、多个上采样层210、多个连接层212和输出层214。在一些实施例中,输入层202可以具有6
×
1200
×
1200的维度。在一些实施例中,输出层214可以具有1
×
1200
×
1200的维度。
[0033]
图3是示出根据示例实施例的训练深度学习模型154的方法300的流程图。方法300可以开始于步骤302。
[0034]
在步骤302,计算系统150可以生成多个训练数据集。例如,预处理引擎152可以通过在空白高度图上随机放置多个(例如,100个)非重叠的半球来创建一个或更多个合成高度图。在一些实施例中,半径均匀地在大约四个到大约二十个像素之间的半球可以被添加作为正方向上的凸块和负方向上的孔(例如,反之亦然),其中高度表示为32位像素值。在一些实施例中,预处理引擎152可以进一步使用一个或更多个建模和渲染包在程序上将每个高度图转换为3d形状。在一些实施例中,预处理引擎 152可以为多个照明光矢量(例如,八个照明光矢量)计算“点”光源的位置。对于每个光矢量,可以使用光线追踪引擎(例如,cycles光线追踪引擎)渲染单色16位图像。
[0035]
在步骤304,计算系统150可以用多个训练数据集训练深度学习模型 154。例如,计算系统150可以训练深度学习模型154以生成基于多个训练数据集的高度图。在一些实施例中,计算系统150还可以用真实数据(例如,实际图像)训练深度学习模型154。
[0036]
在步骤306,计算系统150可以用实际图像测试深度学习模型154。例如,代替合成输入,计算系统150可以使用橡胶表面的实际微观图像来测试深度学习模型154。在一些实施例中,可以用固定的相机角度和不同的照明方向对每个样本拍摄多个(例如,6个)图像。与具有精确已知地面实况的合成数据不同,可以使用橡胶样本的地面实况高度测量值。
[0037]
在步骤308,计算系统150可以输出完全训练的深度学习模型154。例如,在训练和测试操作之后,深度学习模型154可以被完全训练以与装置102或其他类似装置一起使用。
[0038]
图4a是示出根据示例实施例的生成微观表面的3d重建的方法400 的流程图。方法400可以开始于步骤402。
[0039]
在步骤402,计算系统150可以接收样本的多个图像。例如,装置102 的一个或更多个光源104、106可以以各种角度将倾斜光108、110朝向样本101引导。装置102的相机设备114可以捕获反射光。在一些实施例中,光源104、106可以移动到位于物体周围的不同位置,
其中在每个位置处拍摄图像。这些图像中的每一个可以被提供给计算系统150以用于进一步处理。
[0040]
在步骤404,计算系统150可以被配置为基于多个图像生成样本的高度图。例如,计算系统150可以将多个图像作为输入提供给深度学习模型 154。深度学习模型154可以基于多个图像生成对应样本表面的高度图。
[0041]
在步骤406,计算系统150可以基于来自深度学习模型154的输出生成微观表面的3d重建。例如,计算系统150可以基于从深度学习模型154 输出的高度图生成微观表面的3d重建。
[0042]
图4b是示出根据示例实施例的生成微观表面的3d重建的方法450 的流程图。方法450可以开始于步骤452。
[0043]
在步骤452,计算系统150可以接收样本的多个图像。例如,装置102 的一个或更多个光源104、106可以以各种角度将倾斜光108、110朝向样本101引导。装置102的相机设备114可以捕获反射光。在一些实施例中,光源104、106可以移动到位于物体周围的不同位置,其中在每个位置处拍摄图像。这些图像中的每一个可以被提供给计算系统150以用于进一步处理。
[0044]
在步骤454,计算系统150可以被配置为基于多个图像生成样本的表面预测。例如,计算系统150可以将多个图像作为输入提供给深度学习模型154。深度学习模型154可以基于多个图像生成样本的表面预测。
[0045]
在步骤456,计算系统150可以基于样本的预测表面生成高度图。例如,集成引擎156可以集成3d重建的表面法线以生成高度图,如上所述。
[0046]
在步骤458,计算系统150可以基于来自深度学习模型154的输出生成微观表面的3d重建。例如,计算系统150可以基于从深度学习模型154 输出的高度图生成微观表面的3d重建。
[0047]
图5示出了根据示例实施例的样本的示例性3d重建500。如上所述, 3d重建500可以是在由深度学习模型154分析之后来自计算环境100的示例性输出。
[0048]
图6a示出了根据示例实施例的系统总线计算系统架构600。系统600 的一个或更多个组件可以使用总线605彼此电通信。系统600可以包括:处理器(例如,一个或更多个cpu、gpu或其他类型的处理器)610和将各种系统组件耦接到处理器610的系统总线605,各种系统组件包括系统存储器615,例如只读存储器(rom)620和随机存取存储器(ram)625。系统600可以包括直接连接处理器610、紧邻处理器610或集成为处理器 610的一部分的高速存储器的高速缓存。系统600可以将数据从存储器615 和/或存储设备630复制到高速缓存612以供处理器610快速访问。以此方式,高速缓存612可提供避免处理器610在等待数据时延迟的性能提升。这些模块和其他模块可以控制或被配置为控制处理器610以执行各种动作。也可以使用其他系统存储器615。存储器615可以包括具有不同性能特征的多种不同类型的存储器。处理器610可以表示为单个处理器或多个处理器。处理器610可以包括被配置为控制处理器610的通用处理器或硬件模块或软件模块(例如存储在存储设备630中的服务1632、服务2634 和服务3636)以及其中软件指令被整合到实际处理器设计中的专用处理器中的一个或更多个。处理器610本质上可以是完全独立的计算系统,包含多个核心或处理器、总线、存储控制器、高速缓存等。多核处理器可以是对称的或不对称的。
[0049]
为了实现与计算设备600的用户交互,输入设备645可以是任何数量的输入机构,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备635也可以是本领域技术人员已知的多种输出机构中的一种或更多种。在一些情况下,多模式系统可以使用户能够提供多种类型的输入以与计算设备600进行通信。通信接口 640通常可以支配和管理用户输入和系统输出。对在任何特定硬件布置上的操作没有限制,因此在开发过程中,此处的基本特征可以很容易地被替换为改进的硬件或固件布置。
[0050]
存储设备630可以是非易失性存储器并且可以是硬盘或是可以存储由计算机访问的数据的其他类型的计算机可读介质,例如盒式磁带、闪存卡、固态存储设备、数字多功能磁盘、暗盒、随机存取存储器(ram) 625、只读存储器(rom)620及其混合。
[0051]
存储设备630可以包括用于控制处理器610的服务632、634和636。其他硬件或软件模块也是可预期的。存储设备630可以连接到系统总线 605。一方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与诸如处理器610、总线605、显示器635等必要的硬件组件连接,以执行功能。
[0052]
图6b示出了根据示例实施例的具有芯片组架构的计算机系统650。计算机系统650可以是可用于实施所公开技术的计算机硬件、软件和固件的示例。系统650可以包括表示能够执行被配置为执行识别的计算的软件、固件和硬件的任意数量的物理和/或逻辑上的不同的资源的一个或更多个处理器655。一个或更多个处理器655可以与芯片组660通信,该芯片组660可以控制对一个或更多个处理器655的输入和来自一个或更多个处理器655的输出。在该示例中,芯片组660将信息输出到输出665,例如显示器,并且芯片组660可以读取和写入信息到存储设备670,该存储设备670可以包括例如磁介质和固态介质。芯片组660还可以从ram 675 读取数据以及向ram 675写入数据。可以提供用于与各种用户接口组件 685连接的桥680,以用于与芯片组660连接。这样的用户接口组件685 可以包括键盘、麦克风、触摸检测和处理电路、诸如鼠标的定点设备等等。通常,对系统650的输入可以来自机器生成的和/或人工生成的各种来源中的任何一种。
[0053]
芯片组660还可以与可能具有不同物理接口的一个或更多个通信接口690连接。这样的通信接口可以包括用于有线和无线局域网、宽带无线网络以及个域网的接口。用于生成、显示和使用本文公开的gui的方法的一些应用可以包括通过物理接口接收有序数据集,或者可以由机器本身通过一个或更多个处理器655分析存储在存储器670或675中的数据来生成用于生成、显示和使用本文公开的gui的方法的一些应用。此外,机器可以通过用户接口组件685接收来自用户的输入并执行适当的功能,例如通过使用一个或更多个处理器655解释这些输入的浏览功能。
[0054]
可以理解,示例系统600和650可以具有多于一个处理器610或者是联网在一起以提供更大处理能力的一组计算设备或集群计算设备的一部分。
[0055]
虽然前述内容针对本文描述的实施例,但可以设计其他和进一步的实施例而不背离其基本范围。例如,本公开的各方面可以以硬件或软件或硬件和软件的组合来实施。本文描述的一个实施例可以被实施为与计算机系统一起使用的程序产品。程序产品的程序定义了实施例的功能(包括本文描述的方法)并且可以包含在各种计算机可读存储介质上。说明性的计算机可读存储介质包括但不限于:(i)永久存储信息的不可写存储介质(例如,计算机内的只读存储器(rom)设备,诸如可由cd-rom驱动器读取的cd-rom磁盘、闪存、rom芯片或
任何类型的固态非易失性存储器);以及(ii)存储可变信息的可写存储介质(例如,软盘驱动器中的软盘或硬盘驱动器或任何类型的固态随机存取存储器)。当承载指导所公开实施例的功能的计算机可读指令时,这样的计算机可读存储介质是本公开的实施例。
[0056]
本领域技术人员将理解,前述示例是示例性的而非限制性的。在阅读说明书和研究附图后,所有排列、增强、等效和改进对于本领域技术人员而言是显而易见的,都被包括在本公开的真实本质和范围内。因此,以下所附权利要求旨在包括落入这些教导的真实本质和范围内的所有这样的修改、排列和等效。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献