图像去反光的方法、装置与流程

文档序号:20192653发布日期:2020-03-27 19:49阅读:893来源:国知局
图像去反光的方法、装置与流程

本申请涉及图像处理领域,并且更具体地,涉及图像去反光的方法、装置。



背景技术:

摄像头在拍摄图像时,由于反光现象会使得图像中出现反光区域,导致图像中部分区域被遮挡。以自动驾驶(automateddriving)或智能驾驶(intelligentdriving)场景为例,智能汽车(smart/intelligentcar)在执行自动驾驶(automateddriving)的过程中,受太阳照射以及夜间远近光等照射的影响,在车辆的车身、装饰以及在行驶的路面上会形成反射,成为反光区域。在反光区域中,图像的颜色、纹理结构受到严重破坏。在检测图像中的车辆、行人、交通信号、道路边界、车道线、障碍物等时会发生检测和跟踪错误。

现有技术中基于双目摄像头去除图像中的反光,通过对边缘图像中的每一个像素点计算得分,并通过阈值确定图像中的背景点和反光点。现有技术中需要计算每一个像素点的得分,其计算复杂度较高。



技术实现要素:

本申请提供一种图像去反光的方法、装置,可以去除图像中的反光区域,实现的复杂度较低。

第一方面,提供了一种图像去反光的方法,包括:获取同一时刻,针对同一目标,基于不同方位拍摄得到的至少两幅图像,其中,在这至少两幅图像中包括待去除反光的图像和至少一幅参考图像。对于每一幅该参考图像,根据参考图像和待去除反光的图像的重合图像区域生成一幅估计图像;再根据生成的至少一幅估计图像,对待去除反光的图像进行处理,得到去除反光后的图像。应理解,参考图像与待去除反光的图像不同。

上述技术方案中,参考图像是和待去除反光的图像是在同一时刻,针对同一目标,基于不同方位拍摄得到的,因此,在至少一幅参考图像中,和待去除反光的图像中的反光区域相对应的区域很可能不会存在反光,利用至少一幅参考图像和待去除反光的图像对反光区域进行估计,能够更有效地定位出该反光区域的位置,进而根据估计出的该反光区域对待去除反光的图像进行处理,得到去除反光后的图像。在自动驾驶领域中,利用摄像头或者摄像头组获取同一时刻,针对同一目标,基于不同方位拍摄得到多幅图像,将其中一些图像作为参考图像对待去除反光的图像进行处理,能够有效地避免图像中的反光区域对检测和跟踪目标的影响,可以从而有效减少自动驾驶发生事故的概率,提高自动驾驶的安全性。

在第一方面的一种可能的实现方式中,根据待去除反光的图像和至少一幅估计图像,确定待去除反光的图像中与至少一幅参考图像的重合图像区域的至少一个反光区域;在待去除反光的图像中,对至少一个反光区域中的图像进行恢复,得到去除反光后的图像。

上述技术方案中,反光区域是在图像中,由反光像素点聚集成的一块图像的区域。实际场景中,反光图像往往包含有一个或多个反光区域。具体实现中,可以结合至少一幅参考图像确定待去除反光的图像中的至少一个反光区域,并直接对至少一个反光区域进行处理,得到去除反光后的图像。其实现的复杂度较低,效率较高。

在第一方面的另一种可能的实现方式中,分别对每一幅该参考图像以及该待去除反光的图像进行特征点提取;建立每一幅该参考图像中和该待去除反光的图像中共有的特征点之间的映射关系;根据该映射关系,对每一幅该参考图像和该待去除反光的图像进行配准,生成一幅该估计图像。

上述技术方案中,特征点属于图像的局部特征,往往具有一定的鲁棒性,能够适应一定程度的图像拉伸、图像旋转等变形操作,采用特征点来对图像进行配准,能够确保配准的准确率。

在第一方面的另一种可能的实现方式中,根据该映射关系,以该待去除反光的图像为基准,对每一幅该参考图像进行以下操作中的至少一种:平移、旋转、伸缩,生成一幅所述估计图像。根据映射关系,通过对参考图像进行平移、旋转、伸缩等操作,能够确保参考图像和待去除反光的图像的配准效果。

在第一方面的另一种可能的实现方式中,通过尺度不变特征变换sift算法分别对每一幅该参考图像以及该待去除反光的图像进行特征点提取。

上述技术方案中,尺度不变特征变换(scale-invariantfeaturetransform,sift)算法可以对视角变化、仿射变换、噪声也保持一定程度的稳定性,其区分性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配,即使少数的几个物体也可以产生大量的sift特征向量,sift匹配算法甚至可以达到实时的要求。

在第一方面的另一种可能的实现方式中,对于每一幅该参考图像,分别将该参考图像和该待去除反光的图像输入视角转换模型,得到一幅该估计图像。

上述技术方案中,视角转换模型作为一个神经网络模型,具有自主学习的能力,因此,通过视角转换模型的训练和使用,使得得到的估计图像较为准确。

其中,该视角转换模型用于将该参考图像转换为在该待去除反光的图像的视角下的该估计图像。

在第一方面的另一种可能的实现方式中,对于每一幅该参考图像,分别将该参考图像,该待去除反光的图像以及该待去除反光的图像对应的深度信息输入到该视角转换模型,得到一幅该估计图像。

上述技术方案中引入了该待去除反光图像对应的深度信息,由于图像对应的深度信息可以更准确的反应图像的三维立体信息,因此,将参考图像,待去除反光的图像以及待去除反光的图像对应的深度信息输入到视角转换模型,使得视角转换模型可以根据待去除反光的图像对应的深度信息得到较为准确的估计图像。

在第一方面的另一种可能的实现方式中,在分别将该参考图像和该待去除反光的图像输入视角转换模型之前,该方法还包括:对于每一幅该参考图像,根据该参考图像和该待去除反光的图像训练得到该视角转换模型。

上述技术方案中,可以利用神经网络模型的自主学习能力,对神经网络模型进行训练,得到可以将该参考图像转换为在该待去除反光的图像的视角下的该估计图像的网络模型。

在第一方面的另一种可能的实现方式中,根据该待去除反光的图像中像素点的像素值和至少一幅该估计图像中像素点的像素值,确定该待去除反光的图像中与至少一幅该参考图像的重合图像区域的至少一个反光区域。

上述技术方案中,可以通过待去除反光的图像中像素点的像素值和至少一幅该估计图像中像素点的像素值确定待去除反光的图像中的至少一个反光区域,计算的复杂度较低。

在第一方面的另一种可能的实现方式中,若该待去除反光的图像与至少一幅该参考图像的重合图像区域中对应像素点的像素值的差值大于预设阈值,该像素点组成该待去除反光的图像中的至少一个反光区域。

在反光区域中,像素点具有较高亮度值,甚至超出摄像头成像元件的感光范围而达到饱和。因此,通过检测待去除反光的图像和至少一幅参考图像的重合图像区域中的对应像素点的像素值(譬如:图像的亮度分量)的差值,如果其差值大于预设的阈值,则认定这个像素点属于反光点,由这些反光点组成的区域就构成了反光区域。

在第一方面的另一种可能的实现方式中,若该待去除反光的图像与至少一幅该参考图像的重合图像区域中对应像素点的像素值的差值小于预设阈值,在该待去除反光的图像中对该像素点进行滤波处理。

上述技术方案中,待去除反光的图像与至少一幅该参考图像的重合图像区域中对应像素点的像素值的差值小于预设阈值的像素点往往属于摄像头拍摄图像的噪声点,对这些像素点进行滤波处理,从而对待去除反光的图像进行了局部噪声的滤除,从而避免该像素点对确定去除反光的图像中的至少一个反光区域产生影响。

在第一方面的另一种可能的实现方式中,根据该待去除反光的图像中与至少一幅该参考图像的重合图像区域的至少一个反光区域中对应像素点的像素值之差,对该待去除反光的图像进行处理,得到去除反光后的图像。

