掌桥专利:专业的专利平台
掌桥专利
首页

距离测量的系统和方法

文献发布时间:2023-06-19 13:46:35


距离测量的系统和方法

技术领域

本申请一般涉及距离测量的系统和方法,更具体地,涉及用于确定对象与安装在车辆上的相机之间的距离的系统和方法。

背景技术

随着微电子和机器人技术的发展,无人驾驶的探索发展迅速。通常,自动驾驶系统可以通过一个或多个传感器设备(例如,相机、激光雷达)感应环境信息。例如,相机(例如,单目相机)可以用于确定对象(例如,行人、车辆)和自动驾驶车辆之间的距离。然而,相机主要用来确定车辆在平坦道路上行驶时对象与车辆之间的距离,即没有考虑道路的高度信息,可能导致当车辆在非平坦道路(例如,斜坡、起伏不平的道路)上行驶时,距离测量不准确。因此,期望提供有效且准确地确定车辆与对象之间的距离的系统和方法。

发明内容

本申请的实施例提供了一种用于距离测量的系统。该示例性系统包括至少一个存储设备,该至少一个存储设备包括一组指令,和至少一个处理器,所述至少一个处理器与所述至少一个存储设备通信。当执行该一组指令时,至少一个处理器被配置为使该系统获取由相机捕获的图像,所述图像包括对象;基于对象,识别图像中的至少一条目标线,其中所述至少一条目标线与至少两条预设参考线相关联,所述至少两条预设参考线中的每一条分别与其到相机的水平参考距离相对应;以及基于至少一条目标线,确定相机与对象之间的距离。

本申请的实施例进一步提供了一种距离测量的方法。该示例性方法在一个计算设备上实现,该计算设备包括至少一个处理器、至少一个存储设备以及一个连接到网络的通信平台,该方法包括获取由相机捕获的图像,所述图像包括对象;基于对象,识别图像中的至少一条目标线,其中所述至少一条目标线与至少两条预设参考线相关联,所述至少两条预设参考线中的每一条分别与其到相机的水平参考距离相对应;以及基于至少一条目标线,确定相机与对象之间的距离。

本申请的实施例还提供了另一种用于距离测量的系统。该示例性系统包括获取模块,其被配置为获取由相机捕获的图像,所述图像包括对象;目标线识别模块,其被配置为基于所述对象,识别图像中的至少一条目标线,其中所述至少一条目标线与至少两条预设参考线相关联,所述至少两条预设参考线中的每一条分别与其到所述相机的水平参考距离相对应;以及距离确定模块,其被配置为基于至少一条目标线,确定相机与对象之间的距离。

本申请的实施例还提供了一种用于距离测量的非暂时性计算机可读存储介质。该示例性非暂时性计算机可读存储介质包括至少一组指令,其中,当由计算设备的至少一个处理器执行时,至少一组指令指示至少一个处理器执行以下动作:获取由相机捕获的图像,所述图像包括对象;基于对象,识别图像中的至少一条目标线,其中所述至少一条目标线与至少两条预设参考线相关联,所述至少两条预设参考线中的每一条分别与其到所述相机的水平参考距离相对应;以及基于至少一条目标线,确定相机与对象之间的距离。

本申请的实施例还提供了一种用于距离测量的自动驾驶车辆。该用于距离测量的自动驾驶辆包括检测部件、计划部件和控制部件,其中所述计划部件被配置为获取由相机捕获的图像,所述图像包括对象;基于对象,识别图像中的至少一条目标线,其中所述至少一条目标线与至少两条预设参考线相关联,所述至少两条预设参考线中的每一条分别与其到所述相机的水平参考距离相对应;以及基于至少一条目标线,确定相机与对象之间的距离。

本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过实践或使用在下面讨论的详细示例中阐述的方法、手段和组合的各个方面来实现和获取。

附图说明

本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,其中贯穿附图的所有视图、相似的附图标记表示相似的结构,其中:

图1是根据本申请的一些实施例所示的一种示例性自动驾驶系统的示意图;

图2是根据本申请的一些实施例所示的一种示例性计算设备的示例性硬件和/或软件组件的示意图;

图3是根据本申请的一些实施例所示的一种示例性移动设备的示例性硬件和/或软件组件的示意图;

图4是根据本申请的一些实施例所示的一种示例性处理设备的框图;

图5是根据本申请的一些实施例所示的一种用于确定相机与对象之间的距离的示例性过程的流程图;

图6A和图6B是根据本申请的一些实施例所示的相机和至少两条预设参考线之间的位置关系的示意图;

图6C是根据本申请的一些实施例所示的一种对应于至少两条预设参考线的示例性预测线的示意图;

图7A-7E是根据本申请的一些实施例所示的与对象相关联的示例性测量点的示意图;

图8A-8F是根据本申请的一些实施例所示的用于基于至少一个测量点确定至少一条目标线的示例性过程的示意图;

图9是根据本申请的一些实施例所示的一种用于识别至少一条目标线的示例性过程的流程图;

图10是根据本申请的一些实施例所示的一种用于将预设参考线投影到图像上的示例性过程的示意图;

图11是根据本申请的一些实施例所示的一种用于确定相机与对象之间的距离的示例性过程的流程图;

图12A是根据本申请的一些实施例所示的一种相机与对象之间的示例性距离的侧视图的示意图;以及

图12B是根据本申请的一些实施例所示的一种相机与对象之间的示例性距离的侧视图的示意图。

具体实施方式

以下描述是为了使本领域的普通技术人员能够实施和利用本申请,并且该描述是在特定的应用场景及其要求的环境下提供的。对于本领域的普通技术人员讲,显然可以对所披露的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请并不限于所描述的实施例,而应该被给予与权利要求一致的最广泛的范围。

本申请中所使用的术语仅用于描述特定的示例性实施例,并不限制本申请的范围。如本申请所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等单数形式也可以包括复数。应该被理解的是,本申请中所使用的术语“包括”与“包含”仅提示已明确标识的特征、整数、步骤、操作、元素和/或部件,而不排除可以存在和添加其他一个或以上特征、整数、步骤、操作、元素、部件和/或其组合。

