图像矫正的制作方法

文档序号:32438555发布日期:2022-12-06 20:24阅读:40来源:国知局
图像矫正的制作方法

1.本公开总体上涉及车辆中的神经网络。


背景技术:

2.深度神经网络可以执行各种计算任务。例如,可以训练神经网络以变换图像。计算装置可以使用由深度神经网络变换的图像来操作系统,包括车辆、机器人、安全、产品制造和产品跟踪。图像可以由包括在系统中的传感器获取并使用深度神经网络进行处理以将图像变换成多个格式,然后可以通过包括在系统中的计算装置对这些格式做进一步处理。例如,可以将变换后的图像输入到第二深度神经网络以检测变换后的图像中的对象并基于检测到的对象来操作系统。


技术实现要素:

3.由包括在系统中的传感器获取的图像可以由包括在系统中的计算装置处理以允许对系统进行操作。车辆、机器人、制造系统、包裹搬运系统和安全系统都可以获取和处理图像数据以允许对系统进行操作。例如,车辆、机器人、制造系统、包裹搬运系统和安全系统可以获取图像数据并将图像数据输入到深度神经网络以检测图像数据中的对象。检测图像数据中的对象包括确定识别对象的标签以及定位图像中或系统周围的真实世界环境中的对象。可以将对象标签和位置输入到包括在系统中的计算装置以操作系统。例如,车辆中的计算装置可以确定要在其上操作的避免与标记为“车辆”或“行人”的对象接触的车辆路径。机器人中的计算装置可以引导末端执行器(诸如机器人臂上的夹持器)拾取检测到的对象。制造系统中的计算装置可以基于检测到一个或多个对象来引导制造系统组装部件。包裹搬运系统中的计算装置可以将检测到的对象引导到包裹搬运系统内的正确位置。安全系统中的计算装置可以基于对检测到的对象执行面部识别来授予或拒绝访问。
4.包括在系统中的图像或视频传感器可以包括鱼眼镜头。鱼眼镜头是超广角镜头,其允许传感器在竖直方向和水平方向上从涵盖高达180
°
的视野获取图像数据。鱼眼镜头因引入将直线映射为曲线的失真而不同于常规的直线镜头。直线镜头具有较小的视野,其避免将直线扭曲成曲线,并且对应于通常在相机中使用的镜头。鱼眼镜头具有从比直线镜头宽得多的视野获取图像数据的优点。具有鱼眼镜头的单个相机可以从需要具有直线镜头的若干相机来覆盖的视野获取数据。鱼眼相机是包括鱼眼镜头的相机,并且直线相机是包括直线镜头的相机。
5.包括在诸如车辆、机器人、制造系统、包裹搬运系统或安全系统等系统中的大多数图像处理软件(包括深度神经网络)依赖于用直线镜头获取的图像。用鱼眼镜头获取的图像可能需要在用包括深度神经网络的图像处理软件处理之前进行矫正。矫正可以变换鱼眼图像数据,以使图像数据看起来好像是用直线镜头获取的。矫正鱼眼图像可以将鱼眼图像中的曲线变换为直线,从而使经矫正图像适合于用包括深度神经网络的图像处理软件进行处理。对鱼眼图像进行矫正保持了具有超宽视野的单个图像传感器的优点,同时允许使用使
用直线图像训练的图像处理软件。
6.可以使用分析镜头模型来执行鱼眼图像矫正。图像矫正是对图像中的几何失真进行校正的数学变换。分析模型使用关于鱼眼镜头和相机系统的数据来确定对鱼眼图像进行去失真或矫正的变换。分析模型可能需要镜头和相机的失真模型,所述失真模型包括环境条件(诸如照明和距离)的表征。通常,失真模型需要使用与包括在要矫正的图像中的场景类似的图像数据进行准确校准,其中相似性包括照明和从相机到场景的部分的距离。确定鱼眼镜头和相机系统的失真模型可能需要易于出错并且消耗大量计算资源来完成的试错过程。
7.本文讨论的技术通过使用向量量化变分自动编码器(vq-vae)来矫正鱼眼图像来改进鱼眼图像矫正。vq-vae是可以通过用多个示例性图像训练vq-vae来训练以矫正鱼眼图像的神经网络。vq-vae可以在监督模式和无监督模式下进行训练,在监督模式下,使用鱼眼镜头和直线镜头两者获取的同一场景的示例是可用的,在无监督模式下,示例性鱼眼镜头图像和示例性直线镜头图像都是可用的,但同一场景的鱼眼图像和直线图像不必是成对的。使用vq-vae进行图像矫正通过学习从样本数据矫正鱼眼图像来避免针对各种操作环境和镜头的分析模型校准来改进鱼眼图像矫正。与通过试错法确定失真模型相比,训练vq-vae以矫正鱼眼图像可能更不容易出错并且消耗更少的计算资源。
8.如本文所述的车辆引导是使用具有经矫正的鱼眼图像数据的dnn的非限制性示例。例如,车辆中的计算装置可以被编程为利用鱼眼镜头相机获取关于车辆的外部环境的鱼眼图像数据、矫正鱼眼图像并使用dnn检测经矫正图像中的对象。可以训练dnn以标记和定位经矫正的图像数据中的对象。包括在车辆中的计算装置可以使用检测到的对象的标签和位置来确定在其上以自主或半自主模式操作车辆的车辆路径。车辆可以基于车辆路径通过确定命令来引导车辆的动力传动系统、制动和转向部件中的一者或多者操作车辆以沿着所述路径行驶,而在道路上操作。
9.本文公开了一种方法,所述方法包括:将鱼眼图像输入到向量量化变分自动编码器;使用编码器将鱼眼图像编码为第一潜在变量;基于嵌入式词典量化第一潜在变量以生成第二潜在变量;使用解码器将第二潜在变量解码成经矫正的直线图像;以及输出经矫正的直线图像。可以基于从向量量化变分自动编码器输出的经矫正的直线图像来操作车辆。可以通过控制车辆动力传动系统、车辆制动和车辆转向来操作车辆。可以在监督模式下使用包括成对的鱼眼图像和直线图像的训练数据集来训练向量量化变分自动编码器以将鱼眼图像变换为经矫正的直线图像。可以使用分析模型基于获取鱼眼图像的相机的失真模型来生成成对的鱼眼图像和直线图像。可以使用鱼眼相机和直线相机生成成对的鱼眼图像和直线图像。
10.可以将鱼眼图像输入到双向量量化变分自动编码器,所述双向量量化变分自动编码器输出经矫正的直线图像。可以在无监督模式下使用不成对的鱼眼图像和直线图像训练双向量量化变分自动编码器。可以使用循环一致性来训练双向量量化变分自动编码器,其中双向量量化变分自动编码器包括共享的潜在空间。可以使用鉴别器来训练向量量化变分自动编码器。鉴别器可以从伪图像确定真实图像。可以在第二计算机上训练向量量化变分自动编码器并将其下载到车辆中的计算机。可以在第二计算机上训练双向量量化变分自动编码器并将其下载到车辆中的计算机。操作车辆可以包括基于经矫正的直线图像来确定车
辆路径。
11.还公开了一种计算机可读介质,所述计算机可读介质存储用于执行上述方法步骤中的一些或全部的程序指令。还公开了一种计算机,所述计算机被编程用于执行上述方法步骤中的一些或全部,所述计算机包括计算机设备,所述计算机设备被编程为:将鱼眼图像输入到向量量化变分自动编码器;使用编码器将鱼眼图像编码为第一潜在变量;基于嵌入式词典量化第一潜在变量以生成第二潜在变量;使用解码器将第二潜在变量解码成经矫正的直线图像;以及输出经矫正的直线图像。可以基于从向量量化变分自动编码器输出的经矫正的直线图像来操作车辆。可以通过控制车辆动力传动系统、车辆制动和车辆转向来操作车辆。可以在监督模式下使用包括成对的鱼眼图像和直线图像的训练数据集来训练向量量化变分自动编码器以将鱼眼图像变换为经矫正的直线图像。可以使用分析模型基于获取鱼眼图像的相机的失真模型来生成成对的鱼眼图像和直线图像。可以使用鱼眼相机和直线相机生成成对的鱼眼图像和直线图像。
12.计算机设备还可以被编程为将鱼眼图像输入到双向量量化变分自动编码器,所述双向量量化变分自动编码器输出经矫正的直线图像。可以在无监督模式下使用不成对的鱼眼图像和直线图像训练双向量量化变分自动编码器。可以使用循环一致性来训练双向量量化变分自动编码器,其中双向量量化变分自动编码器包括共享的潜在空间。可以使用鉴别器来训练向量量化变分自动编码器。鉴别器可以从伪图像确定真实图像。可以在第二计算机上训练向量量化变分自动编码器并将其下载到车辆中的计算机。可以在第二计算机上训练双向量量化变分自动编码器并将其下载到车辆中的计算机。操作车辆可以包括基于经矫正的直线图像来确定车辆路径。
附图说明
13.图1是示例性深度神经网络系统的框图。
14.图2是示例性鱼眼图像的图示。
15.图3是示例性直线图像的图示。
16.图4是示例性向量量化变分自动编码器(vq-vae)的图示。
17.图5是被布置用于按循环一致性进行训练的示例性双vq-vae的图示。
18.图6是示例性双vq-vae生成式对抗网络的图示。
19.图7是用于使用经矫正图像来操作车辆的示例性过程的流程图图示。
具体实施方式
20.图1是对象检测系统100的图示,所述对象检测系统可以用可以自主(“自主”本身在本公开中意指“完全自主”)模式、半自主模式和乘员驾驶(也被称为非自主)模式操作的机器(诸如车辆110)实施。一个或多个车辆110的计算装置115可以从传感器116接收关于车辆110的操作的数据。计算装置115可以自主模式、半自主模式或非自主模式操作车辆110。
21.计算装置115包括诸如已知的处理器和存储器。另外,存储器包括一种或多种形式的计算机可读介质,并且存储指令,所述指令可由处理器执行来执行包括如本文所公开的各种操作。例如,计算装置115可包括编程以操作车辆制动、推进(例如,通过控制内燃发动机、电动马达、混合动力发动机等中的一者或多者来控制车辆110的加速度)、转向、气候控
制、内部灯和/或外部灯等中的一者或多者,并且确定计算装置115(而不是人类操作员)是否以及何时控制此类操作。
22.计算装置115可以包括多于一个计算装置(例如,包括在车辆110中以用于监测和/或控制各种车辆部件的控制器等等(例如,动力传动系统控制器112、制动控制器113、转向控制器114等)),或例如经由如下文进一步所描述的车辆通信总线通信地耦合到所述多于一个计算装置。计算装置115通常被布置用于通过车辆通信网络(例如,包括车辆110中的总线,诸如控制器局域网(can)等)通信;另外地或可选地,车辆110网络可以包括诸如已知的有线或无线通信机制,例如以太网或其他通信协议。
23.计算装置115可经由车辆网络向车辆中的各种装置(例如,控制器、致动器、传感器(包括传感器116)等)传输消息和/或从所述各种装置接收消息。替代地或另外,在计算装置115实际上包括多个装置的情况下,可以使用车辆通信网络来在本公开中表示为计算装置115的装置之间进行通信。另外,如下文所提及,各种控制器或感测元件(诸如传感器116)可经由车辆通信网络向计算装置115提供数据。
24.此外,计算装置115可被配置用于通过车辆对基础设施(v2i)接口111经由网络130与远程服务器计算机120(例如云服务器)通信,如下文所描述,所述接口包括硬件、固件和软件,所述硬件、固件和软件准许计算装置115经由诸如无线互联网或蜂窝网络的网络130与远程服务器计算机120通信。因此,v2i接口111可包括被配置为利用各种有线和/或无线联网技术(例如,蜂窝、以及有线和/或无线分组网络)的处理器、存储器、收发器等。计算装置115可以被配置用于使用例如在邻近车辆110之间在自组网的基础上形成或通过基于基础设施的网络形成的车辆对车辆(v2v)网络(例如根据专用短程通信(dsrc)和/或类似的通信)通过v2i接口111与其他车辆110通信。计算装置115还包括诸如已知的非易失性存储器。计算装置115可通过将数据存储在非易失性存储器中来记录数据,以供稍后检索并且经由车辆通信网络和车辆对基础设施(v2i)接口111传输到服务器计算机120或用户移动装置160。
25.如已经提及的,通常包括在存储在存储器中并可由计算装置115的处理器执行的指令中的是用于在没有人类操作员干预的情况下操作一个或多个车辆110部件(例如,制动、转向、推进等)的编程。使用在计算装置115中接收的数据(例如,来自传感器116的传感器数据、服务器计算机120等的数据),计算装置115可在没有驾驶员的情况下进行各种确定和/或控制各种车辆110部件和/或操作以操作车辆110。例如,计算装置115可包括编程以调节车辆110操作行为(即,车辆110操作的物理表现),诸如速度、加速度、减速度、转向等,以及策略性行为(即,通常以预期实现路线的安全而有效的穿越的方式进行的操作行为控制),诸如车辆之间的距离和/或车辆之间的时间量、车道改变、车辆之间的最小间隙、左转跨过路径最小值、到特定位置处的到达时间以及从到达到通过十字路口的十字路口(无信号灯)最短时间。
26.如本文所使用的术语控制器包括通常被编程来监测和/或控制特定车辆子系统的计算装置。示例包括动力传动系统控制器112、制动控制器113和转向控制器114。控制器可为诸如已知的电子控制单元(ecu),可能包括如本文所描述的附加的编程。控制器可通信地连接到计算装置115并且从所述计算装置接收指令以根据指令来致动子系统。例如,制动控制器113可从计算装置115接收指令以操作车辆110的制动器。
27.用于车辆110的一个或多个控制器112、113、114可包括已知的电子控制单元(ecu)等,作为非限制性示例,包括一个或多个动力传动系统控制器112、一个或多个制动控制器113和一个或多个转向控制器114。控制器112、113、114中的每一个可以包括相应的处理器和存储器以及一个或多个致动器。控制器112、113、114可以被编程并且连接到车辆110通信总线,诸如控制器局域网(can)总线或局域互连网(lin)总线,以从计算装置115接收指令并且基于指令而控制致动器。
28.本文讨论的计算装置(诸如计算装置115和控制器112、113、114)包括诸如已知的处理器和存储器。存储器包括一种或多种形式的计算机可读介质,并且存储可由处理器执行以用于执行包括如本文公开的各种操作的指令。例如,计算装置或控制器112、113、114、114可以是具有如上所述的处理器和存储器的通用计算机,和/或可以包括用于特定功能或功能集的电子控制单元(ecu)或控制器,和/或可以包括专用电子电路,所述专用电子电路包括针对特定操作制造的asic,例如用于处理传感器数据和/或传送传感器数据的asic。在另一个示例中,计算机104可以包括fpga(现场可编程门阵列),该fpga是被制造为可由用户配置的集成电路。通常,在电子设计自动化中使用诸如vhdl(超高速集成电路硬件描述语言)的硬件描述语言来描述诸如fpga和asic的数字和混合信号系统。例如,asic是基于制造前提供的vhdl编程而制造的,而fpga内部的逻辑部件可基于例如存储在电连接到fpga电路的存储器中的vhdl编程而配置。在一些示例中,处理器、asic和/或fpga电路的组合可包括在计算机中。
29.传感器116可包括已知经由车辆通信总线提供数据的各种装置。例如,固定到车辆110的前保险杠(未示出)的雷达可提供从车辆110到车辆110前方的下一车辆的距离,或者设置在车辆110中的全球定位系统(gps)传感器可提供车辆110的地理坐标。例如,由雷达和/或其他传感器116提供的一个或多个距离和/或由gps传感器提供的地理坐标可由计算装置115用来自主或半自主地操作车辆110。
30.车辆110通常是能够自主和/或半自主操作并且具有三个或更多个车轮的陆基车辆110(例如,客车、轻型卡车等)。车辆110包括一个或多个传感器116、v2i接口111、计算装置115以及一个或多个控制器112、113、114。传感器116可收集与车辆110和车辆110操作所处的环境相关的数据。作为举例而非限制,传感器116可包括例如测高仪、相机、激光雷达、雷达、超声波传感器、红外传感器、压力传感器、加速度计、陀螺仪、温度传感器、压力传感器、霍尔传感器、光学传感器、电压传感器、电流传感器、机械传感器(诸如开关)等。传感器116可用来感测车辆110操作所处的环境,例如,传感器116可检测诸如天气状况(降雨、外部环境温度等)的现象、道路坡度、道路位置(例如,使用道路边缘、车道标记等)或目标对象(诸如邻近车辆110)的位置。传感器116还可以用于收集数据,包括与车辆110的操作相关的动态车辆110数据,诸如速度、横摆率、转向角度、发动机转速、制动压力、油压、施加到车辆110中的控制器112、113、114的功率电平、在部件之间的连接性以及车辆110的部件的准确且及时的性能。
31.车辆可被配备成以自主模式和乘员驾驶模式两者操作。半自主模式或完全自主模式意指车辆可由作为具有传感器和控制器的系统的一部分的计算装置部分地或完全地驾驶的操作模式。车辆可能被占用或未被占用,但是在任一种情况下,都可在没有乘员协助的情况下部分地或完全地驾驶车辆。出于本公开的目的,自主模式被定义为车辆推进(例如,
经由包括内燃发动机和/或电动马达的动力传动系统)、制动和转向中的每一个由一个或多个车辆计算机控制的模式;在半自主模式中,车辆计算机控制车辆推进、制动和转向中的一个或多个。在非自主模式下,这些都不由计算机控制。
32.图2是示例性鱼眼图像200的图示。如在鱼眼图像200中可以看出,鱼眼图像200的在真实世界中通常表现为直线的部分(诸如建筑物202、204的边缘和道路车道标记206、208)在鱼眼图像200中看起来是弯曲的。鱼眼图像200中的直线的曲率是鱼眼镜头失真的函数,并且是由用于获取鱼眼图像200的鱼眼镜头提供的增大的视野的结果。
33.图3是示例性直线图像300的图示。直线图像300可以由相机使用生成直线图像300的镜头获取,或者通过处理鱼眼图像200来生成。鱼眼图像200可以用如本文关于图4和图5讨论的经训练的vq-vae进行处理,或使用如下面将关于图4讨论的分析模型进行处理。在直线图像300中,建筑物302、304的边缘和道路车道标记306、308表现为直线。直线图像300现在处于要输入到包括在系统100(例如,诸如车辆110)中的图像处理软件的状况。图像处理软件可以包括例如dnn,所述dnn可以检测直线图像300中的对象,诸如行人310、312或车辆314、316。
34.图4是vq-vae 400的图示。vq-vae 400是一种类型的神经网络,其是可以在计算装置115或服务器计算机120上执行的软件程序。例如,vq-vae 400可以在服务器计算机120上进行训练,然后将其下载到包括在车辆110中的计算装置115以输入由传感器116获取的鱼眼图像(in)402(所述传感器可以是摄像机,所述摄像机包括鱼眼镜头)并输出经矫正图像(out)414。经矫正图像414可以输出到在计算装置115上执行的包括dnn的图像处理软件。例如,来自dnn的输出可以用于操作车辆110。可以使用经矫正图像414在计算装置115上执行的图像处理软件任务的示例包括:代客泊车,其中计算装置115可以自主地定位车辆110并引导所述车辆行驶到停车点和从停车点驶离;以及自主可选驾驶模式(autosdm),其中计算装置115可以对路况进行分类(干的、湿的、有雪的等等)以用于设置对通过控制动力传动系统、制动和转向产生的所允许的横向加速度和纵向加速度的限制。代客泊车和autosdm都可以使用dnn来输入图像数据并输出关于车辆110周围环境中的对象的标签、位置和状况的预测。
35.vq-vae 400包括编码器(enc)404、第一潜在变量(lv1)406、量化器(qnt)408、第二潜在变量(lv2)410、解码器(dec)412。编码器404包括多个卷积层,所述多个卷积层用卷积核对输入的鱼眼图像402进行卷积,所述卷积核确定输入的鱼眼图像402中的每个像素应被重新定位到何处来矫正鱼眼图像402以生成经矫正图像414。通过将输入的鱼眼图像402的x,y分辨率从256x256个像素降低到64x64个像素,同时将每个像素的位深从用于灰度成像的一个八位通道增加到对应于例如连续的空间(即,实数空间)的256个通道,来将关于像素重新定位的数据编码在潜在变量406中。该示例假设256个通道对应于一维(1d)量化。其他x,y分辨率和通道数量是可能的。
36.64x64x256个潜在变量406被输入到量化器408。量化器408将潜在变量406中的每个256通道值减少到k个值的离散空间中,在本上下文中称为单热向量,其中k可以是任何整数。在训练时通过分析包括在每个256通道像素中的值以确定由256通道像素表示多少个不同状态来确定k个单热向量。量化是用于将具有大量值的大的状态空间划分为较小的部分集合的技术,所述部分各自可以由较少数量的值中的一个表示。例如,256通道空间可以被
划分为一系列部分,从0开始到第一数字s1,然后是第二部分,从数字s1开始一直到第二数字s2,等等,直到256通道空间根据一系列k个数字s1、
……
、si、
……
、sk划分为k个部分。256通道空间中在起始值si与结束值s
i+1
之间的所有值都被映射为值i。量化器408输入具有维度64x64x256的第一潜在变量406并输出具有维度64x64xk的第二潜在变量410。量化器408使用嵌入式词典将输入的潜在变量406映射到单热向量集合中。嵌入式词典是输入的潜在变量的有序列表,其执行将256通道空间映射为如上所讨论的较小值集合。词典被称为嵌入式词典,因为它是在vq-vae 400中确定的,而不是由vq-vae 400外部的单独过程构建的。
37.在vq-vae 400训练时确定k的值和数字s1、
……
、sk的值。通过相对于输入的鱼眼图像402分析输出的经矫正图像414,可以确定每对输入的鱼眼图像402和输出的经矫正图像414中的每个像素的像素重新定位数据。假定第一潜在变量中的256通道值对应于输入的鱼眼图像402,对像素重新定位数据进行平滑化和平均化可以确定可以产生输出的经矫正图像414的最小数量的像素重新定位值。像素重新定位值的最小数量是数量k,并且值s1、
……
、sk可以通过针对训练数据集中的每对鱼眼图像402和经矫正图像414将每个像素重新定位值与256通道值进行比较来确定。第二潜在变量410被传递到解码器412,所述解码器包括多个卷积层,所述多个卷积层将64x64xk第二潜在变量410扩展为256x256八位灰度经矫正图像414。
38.可以以监督方式训练vq-vae 400,其中对于训练数据集中的每个鱼眼图像402,同一场景的对应地面实况直线图像是可用的。可以通过使用分析模型执行图像矫正或者通过使用具有在鱼眼镜头相机获取鱼眼图像402的同时观看同一场景的直线镜头的第二相机来获取直线图像来获得地面实况直线图像。可以通过将鱼眼图像402输入到vq-vae 400多次来训练vq-vae 400,每次将地面实况直线图像与输出的经矫正图像414进行比较。可以通过将地面实况直线图像与输出的经矫正图像414逐像素地相减以确定两个图像之间的差的平方和来执行比较。差的平方和被输入到损失函数,所述损失函数被输入到编码器404和解码器412,在所述编码器和所述解码器处,所述损失函数通过卷积层反向传播。反向传播是一种用于将损失函数从后向前传递通过卷积层的技术,其中它用于选择用于对卷积层的卷积核进行编程的权重。选择使损失函数最小化的权重,即,产生最接近地面实况的输出的经矫正图像414的权重。
39.vq-vae 400可以被配置为通过将两个位附加到输入到vq-vae400的图像的每个像素来输入鱼眼图像402并输出经矫正图像414或者输入直线图像并输出鱼眼图像402。当两个位等于[1,0]时,图像被处理为鱼眼图像402以输出经矫正图像414。当两个位等于[0,1]时,输入图像被处理为直线图像以输出鱼眼图像402。训练vq-vae 400以完成该处理可以使用与训练vq-vae 400以处理鱼眼图像402所使用的相同的训练数据集,其中通过切换输入图像和地面实况图像将两个位加到每个输入图像的每个像素的开始。为了训练vq-vae 400以处理直线图像并输出鱼眼图像402,使用来自训练数据集的直线图像作为输入,并且使用来自训练数据集的对应鱼眼图像402作为地面实况。
[0040]
图5是被配置用于无监督训练的双向量量化变分自动编码器(双vq-vae)500的图示。无监督训练是用不包括成对的对应鱼眼图像和直线图像的训练数据集执行的训练。在无监督训练中,训练数据集包括鱼眼图像和直线图像两者,但不包括匹配对。双vq-vae 500包括鱼眼到鱼眼图像vq-vae 502和直线到直线vq-vae 504。对鱼眼到鱼眼图像vq-vae 502
进行训练以将鱼眼图像(in1)506输入到编码器/量化器(enc/q1)508,所述编码器/量化器以与以上来自图4的vq-vae 400的编码器404和量化器408相同的方式对输入的鱼眼图像506进行编码和量化。编码器/量化器508输出量化的潜在变量(lv1)510,所述量化的潜在变量被输入到解码器(dec1)512。解码器512重建量化的潜在变量510以输出重建的鱼眼图像514。使用鱼眼图像506的训练数据集作为输入和对应的地面实况两者来训练鱼眼到鱼眼图像vq-vae 502以从输入的鱼眼图像506重建鱼眼图像514。
[0041]
对直线到直线图像vq-vae 504进行训练以将直线图像(in2)516输入到编码器/量化器(enc/q2)518,以以与以上来自图4的vq-vae 400的编码器404和量化器408相同的方式形成量化的潜在变量(lv2)520。编码器/量化器518将量化的潜在变量520输出到解码器(dec2)522,所述解码器对量化的潜在变量520进行解码以输出经矫正图像(out2)524。使用直线图像的训练数据集作为输入和对应的地面实况两者来训练直线到直线图像vq-vaq 504以重建经矫正图像524。
[0042]
可以使用共享的潜在变量510、520和循环一致性来训练双vq-vae 500以输入鱼眼图像506并输出经矫正图像524以及输入直线图像516并输出鱼眼图像514。共享的潜在变量510、520包括允许双vq-vae 500交换526、530潜在变量的共享的潜在空间。当训练鱼眼到鱼眼图像vq-vae 502和直线到直线vq-vae 504时,通过使用单个嵌入式词典来共享潜在变量510、520。如上面关于图4所讨论的,通过在训练期间编译与编码的输入图像相对应的所有潜在变量的列表来确定嵌入式词典。然后处理嵌入式词典以确定多组潜在变量表示或可以由单个值表示的学习的词典条目。聚类分析是用于确定可以由编码器/量化器的量化器部分以单个值替换的潜在变量嵌入组的示例性技术。共享的潜在变量510、520是使用单个嵌入式词典和单个量化器值集合生成的。
[0043]
使用共享的潜在变量510、520允许在鱼眼到鱼眼图像vq-vae502与直线到直线vq-vae 504之间交换526、530潜在变量510、520。交换526由编码器/量化器518在直线到直线vq-vae 504中生成的潜在变量520允许鱼眼到鱼眼图像vq-vae 502响应于输入的直线图像516而对潜在变量520进行解码512以产生输出的鱼眼图像514。以同样的方式,交换526在鱼眼到鱼眼vq-vae 502中由编码器/量化器508生成的潜在变量510允许直线到直线vq-vae 504响应于输入的鱼眼图像506而输出经矫正图像524。
[0044]
双vq-vae 500的优点在于它可以以无监督方式进行训练,这意味着训练不需要成对的鱼眼图像和直线图像。使用循环一致性来训练双vq-vae 500。循环一致性是例如将鱼眼图像506输入到鱼眼到鱼眼vq-vae 502时。潜在变量510与直线到直线vq-vae 504交换526并输出为经矫正图像524。输出的经矫正图像524被传递回528以作为直线图像516输入,其中由直线到经矫正vq-vae 504编码器/量化器518对其进行处理并交换530以由解码器512解码并输出为鱼眼图像514。可以将输出的鱼眼图像514与输入的鱼眼图像514进行比较以确定可以用于训练鱼眼到鱼眼vq-vae 502和直线到直线vq-vae 504两者的损失函数。例如,可以用于生成损失函数的比较是差值的平方和。可以首先在不进行交换526、530的情况下训练鱼眼到鱼眼vq-vae 502和直线到直线vq-vae 504,然后使用潜在变量510、520交换526、530对其训练以确定循环一致性。以这种方式,可以训练双vq-vae 500以从鱼眼图像506输入生成经矫正图像524输出,并且从直线图像输入516生成鱼眼图像514输出。
[0045]
图6是vq-vae生成式对抗网络(gan)600的图示,所述网络包括如上面关于图5所讨
论的双vq-vae 500。vq-vae1 606包括来自包括在图5中的双vq-vae 500中的鱼眼到鱼眼vq-vae 502的编码器/量化器508、潜在变量510和解码器512。vq-vae2 608包括来自包括在图5中的双vq-vae 500中的直线到直线vq-vae 504的编码器/量化器518、潜在变量520和解码器522。vq-vae-gan 600输入鱼眼图像(in1)602和直线图像(in2)两者,并且包括如上面关于图5讨论的鱼眼到鱼眼vq-vae 606和直线到直线vq-vae 608。鱼眼到鱼眼vq-vae 606和直线到直线vq-vae 608分别输出重建的鱼眼图像(out1)610和变换后的直线图像(out2)612。在训练期间,两个鉴别器(鉴别器a(dis-a)614和鉴别器b(dis-b)616)分别接收输出的重建的鱼眼图像610和变换后的直线图像612。
[0046]
鉴别器a 614和鉴别器b 616是包括多个卷积层的神经网络。在训练期间,对鉴别器a 614和鉴别器b 616进行训练以分别将“真实”鱼眼图像和直线图像与“伪”鱼眼图像和直线图像区分开。“真实”鱼眼图像或直线图像是在不交换潜在变量的情况下已经直接通过鱼眼到鱼眼vq-vae 606和直线到直线vq-vae 608的图像。“伪”鱼眼图像或直线图像是在进行循环一致性交换526、530并第二次通过鱼眼到鱼眼vq-vae 606或直线到直线vq-vae 608之后已经重建的图像。例如,由vq-vae-gan 600错误地重建为鱼眼图像的直线图像将被鉴别器b 616确定为“伪”鱼眼图像。鉴别器a 614和鉴别器b 616输出从0到1的值,其中0对应于“伪”图像,并且1对应于“真实”图像。训练vq-vae-gan 600包括如上面关于图5所讨论的基于输入的鱼眼图像602以循环一致性模式训练鱼眼到鱼眼vq-vae 606和直线到直线vq-vae 608以输出重建的直线图像612。当鉴别器b 616确定基于输入的鱼眼图像602重建的输出直线图像612是“真实”直线图像时,训练完成。
[0047]
通过基于输出的鱼眼图像610、输出的直线图像612、来自鉴别器a 614的输出、来自鉴别器b 616的输出以及输入的鱼眼图像602和输入的直线图像604两者的地面实况来确定损失函数(loss)618来训练vq-vae-gan 600。损失函数618lg是鱼眼到鱼眼vq-vae606损失函数直线到直线损失函数第一循环一致性损失函数第二循环一致性损失函数鉴别器a 614损失函数和鉴别器b 616损失函数的函数。
[0048][0049]
其中
[0050][0051]
第一项log p(x|zq(x))是重建损失,其基于到鱼眼到鱼眼vq-vae 606和直线到直线vq-vae 608的输入x和来自它们的输出zq(x)来优化vq-vae-gan 600的编码器508、518和解码器512、522部分。是码本损失,其中ze(x)是与嵌入式词典e相比从编码器508、518输出的潜在变量510、520,并且sg是在前向计算时被约束为恒等算子的stopgradient算子并且具有零偏导数。是承诺损失并且包括常数β以防止嵌入式词典在嵌入e的增长不如编码器参数快的情况下任意增长。
[0052]
第一循环一致性损失函数第二循环一致性损失函数鉴别器a 614损失函数和鉴别器b 616损失函数由以下方程定义:
[0053]
600)提供了评估根据似然性所产生的样本的质量的能力,这可能允许进行分布外或异常值检测。可以通过检查响应于特定输入而产生的潜在变量与由嵌入式词典定义的空间之间的距离度量来确定似然性。
[0064]
图7是关于图1至图5描述的用于基于经矫正的鱼眼图像来操作系统的过程700的图示。过程700可以由计算装置115或服务器计算机120的处理器实施,例如将来自传感器的信息作为输入,以及执行命令,以及输出对象信息。过程700包括可以所示次序执行的多个框。可选地或另外地,过程700可包括更少的框,或者可包括以不同次序执行的框。例如,过程700可以在包括在车辆110中的计算装置115上实施。
[0065]
过程700开始于框702,其中在车辆110中的计算装置115获取鱼眼图像200、402、506、602。鱼眼图像200、402、506、602可以由包括在车辆110中的传感器116获取。例如,传感器116可以是包括鱼眼镜头的摄像机。鱼眼图像200、402、506、602可以是来自由计算装置115获取的视频序列的单个帧。
[0066]
在框704处,将鱼眼图像200、402、506、602输入到vq-vae 400、双vq-vae 500或vq-vae-gan 600。vq-vae 400、双vq-vae 500或vq-vae-gan 600都可以矫正鱼眼图像200、402、506、602并输出对应的直线图像300、414、524、612。vq-vae 400、双vq-vae500或vq-vae-gan 600之间的差异主要在于训练技术,即监督训练与无监督训练或包括gan的训练与没有gan的训练。尽管通过vq-vae 400、双vq-vae 500或vq-vae-gan 600的数据路径可能不同,但所有输入的鱼眼图像200、402、506、602都被编码、向量量化、解码和输出为对应的直线图像300、414、524、612。
[0067]
在框706处,vq-vae 400、双vq-vae 500或vq-vae-gan 600将对应于输入的鱼眼图像200、402、506、602的直线图像300、414、524、612输出到计算装置115。尽管来自vq-vae 400、双vq-vae500或vq-vae-gan 600的输出的直线图像300、414、524、612可能由于训练数据集和训练技术的差异而不同,但是输出的直线图像300、414、524、612都包括处于类似位置的所有相同对象,并且所有输出的直线图像都已经将来自鱼眼图像200、402、506、602的曲线变换为例如直线。
[0068]
在框708处,包括在计算装置115中的图像处理软件可以输入输出的直线图像300、414、524、612。例如,计算装置115中包括的图像处理软件可以是深度神经网络。可以训练深度神经网络以输入直线图像300、414、524、612并输出输入的直线图像300、414、524、612中的一个或多个对象的标签和位置。例如,深度神经网络可以标记和定位包括行人、车辆和道路车道标记的对象。
[0069]
在框710处,计算装置115可以使用输出的对象标签和位置来操作车辆110。例如,计算装置115可以确定用于操作车辆110的车辆路径,所述车辆路径在保持在道路车道标记内的同时避开行人和车辆。计算装置115可以通过经由控制器112、113、114控制车辆动力传动系统、车辆转向和车辆制动而引导车辆110沿着所确定的车辆路径操作。在框710之后,过程700结束。
[0070]
诸如本文讨论的那些的计算装置通常各自包括命令,所述命令可由诸如上文所识别的那些的一个或多个计算装置执行并且用于实施上文描述的过程的框或步骤。例如,上文论述的过程框可体现为计算机可执行命令。
[0071]
计算机可执行命令可以由使用各种编程语言和/或技术创建的计算机程序来编译
或解译,所述编程语言和/或技术单独地或组合地包括但不限于:java
tm
、c、c++、python、julia、visual basic、java script、perl、html等。一般来讲,处理器(例如,微处理器)接收例如来自存储器、计算机可读介质等的命令,并且执行这些命令,从而执行一个或多个过程,包括本文所述的过程中的一个或多个。此类命令和其他数据可存储在文件中并且使用多种计算机可读介质来传输。计算装置中的文件通常是存储在诸如存储介质、随机存取存储器等计算机可读介质上的数据的集合。
[0072]
计算机可读介质包括参与提供可由计算机读取的数据(例如,命令)的任何介质。此种介质可采用许多形式,包括但不限于非易失性介质、易失性介质等。非易失性介质包括例如光盘或磁盘以及其他持久性存储器。易失性介质包括通常构成主存储器的动态随机存取存储器(dram)。计算机可读介质的常见形式包括例如软磁盘、软盘、硬盘、磁带、任何其他磁性介质、cd-rom、dvd、任何其他光学介质、穿孔卡片、纸带、具有孔图案的任何其他物理介质、ram、prom、eprom、快闪eeprom、任何其他存储器芯片或盒式磁带、或者计算机可从中读取的任何其他介质。
[0073]
除非本文作出相反的明确指示,否则权利要求中使用的所有术语意在给出如本领域技术人员所理解的普通和通常的含义。具体地,除非权利要求叙述相反的明确限制,否则使用诸如“一个/种”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一者或多者。
[0074]
术语“示例性”在本文中以表示示例的意义使用,例如,对“示例性小部件”的引用应被解读为仅指代小部件的示例。
[0075]
修饰值或结果的副词“大约”意味着形状、结构、测量、值、确定、计算等可因为材料、加工、制造、传感器测量、计算、处理时间、通信时间等的缺陷而与确切描述的几何结构、距离、测量、值、确定、计算等有偏差。
[0076]
在附图中,相同的附图标记指示相同的要素。另外,可改变这些要素中的一些或全部。相对于本文描述的介质、过程、系统、方法等,应理解,尽管此类过程等的步骤或框已被描述为根据特定的有序顺序发生,但是此类过程可通过以本文描述的次序以外的次序执行所描述的步骤来实践。还应理解,可同时执行某些步骤,可添加其他步骤,或者可省略本文描述的某些步骤。换句话说,本文对过程的描述是出于说明某些实施例的目的而提供的,并且决不应解释为限制所要求保护的发明。
[0077]
根据本发明,提供了一种计算机,所述计算机具有:处理器;以及存储器,所述存储器包括指令,所述指令可由处理器执行以:将鱼眼图像输入到向量量化变分自动编码器;使用编码器将鱼眼图像编码为第一潜在变量;基于嵌入式词典量化第一潜在变量以生成第二潜在变量;使用解码器将第二潜在变量解码成经矫正的直线图像;以及输出经矫正的直线图像。
[0078]
根据实施例,指令包括用于进行以下操作的另外的指令:基于从向量量化变分自动编码器输出的经矫正的直线图像来操作车辆。
[0079]
根据实施例,指令包括用于进行以下操作的另外的指令:通过控制车辆动力传动系统、车辆制动和车辆转向来操作车辆。
[0080]
根据实施例,在监督模式下使用包括成对的鱼眼图像和直线图像的训练数据集来训练向量量化变分自动编码器以将鱼眼图像变换为经矫正的直线图像。
[0081]
根据实施例,指令包括用于进行以下操作的另外的指令:使用分析模型基于获取鱼眼图像的相机的失真模型来生成成对的鱼眼图像和直线图像。
[0082]
根据实施例,指令包括用于进行以下操作的另外的指令:使用鱼眼相机和直线相机来生成成对的鱼眼图像和直线图像。
[0083]
根据实施例,将鱼眼图像输入到双向量量化变分自动编码器,所述双向量量化变分自动编码器输出经矫正的直线图像。
[0084]
根据实施例,指令包括用于进行以下操作的另外的指令:在无监督模式下使用不成对的鱼眼图像和直线图像训练双向量量化变分自动编码器。
[0085]
根据实施例,指令包括用于进行以下操作的另外的指令:使用循环一致性来训练双向量量化变分自动编码器,其中双向量量化变分自动编码器包括共享的潜在空间。
[0086]
根据实施例,指令包括用于进行以下操作的另外的指令:使用鉴别器来训练向量量化变分自动编码器。
[0087]
根据实施例,鉴别器从伪图像确定真实图像。
[0088]
根据本发明,提供了一种方法,所述方法具有:将鱼眼图像输入到向量量化变分自动编码器;使用编码器将鱼眼图像编码为第一潜在变量;基于嵌入式词典量化第一潜在变量以生成第二潜在变量;使用解码器将第二潜在变量解码成经矫正的直线图像;以及输出经矫正的直线图像。
[0089]
在本发明的一个方面,所述方法包括基于从向量量化变分自动编码器输出的经矫正的直线图像来操作车辆。
[0090]
在本发明的一个方面,所述方法包括通过控制车辆动力传动系统、车辆制动和车辆转向来操作车辆。
[0091]
在本发明的一个方面,在监督模式下使用包括成对的鱼眼图像和直线图像的训练数据集来训练向量量化变分自动编码器以将鱼眼图像变换为经矫正的直线图像。
[0092]
在本发明的一个方面,所述方法包括使用分析模型基于获取鱼眼图像的相机的失真模型来生成成对的鱼眼图像和直线图像。
[0093]
在本发明的一个方面,所述方法包括使用鱼眼相机和直线相机来生成成对的鱼眼图像和直线图像。
[0094]
在本发明的一个方面,将鱼眼图像输入到双向量量化变分自动编码器,所述双向量量化变分自动编码器输出经矫正的直线图像。
[0095]
在本发明的一个方面,所述方法包括在无监督模式下使用不成对的鱼眼图像和直线图像训练双向量量化变分自动编码器。
[0096]
在本发明的一个方面,所述方法包括使用循环一致性来训练双向量量化变分自动编码器,其中双向量量化变分自动编码器包括共享的潜在空间。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1