上述技术方案中,可以通过至少一幅估计图像对待去除反光的图像中的至少一个反光区域进行恢复,得到去除反光后的图像。

第二方面,提供了一种图像去反光的装置,包括:

获取模块,用于获取同一时刻,针对同一目标,基于不同方位拍摄得到的至少两幅图像,其中,在这至少两幅图像中包括待去除反光的图像和至少一幅参考图像。该至少一幅参考图像与该待去除反光的图像不同;

生成模块,用于对于每一幅该参考图像,根据该参考图像和该待去除反光的图像的重合图像区域生成一幅估计图像;

处理模块,用于根据生成的至少一幅该估计图像,对该待去除反光的图像进行处理,得到去除反光后的图像。

在第二方面的一种可能的实现方式中,该处理模块具体用于:根据该待去除反光的图像和至少一幅该估计图像,确定该待去除反光的图像中与至少一幅该参考图像的重合图像区域的至少一个反光区域;在该待去除反光的图像中,对至少一个反光区域中的图像进行恢复,得到该去除反光后的图像。

在第二方面的另一种可能的实现方式中,该生成模块具体用于:分别对每一幅该参考图像以及该待去除反光的图像进行特征点提取;建立每一幅该参考图像中和该待去除反光的图像中共有的特征点之间的映射关系;根据该映射关系,对每一幅该参考图像和该待去除反光的图像进行配准,生成该估计图像。

在第二方面的另一种可能的实现方式中,该生成模块具体用于:根据该映射关系,以该待去除反光的图像为基准,对每一幅该参考图像进行以下操作中的至少一种:平移、旋转、伸缩。

在第二方面的另一种可能的实现方式中,该生成模块具体用于:通过尺度不变特征变换sift算法分别对每一幅该参考图像以及该待去除反光的图像进行特征点提取。

在第二方面的另一种可能的实现方式中,该生成模块具体用于:对于每一幅该参考图像,分别将该参考图像和该待去除反光的图像输入视角转换模型,得到该估计图像,其中,该视角转换模型用于将该参考图像转换为在该待去除反光的图像的视角下的该估计图像。

在第二方面的另一种可能的实现方式中,该生成模块还用于:对于每一幅该参考图像,分别将该参考图像,该待去除反光的图像以及该待去除反光的图像对应的深度信息输入到该视角转换模型,得到该估计图像。

在第二方面的另一种可能的实现方式中,还包括:

训练模块,用于对于每一幅该参考图像,根据该参考图像和该待去除反光的图像训练得到该视角转换模型。

在第二方面的另一种可能的实现方式中,该处理模块具体用于:根据该待去除反光的图像中像素点的像素值和至少一幅该估计图像中像素点的像素值,确定该待去除反光的图像中与至少一幅该参考图像的重合图像区域的至少一个反光区域。

在第二方面的另一种可能的实现方式中,该处理模块具体用于:若该待去除反光的图像与至少一幅该参考图像的重合图像区域中对应像素点的像素值的差值大于预设阈值,该像素点组成该待去除反光的图像中的至少一个反光区域。

在第二方面的另一种可能的实现方式中,该处理模块还用于:若该待去除反光的图像与至少一幅该参考图像的重合图像区域中对应像素点的像素值的差值小于预设阈值,在该待去除反光的图像中对该像素点进行滤波处理。

在第二方面的另一种可能的实现方式中,该处理模块具体用于:根据该待去除反光的图像中与至少一幅该参考图像的重合图像区域的至少一个反光区域中对应像素点的像素值之差,对该待去除反光的图像进行处理,得到去除反光后的图像。

第二方面和第二方面的任意一个可能的实现方式的有益效果和第一方面以及第一方面的任意一个可能的实现方式的有益效果是对应的,对此,不再赘述。

第三方面,提供了一种车载管理系统,包括:摄像头,用于获取同一时刻,针对同一目标,基于不同方位拍摄得到的至少两幅图像,其中,该至少两幅图像中包括待去除反光的图像和至少一幅参考图像,该参考图像与该至少一幅待去除反光的图像不同,以及如第二方面或第二方面的任意一种可能实现方式所提供的图像去反光的装置。

可选地,本申请所提供的车遭管理系统还可获取待去除反光的图像对应的深度信息。该深度信息的获取方式有多种,一种可能的实现方式中,可以通过雷达获取图像的深度信息。另一种可能的实现方式中,还可以通过专用的深度相机获取图像的深度信息。另一种可能的实现方式中,还可以通过双目相机获取到左视图和右视图,并根据左视图和右视图之间的视差信息获取图像的深度信息。

第四方面,提供了一种图像去反光的装置,包括处理器和存储器,其中该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该寡核苷酸的合成装置执行第一方面或第一方面任意一种可能的实现方式提供的方法。

可选地,在具体实现中,该处理器的个数不做限制。该处理器可以是通用处理器,可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。

第五方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能的实现方式中的方法。

第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述执行第一方面或第一方面任意一种可能的实现方式中的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-onlymemory,rom)、可编程rom(programmablerom,prom)、可擦除的prom(erasableprom,eprom)、flash存储器、电eprom(electricallyeprom,eeprom)以及硬盘驱动器(harddrive)。

第七方面,提供一种芯片,该芯片包括处理器与数据接口,其中,处理器通过所述数据接口读取存储器上存储的指令,以执行第一方面或第一方面任意一种可能的实现方式中的方法。在具体实现过程中,该芯片可以以中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)、微处理器(microprocessingunit,mpu)、数字信号处理器(digitalsignalprocessing,dsp)、片上系统(systemonchip,soc)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或可编辑逻辑器件(programmablelogicdevice,pld)的形式实现。

附图说明

图1是本申请实施例提供的车辆上的车载管理系统100的功能框图。

图2是本申请实施例提供的车载管理系统101的硬件示意图。

图3是本申请实施例提供的一种云侧指令自动驾驶车辆的应用示意图。

图4是本申请实施例提供的一种图像的去反光的方法的示意性流程图。

图5是本申请实施例提供的一种图像去反光的方案原理示意图。

图6是本申请实施例提供的另一种图像的去反光的方法的示意性流程图。

图7是本申请实施例提供的一种深度学习模型100的示意性框图。

图8是本申请实施例提供的视角转换模型的训练方法的示意性流程图。

图9是本申请实施例提供的另一种图像的去反光的方法的示意性流程图。

图10是本申请实施例提供的另一种图像的去反光的方法的示意性流程图。

图11是本申请实施例提供的一种图像去反光的装置800的示意性结构图。

图12是本申请实施例提供的一种图像去反光的装置900的示意性结构图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,ai基础理论等。

自动驾驶是人工智能领域的一种主流应用,自动驾驶技术依靠计算机视觉、雷达、监控装置和全球定位系统等协同合作,让机动车辆可以在不需要人工主动操作下,实现自动驾驶。自动驾驶的车辆使用各种计算系统来帮助将乘客从一个位置运输到另一位置。一些自动驾驶车辆可能要求来自操作者(诸如,领航员、驾驶员、或者乘客)的一些初始输入或者连续输入。自动驾驶车辆准许操作者从手动模操作式切换到自东驾驶模式或者介于两者之间的模式。由于自动驾驶技术无需人工来驾驶机动车辆,所以理论上能够有效避免人工的驾驶失误,减少交通事故的发生,且能够提高公路的运输效率。因此,自动驾驶技术越来越受到重视。

作为示例,自动驾驶通过车辆上安装的各式各样的传感器检测出道路和障碍物,自主地进行驾驶操作。从而提升驾驶的安全性,降低交通事故发生率,为社会和经济的发展减少人员和经济的损失。同时,自动驾驶也可以与智能交通系统配合,更合理地分配道路资源,缓解城市拥堵。

下面结合图1-图3介绍本申请实施例的所应用的系统功能框图。

图1是本申请实施例所应用的车辆上的车载管理系统100的功能框图。