根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不意图限制本申请的范围。应当理解的是,附图并不是按比例绘制的。

本申请中使用了流程图用说明根据本申请的实施例的系统所执行的操作。应当理解的是,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。也可以从流程图中删除一个或以上操作。

此外,尽管主要针对陆上的运输系统描述了本申请中公开的系统和方法,但是应当理解,这仅仅是一种示例性实施例。本申请的系统和方法可以是任何其他种类的运输系统。例如,本申请的系统和方法可以是包括陆地、海洋、航空航天等或其不同组合的不同环境的运输系统。运输系统的自动驾驶汽车可能包括出租车、私家车、顺风车、公共汽车、火车、动车、高铁、地铁、船舶、飞机、飞船、热气球等,或其任何组合。

本申请的一个方面涉及用于距离测量的系统和方法,例如,确定对象与车辆(例如,自动驾驶车辆)之间的距离。该系统可以获取包括由安装在车辆上的相机(例如,单目相机)捕获的对象的图像。系统还可以基于对象识别图像中的至少一条目标线。可以基于至少两条预设参考线来确定至少一条目标线,其中至少两条预设参考线中的每一条可以对应于到相机的相应水平参考距离。例如,系统可以确定与对象相关联的至少一个测量点,并基于至少一个测量点和与至少两条预设参考线中的至少一条相对应的至少一条预测线确定至少一条目标线。此外,系统可以基于至少一条目标线确定相机(或车辆)与对象之间的距离。根据本申请的系统和方法,引入了至少两条预设参考线,用于确定相机(或装有相机的车辆)与对象之间的距离,从而提高了距离测量的效率和准确性。

图1是根据本申请的一些实施例所示的一种示例性自动驾驶系统的示意图。在一些实施例中,自动驾驶系统100可以包括车辆110(例如110-1、110-2、...、110-n)、服务器120、终端设备130、存储设备140、网络150以及定位和导航系统160。

车辆110可以是任何类型的自动驾驶车辆、无人机等。如本文所使用的,自动驾驶车辆或无人机可以指能够实现一定驾驶自动化水平的车辆。驾驶自动化的示例性级别可以包括:第一级别,在该级别时,车辆主要由人来监督并且具有特定的自主功能(例如,自动转向或加速);第二级别,在该级别时,车辆具有一个或以上高级驾驶员辅助系统(ADAS)(例如,自适应巡航控制系统、车道保持系统),它可以控制车辆的制动、转向和/或加速;第三级别,在该级别时,当满足一个或多个特定条件时,可以控制车辆的行驶自动进行;第四级别,在该级别时,车辆可以在没有人工输入或监督的情况下运行,但仍受到某些约束(例如,限于特定区域);第五级别,在该级别时,车辆可以在所有情况下或类似情况或其任意组合下自主运行。

在一些实施例中,车辆110可以具有使车辆110能够四处移动或飞行的等效结构。例如,车辆110可以包括常规车辆的结构,例如底盘、悬架、转向装置(例如,方向盘)、制动装置(例如,制动踏板)、加速器等。又例如,车辆110可以具有车身和至少一个车轮。车身可以是任何样式的车身,例如跑车、轿跑车、轿车、轻运货车、旅行车、越野车(SUV)、小型货车或改装车。至少一个车轮可以被配置为全轮驱动(AWD)、前轮驱动(FWR)、后轮驱动(RWD)等。在一些实施例中,预期的车辆110可以是电动车辆、燃料电池车辆、混合动力车辆、常规的内燃机车辆等。

在一些实施例中,车辆110可以感知其环境并通过一个或多个检测单元112进行导航。至少两个检测单元112可以包括雷达(例如,激光雷达(LiDAR))、全球定位系统(GPS)模块、惯性测量单元(IMU)、相机等,或任何它们的组合。雷达(例如,LiDAR)可以被配置为扫描车辆110的周围并生成点云数据。点云数据可用于生成围绕车辆110的一个或多个对象的数字三维(3D)表示。GPS模块可以指能够从GPS卫星接收地理位置和时间信息,然后确定该设备地理位置的设备。IMU可以指使用各种惯性传感器测量并提供车辆的比力、角速度以及有时围绕车辆的磁场的电子设备。在一些实施例中,各种惯性传感器可以包括加速度传感器(例如,压电传感器)、速度传感器(例如,霍尔传感器)、距离传感器(例如,雷达,红外传感器)、转向器角度传感器(例如,倾斜传感器)、与牵引力相关的传感器(例如,力传感器)等。相机可以被配置为获取一个或多个与相机范围内的对象(例如,人、动物、树、路障、建筑物或车辆)有关的图像。相机可以是静态相机、相机等,或其组合。在一些实施例中,相机可以包括单目相机、双目相机、多视角相机等,或它们的组合。在一些实施例中,相机可以安装在车辆110(例如,车辆110的车顶)上。在一些实施例中,相机可以相对于车辆110水平或倾斜放置。

在一些实施例中,服务器120可以是单个服务器,也可以是服务器组。服务器组可以是集中式的或分布式的(例如,服务器120可以是一分布式系统)。在一些实施例中,服务器120可以是本地的,也可以是远程的。例如,服务器120可以经由网络150访问存储在终端设备130、检测单元112、车辆110、存储设备140和/或定位和导航系统160中的信息和/或数据。又例如,服务器120可以直接连接到终端设备130、检测单元112、车辆110和/或存储设备140以访问存储的信息和/或数据。在一些实施例中,服务器120可以在云平台或车载计算机上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布式云、云间、多云等,或其任意组合。在一些实施例中,服务器120可以在包括本申请中图2所示的一个或多个组件的计算设备200上实现。