在一个实施例中,将车辆配置为完全或部分地自动驾驶模式。并且可通过人为操作来确定车辆及其周边环境的当前状态。作为示例,可以确定周边环境中的至少一个其他车辆的可能行为,确定周边环境中的行人、车道线、障碍物、红绿灯等。并基于所确定的周边环境的当前状态来控制车辆。在车辆处于自动驾驶模式中时,可以将车辆置为在没有和人交互的情况下操作。

车辆中的车载管理系统100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统112和用户接口116。下面分别对车载管理系统100中的子系统进行详细描述。

可选地,车辆可包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,车辆100的每个子系统和元件可以通过有线或者无线互连。

行进系统102可包括为车辆提供动力运动的组件。在一个实施例中,推进系统102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如,汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。

能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其他系统提供能量。

传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。

在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。

传感器系统104可包括感测关于车辆周边的环境的信息的若干个传感器。

例如,传感器系统104可包括定位系统122(定位系统可以是全球定位系统(globalpositioningsystem,gps)系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertialmeasurementunit,imu)124、雷达126、激光测距仪128以及相机(摄像头或者摄像头组)130。传感器系统104还可包括被监视车辆的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆的安全操作的关键功能。

定位系统122可用于估计车辆的地理位置。imu124用于基于惯性加速度来感测车辆的位置和朝向变化。在一个实施例中,imu124可以是加速度计和陀螺仪的组合。

雷达126可利用无线电信号来感测车辆的周边环境内的物体。在一些实施例中,除了感测物体以外,雷达126还可用于感测物体的速度和/或前进方向。在一些实施例中,雷达126还可用于感测周围环境的三维深度信息。

激光测距仪128可利用激光来感测车辆所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其他系统组件。

相机(摄像头或者摄像头组)130可用于捕捉车辆的周边环境的多个图像。相机130可以是静态相机或视频相机。作为示例,可以在车辆的前后保险杠、侧视镜、挡风玻璃上可以分别安装至少一个相机(摄像头或者摄像头组)130。

控制系统106为控制车辆及其组件的操作。控制系统106可包括各种元件,其中包括转向系统132、油门134、制动单元136、计算机视觉系统140、路线控制系统142以及障碍物避免系统144。

转向系统132可操作来调整车辆的前进方向。例如在一个实施例中可以为方向盘系统。

油门134用于控制引擎118的操作速度并进而控制车辆的速度。

制动单元136用于控制车辆减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制车辆的速度。

计算机视觉系统140可以用于操作和分析由相机(摄像头或者摄像头组)130捕捉的图像,以便识别车辆周边环境中的物体和/或特征。所述物体和/或特征可包括但不限于:周边环境中的车辆、行人、交通信号、道路边界、车道线、障碍物等。计算机视觉系统140可使用物体识别算法、运动中恢复结构(structurefrommotion,sfm)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。

应理解,计算机视觉系统140可以是一个车载数据中心,该车载数据中心中可以包括图像处理单元、感知单元等。其中,图像处理单元用于对相机130捕捉的图像进行处理,感知单元用于操作和分析由相机130捕捉的图像,以便识别车辆周边环境中的物体和/或特征。

路线控制系统142用于确定车辆的行驶路线。在一些实施例中,路线控制系统142可结合来自计算机视觉系统140、gps122和一个或多个预定地图的数据为车辆确定行驶路线。

障碍物避免系统144用于结合计算机视觉系统140中识别的物体和/或特征,来评估和避免或者以其他方式越过车辆的环境中的潜在障碍物。

当然,在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。

车辆通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线通信系统146、车载电脑148、麦克风150和/或扬声器152。

在一些实施例中,外围设备108提供车辆的用户与用户接口116交互的手段。例如,车载电脑148可向车辆的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。用户可以通过车载电脑148的触摸屏进行操作。在其他情况中,外围设备108可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆的用户输出音频。

无线通信系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统146可使用第三代(3thgeneration,3g)蜂窝通信,例如码分多址(codedivisionmultipleaccess,cdma)、全球移动通讯(globalsystemofmobilecommunication,gsm)/通用分组无线业务(generalpacketradioservice,gprs),或者第四代(4thgeneration,4g)蜂窝通信,例如长期演进(longtermevolution,lte)。或者第五代(5thgeneration,5g)蜂窝通信。无线通信系统146可与无线局域网(wirelesslocalareanetwork,wlan)通信。在一些实施例中,无线通信系统146可利用红外链路、蓝牙与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统146可包括一个或多个专用短程通信(dedicatedshortrangecommunications,dsrc)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。

电源110可向车辆的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。

车辆的部分或所有功能受计算机系统112控制。计算机系统112可包括至少一个处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机系统112还可以是采用分布式的方式来控制车辆的个体组件或子系统的多个计算设备。

处理器113可以是任何常规的处理器,诸如中央处理器(centralprocessingunit,cpu)。可选地,该处理器可以是诸如专用集成电路(applicationspecificintegratedcircuit,asic)或其它基于硬件的处理器的专用设备。尽管图1功能性地图示了处理器、存储器、和在相同块中的计算机110的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机110的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,所述处理器只执行与特定于组件的功能相关的计算。

在此处所描述的各个方面中,处理器可以位于远离该车辆并且与该车辆进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。

在一些实施例中,数据存储装置114可包含指令115(例如,程序逻辑),指令115可被处理器113执行来执行车辆100的各种功能,包括以上描述的那些功能。数据存储装置114也可包含额外的指令,包括向推进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。

除了指令115以外,数据存储装置114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆在自主、半自主和/或手动模式中操作期间被车辆和计算机系统112使用。

用户接口116,用于向车辆的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线通信系统146、车车在电脑148、麦克风150和扬声器152。

计算机系统112可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制车辆的功能。例如,计算机系统112可利用来自控制系统106的输入以便控制转向单元132来避免由传感器系统104和障碍物避免系统144检测到的障碍物。在一些实施例中,计算机系统112可操作来对车辆及其子系统的许多方面提供控制。

可选地,上述这些组件中的一个或多个可与车辆分开安装或关联。例如,数据存储装置114可以部分或完全地与车辆分开存在。上述组件可以按有线和/或无线方式来通信地耦合在一起。

可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1不应理解为对本申请实施例的限制。

可选地,车辆或者与车辆相关联的计算设备(如图1的计算机系统112、计算机视觉系统140、数据存储装置114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测所述识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆能够基于预测的所述识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定车辆的速度,诸如,车辆在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。

除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。

上述车辆可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本申请实施例不做特别的限定。

图2是本申请实施例所应用的车载管理系统101对应的硬件示意图。

如图2所示的自动驾驶系统包括计算机系统101,其中,计算机系统101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(videoadapter)107,显示适配器可以驱动显示器109,显示器109和系统总线105耦合。系统总线105通过总线桥111和输入输出(input/output,i/o)总线113耦合。i/o接口115和i/o总线耦合。i/o接口115和多种i/o设备进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(mediatray)121(例如,紧凑型光盘只读储存器(compactdiscread-onlymemory,cd-rom),多媒体接口等)。收发器123(可以发送和/或接受无线电通信信号),摄像头155(可以捕捉动态数字视频图像)和外部通用串行总线(universalserialbus,usb)接口125。其中,可选地,和i/o接口115相连接的接口可以是usb接口。

其中,处理器103可以是任何传统处理器,包括精简指令集计算(reducedinstructionsetcomputer,risc)处理器、复杂指令集计算(complexinstructionsetcomputer,cisc)处理器或上述的组合。可选地,处理器可以是诸如专用集成电路(applicationspecificintegratedcircuit,asic)的专用装置。可选地,处理器103可以是神经网络处理器或者是神经网络处理器和上述传统处理器的组合。

可选地,在本文所述的各种实施例中,计算机系统101可位于远离自动驾驶车辆的地方,并且可与自动驾驶车辆无线通信。在其它方面,本文所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。

计算机101可以通过网络接口129和软件部署服务器149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可以是内部网络,比如以太网或者虚拟私人网络(virtualprivatenetwork,vpn)。可选地,网络127还可以是无线网络,比如蜂窝网络等。

硬盘驱动接口和系统总线105耦合。硬件驱动接口和硬盘驱动器相连接。系统内存135和系统总线105耦合。运行在系统内存135的数据可以包括计算机101的操作系统137和应用程序143。

操作系统包括解析器139(shell)和内核141(kernel)。shell139是介于使用者和操作系统之内核(kernel)间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。

内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供cpu时间片管理、中断、内存管理、io管理等等。

应用程序143包括控制汽车自动驾驶相关的程序,比如,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。应用程序143也存在于部署服务器(deployingserver)149的系统上。在一个实施例中,在需要执行应用程序147时,计算机系统101可以从部署服务器(deployingserver)149下载应用程序143。

例如,应用程序141还可以是控制自动驾驶车辆避免与其它车辆碰撞的程序。

传感器153和计算机系统101关联。传感器153用于探测计算机101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物、车道线、交通信号、人行横道等,进一步传感器还可以探测上述动物,汽车,障碍物、车道线、交通信号、人行横道等物体周围的环境,比如:动物周围的环境,例如,动物周围出现的其他动物,天气条件,周围环境的光亮度等。可选地,如果计算机101位于自动驾驶的汽车上,传感器可以是摄像头,红外线感应器,化学检测器,麦克风等。

计算机系统112还可以从其它计算机系统接收信息或转移信息到其它计算机系统。或者,从车辆的传感器系统104收集的传感器数据可以被转移到另一个计算机对此数据进行处理。

例如,图3是本申请实施例提供的一种云侧指令自动驾驶车辆的应用示意图。如图3所示,来自计算机系统312的数据可以经由网络被传送到云侧的服务器320用于进一步的处理。网络以及中间节点可以包括各种配置和协议,包括因特网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个公司的专有通信协议的专用网络、以太网和超文本传输协议(hypertexttransferprotocol,http)、以及前述的各种组合。这种通信可以由能够传送数据到其它计算机和从其它计算机传送数据的任何设备,诸如调制解调器和无线接口。

在一个示例中,服务器320可以包括具有多个计算机的服务器,例如负载均衡服务器群,为了从计算机系统312接收、处理并传送数据的目的,其与网络的不同节点交换信息。该服务器可以被类似于计算机系统312配置,具有处理器330、存储器340、指令350、和数据360。

示例性地,服务器320的数据360可以包括自动驾驶车辆周围道路情况的相关信息。例如,服务器320可以接收、检测、存储、更新、以及传送与自动驾驶车辆道路情况的相关信息。

例如,自动驾驶车辆周围道路情况的相关信息包括与自动驾驶车辆的预测行驶路径具有交汇点的其他车辆的位置信息以及运动参数的信息,比如,其他车辆当前的位置信息、其他车辆的速度信息、其他车辆的预测行驶轨迹信息等。

如果上述传感器系统104中的若干个传感器感测到的周边环境的部分信息被遮挡,计算机视觉系统140则不能根据若干个传感器感测到的周边环境准确的识别出车辆100周边环境中的车辆、行人、交通信号、道路边界、车道线、障碍物等。

以传感器系统104中的相机130作为示例。车辆在执行自动驾驶的过程中,受太阳照射以及夜间远近光等照射的影响,在车辆的车身、装饰以及在行驶的路面上会形成反射,使得相机130拍摄的视野内反光现象不可避免。当车辆视轴方向接近其他车辆或者路面被照射区域的镜面角会聚区域内,导致该区域成为摄像头拍摄区域中的反光区域。在反光区域中,像素点具有较高亮度值,甚至超出摄像头成像元件的感光范围而达到饱和。此时,图像的颜色、纹理结构受到严重破坏。计算机视觉系统140在检测图像中的车辆、行人、交通信号、道路边界、车道线、障碍物等时会发生检测和跟踪错误,导致相机130拍摄到的图像中的车辆、行人、交通信号、道路边界、车道线、障碍物等不能被计算机视觉系统140准确识别,从而可能导致交通事故的发生。

本申请实施例提供了一种图像去反光的方法,可以去除图像中的反光区域。在自动驾驶领域中,可以避免反光区域对检测和跟踪目标的影响,可以从而有效减少自动驾驶发生事故的概率,提高自动驾驶的安全性。下面结合图4,对本申请实施例提供的一种图像的去反光的方法进行详细描述。

下面介绍本申请的方法实施例。

图4是本申请实施例提供的一种图像的去反光的方法的示意性流程图。

应理解,图4所示的方法可以由计算机视觉系统140执行。具体的,计算机视觉系统140中的图像处理单元在对相机(摄像头或者摄像头组)130捕捉的待去除反光的图像中的反光区域处理之后,可以将得到的去除反光后的图像传输至计算机视觉系统140中的感知模块。以便于感知单元对去除反光后的图像进行分析,从而准确识别车辆周边环境中的物体和/或特征。下面结合步骤410-430进行详细描述。

步骤410:获取同一时刻,针对同一目标,基于不同方位拍摄得到的至少两幅图像,其中,所述至少两幅图像中包括待去除反光的图像和至少一幅参考图像。

本申请实施例中可以通过至少两个相机(摄像头或者摄像头组)130获取至少两幅图像,其中,该至少两个相机130是位于不同的方位,在同一时刻对同一目标进行拍摄。也就是说,位于不同方位的至少两个相机130在同一时刻拍摄到的至少两幅图像中包括相同的区域。

至少两个相机(摄像头或者摄像头组)130位于不同的方位的具体实现方式有多种。一种可能的实现方式中,上述至少两个相机130可以部署在车辆100的相同的位置,但是不同的视角,分别在同一时刻对同一目标进行拍摄。另一种可能的实现方式中,至少两个相机130还可以是部署在车辆100不同的位置,相同或不同的视角,分别在同一时刻对同一目标进行拍摄。

可选地,本申请实施例还可以在获取到上述至少两幅图像之后,确定至少两幅图像中的待去除反光的图像以及参考图像。具体的,由于在反光区域中,像素点具有较高的亮度值,该亮度值甚至超出了相机130元件的感光范围而达到饱和,此时,图像的颜色、纹理结构受到严重破坏。因此,可以图像中像素点的亮度值确定至少两幅图像中的待去除反光的图像。至少两幅图像中除了待去除反光的图像之外的其他至少一幅图像可以称为参考图像。

例如,参见图5(示出了本申请实施例的图像去反光的方案原理示意图),图像a为确定的通过至少两个相机(摄像头或者摄像头组)130获取到的待去除反光的图像。参考图像b1、参考图像b2…为确定的通过至少两个相机(摄像头或者摄像头组)130获取到的上述至少一幅参考图像。图像a与每一幅参考图像(参考图像b1、参考图像b2…)均包括相同的区域,该区域也可以称为重合图像区域。

需要说明的是,本申请实施例中可以获取一幅参考图像b1,或者也可以获取多幅参考图像b1、参考b2…,对此不做具体限定。

步骤420:对于每一幅所述参考图像,根据所述参考图像和所述待去除反光的图像的重合图像区域生成估计图像。

每一幅参考图像和待去除反光的图像之间均包括重合区域,本申请实施例中可以对于每一幅参考图像,根据参考图像和待去除反光的图像的重合图像区域生成估计图像。对于有每一幅的参考图像,可以分别生成一幅估计图像。

应理解,该估计图像可以是基于待去除反光的图像,对参考图像进行处理,得到待去除反光的图像对应的估计图像。

例如,参见图5,对于参考图像b1,可以根据参考图像b1和待去除反光的图像a的重合图像区域生成估计图像b1`。同样的,如果还获取到参考图像b2、参考图像b3…,分别生成估计图像b2`、估计图像b3`…。

上述生成估计图像的具体的实现方式有多种,一种可能的实现方式中,可以对待去除反光的图像和每一幅参考图像进行特征点的提取,并根据待去除反光的图像与每一幅参考图像之间共有的特征点之间的映射关系,对待去除反光的图像与每一幅参考图像记性配准,生成待去除反光的图像对应的估计图像。另一种可能的实现方式中,可以根据神经网络模型,对每一幅参考图像进行视角转换,生成在待去除反光的图像的视角下的估计图像。下面会结合具体的实施例进行详细描述,此处不再赘述。

步骤430:根据至少一幅所述估计图像,对所述待去除反光的图像进行处理,得到去除反光后的图像。

本申请实施例中可以根据至少一幅估计图像,对所述待去除反光的图像进行处理,得到去除反光后的图像。

一种可能的实现方式中,可以根据待去除反光的图像和至少一幅估计图像,确定待去除反光的图像与至少一幅参考图像中重合图像区域中的至少一个反光区域(也可以称为反光估计),并对该至少一个反光区域中的图像进行恢复,得到去除反光后的图像。

例如,参见图5,如果仅获取一幅参考图像b1,确定待去除反光的图像a和参考图像b1中重合图像区域中的反光估计d1。如果还获取到参考图像b2、参考图像b3…,同样的,根据上述方法确定待去除反光的图像a和参考图像b2中重合图像区域中的反光估计d2,根据上述方法确定待去除反光的图像a和参考图像b3中重合图像区域中的反光估计d3。

应理解,如果仅获取一幅参考图像b1,待去除反光的图像a与参考图像中重合图像区域中的反光区域为d=d1。

如果获取到至少二幅参考图像,例如,参考图像b1、参考图像b2、参考图像b3…,可以根据参考图像b1、参考图像b2、参考图像b3…分别对应的反光估计d2、d3…确定待去除反光的图像a与参考图像中重合图像区域中的反光区域d。具体的实现方式有多种,一种可能的实现方式中,可以对多个反光估计d1、d2、d3求均值,得到反光估计d=mean{d1,d2,d3…},其中,mean{}表示求平均值。另一种可能的实现方式中,可以对多个反光估计d1、d2、d3进行区域叠加,d=d1+d2+d3…。即将根据多个参考图像(参考图像b1、参考图像b2、参考图像b3…)确定的待去除反光的图像a中的多个反光估计(反光估计d1、d2、d3)做或操作。

需要说明的是,对于多个反光估计中重叠的区域,可以取像素值较大的区域作为待去除反光的图像a中的反光区域。

本申请实施例中可以在确定出待去除反光的图像a中的反光估计d之后,对待去除反光的图像a中的反光估计d进行恢复,得到去除反光后的图像。

本申请实施例提供的技术方案,能够有效的去除图像中的反光干扰。在自动驾驶领域中,去除图像反光的方法可以增强自动驾驶过程中视觉感知的稳定性,有效减少自动驾驶发生事故的概率,提高自动驾驶的安全性。

本申请实施例,步骤420中生成估计图像的实现方式有多种,一种可能的实现方式是通过特征点匹配法生成估计图像,另一种可能的实现方式是通过深度学习模型生成估计图像。

下面以特征点匹配法生成估计图像为例,对本申请实施例提供的图像的去反光的方法的具体实现过程进行详细描述。

图6是本申请实施例提供的另一种图像的去反光的方法的示意性流程图。图6所示的方法可以包括步骤610-640,下面分别对步骤610-640进行详细描述。

步骤610:对每一幅参考图像,通过特征点匹配方法,根据待去除反光的图像a和参考图像的重合图像区域生成估计图像。

首先,分别对每一幅参考图像以及待去除反光的图像a进行特征点提取,再对每一幅参考图像中与待去除反光的图像中共有的特征点进行匹配,再利用特征点匹配结果,根据每一幅参考图像,分别生成待去除反光的图像a对应的估计图像。

本申请实施例中对图像进行特征点提取的方法有多种,例如,通过定向快旋转短(orientedfastandrotatedbrief,orb)算法对图像进行特征点的提取。又如,可以通过尺度不变特征变化(scale-invariantfeaturetransform,sift)算法对图像进行特征点的提取。

应理解,sift算法是一种具体尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。由于sift算法是基于物体上的一些局部外观的兴趣点,而与影像的大小和旋转无关,对于光线、噪声、微视角改变的容忍度也相当高。因此,本申请实施例中通过sift算法对图像进行特征点的提取可以在庞大的特征数据库中,很容易辨识物体。

以sift算法为例,对通过sift算法提取图像中的特征点的具体实现方式进行详细描述。

通过sift算法对图像进行特征点进行提取可以包括以下四个基本步骤:尺度空间极值检测、关键点定位、方向确定、关键点描述。其中,尺度空间极值检测可以是搜索所有尺度上的图像位置,通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。关键点定位是在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。应理解,关键点的选择依据于它们的稳定程度。方向确定可以是基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。关键点描述可以是在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

具体的,本申请实施例中可以通过上述方法分别对每一幅参考图像以及待去除反光的图像a进行特征点提取,得到每一幅参考图像对应的特征点集合,以及待去除反光的图像对应的特征点集合。应理解,该集合中可以包括多个特征点。

其次,在获取到每一幅参考图像以及待去除反光的图像进行特征点之后,对每一幅参考图像中与待去除反光的图像中共有的特征点进行匹配。例如,可以建立每一幅参考图像中与待去除反光的图像中共有的特征点之间的对应关系,并根据该对应关系,对每一幅参考图像中与待去除反光的图像中共有的特征点进行相似性判定,从而确定每一幅参考图像中与待去除反光的图像中的多对匹配点。

具体的,在待去除反光的图像中选取一个特征点,通过遍历找到每一幅参考图像中的距离最近的两个特征点。以特征点之间的欧式距离作为每一幅参考图像中与待去除反光的图像中共有的特征点的相似性判定度量,在每一幅参考图像的两个特征点中,如果最近距离除以次近距离小于某个预设阈值,则可以将每一幅参考图像中最近距离的特征点与待去除反光的图像中的特征点判定为一对匹配点。

最后,根据每一幅参考图像中与待去除反光的图像中共有的特征点的匹配结果,以待去除反光的图像作为基准,对于每一幅参考图像进行以下操作中的至少一种:平移、旋转、伸缩,分别生成待去除反光的图像对应的估计图像。

步骤620:根据待去除反光的图像a和通过特征匹配生成的估计图像,确定待去除反光的图像a中的反光估计d。

应理解,如果仅获取一幅参考图像b1,待去除反光的图像a与参考图像中重合图像区域中的反光区域为d=d1。如果获取到至少二幅参考图像,例如,参考图像b1、参考图像b2、参考图像b3…,可以根据参考图像b1、参考图像b2、参考图像b3…分别对应的反光估计d2、d3…确定待去除反光的图像a与参考图像中重合图像区域中的反光区域d。实现方式有多种,具体的请参见上文中步骤430中的描述,此处不再赘述。

步骤630:对待去除反光的图像a中的反光估计d进行反光去除的处理,得到去除反光后的图像a`。

本申请实施例中,可以根据反光估计d,利用公式a`=|a-d|255,得到去除反光后的图像a`。其中,||255表示将输出限制到0-255的区间。应理解,本申请实施例中的去反光处理中,在反光区域,将待去除反光的图像a中原有像素值减去反光估计d中像素点的反光值,从而对反光估计d进行恢复,得到去除反光后的图像a`。

步骤640:去除反光后的图像a`作为输入,输入到感知模块中。

本申请实施例中在对除反光后的图像a进行反光处理,得到去除反光后的图像a`后,可以将去除反光后的图像a`后传输至计算机视觉系统140中的感知模块。以便于感知单元对去除反光后的图像进行分析,从而准确识别车辆周边环境中的物体和/或特征。

下面以通过深度学习模型生成估计图像为例,对本申请实施例提供的图像的去反光的方法的具体实现过程进行详细描述。

应理解,深度学习模型即利用深度学习方法,通过预训练之后,将神经网络各层的参数值保存。该神经网络模型在训练好各层的参数值之后,可以完成给定任务。例如,在本申请实施例中,给定一个方位的参考图像,生成待去除反光的图像所在的另一个方位的估计图像。

为了便于理解,下面先通过图7,对深度学习模型的预训练过程进行详细描述。

在人工智能(artificialintelligence,ai)领域中,深度学习是一种基于深层次的神经网络算法的学习技术。深度学习模型包括输入层、隐含层、输出层,其使用多重非线性变换对数据进行处理。

应理解,神经网络是一种模仿动物神经网络行为特征,这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

还应理解,深层次的神经网络(深度学习模型)可以理解为具有多个隐含层的神经网络,这里的“多个”并没有特别的度量标准。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习参数矩阵的过程,其最终目的是得到训练好的深度神经网络的每一层神经元的参数矩阵(每一层神经元的参数矩阵包括该层神经元包括的每个神经元对应的权重)。下面结合图7,对应用于本申请实施例的一种可能的深度学习模型的训练过程进行详细描述。

图7是本申请实施例提供的一种深度学习模型100的示意性框图。深度学习模型100可以包括输入层110,隐含层120以及输出层130。

应理解,本申请实施例中以隐含层120包括n(n大于1)层神经元作为示例进行说明。

还应理解,输入层110、输出层130以及隐含层120中的每一层包括一个或多个神经元。图7中以输入层110包括两个神经元、隐含层120中的n层中的每一层均包括三个神经元、输出层130包括一个神经元为例进行说明。

图7所示的深度学习模型100可以是全连接的神经网络,也可以是卷积神经网络(convolutionalneuralnetwork,cnn)。在每一层的所有神经元与下一层的所有神经元连接(每一层的每一个神经元的权重w均不为0)的情况下,该深度学习模型100是一个全连接的神经网络模型。在每一层的所有神经元不与下一层的所有神经元连接(每一层的每一个神经元上的权重部分w为0)的情况下,该深度学习模型100是一个cnn模型。

参见图7,在深度学习模型100中可以包括前向传播(forwardpropagation,fp)计算和反向传播(backpropagation,bp)计算。

下面对在一个计算节点中进行fp计算的过程进行详细描述。

在fp计算的过程中,获取训练数据,例如输入图像的像素信息,将训练数据作为深度学习模型100输入层110的输入(i1,i2)。输入层110的输入可以在经过隐含层120中的多个神经元之后,从输出层130输出一个预测结果。具体的,隐含层120中的每一层神经元都对应有一个参数矩阵。输入层110的输入与第1层神经元的参数矩阵的乘积作为隐含层120的第1层神经元的输入,该隐含层120的第1层神经元的输入经过第1层神经元中的激活函数(例如,可以是sigmoid函数)之后输出一个第1层神经元的输出值。隐含层120的第1层神经元的输出值与第2层神经元的参数矩阵的乘积作为隐含层120的第2层神经元的输入。同理,以此类推,最终从输出层130输出一个预测结果。

这些参数矩阵中的权重在实际应用中需要在大量的训练中得到修正,通过训练得到的权重形成的各个参数矩阵可以从用户输入的待推理图像中提取像素信息,从而帮助深度学习模型100对该待推理图像进行正确的推理。

在fp计算的第j次迭代过程中,第1层中的第一个神经元的输入为:第1层中的第一个神经元的输出为:第1层中的第二个神经元的输入为:第1层中的第二个神经元的输出为:第1层中的第三个神经元的输入为:第1层中的第三个神经元的输出为:其中,为输入为的激活函数。

第j次的迭代过程中,第1层中的神经元的输入为:

因此,可以将第1层中的神经元的输入表示为输出可以表示为

其中,

j用于表示迭代的次数,一般等于输入层110获得输入(i1,i2)的次数。用于表示在第j次的迭代过程中,第1层神经元的参数矩阵。

第1层中的神经元的输出b1与第2层神经元的参数矩阵的乘积可以作为第2层神经元的输入。因此,fp的第j次的迭代过程中,第2层中的神经元的输入可以表示为第2层中的神经元的输出可以表示为

同理,在fp的第j次的迭代过程中,第i层中的神经元的输入可以表示为第i层中的神经元的输出可以表示为其中,1≤i≤n。

下面对在一个计算节点中进行bp计算的过程进行详细描述。

在训练深度学习模型100的过程中,希望深度学习模型100的输出层130输出的预测值o1尽可能的接近训练数据的先验知识(priorknowledge),先验知识也被称为真实值(groundtruth),一般包括由人提供的训练数据对应的预测结果。所以可以通过比较当前的预测值和先验知识,再根据两者之间的差异情况来更新深度学习模型100中每一层的参数矩阵(当然,在第一次更新之前通常会有初始化的过程,即为初始化深度学习模型100的隐含层120的各层神经元对应的参数矩阵)。并采用误差bp算法在训练深度学习模型100的过程中修正深度学习模型100中参数矩阵的权重大小,使得深度学习模型100的误差损失越来越小。

具体地,fp计算过程中产生的预测值和先验知识间可能会有误差,如果输出的预测值大于先验知识,可以调整参数矩阵中的权重,使得输出的预测值低一些。如果输出的预测值小于先验知识,可以调整参数矩阵中的权重,使得输出的预测值高一些。bp计算是以误差为主导的反向运动,旨在得到最优的各层神经元的参数矩阵。

应理解,用户输入的训练数据中可以包括作为输入的训练数据以及由人提供的训练数据对应的预测结果。

作为一个示例,深度学习模型100应用于图像识别领域。深度学习模型100输入的训练数据为图像的像素信息,训练数据所对应的先验知识为该图像的标签“dog”。将训练数据输入到输入层110,经过深度学习模型100的fp计算之后,将输出层130输出的预测值与先验知识比较。例如,如果输出层130输出的预测值为“cat”,则可以根据预测值与先验知识“dog”之间的误差来更新深度学习模型100中每一层的参数矩阵。

在第j次的迭代过程中,bp计算可以计算输出的预测值o1以及先验知识之间的误差e。并可以沿着输出层130、隐含层120、输入层110的方向,根据误差e修正深度学习模型100中每一层神经元的参数矩阵中的权重。具体的,对权重的修正可以是分别计算出参数矩阵中的权重的梯度该梯度可以是用误差e对参数矩阵中的权重求导数,其中,1≤i≤n。

深度学习模型100在第(j+1)次迭代中,和第j次迭代过程类似,还是先进行fp计算,再进行bp计算。例如,在第(j+1)次迭代的fp计算过程中,根据第j次迭代的fp计算出的梯度对参数矩阵中的权重进行修正,并根据修正后的参数矩阵计算预测输出值。在第(j+1)次迭代的bp计算过程中,根据第(j+1)次迭代中fp计算出的输出值与先验知识之间的误差e计算参数矩阵中的权重的梯度使得在第(j+2)次迭代过程中可以根据再次对参数矩阵中的权重进行修正。在多次迭代的过程中不断的修正参数矩阵中的权重,从而实现深度学习模型100预测的输出值尽可能的接近训练数据的先验知识。

具体的,在第(j+1)次迭代中fp计算中,计算第i层中的神经元的输入以及输出时,第i层中的神经元的参数矩阵变成了根据计算每一层神经元的输入以及输出的过程请参考上文中第j次迭代的fp计算的描述,此处不再赘述。

需要说明的是,上文中示出的参数矩阵计算公式是一种可能的实现方式,也可以是该公式的其他变形,都在本申请实施例的保护范围之内。

本申请实施例中上述深度学习模型100训练过程(包括fp计算过程以及bp计算过程)可以在包括至少一个计算节点的训练系统中完成。该至少一个计算节点可以是至少一个一个模型训练服务器,也可以是一个模型训练服务器中的至少一个处理器。

本申请实施例对神经网络模型的类型不做具体限定。作为一个示例,可以使用cyclegan网络,该cyclegan网络是两个镜像对称的生成对抗网络,构成了一个环形网络,利用a->b,b->a的环形训练,可以让网络学习更好地完成转换的学习。作为另一个示例,还可以使用seqgan网络,该seqgan网络为条件生成对抗网络,是一种带条件参数的深度学习网络。

特别地,seqgan网络是一种生成对抗网络,是一种近年来广泛使用的网络模型,它由生成器和判别器构成。生成器可以是根据任务、由输入的数据生成文字、图像、视频等数据。判别器是指根据任务,判别生成器生成的数据的真伪。通过生成器与判别器之间的对抗训练,可以提高网络的效果,从而使得网络可以完成给定一个方位的图像,输出另一个指定方位的图像的任务。

下面以seqgan网络为例,结合图8,对神经网络模型的训练过程进行描述,使得神经网络模型以完成本申请实施例中将参考图像转换为待去除反光的图像所在的方位的估计图像的任务。为了便于描述,可以将完成本申请实施例提供的视角转换任务的模型称为视角转换模型。

图8是本申请实施例提供的视角转换模型的训练方法的示意性流程图。图8所示的方法可以包括步骤810-830,下面分别对步骤810-830进行详细描述。

步骤810:将图像1和图像2作为视角转换模型的输入,生成器根据任务生成图像3。

可选地,还可以将图像1对应的深度信息以及图像2对应的深度信息作为视角转换模型的输入。

该深度信息的获取方式有多种,一种可能的实现方式中,可以通过图1所示的雷达126获取图像的深度信息。另一种可能的实现方式中,还可以通过专用的深度相机获取图像的深度信息。另一种可能的实现方式中,还可以通过双目相机获取到左视图和右视图,并根据左视图和右视图的视差获取图像的深度信息。

应理解,图像1可以作为上文中的待去除反光的图像,图像2可以作为上文中的参考图像。图像1和图像2为图7中所描述的训练数据,视角转换模型可以根据输入的训练数据通过图7所描述的方法从输出层130输出一个预测结果(图像3)。

具体的,本申请实施例中图像1所在的视角标识为1,图像2所在的视角标识为2。网络的任务是对图像2进行视角转换,将图像2从标识为2的视角转换为在标识为1的视角下的图像3。视角转换模型中的生成器可以根据任务,由输入生成标识为1的视角下的图像3。

步骤820:判别器判断生成器生成的图像3是否与参考标签为同一类。

生成器在根据任务生成图像3之后,可以将生成的图像发送3至视角转换模型中的判别器,由判别器判断是否与参考标签为同一类。

本申请实施例中的参考标签是标识为1的视角下的真实的图像3,可以对应于图7中所描述的先验知识(priorknowledge),先验知识也被称为真实值(groundtruth),一般包括由人提供的训练数据对应的预测结果。所以视角转换模型中的判别器可以通过比较当前的预测值(图像3)和先验知识(参考标签),再根据两者之间的差异情况来更新视角转换模型中每一层的参数矩阵。并采用误差bp算法在训练视角转换模型的过程中修正视角转换模型中参数矩阵的权重大小,使得视角转换模型的输出更接近参考标签数据,其误差损失越来越小。

具体的,生成器生成的图像3可以经过判别器的各层网络之后,会计算出一个0/1的值,代表生成器生成的图像3是否与参考标签为同一类。例如,如果是0作为可以代表生成器生成的图像3与参考标签不是同一类,如果是1作为可以代表生成器生成的图像3与参考标签是同一类。

重复以上过程,输入给定不同的视角标识以及对应的参考标签,训练seqgan中的生成器。

步骤830:保存经过预训练的视角转换模型。

预训练完成后,判别器不再使用,将经过预训练的网络模型(生成器)保存,作为视角转换模型。也就是说,本申请实施例中使用的视角转换模型为上述生成对抗网络训练过程中得到的生成器,我们利用它来完成视角转换的任务。

下面结合图9,以通过深度学习模型生成估计图像为例,对本申请实施例提供的图像的去反光的方法的具体实现过程进行详细描述。

图9是本申请实施例提供的另一种图像的去反光的方法的示意性流程图。图9所示的方法可以包括步骤910-940,下面分别对步骤910-940进行详细描述。

步骤910:对于每一幅参考图像,将参考图像和待去除反光的图像输入视角转换模型,生成估计图像。

可选地,还可以将参考图像、待去除反光的图像以及待去除反光的图像对应的深度信息作为视角转换模型的输入。

具体的,本申请实施例中待去除反光的图像所在的视角标识为1,参考图像所在的视角标识为2。视角转换模型可以根据输入的参考图像和待去除反光的图像,将参考图像从标识为2的视角转换为在标识为1的视角下的估计图像。

步骤920:根据待去除反光的图像a和通过特征匹配生成的估计图像,确定待去除反光的图像a中的反光估计d。

与步骤620类似,具体的请参考步骤620中的描述,此处不再赘述。

步骤930:对待去除反光的图像a中的反光估计d进行反光去除的处理,得到去除反光后的图像a`。

与步骤630类似,具体的请参考步骤630中的描述,此处不再赘述。

步骤940:去除反光后的图像a`作为输入,输入到感知模块中。

与步骤640类似,具体的请参考步骤640中的描述,此处不再赘述。

下面结合图10中具体的例子,对本申请实施例提供的一种图像的去反光的实现过程进行详细描述。图10所示的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将申请实施例限制于所示例的具体数值或具体场景。本领域技术人员根据所给出的图10的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本申请实施例的范围内。

图10是本申请实施例提供的另一种图像去反光的方法的示意性流程图。图10所示的方法可以包括步骤1010-1030,下面分别对步骤1010-1030进行详细描述。

需要说明的是,本申请实施例中可以拍摄多幅参考图像,为了便于描述,图10中以其中一幅参考图像b1为例对图像去反光的方法进行详细描述。

步骤1010:根据待去除反光的图像a和参考图像b1生成估计图像。

本申请实施例中,可以获取待去除反光a的图像和参考图像b1,并通过上文描述的特征匹配的方法或者通过机器学习网络的方法生成估计图像b1`。

可选地,在一些实施例中,如果还拍摄到其他参考图像(例如,b2、b3…)。同样的,也可以通过上上文描述的特征匹配的方法或者通过机器学习网络的方法,生成的估计图像分别为b2`、b3`…。

步骤1020:根据待去除反光的图像a和估计图像b1`确定反光估计d。

本申请实施例中,可以根据待去除反光的图像a和估计图像b1`中像素点的像素值,确定待去除反光的图像a中的反光区域,也就是反光估计。

以估计图像b1`为例。一种可能的实现方式中,由于反光区域的亮度通常比较大,可以通过比较待去除反光的图像a和估计图像b1`中像素点的像素值之差。如果待去除反光的图像a某一个像素点和估计图像b1`中对应像素点之差大于预设阈值,可以将待去除反光的图像a中某一个像素点确定为反光点。遍历待去除反光的图像a中的像素点,确定为反光点的多个像素点可以是待去除反光的图像a中反光区域,即反光估计d1=(a-b1`)。

可选地,在一些实施例中,如果待去除反光的图像a某一个像素点和估计图像b1`中对应像素点之差小于预设阈值,还可以对待去除反光的图像a中的这些像素点进行滤波处理。

可选地,在一些实施例中,如果还拍摄到其他参考图像(例如,b2、b3…),生成的估计图像分别为b2`、b3`…。同样的,对于多个估计图像(例如,b2`、b3`…),可以重复上述过程,分别得到反光估计d2=(a-b2`)、d3=(a-b3`)…。

多个反光估计可以进行聚合得到待去除反光的图像a中的反光区域。具体的实现方式有多种,一种可能的实现方式中,可以对根据多个估计图像得到的多个反光估计d1=(a-b1`)、d2=(a-b2`)、d3=(a-b3`)求均值,得到反光估计d=mean{d1,d2,d3…},其中,mean{}表示求平均值。另一种可能的实现方式中,可以对根据多个估计图像得到的多个反光估计d1=(a-b1`)、d2=(a-b2`)、d3=(a-b3`)进行区域叠加,即将根据多个参考图像确定的待去除反光的图像a中的一个或多个反光估计做或操作。需要说明的是,对于多个反光估计中重叠的区域,可以去像素值较大的区域。

步骤1030:对反光估计d进行处理,得到去除反光后的图像a`。

本申请实施例中,可以根据反光估计d,利用公式a`=|a-d|255,得到去除反光后的图像a`。其中,||255表示将输出限制到0-255的区间。应理解,本申请实施例中的去反光处理中,在反光区域,将待去除反光的图像a中原有像素值减去反光估计d中像素点的反光值,从而对反光估计d进行恢复,得到去除反光后的图像a`。

本申请实施例中,计算机视觉系统140中的图像处理单元在对相机130捕捉的待去除反光的图像中的反光区域处理之后,可以将得到的去除反光后的图像传输至计算机视觉系统140中的感知模块。以便于感知单元对去除反光后的图像进行分析,从而准确识别车辆周边环境中的物体和/或特征。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上文结合图1至图10,详细描述了本申请实施例提供的一种图像去反光的方法,下面结合图11至图12详细描述本申请的装置的实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

下面结合图11-图12介绍本申请所提供的装置实施例。

需要说明的是,装置实施例是从产品和设备角度考虑本申请方案的实现,本申请的装置实施例和前面描述的本申请方法实施例的部分内容是对应的或者互为补充的。在涉及到方案的实现,以及对权利要求范围的支持上是可以通用的。

图11是本申请实施例提供的一种图像去反光的装置800的示意性结构图。应理解,图11示出的图像去反光的装置800仅是示例,本申请实施例的装置还可包括其他模块或单元。应理解,图像去反光的装置800能够执行图4-图10的方法中的各个步骤,为了避免重复,此处不再详述。

如图11所示,图像去反光的装置800可以包括:

获取模块810,用于获取同一时刻,针对同一目标,基于不同方位拍摄得到的至少两幅图像,其中,所述至少两幅图像中包括待去除反光的图像和至少一幅参考图像,所述至少一幅参考图像与所述待去除反光的图像不同;

生成模块820,用于对于每一幅所述参考图像,根据所述参考图像和所述待去除反光的图像的重合图像区域生成一幅估计图像;

处理模块830,用于根据生成的至少一幅所述估计图像,对所述待去除反光的图像进行处理,得到去除反光后的图像。

应理解,图像去反光的装置800可以位于图1所示的计算机视觉系统140中,对应于计算机视觉系统140中的图像处理单元。

可选地,一种可能的实现方式中,该处理模块830具体用于:根据所述待去除反光的图像和所述至少一幅所述估计图像,确定所述待去除反光的图像中与所述至少一幅所述参考图像的重合图像区域的至少一个反光区域;在所述待去除反光的图像中,对所述至少一个反光区域中的图像进行恢复,得到所述去除反光后的图像。

可选地,另一种可能的实现方式中,该生成模块820具体用于:分别对每一幅所述参考图像以及所述待去除反光的图像进行特征点提取;建立每一幅所述参考图像中和所述待去除反光的图像中共有的特征点之间的映射关系;根据所述映射关系,对每一幅所述参考图像和所述待去除反光的图像进行配准,生成一幅所述估计图像。

可选地,另一种可能的实现方式中,该生成模块820具体用于:根据所述映射关系,以所述待去除反光的图像为基准,对每一幅所述参考图像进行以下操作中的至少一种:平移、旋转和伸缩,生成一幅所述估计图像。

可选地,另一种可能的实现方式中,该生成模块820具体用于:通过尺度不变特征变换sift算法分别对每一幅所述参考图像以及所述待去除反光的图像进行特征点提取。

可选地,另一种可能的实现方式中,该生成模块820具体用于:对于每一幅所述参考图像,分别将所述参考图像和所述待去除反光的图像输入视角转换模型,得到一幅所述估计图像,其中,所述视角转换模型用于将所述参考图像转换为在所述待去除反光的图像的视角下的所述估计图像。

可选地,另一种可能的实现方式中,该生成模块820还用于:对于每一幅所述参考图像,分别将所述参考图像,所述待去除反光的图像以及所述待去除反光的图像对应的深度信息输入到所述视角转换模型,得到一幅所述估计图像。

可选地,另一种可能的实现方式中,还包括:

训练模块840,每一幅所述参考图像,对于用于根据所述参考图像和所述待去除反光的图像训练得到所述视角转换模型。

可选地,另一种可能的实现方式中,该处理模块830具体用于:根据所述待去除反光的图像中像素点的像素值和至少一幅所述估计图像中像素点的像素值,确定所述待去除反光的图像中与至少一幅所述参考图像的重合图像区域的至少一个反光区域。

可选地,另一种可能的实现方式中,该处理模块830具体用于:若所述待去除反光的图像与至少一幅所述参考图像的重合图像区域中对应像素点的像素值的差值大于预设阈值,所述像素点组成所述待去除反光的图像中的至少一个反光区域。

可选地,另一种可能的实现方式中,该处理模块830还用于:若所述待去除反光的图像与所述至少一幅所述参考图像的重合图像区域中对应像素点的像素值的差值小于预设阈值,在所述待去除反光的图像中对所述像素点进行滤波处理。

可选地,另一种可能的实现方式中,该处理模块830具体用于:根据所述待去除反光的图像中与所述至少一幅所述参考图像的重合图像区域的至少一个反光区域中对应像素点的像素值之差,对所述待去除反光的图像进行处理,得到所述去除反光后的图像。

应理解,这里的图像去反光的装置800以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。当以上任一模块以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令以实现以上方法流程。所述处理器可以包括但不限于以下至少一种:中央处理单元(centralprocessingunit,cpu)、微处理器、数字信号处理器(digitalsignalprocessing,dsp)、微控制器(microcontrollerunit,mcu)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。该处理器可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个片上系统(systemonchip,soc),或者也可以作为一个专用集成电路(application-specificintegratedcircuit,asic)的内置处理器集成在所述asic当中,该集成了处理器的asic可以单独封装或者也可以跟其他电路封装在一起。该处理器除了包括用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(fieldprogrammablegatearray,fpga)、可编程逻辑器件(programmablelogicdevice,pld)、或者实现专用逻辑运算的逻辑电路。

当以上模块以硬件电路实现的时候,所述硬件电路可能以通用中央处理器(centralprocessingunit,cpu)、微控制器(microcontrollerunit,mcu)、微处理器(microprocessingunit,mpu)、数字信号处理器(digitalsignalprocessing,dsp)、片上系统(systemonchip,soc)来实现,当然也可以采用专用集成电路(application-specificintegratedcircuit,asic)实现,或可编程逻辑器件(programmablelogicdevice,pld)实现,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,cpld),现场可编程门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合,其可以运行必要的软件或不依赖于软件以执行以上方法流程。

图12是本申请实施例提供的一种图像去反光的装置900的结构性示意性图。该图像去反光的装置900包括:存储器901、处理器902、通信接口903以及总线904。其中,存储器901、处理器902、通信接口903通过总线904实现彼此之间的通信连接。

存储器901可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器901可以存储程序,当存储器901中存储的程序被处理器902执行时,处理器902用于执行本申请实施例的图像去反光的方法的各个步骤,例如,可以执行图4-图10所示实施例的各个步骤。

处理器902可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的图像去反光的方法。

处理器902还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的图像去反光的方法的各个步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。

上述处理器902还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器901,处理器902读取存储器901中的信息,结合其硬件完成本申请实施例中自动驾驶车辆的行为规划装置包括的单元所需执行的功能,或者,执行本申请方法实施例的图像去反光的方法,例如,可以执行图4-图10所示实施例的各个步骤/功能。

通信接口903可以使用但不限于收发器一类的收发装置,来实现图像去反光的装置900与其他设备或通信网络之间的通信。

总线904可以为图像去反光的装置900中的各个部件(例如,存储器901、处理器902、通信接口903)之间提供传送信息的通路。

应理解,本申请实施例所示的图像去反光的装置900可以是自动驾驶车辆中的车载设备,或者,也可以是配置于车载设备中的芯片。

应理解,本申请实施例中的处理器可以为中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccessmemory,ram)可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。

本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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