在一些实施例中,服务器120可以包括处理设备122。处理设备122可以处理与距离测量相关的信息和/或数据以执行本申请中描述的一个或多个功能。例如,处理设备122可以基于图像中的对象,识别图像中的至少一条目标线,并基于至少一条目标线确定车辆110(或安装在车辆110上的相机)与对象之间的距离。此外,处理设备122可以基于车辆110与对象之间的距离,确定车辆110的行驶路径。即,处理设备122可以被配置为车辆110的计划组件。在一些实施例中,处理设备122可以包括一个或多个处理引擎(例如,单核处理引擎或多核处理器)。仅作为示例,处理设备122可以包括中央处理单元(CPU)、专用集成电路(ASIC)、专用指令集处理器(ASIP)、图像处理单元(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等,或其任意组合。在一些实施例中,处理设备122可以集成到车辆110和/或终端设备130中。

在一些实施例中,终端设备130可以包括移动设备130-1、平板计算机130-2、膝上型计算机130-3、车辆130-4中的内置设备、可穿戴设备130-5等,或其任意组合。在一些实施例中,移动设备130-1可以包括智能家居设备、智能移动设备、虚拟现实设备、增强现实设备等,或其任意组合。智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能相机与对讲机等,或其任意组合。智能移动设备可以包括智能电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)设备等、或其任意组合。虚拟现实或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜与增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括Google

存储设备140可以存储数据和/或指令。在一些实施例中,存储设备140可以存储从车辆110、检测单元112、处理设备122、终端设备130、定位和导航系统160和/或外部存储设备获取的数据。例如,存储设备140可以存储与距离测量相关联的信息和/或数据(例如,至少两条预设参考线、至少一条目标线、至少一个测量点)。在一些实施例中,存储设备140可以储存服务器120用来执行或完成本申请中描述的示例性方法的数据和/或指令。例如,存储设备140可以存储处理设备122可以执行或用于确定车辆110(或安装在车辆110上的相机)与对象之间的距离的指令。在一些实施例中,存储设备140可包括大容量存储器、可移动存储器、易失性读写内存、只读内存(ROM)等,或其任意组合。示例性大容量存储器可以包括磁盘、光盘、固态驱动器等。示例性可移动存储设备可以包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等。示例性易失性读写内存可以包括随机存取内存(RAM)。示例性RAM可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备140可以在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布式云、云间、多云等,或其任意组合。

在一些实施例中,存储设备140可以连接到网络150以与自动驾驶系统100的一个或多个组件(例如,服务器120、终端设备130、检测单元112、车辆110和/或定位)进行通信。自动驾驶系统100的一个或多个组件可以经由网络150访问存储在存储设备140中的数据或指令。在一些实施例中,存储设备140可以直接连接自动驾驶系统100的一个或多个组件(例如,服务器120、终端设备130、检测单元112、车辆110、和/或定位导航系统160)或与之通信。在一些实施例中,存储设备140可以是服务器120的一部分。在一些实施例中,存储设备140可以集成到车辆110中。

网络150可以促进信息和/或数据的交换。在一些实施例中,自动驾驶系统100的一个或多个组件(例如,服务器120、终端设备130、检测单元112、车辆110、存储设备140或定位导航系统160)可以经由网络150将信息和/或数据发送到自动驾驶系统100的其他组件。例如,服务器120可以通过网络150从车辆110、终端设备130、存储设备140和/或定位导航系统160中,获取与距离测量相关联的信息和/或数据(例如,图像、至少两条预设参考线、至少一条目标线)。在一些实施例中,网络150可以是有线网络或无线网络等,或其任意组合。仅作为示例,网络150可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络、近场通信(NFC)网络等或其任意组合。在一些实施例中,网络150可以包括一个或以上网络接入点。例如,网络150可以包括有线或无线网络接入点(例如150-1、150-2),通过该接入点,自动驾驶系统100的一个或多个组件可以连接到网络150以交换数据和/或信息。

定位和导航系统160可以确定与对象(例如,终端设备130、车辆110等)相关联的信息。在一些实施例中,定位和导航系统160可能包括全球定位系统(GPS)、全球导航卫星系统(GLONASS)、指南针导航系统(COMPASS)、北斗导航卫星系统、伽利略定位系统、准天顶卫星系统(QZSS)等。该信息可以包括对象的位置、高度、速度或加速度、当前时间等。定位和导航系统160可以包括一个或多个卫星,例如卫星160-1、卫星160-2和卫星160-3。卫星160-1至160-3可以独立地或共同地确定上述信息。定位导航系统160可以通过无线连接将上述信息发送到服务器120、车辆110和/或终端设备130。

本领域的普通技术人员应当理解,当自动驾驶系统100的元件(或组件)执行时,该元件可以通过电信号和/或电磁信号来执行。例如,当终端设备130向服务器120发送请求时,终端设备130的处理器可以生成对请求进行编码的电信号。终端设备130的处理器然后可以将电信号传输到输出端口。如果终端设备130经由有线网络与服务器120通信,则输出端口可以物理地连接至电缆,电缆还可以将电信号传输至服务器120的输入端口。如果终端设备130通过无线网络与服务器120通信,则终端设备130的输出端口可以是一个或多个天线,其将电信号转换为电磁信号。在诸如终端设备130和/或服务器120的电子设备内,当其处理器处理指令、发出指令和/或执行动作时,该指令和/或动作是通过电信号来进行的。例如,当处理器从存储介质(例如,存储设备140)检索或保存数据时,它可以将电信号发送到存储介质的读/写设备,其可以在存储介质中读取或写入结构化数据。该结构化数据可以电信号的形式经由电子设备的总线传输至处理器。此处,电信号可以指一个电信号、一系列电信号和/或至少两个不连续的电信号。

应当指出的是,上述表述仅仅作为示例性目的,并不旨在限制本申请的范围。对于本领域技术人员而言,可以在本申请的教导下,进行多种变化和修改。然而,这些变化和修改不会背离本申请的范围。例如,除了自动驾驶外,本申请还可以应用于各种距离测量的场景,例如,道路测绘、道路养护等。

图2是根据本申请的一些实施例所示的一种示例性计算设备的示例性硬件和/或软件组件的示意图。在一些实施例中,服务器120和/或终端设备130可以在计算设备200上实现。例如,处理设备122可以在计算设备200上实现并且被配置为执行本申请中公开的处理设备122的功能。

计算设备200可以用于实施本申请的自动驾驶系统100的任何组件。例如,自动驾驶系统100的处理设备122可以通过其硬件、软件程序、固件或其组合在计算设备200上实现。尽管为了方便起见,仅示出了这样的一台计算机,但是与本文所述的自动驾驶系统100有关的计算机功能可以以分布式方式在多个类似平台上实现以分布处理负荷。

计算设备200可以包括连接的通信端口(COM)250,并且可以连接到网络(例如,网络150)以促进数据通信。计算设备200还可以包括处理器(例如,处理器220),用于执行程序指令,该处理器以一个或多个处理器(例如,逻辑电路)的形式存在。例如,处理器可以包括其中的接口电路和处理电路。接口电路可以被配置为从总线210接收电信号,其中电信号编码用于处理电路的结构化数据和/或指令。处理电路可以进行逻辑计算,然后将结论、结果和/或指令编码确定为电信号。然后,接口电路可以经由总线210从处理电路发出电信号。

计算设备200可以进一步包括程序存储和不同形式的数据存储,例如磁盘270、只读存储器(ROM)230或随机存取存储器(RAM)240,用于存储由计算设备200处理和/或传输的各种数据文件。计算设备200还可以包括存储在ROM 230、RAM 240和/或由处理器220执行的另一种类型的非暂时性存储介质中的程序指令。本申请的方法和/或过程可以被实现为程序指令。计算设备200还包括I/O组件260,其支持计算设备200与其中的其他组件之间的输入/输出。计算设备200还可以经由网络通信来接收编程和数据。

仅仅为了说明,在计算设备200中仅描述了一个处理器。然而,应当注意的是,本申请中的计算设备200还可以包括多个处理器,因此,如本申请中所述由一个处理器执行的操作也可以由多个处理器联合或分别执行。例如,计算设备200的处理器同时执行操作A和操作B。又例如,操作A和操作B也可以由两个不同的处理器共同或分别在计算设备200中执行(例如,第一处理器执行操作A,第二处理器执行操作B,或者第一和第二处理器共同执行操作A和B)。

图3是根据本申请的一些实施例所示的一种示例性移动设备的示例性硬件和/或软件组件的示意图。在一些实施例中,终端设备130可以在移动设备300上实现。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理单元(CPU)340、I/O 350、内存360、移动操作系统(OS)370和存储器390。在一些实施例中,任意其它合适的组件,包括但不限于系统总线或控制器(未示出),也可以被包括于移动设备300中。

在一些实施例中,移动操作系统370(例如,iOS

为了实施本申请描述的各种模块、单元及其功能,计算机硬件平台可用作本文中描述的一个或以上组件的硬件平台。具有用户接口元素的计算机可用于实施个人计算机(PC)或任何其它类型的工作站或终端设备。若计算机被适当的程序化,计算机亦可用作服务器。

图4是根据本申请的一些实施例所示的一种示例性处理设备的框图。如图4所示,处理设备122可以包括获取模块402、目标线识别模块404和距离确定模块406。

获取模块402可以被配置为获取由相机(例如,单目相机)捕获的图像。在一些实施例中,图像可以包括二维(2D)图像、三维(3D)图像、三维(4D)图像等,或其任意组合。图像可以包括对象,例如车辆(例如,自行车、电动机、汽车、公共汽车、卡车)、行人、动物(例如,狗、猫)、障碍物(例如,石头、路障、木板、电线杆等)。

目标线识别模块404可以被配置为基于对象识别图像中的至少一条目标线。在一些实施例中,至少一条目标线可以与至少两条预设参考线相关联,其中至少两条预设参考线分别与其到相机的水平参考距离相对应(也可以称为“到车辆110的水平参考距离”)。在一些实施例中,目标线识别模块404可以将至少两条预设参考线中的至少一条投影到图像上,并确定与至少两条预设参考线中的至少一条相对应的至少一条预测线。此外,目标线识别模块404可以基于至少一条预测线和对象来识别至少一条目标线。例如,目标线识别模块404可以确定与图像中的对象相关联的至少一个测量点,并基于至少一个测量点和至少一条预测线来识别图像中的至少一条目标线。在一些实施例中,目标线识别模块404可以包括一个测量点确定单元(未示出),其被配置为确定至少一个测量点。

距离确定模块406可以被配置为基于至少一条目标线确定相机和对象之间的距离。在一些实施例中,对于至少一条目标线中的每一条,距离确定模块406可以基于与目标线相对应的高度和水平距离,确定与目标线相对应的目标距离。然后,距离确定模块406可以基于与至少一条目标线相对应的至少一个目标距离,确定相机和对象之间的距离。关于距离确定的更多描述可以在本申请的其他地方找到(例如,图11及其描述)。

处理设备122中的模块可以被配置通过有线连接或无线连接或彼此通信。有线连接可以包括金属电缆、光缆、混合电缆等,或其任何组合。无线连接可以包括局部区域网络(LAN)、广域网(WAN)、蓝牙、Zigbee、近场通信(NFC)等,或其任意组合。可以将两个或更多个模块组合为单个模块,并且可以将任何一个模块划分为两个或更多个单元。例如,处理设备122可包括与距离测量相关联的用于存储信息和/或数据(例如,至少两条预设参考线、至少一条预测线、至少一条目标线、至少一个测量值)的存储模块(未示出)。

图5是根据本申请的一些实施例所示的一种用于确定相机与对象之间的距离的示例性过程的流程图。在一些实施例中,过程500可以被实现为存储在存储ROM 230或RAM240中的一组指令(例如,应用程序)。处理器220和/或图4中的模块可以执行该一组指令,并且当执行指令时,处理器220和/或模块可以被配置为执行过程500。下述示例性过程的操作旨在进行说明。在一些实施例中,过程500可以通过未描述的一个或以上附加操作和/或不通过一个或以上本申请讨论的操作来完成。此外,本申请并不打算限制图5和下述过程的操作顺序。

步骤501,处理设备122(例如,获取模块402)(例如,处理器220的接口电路)可以获取由相机(例如,单目相机)捕获的图像。

结合图1所述,相机可以安装在车辆110上并且被配置为捕获与车辆110的周围环境相关联的图像。在一些实施例中,图像可以包括二维(2D)图像、三维(3D)图像、四维(4D)图像等,或其任意组合。在一些实施例中,图像可以包括对象。对象可以包括车辆(例如,自行车、电动机、汽车、公共汽车、卡车)、行人、动物(例如,狗、猫)、障碍物(例如,石头、路障、木板、杆)等。

步骤503,处理设备122(例如,目标线识别模块404)(例如,处理器220的处理电路)可以基于对象识别图像中的至少一条目标线。

在一些实施例中,至少一条目标线可以与至少两条预设参考线相关联,其中至少两条预设参考线中的每一条分别与其到所述相机的水平参考距离(也可以视为到车辆110的水平参考距离)相对应。水平参考距离可以是自动驾驶系统100的默认设置,或者可以在不同情况下可调节。在一些实施例中,处理设备122可以基于与至少两条预设参考线中的至少一条相对应的至少一条预测线,确定至少一条目标线。关于预设参考线的更多描述可以在本申请的其他地方找到(例如,图6A-6C及其描述)。

在一些实施例中,处理设备122可以确定与图像中的对象相关联的至少一个测量点,并基于至少一个测量点和至少一条预测线,识别图像中的至少一条目标线。例如,处理设备122可以将至少一个测量点位于其上或之间的至少一条预测线确定为至少一条目标线。又例如,处理设备122可以将至少一个测量点附近的至少一条预测线确定为至少一条目标线。如本文所用,“在...附近”是指至少一个测量点中的任意一个与至少一条目标线之间的距离小于距离阈值。再例如,处理设备122可以基于对象(例如,至少一个测量点)从至少一预测线中选择至少一条候选线,并通过对至少一条候选线执行插值运算以确定至少一条目标线。作为又一示例,处理设备122可以将与至少两条预设参考线相对应的至少两条预测线确定为至少一条目标线。有关确定至少一条目标线的更多说明,可以在本申请的其他地方找到(例如,图8A-8F及其说明)。

在一些实施例中,为了确定至少一个测量点,处理设备122可以使用目标检测算法确定包含对象的边界框,并基于该边界框确定至少一个测量点。目标检测算法可以包括具有卷积神经网络特征的区域(R-CNN)算法、快速R-CNN算法、更快速R-CNN算法、仅看一次(YOLO)算法、单发多框检测器(SSD)算法等,或其任意组合。

在一些实施例中,边界框可以是矩形框、沿着对象的2D轮廓的框、圆形框或任何不规则框。在一些实施例中,处理设备122可以选择边界框以上的点作为至少一个测量点。例如,处理设备122可以选择边界框边缘的中点作为至少一个测量点。又例如,处理设备122可以选择边界框边缘的至少一个端点作为至少一个测量点。在一些实施例中,处理设备122可以选择边界框内的一个或多个点作为至少一个测量点。例如,处理设备122可以选择边界框的中心点作为至少一个测量点。又例如,处理设备122可以在边界框内选择多个点,并基于多个点的位置确定加权平均位置作为至少一个测量点。如本文所使用的,对应于点的加权系数可以与该点的位置相关联。例如,对应于对象上的点的加权系数可以大于对应于对象外的点的加权系数。又例如,对应于更靠近边界框中心点的点的加权系数可以大于对应于远离中心点的点的加权系数。有关确定至少一个测量点的更多描述可以在本申请的其他地方找到(例如,图7A-7E及其描述)。

步骤505,处理设备122(例如,距离确定模块408)(例如,处理器220的处理电路)可以基于至少一条目标线确定相机与对象之间的距离。

在一些实施例中,对于至少一条目标线中的每一条,处理设备122可以基于与该目标线相对应的距相机的高度和水平距离,确定与目标线相对应的目标距离。此外,处理设备122可以基于与至少一条目标线相对应的至少一个目标距离,确定相机与对象之间的距离。

在一些实施例中,处理设备122可以基于至少一个目标距离的平均值或加权平均值,确定相机与对象之间的距离。在一些实施例中,处理设备122可以基于至少一个目标距离的和或加权和,确定相机与对象之间的距离。关于距离确定的更多描述可以在本申请的其他地方找到(例如,图11及其描述)。

在一些实施例中,处理设备122可以控制相机连续拍摄图像并确定在图像中是否检测到对象(例如,行人、障碍物)。响应于确定检测到对象,处理设备122可以确定相机与对象之间的距离。在一些实施例中,处理设备122可以控制相机实时捕获与对象(例如,移动的车辆)相关联的图像,并实时确定相机与对象之间的距离。

应当注意的是,上述有关流程500的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对本领域技术人员而言,在本申请的教导下,可以进行多种变化和修改。然而,这些变化和修改并不偏离本申请的范围。例如,操作503可以包括子操作,其中处理设备122可以确定与对象相关联的至少一个测量点。又例如,一个或以上其他可选操作(例如,存储操作)可以在过程500中的其他位置添加。在存储操作中,处理设备122可以将与距离测量相关联的信息和/或数据(例如,至少两条预设参考线、至少一条目标线、至少一个测量点)存储在本申请其他地方披露的存储设备中(例如,设备140)。

图6A和图6B是根据本申请的一些实施例所示的相机和至少两条预设参考线之间的位置关系的示意图。如图所示,图6A是相机和至少两条预设参考线的侧视图,图6B是相机和至少两条预设参考线的俯视图。

如图6A和6B所示,相机604可以安装在车辆110的顶部,并且至少两条预设参考线606可以垂直于相机604的光轴608。至少两条预设参考线606中的每一条可对应于到相机604的相应水平参考距离(例如,L1、L2)。在一些实施例中,至少两条预设参考线606可以等距。即,至少两条预设参考线606可以是沿着车辆110的移动方向具有等距间隔的线。等距间隔可以是自动驾驶系统100的默认设置,或者不同情况下可调。例如,等距间隔可以是10cm、50cm、1m、2m、5m等。在一些实施例中,至少两条预设参考线606可能是非等距的。即,至少两条预设参考线可以是沿着车辆110的移动方向具有非等间隔的线。

在一些实施例中,至少两条预设参考线606可被视为随着相机604(或车辆110)移动的道路上的至少两条虚拟线。在某些情况下,由于道路可能是高低不平的(即,道路上不同位置的高度(例如,海拔)可能不同),所以当车辆110沿着道路行驶时,预设参考线的高度可能会不同。在一些实施例中,可以从存储在本申请其他地方公开的存储设备(例如,存储设备140)中的地图信息获取预设参考线的高度。

图6C是根据本申请的一些实施例所示的一种对应于至少两条预设参考线的示例性预测线的示意图。如图6C所示,可以通过将至少两条预设参考线606中的至少一个投影到相机604的成像平面652上,以生成一个或以上预测线656。以特定的预设参考线为例,特定的预设参考线对应于到相机的特定水平参考距离,因此,对应于特定预设参考线的预测线对应于特定水平参考距离。结合步骤503所述,处理设备122可以基于一个或以上预测线656,识别至少一条目标线。因此,结合步骤505所描述,可以基于与预测线656(或预设参考线606)相对应的水平参考距离和预设参考线606的高度,确定与至少一条目标线中的每一条相对应的目标距离。

图7A-7E是根据本申请的一些实施例所示的与对象相关联的示例性测量点的示意图。如图7A-7E中的702是指包括对象(例如,车辆)的图像,而704是指包括对象的边界框。为了说明的目的,本申请以矩形边界框为例,但并不以此为限。如本申请书其他部分所述,边界框可以是圆形框、沿着对象2D轮廓的框或任何规则或不规则的框。

结合步骤503所述,处理设备122可以选择边界框704上或之内的一个或多个点作为至少一个测量点。如图7A所示,处理设备122可以选择边界框704的边缘的中点706作为至少一个测量点。如图7B所示,处理设备122可以选择边界框704的边缘的两个端点716作为至少一个测量点。如图7C所示,处理设备122可以选择边界框704的中心点726作为至少一个测量点。如图7D所示,处理设备122可以选择边界框704内的多个随机点736作为至少一个测量点。可替代地或附加地,处理设备122可以将多个随机点736位置的加权平均位置确定为至少一个测量点。如本文所使用的,对应于对象上的点的加权系数可以大于对应于对象外的点的加权系数。如图7E所示,处理设备122可以选择边界框704边缘的中点746-1和边界框704的中心点746-2作为至少一个测量点。

应当指出的是,上述描述仅仅出于说明的目的,并不旨在限制本申请的范围。对于本领域技术人员而言,在本申请的教导下,可以进行多种变化和修改。然而,这些变化和修改并不偏离本申请的范围。例如,边界框可以是圆形盒,并且处理设备122可以选择圆形盒的圆周上和/或圆形盒内的一个或多个点作为至少一个测量点。又例如,边界框可以是沿着对象的2D轮廓的盒子,并且处理设备122可以选择盒子上和/或盒子内的一个或多个点作为至少一个测量点。再例如,处理设备122可以随机选择边界框上的点作为至少一个测量点。

图8A-8F是根据本申请的一些实施例所示的用于基于至少一个测量点确定至少一条目标线的示例性过程的示意图。如图8A-8F所示,虚线表示对应于预设参考线的预测线,912、962-1和962-2指与对象(例如,车辆)相关联的测量点。为了说明的目的,本申请以单个测量点或两个测量点为例,但是应当注意,至少一个测量点的数量也可以是三个或更多。

如图8A所示,处理设备122可以将测量点912所处的预测线914确定为至少一条目标线。如图8B所示,处理设备122可以将两条预测线924a和924b确定为至少一条目标线,其中测量点912位于两条预测线924a和924b之间。如图8C所示,处理设备122可以确定两条预测线934a和934b,其中测量点912位于两条预测线934a和934b之间,通过对两条预测线934a和934b执行插值运算确定内插预测线934,并将内插预测线934确定为至少一条目标线。在这种情况下,内插预测线对应于内插参考线。如图8D所示,处理设备122可以将在测量点912附近的一条或多条预测线(例如,预测线944a-944e)确定为至少一条目标线。如图8E所示,处理设备122可以将与位于对象(例如,测量点912)和相机之间的预设参考线相对应的一条或多条预测线确定为至少一条目标线。如图8F所示,处理设备122可以在测量点962-1所在的预测线964a与测量点962-2所在的预测线964e之间的一条或多条预测线(例如,预测线964a-964e)确定为至少一条目标线。

应当指出的是,上述描述仅仅出于说明的目的,并不旨在限制本申请的范围。对于本领域技术人员而言,在本申请的教导下,可以进行多种变化和修改。然而,这些变化和修改并不偏离本申请的范围。例如,处理设备122可以确定连接至少两个测量点的测量线,并将与该测量线相交的一条或多条预测线确定为至少一条目标线。

图9是根据本申请的一些实施例所示的一种用于识别至少一条目标线的示例性过程的流程图。在一些实施例中,过程900可以被实现为存储在存储器ROM 230或RAM 240中的一组指令(例如,应用程序)。处理器220和/或图4中的模块可以执行该一组指令。当执行指令时,处理器220和/或模块可以被配置为执行过程900。下述示例性过程的操作旨在进行说明。在一些实施例中,过程900可以通过未描述的一个或以上附加操作和/或不通过一个或以上本申请讨论的操作来完成。另外,本申请并不限制图9和以下描述过程的操作顺序。

步骤901,对于至少两条预设参考线中的至少一条,处理设备122(例如,目标线识别模块404)(例如,处理器220的接口电路)可以基于地图信息获取预设参考线的高度。如本文所使用的,预设参考线的“高度”可以指预设参考线所在道路的一部分(例如,预设参考线的中心点所在的部分)的高度。

在一些实施例中,处理设备122可以基于与道路相关的地图信息来获取预设参考线的高度。以“自动驾驶”为例,处理设备122可以从包含厘米级或毫米级精度信息的高清地图中获取预设参考线的高度。在一些实施例中,高清地图可以在线或离线生成。例如,可以基于由安装在测试车辆上的至少两个检测单元(例如,图1中描述的检测单元)捕获的数据(例如,点云数据)离线生成高清地图,该测试车辆用于测量行程。当测试车辆沿着道路移动时,至少两个检测单元可以生成与测试车辆周围环境相关联的点云数据。此外,处理设备(例如,处理设备122)可以基于点云数据生成对应于不同地理区域的至少两个高清晰度地图,并将至少两个高清晰度地图存储在存储设备(例如,自动驾驶系统100的存储设备140)中。因此,处理设备122可以基于预设参考线所位于的道路部分的估计位置,访问存储设备并获取相应的高清地图。

步骤903,对于预设参考线中的至少一条,处理设备122(例如,目标线识别模块404)(例如,处理器220的处理电路)可以在预设参考线上选择至少两个参考点。

在一些实施例中,处理设备122可以选择预设参考线的两个端点作为至少两个参考点。在一些实施例中,处理设备122可以随机选择预设参考线上的两个或多个点(例如,图10所示的点A和点B)作为至少两个参考点。

步骤905,处理设备122(例如,目标线识别模块404)(例如,处理器220的处理电路)可以基于到相机的水平参考距离和预设参考线的高度,将至少两个参考点投影到图像(或成像平面)上。在一些实施例中,处理设备122可以通过执行透视投影操作将至少两个参考点投影到图像(或成像平面)上。

以图10所示的点A为例,处理设备122可以根据公式(1)确定成像平面中的投影点A’:

其中,x

在一些实施例中,以点A为例,处理设备122可以基于到相机的水平参考距离和/或预设参考线的高度,确定点A在世界坐标系中的坐标(即,x

其中R表示平移参数的平移变换矩阵(例如3*3矩阵),T表示旋转参数的旋转变换矩阵(例如3*1矩阵),其中平移参数和旋转参数可以统称为与相机相关的外部参数。

步骤907,处理设备122(例如,目标线识别模块404)(例如,处理器220的处理电路)可以基于所投影的至少两个参考点,确定与图像中的预设参考线相对应的预测线。在一些实施例中,处理设备122可以确定穿过所投影的至少两个参考点的线(例如,图10中示出的连接点A′和点B′的线)为预测线。

步骤909,处理设备122(例如,目标线识别模块404)(例如,处理器220的处理电路)可以基于与至少两条预设参考线中的至少一条相对应的至少一条预测线和对象,识别至少一条目标线。

结合步骤503所述,处理设备122可以确定与图像中的对象相关联的至少一个测量点,并基于至少一个测量点,识别图像中的至少一条目标线。例如,处理设备122可以将至少一个测量点位于其上或之间的至少一条预测线确定为至少一条目标线。又例如,处理设备122可以基于对象从至少一预测线中选择至少一条候选线,并通过对至少一条候选线执行插值运算,确定至少一目标线。关于确定至少一条目标线的更多描述可以在本申请的其他地方找到(例如,图8A-8F及其说明)。

应当注意的是,上述有关过程900的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员而言,在本申请的教导下,可以进行多种变化和修改。然而,这些变化和修改并不偏离本申请的范围。例如,可以在过程900中的其他地方添加一个或多个其他可选操作(例如,存储操作)。在存储操作中,处理设备122可以将与距离测量相关联的信息和/或数据(例如,至少两条预设参考线、至少一条预测线、至少一条目标线)存储在本申请的其他地方披露的存储设备(例如,存储设备140)中。又例如,处理设备122可以基于到相机的水平参考距离和预设参考线的高度将预设参考线直接投影到图像(或成像平面)上,并确定与图像中的预设参考线相对应的预测线。

图10是根据本申请的一些实施例所示的一种用于将预设参考线投影到图像上的示例性过程的示意图。如图所示,o

对于世界坐标系,原点(即,o

对于相机坐标系,原点(即,o)可以是相机的光学中心,z轴(即,oz)可以是沿相机光轴的方向,x轴(即,ox轴)和y轴(即,oy轴)可以平行于成像平面1006。结合操作905所述,可以根据公式(2)将世界坐标系中点的坐标变换为相机坐标系中的对应坐标。

对于沿着成像平面1006的图像坐标系,原点(即,o

图11是根据本申请的一些实施例所示的一种用于确定相机与对象之间的距离的示例性过程的流程图。在一些实施例中,过程1100可以实现为存储在存储器ROM 230或RAM240中的一组指令(例如,应用程序)。处理器220和/或图4中的模块可以执行该一组指令。当执行指令时,处理器220和/或模块可以被配置为执行过程1100。下述示例性过程的操作旨在进行说明。在一些实施例中,过程1100可以通过未描述的一个或以上附加操作和/或不通过一个或以上本申请讨论的操作来完成。另外,本申请并不限制图11和下述过程的操作顺序。

步骤1101,对于至少一条目标线中的每一条,处理设备122(例如,距离确定模块406)(例如,处理器220的处理电路)可以基于地图信息,获取对应于目标线的高度。

结合步骤503和附图所述,参照图8A-8F,可以基于至少两条预设参考线中的至少一条(例如,基于与至少两条预设参考线中的至少一条相对应的至少一条预测线),确定至少一条目标线。因此,对于至少一条目标线中的每一条,处理设备122可以基于至少两条预设参考线中的至少一条的高度,确定与目标线相对应的高度。例如,假设目标线是预测线,则处理设备122可以获取与预测线相对应的预设参考线的高度。又例如,假设目标线是基于两条预测线确定的内插预测线(例如,图8C中的线934),则处理设备122可以获取与两条预测线相对应的两条预设参考线的高度,并通过对该两个高度执行插值运算,确定与目标线(即,内插预测线)相对应的高度(可以视为对应于内插参考线的高度)。

结合步骤901所述,预设参考线的“高度”可以指预设参考线所位于的道路的一部分的高度。处理设备122可以访问存储设备(例如,存储设备140),并基于预设参考线所在的道路的一部分的估计位置检索对应的高清地图,获取预设参考线的高度。

步骤1103,处理设备122(例如,距离确定模块406)(例如,处理器220的处理电路)可以获取与目标线相对应的到相机的水平距离。

如上所述,对于至少一条目标线中的每一条,处理设备122可以基于至少两条预设参考线中的至少一条到相机的水平参考距离,确定与目标线对应的到相机的水平距离。例如,假设目标线是预测线,则处理设备122可以获取与预测线相对应的预设参考线的水平参考距离。又例如,假设目标线是基于两条预测线确定的内插预测线(例如,图8C中的934),则处理设备122可以获取与两条预测线相对应的两个预设参考线的水平参考距离,并通过对该两个水平参考距离执行插值运算,确定与目标线相对应的水平参考距离(可以视为对应的内插参考线到相机的水平参考距离)。在一些实施例中,处理设备122可以通过检索本申请中其他地方公开的存储设备(例如,存储设备140),获取预设参考线到相机的水平参考距离。

步骤1105,处理设备122(例如,距离确定模块406)(例如,处理器220的处理电路)可以基于高度和水平距离,确定与目标线相对应的目标距离。

在一些实施例中,对于至少一条目标线中的每一条,处理设备122可以根据下述的公式(3)确定对应于目标线的目标距离:

其中,d

在一些实施例中,处理设备122可以根据下述公式(4)确定对应于目标线的目标距离:

其中,D

步骤1107,处理设备122(例如,距离确定模块406)(例如,处理器220的处理电路)可以基于与至少一条目标线相对应的至少一个目标距离,确定相机与对象之间的距离。

在一些实施例中,处理设备122可以根据下述公式(5),基于至少一个目标距离确定相机与对象之间的距离:

其中,d

在一些实施例中,处理设备122可以根据下述公式(6),基于至少一个目标距离,确定相机与对象之间的距离:

其中,D

应当注意的是,上述有关过程900的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员而言,在本申请的教导下,可以进行多种变化和修改。然而,这些变化和修改并不背离本身的范围。

图12A是根据本申请的一些实施例所示的一种相机与对象之间的示例性距离的侧视图的示意图。如图12A所示,1210指安装在车辆110上的相机,1220指对应于目标线的参考线(例如,预设参考线或内插参考线,为简洁起见,可以统称为“参考线”)。可以看出,车辆110可以沿着斜坡AC运动。结合图11所述,处理设备122可以获取对应于目标线的高度(例如,n

图12B是根据本申请的一些实施例所示的一种相机与对象之间的示例性距离的侧视图的示意图。如图12B所示,1242、1244和1246指对应于目标线的参考线。可以看出,车辆110可以沿着起伏不平的道路行驶。结合图11所述,对于每条目标线,处理设备122可以获取对应于目标线的高度和对应于目标线的到相机的水平距离。例如,为方便起见,假设相机1210的高度为0,对于与参考线1242对应的目标线,处理设备122可获取高度n

此外,对于每条目标线,处理设备122可以根据公式(4)确定与目标线相对应的目标距离。例如,对于与参考线1242对应的目标线,处理设备122可以按照下述公式确定目标距离(称为第一目标距离):

其中,D

又例如,对于与参考线1244对应的目标线,处理设备122可以按照下述公式确定目标距离(称为第二目标距离):

其中,D

再例如,对于与参考线1246相对应的目标线,处理设备122可以按照下述公式确定目标距离(称为第三目标距离):

其中,D

此外,处理设备122可以基于与目标线相对应的目标距离,确定相机1210与对象(可以位于参考线1246上)(未示出)之间的距离。例如,处理设备122可以根据公式(6)确定目标距离的总和或加权总和作为相机1210和对象之间的距离。

应当指出的是,上述描述仅仅出于说明的目的,并不旨在限制本申请的范围。对于本领域技术人员而言,在本申请的教导下,可以进行多种变化和修改。然而,这些变化和修改并不偏离本申请的范围。例如,车辆110可以沿着弯曲的道路移动,相应地,处理设备122可以根据在其他地方公开的方法将弯曲的道路划分成至少两个段并且在至少两个段上确定至少两个距离。

上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示例性实施例的精神和范围。

同时,本申请使用了特定词语描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行,可以完全由软件(包括固件、常驻软件、微码等)执行,也可以由硬件和软件组合执行。以上硬件或软件均可被称为“区块”、“模块”、“单元”、“组件”、“引擎”或“系统”。此外,本申请的各方面可以采用计算机程序产品的形式,该计算机程序产品体现在具有计算机可读程序代码包含在其上的一个或以上非暂时性计算机可读介质中。

计算机可读信号介质可能包含一个内含有计算机可读程序代码的传播数据信号,例如在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等,或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF等,或任何上述介质的组合。

本申请各部分操作所需的计算机程序编码可以用任意一种或以上程序语言编写,包括面向主体编程语言(如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等)、常规程序化编程语言(如C语言、Visual Basic、Fortran 1703、Perl、COBOL 1702、PHP、ABAP)、动态编程语言(如Python、Ruby和Groovy)或其他编程语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用(如软件即服务(SaaS))。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述申请中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于申请的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为要求保护的主题所需要的特征比每个权利要求中所明确记载的特征多。相反,要求保护的主题的特征要少于上述所披露的单个实施例的全部特征。

技术分类

06120113803294