本发明涉及自动驾驶技术领域,尤其涉及一种基于视觉的自动化标志牌语义建图定位方法及系统。
技术背景
随着科技进步与社会发展,自动驾驶车辆成为未来汽车的重要发展方向,其不仅能保障人们的安全出行和舒适体验,还能极大提升人们出行的效率。基于语义的定位手段对于自动驾驶具有重要的意义,能实现自动驾驶车辆的自主定位与导航。
在城市和高速环境中,标志牌包含了道路状况的改变、行驶速度和驾驶行为限制等重要信息,因其分布较广、形状固定、特征明显、可视面积大,更是语义地图的重要组成部分。在地库或停车场,标志牌包含了可识别性的内容,能作为定位或导航的依据。通常,基于高精度惯性导航单元和激光点云的识别和建图方案,需依赖昂贵的传感器设备,不利于大规模部署和持续更新地图。而基于视觉的方案相比之下更廉价,易于广泛部署和持续更新,更是与视觉定位紧密耦合,具有重要的应用价值。
因此,确有必要设计一种基于视觉的自动化标志牌语义建图定位方法和系统,以解决上述技术问题。
技术实现要素:
本申请披露了一种基于视觉的自动化标志牌语义建图定位方法及系统,基于视觉的手段,根据标志牌来建立语义地图,为自动驾驶车辆提供实时的定位,适用于室内和室外的各种场景。
本申请一方面提供一种基于视觉的自动化标志牌语义建图定位方法,包括如下步骤:获取车辆行驶过程中的连续图像和其对应的定位信息,所述连续图像对应的定位信息至少包括:所述车辆在室外行驶过程中,所述连续图像在世界坐标系下的位置信息,和所述车辆在室内行驶过程中,所述连续图像在室内坐标系下的位置信息的一个或多个;识别所述连续图像中的标志牌信息,所述标志牌信息至少包括:室外的标志牌的识别框和室内的标志牌的识别框一个或多个;基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息,所述标志牌的定位信息至少包括:室外的标志牌在世界坐标系下的位置信息和室内的标志牌在室内坐标系下的位置信息的一个或多个;基于所述连续图像中的标志牌信息和其对应的标志牌的定位信息,建立基于标志牌的语义地图;获取所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。
本申请另一方面提供一种基于视觉的自动化标志牌语义建图定位系统,包括:图像采集模块,在工作状态下,所述图像采集模块采集车辆行驶路段中的连续图像;定位模块,在工作状态下,所述定位模块采集所述连续图像的定位信息;建图模块,在工作状态下,所述建图模块接收所述连续图像及其对应的定位信息,识别所述连续图像中的标志牌信息,确定所述连续图像中的标志牌的定位信息,并根据所述连续图像中的标志牌信息和标志牌的定位信息生成基于标志牌的语义地图;在线定位模块,在工作状态下,所述在线定位模块接收所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。
本申请另一方面提供一种非暂时性的计算机可读介质,包括可执行指令,所述指令被至少一个处理器执行时,导致所述至少一个处理器实现一种方法,包括:获取车辆行驶过程中的连续图像和其对应的定位信息,所述连续图像对应的定位信息至少包括:所述车辆在室外行驶过程中,所述连续图像在世界坐标系下的位置信息,和所述车辆在室内行驶过程中,所述连续图像在室内坐标系下的位置信息的一个或多个;识别所述连续图像中的标志牌信息,所述标志牌信息至少包括:室外的标志牌的识别框和室内的标志牌的识别框一个或多个;基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息,所述标志牌的定位信息至少包括:室外的标志牌在世界坐标系下的位置信息和室内的标志牌在室内坐标系下的位置信息的一个或多个;基于所述连续图像中的标志牌信息和其对应的标志牌的定位信息,建立基于标志牌的语义地图;获取所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。
附图说明
以下附图详细描述了本申请中披露的示例性实施例。其中相同的附图标记在附图的若干视图中表示类似的结构。本领域的一般技术人员将理解这些实施例是非限制性的、示例性的实施例,附图仅用于说明和描述的目的,并不旨在限制本申请的范围,其他方式的实施例也可能同样的完成本申请中的发明意图。其中:
图1是本申请中基于视觉的自动化标志牌语义建图定位系统的一个实施例的场景示意图;
图2是本申请中具有自动驾驶能力的示例性车辆的一个实施例的结构示意图;
图3是本申请中信息处理单元的示例性硬件和软件组件的示意图;
图4是本申请中基于视觉的自动化标志牌语义建图定位系统的一个实施例的组成示意图;
图5是本申请中建图模块的一个实施例的组成示意图;
图6是本申请中一个基于视觉的自动化标志牌语义建图定位方法的方法流程图。
具体实施方式
本申请披露了一种基于视觉的自动化标志牌语义建图定位方法及系统,基于视觉的手段,根据标志牌来建立语义地图,为自动驾驶车辆提供实时的定位,适用于室内和室外的各种场景。
为了给本领域普通技术人员提供相关披露的透彻理解,在以下详细描述中通过示例阐述了本发明的具体细节。然而本申请披露的内容应该理解为与权利要求的保护范围一致,而不限于该具体发明细节。比如,对于本领域普通技术人员来说,对本申请中披露的实施例进行各种修改是显而易见的;并且在不脱离本申请的精神和范围的情况下,本领域的普通技术人员可以将这里定义的一般原理应用于其他实施例和应用。再比如,这些细节如果没有以下披露,对本领域普通技术人员来说也可以在不知道这些细节的情况下实践本申请。另一方面,为了避免不必要地模糊本申请的内容,本申请对公知的方法,过程,系统,组件和/或电路做了一般性概括而没有详细描述。因此,本申请披露的内容不限于所示的实施例,而是与权利要求的组款范围一致。
本申请中使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如除非上下文另有明确说明,本申请中如果对某要件使用了单数形式的描述(比如,″一″、″一个″和/或等同性的说明)也可以包括多个该要件。在本申请中使用的术语″包括″和/或″包含″是指开放性的概念。比如a包括/包含b仅仅表示a中有b特征的存在,但并不排除其他要件(比如c)在a中存在或添加的可能性。
应当理解的是,本申请中使用的术语,比如″系统″,″单元″,″模块″和/或″块″,是用于区分不同级别的不同组件,元件,部件,部分或组件的一种方法。但是,如果其他术语可以达到同样的目的,本申请中也可能使用该其他术语来替代上述术语。
本申请中描述的模块(或单元,块,单元)可以实现为软件和/或硬件模块。除非上下文另有明确说明,当某单元或模块被描述为″接通″、″连接到″或″耦合到″另一个单元或模块时,该表达可能是指该单元或模块直接接通、链接或耦合到该另一个单元或模块上,也可能是指该单元或模块间接的以某种形式接通、连接或耦合到该另一个单元或模块上。在本申请中,术语″和/或″包括一个或多个相关所列项目的任何和所有组合。
在本申请中,术语″自动驾驶车辆″可以指能够感知其环境并且在没有人(例如,驾驶员,飞行员等)输入和/或干预的情况下对外界环境自动进行感知、判断并进而做出决策的车辆。术语″自动驾驶车辆″和″车辆″可以互换使用。术语″自动驾驶″可以指没有人(例如,驾驶员,飞行员等)输入的对周边环境进行智能判断并进行导航的能力。
考虑到以下描述,本申请的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本申请的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本申请的范围。应理解,附图未按比例绘制。
本申请中使用的流程图示出了根据本申请中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
本申请中使用的定位技术可以基于全球定位系统(gps),全球导航卫星系统(glonass),罗盘导航系统(compass),伽利略定位系统,准天顶卫星系统(qzss),无线保真(wifi)定位技术等,或其任何组合。一个或多个上述定位系统可以在本申请中互换使用。
此外,尽管本申请中的系统和方法主要描述了关于基于交通灯的车辆速度决策系统与方法,但是应该理解,这仅是示例性实施例。本申请的系统或方法可以应用于任何其他类型的导航系统。例如,本申请的系统或方法可以应用于不同环境的运输系统,包括陆地,海洋,航空航天等,或其任何组合。运输系统的自动驾驶车辆可包括出租车,私家车,挂车,公共汽车,火车,子弹列车,高速铁路,地铁,船只,飞机,宇宙飞船,热气球,无人驾驶车辆等,或其任何组合。在一些实施例中,该系统或方法可以在例如物流仓库,军事事务中找到应用。
图1是本申请中基于视觉的自动化标志牌语义建图定位系统的一个实施例的场景示意图。如图1所示,自动驾驶车辆130(下文简称″车辆″)可在道路121(包括室内的和室外的道路)上沿着其自主设定的路径120行驶,而无需人们输入路径行驶。所述自动驾驶车辆130在道路121上行驶时不得违反所述道路121的交通规则,例如,所述自动驾驶车辆130的速度不得超过所述道路121的最高限速,又例如,行驶至交叉路口时不得闯红灯,再例如,不得越道行驶。
所述自动驾驶车辆130可包括非自主车辆所有的一些常规结构,例如,发动机、车轮、方向盘等,还可包括基于视觉的自动化标志牌语义建图定位系统400,所述基于视觉的自动化标志牌语义建图定位系统400可以包括:图像采集模块410、定位模块420、建图模块430和在线定位模块440。
在所述道路121处设有标志牌110,所述自动驾驶车辆130可识别和获取所述标志牌110的信息,包括所述标志牌110的定位信息(例如,室外的标志牌110在世界坐标系下的位置,室内的标志牌110在室内坐标系下的位置)、包含所述标志牌110的图像等。室外的标志牌110可以是交通标志牌,交通标志牌是显示交通法规及道路信息的图形符号,包括但不限于警告标志、禁令标志、指路标志、旅游区标志、道路施工安全标志、限速标志(例如,最高限速)等。室内的标志牌110可以是带内容的标志牌,标志牌的内容包括但不限于:文字、图像、识别码等行驶,例如,在地库或停车场中带数字标号的标志牌。所述自动驾驶车辆130在道路121上行驶的过程中,可基于所述标志牌110的信息建立语义地图,由此确定车辆的当前位置,例如,可以基于包含所述标志牌110的图像及其对应的定位信息等参数,生成基于标志牌的语义地图,又例如,基于标志牌的语义地图,所述自动驾驶车辆130确定当前位置。
图2是根据本申请的一些实施例的具有自动驾驶能力的示例性车辆和自动驾驶系统200的框图。如图2所示,所述自动驾驶车辆130可包括基于视觉的自动化标志牌语义建图定位系统400、控制模块150,存储器220,网络230,网关模块240,控制器区域网络(can)250,发动机管理系统(ems)260,电动稳定性控制(esc)270,电力系统(eps)280,转向柱模块(scm)290,节流系统265,制动系统275和转向系统295。
所述基于视觉的自动化标志牌语义建图定位系统400可以在车辆的行驶过程中,建立语义地图,并通过该语义地图对车辆进行实时定位。
所述控制模块150可以处理与车辆驾驶(例如,自动驾驶)有关的信息和/或数据,以执行本申请中描述的一个或多个功能。在一些实施例中,所述控制模块150可以接收定位信息,并根据所述定位信息控制所述自动驾驶车辆130的行驶路径。在一些实施例中,所述控制模块150可以配置成自主地驱动车辆。例如,所述控制模块150可以输出多个控制信号。多个控制信号可以被配置为由多个电子控制模块(electroniccontrolunits,ecu)接收,以控制车辆的驱动。在一些实施例中,所述控制模块150可以包括一个或多个处理引擎(例如,单核处理引擎或多核处理器)。仅作为示例,所述控制模块150可以包括中央处理单元(centralprocessingunit,cpu),专用集成电路(application-specificintegratedcircuit,asic),专用指令集处理器(application-specificinstruction-setprocessor,asip),图形处理单元(graphicsprocessingunit,gpu),物理处理单元(physicsprocessingunit,ppu),数字信号处理器(digitalsignalprocessor,dsp),场可编程门阵列(fieldprogrammablegatearray,fpga),可编程逻辑器件(programmablelogicdevice,pld),控制器,微控制器单元,精简指令集计算机(reducedinstruction-setcomputer,risc),微处理器(microprocessor)等,或其任何组合。
所述存储器220可以存储数据和/或指令。在一些实施例中,所述存储器220可以存储从所述自动驾驶车辆130获得的数据(例如,所述图像采集模块410、定位模块420获取的数据,所述建图模块430和在线定位模块440生成的数据)。在一些实施例中,所述存储器220可以存储高精度地图,高精度地图中还包括车道数量、车道宽度、道路曲率、道路坡度、最高速度和推荐行驶速度等信息。在一些实施例中,所述存储器220可以存储所述控制模块150可以执行或使用的数据和/或指令,以执行本申请中描述的示例性方法。在一些实施例中,所述存储器220可以包括大容量存储器,可移动存储器,易失性读写存储器(volatileread-and-writememory),只读存储器(rom)等,或其任何组合。作为示例,比如大容量存储器可以包括磁盘,光盘,固态驱动器等;比如可移动存储器可以包括闪存驱动器,软盘,光盘,存储卡,拉链盘,磁带;比如易失性读写存储器可以包括随机存取存储器(ram);比如ram可以包括动态ram(dram),双倍数据速率同步动态ram(ddrsdram),静态ram(sram),可控硅ram(t-ram)和零电容器ram(z-ram);比如rom可以包括掩模rom(mrom),可编程rom(prom),可擦除可编程rom(eprom),电可擦除可编程rom(eeprom),光盘rom(cd-rom),以及数字通用磁盘rom等。在一些实施例中,存储可以在云平台上实现。仅作为示例,云平台可以包括私有云,公共云,混合云,社区云,分布式云,云间云,多云等,或其任何组合。
在一些实施例中,所述存储器220可以连接到所述网络230以与自动驾驶车辆130的一个或多个组件(例如,控制模块150、图像采集模块410、定位模块420、建图模块430和在线定位模块440)通信。所述自动驾驶车辆130中的一个或多个组件可以经由所述网络230访问存储在所述存储器220中的数据或指令。在一些实施例中,所述存储器220可以直接连接到所述自动驾驶车辆130中的一个或多个组件或与其通信(例如,控制模块150、图像采集模块410、定位模块420、建图模块430和在线定位模块440)。在一些实施例中,所述存储器220可以是自动驾驶车辆130的一部分。
所述网络230可以促进信息和/或数据的交换。在一些实施例中,所述自动驾驶车辆130中的一个或多个组件(例如,控制模块150,图像采集模块410、定位模块420、建图模块430和在线定位模块430)可以经由所述网络230将信息和/或数据发送到所述自动驾驶车辆130中的其他组件。例如。所述控制模块150可以经由所述网络230获得/获取车辆的动态情况和/或车辆周围的环境信息。在一些实施例中,所述网络230可以是任何类型的有线或无线网络,或其组合。仅作为示例,所述网络230可以包括有线网络,有线网络,光纤网络,远程通信网络,内联网,因特网,局域网(lan),广域网(wan),无线局域网(wlan),城域网(man),广域网(wan),公共电话交换网(pstn),蓝牙网络,zigbee网络,近场通信(nfc)网络等,或其任何组合。在一些实施例中,所述网络230可以包括一个或多个网络接入点。例如,所述网络230可以包括有线或无线网络接入点,例如基站和/或互联网交换点230-1,......,230-1。通过该自动驾驶车辆130的一个或多个部件可以连接到网络230以交换数据和/或信息。
所述网关模块240可以基于车辆的当前驾驶状态确定多个ecu(例如,ems260,eps280,esc270,scm290)的命令源。命令源可以来自人类驾驶员,来自所述控制模块150等,或其任何组合。
所述网关模块240可以确定车辆的当前驾驶状态。车辆的驾驶状态可以包括手动驾驶状态,半自动驾驶状态,自动驾驶状态,错误状态等,或其任何组合。例如,所述网关模块240可以基于来自人类驾驶员的输入将车辆的当前驾驶状态确定为手动驾驶状态。又例如,当前道路状况复杂时,所述网关模块240可以将车辆的当前驾驶状态确定为半自动驾驶状态。作为又一示例,当发生异常(例如,信号中断,处理器崩溃)时,所述网关模块240可以将车辆的当前驾驶状态确定为错误状态。
在一些实施例中,所述网关模块240可以判断车辆的当前驾驶状态是手动驾驶状态做出响应,将人类驾驶员的操作发送到多个ecu。例如,确定了车辆的当前驾驶状态是手动驾驶状态后,所述网关模块240可以做出响应将由人类驾驶员执行的对所述自动驾驶车辆130的加速器的按压操作发送到所述ems260。确定了车辆的当前驾驶状态是自动驾驶状态后,所述网关模块240可以做出响应将所述控制模块150的控制信号发送到多个ecu。例如,确定车辆的当前驾驶状态是自动驾驶状态后,网关模块240可以做出响应将与转向操作相关联的控制信号发送到所述scm290。所述网关模块240可以响应于车辆的当前驾驶状态是半自动驾驶状态的结论,将人驾驶员的操作和所述控制模块150的控制信号发送到多个ecu。当确定了车辆的当前驾驶状态是错误状态的时候,所述网关模块240可以做出响应将错误信号发送到多个ecu。
所述控制器区域网络(can总线)250是个可靠的车辆总线标准(例如,基于消息的协议message-basedprotocol),其允许微控制器(例如,控制模块150)和设备(例如,ems260,eps280,esc270和/或scm290等)在没有主计算机的应用程序中彼此通信。所述can250可以被配置为将所述控制模块150与多个ecu(例如,ems260,eps280,esc270,scm290)连接。
所述ems260可以确定所述自动驾驶车辆130的发动机性能。在一些实施例中,所述ems260可以基于来自所述控制模块150的控制信号确定自动驾驶车辆130的发动机性能。例如。当前驾驶状态是自动驾驶状态时,所述ems260可以基于与来自所述控制模块150的加速度相关联的控制信号来确定自动驾驶车辆130的发动机性能。在一些实施例中,所述ems260可以基于人类驾驶员的操作来确定所述自动驾驶车辆130的发动机性能。例如,当前驾驶状态是手动驾驶状态时,所述ems260可以基于人驾驶员对加速器的按压来确定所述自动驾驶车辆130的发动机性能。
所述ems260可以包括多个传感器和至少一个微处理器。多个传感器可以被配置为检测一个或多个物理信号并将一个或多个物理信号转换为电信号以进行处理。在一些实施例中,所述多个传感器可包括各种温度传感器,空气流量传感器,节气门位置传感器,泵压力传感器,速度传感器,氧传感器,负载传感器,爆震传感器等,或其任何组合。所述一个或多个物理信号可包括但不限于发动机温度,发动机进气量,冷却水温度,发动机速度等,或其任何组合。所述微处理器可以基于多个发动机控制参数确定发动机性能。所述微处理器可以基于多个电信号确定多个发动机控制参数,可以确定多个发动机控制参数以优化发动机性能。所述多个发动机控制参数可包括点火时机,燃料输送,空转气流等,或其任何组合。
所述节流系统265可以改变所述自动驾驶车辆130的运动。例如,所述节流系统265可以基于发动机输出确定所述自动驾驶车辆130的速度。又例如,所述节流系统265可以基于发动机输出引起所述自动驾驶车辆130的加速。所述节流系统365可包括燃料喷射器,燃料压力调节器,辅助空气阀,温度开关,节气门,空转速度电动机,故障指示器,点火线圈,继电器等,或其任何组合。在一些实施例中,所述节流系统265可以是ems260的外部执行器。所述节流系统265可以被配置为基于由ems260确定的多个发动机控制参数来控制发动机输出。
所述esc270可以改善车辆的稳定性,所述esc270可以通过检测和减少牵引力损失来改善车辆的稳定性。在一些实施例中,所述esc270可以所述控制制动系统275的操作以响应于确定所述esc270检测到转向控制的损失而帮助操纵车辆。例如,所述esc270可以提高所述制动系统275的稳定性。当车辆在上坡启动点火的时候通过刹车制动防止车辆下滑,帮助车辆顺利点火。在一些实施例中,所述esc270可以进一步控制发动机性能以改善车辆的稳定性。例如,所述esc270可在发生可能的转向控制损失时降低发动机功率。可能发生失去转向控制的场景包括:当车辆在紧急避让转弯期间滑行时,当车辆在湿滑路面上判断不良时转向不足或转向过度等时刻。
所述制动系统275可以控制所述自动驾驶车辆130的运动状态。例如,所述制动系统275可以使所述自动驾驶车辆130减速。作为另一个示例,所述制动系统275可以在一个或多个道路状况(例如,下坡)下使所述自动驾驶车辆130停止前行。作为又一个示例,所述制动系统275可以在下坡上行驶时使所述自动驾驶车辆130保持恒定速度。所述制动系统275可包括机械控制部件,液压单元,动力单元(例如,真空泵),执行单元等,或其任何组合。机械控制部件可包括踏板,手制动器等。液压单元可包括液压油,液压软管,制动泵等。执行单元可包括制动钳,制动衬块,制动盘,等等。
所述eps280可以控制所述自动驾驶车辆130的电力供应。所述eps280可以为所述自动驾驶车辆130供应,传输和/或存储电力。例如,所述eps280可以包括一个或多个电池和交流发电机。交流发电机可以对电池充电,并且电池可以连接到所述自动驾驶车辆130的其他部分(例如,起动器以提供电力)。在一些实施例中,所述eps280可以控制对所述转向系统295的电力供应。例如,当所述自动驾驶车辆130确定需要进行急转弯的时候(例如,将方向盘一直向左打到底或一直向右打到底),所述eps280可以向所述转向系统295提供大电力以响应于所述自动驾驶车辆130产生大的转向扭矩。
所述scm290可以控制车辆的方向盘。所述scm290可以锁定/解锁车辆的方向盘。所述scm290可以基于车辆的当前驾驶状态来锁定/解锁车辆的方向盘。例如,所述scm290可以响应于确定当前驾驶状态是自动驾驶状态而锁定车辆的方向盘。响应于确定当前驾驶状态是自动驾驶状态,所述scm290可以进一步缩回转向柱轴。作为另一示例,所述scm290可以响应于确定当前驾驶状态是半自动驾驶状态,手动驾驶状态和/或错误状态而解锁车辆的方向盘。所述scm290可以基于所述控制模块150的控制信号来控制所述自动驾驶车辆130的转向。控制信号可以包括与转弯方向,转弯位置,转弯角度等有关的信息,或其任何组合。
所述转向系统295可以操纵所述自动驾驶车辆130。在一些实施例中,所述转向系统295可以基于从所述scm290发送的信号来操纵所述自动驾驶车辆130。例如,所述转向系统295可以响应于确定当前驾驶状态是自动驾驶状态,基于从所述scm290发送的所述控制模块150的控制信号来引导所述自动驾驶车辆130。在一些实施例中,所述转向系统295可以基于人类驾驶员的操作来操纵所述自动驾驶车辆130。例如,当人类驾驶员响应于确定当前驾驶状态是手动驾驶状态而将方向盘转向左方向时,所述转向系统295可以将所述自动驾驶车辆130转向左方向。
图3是信息处理单元300的示例性硬件和软件组件的示意图。所述信息处理单元300上可以承载实施所述控制模块150,ems360,esc270,eps280,scm290......等等。例如,所述控制模块150可以在信息处理单元300上实现以执行本申请中公开的所述控制模块150的功能。
所述信息处理单元300可以是专门设计用于处理来自所述自动驾驶车辆130的传感器和/或部件的信号并将指令发送到车辆130的传感器和/或部件的专用计算机设备。
例如,所述信息处理单元300可以包括连接到与其连接的网络的com端口350,以便于数据通信。所述信息处理单元300还可以包括处理器320,处理器320以一个或多个处理器的形式,用于执行计算机指令。计算机指令可以包括例如执行本文描述的特定功能的例程,程序,对象,组件,数据结构,过程,模块和功能。例如,所述处理器320可以获得与车辆相关的一个或多个交通信号信息和行车信息。与车辆相关的一个或多个交通信号信息和行车信息可以包括车辆的实时速度、车辆与目标的距离、交通灯的颜色、最高限速、车辆的加速度等。或类似物,或其任何组合。
在一些实施例中,所述处理器320可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(rlsc),专用集成电路(asic),特定于应用的指令-集处理器(asip),中央处理单元(cpu),图形处理单元(gpu),物理处理单元(ppu),微控制器单元,数字信号处理器(dsp),现场可编程门阵列(fpga),高级rlsc机器(arm),可编程逻辑器件(pld),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。
所述信息处理单元300可以包括内部通信总线310,程序存储和不同形式的数据存储(例如,磁盘270,只读存储器(rom)330,或随机存取存储器(ram)340)用于由计算机处理和/或发送的各种数据文件。所述信息处理单元300还可以包括存储在rom330,ram340和/或将由处理器320执行的其他类型的非暂时性存储介质中的程序指令。本申请的方法和/或过程可以作为程序指令实现。所述信息处理单元300还包括i/o组件360,支持计算机和其他组件(例如,用户界面元件)之间的输入/输出。所述信息处理单元300还可以通过网络通信接收编程和数据。
仅仅为了说明问题,在本申请中所述信息处理单元300中仅描述了一个处理器。然而,应当注意,本申请中的所述信息处理单元300还可以包括多个处理器,因此,本申请中披露的操作和/或方法步骤可以如本申请所述的由一个处理器执行,也可以由多个处理器联合执行。例如,如果在本申请中信息处理单元300的处理器320执行步骤a和步骤b,则应该理解,步骤a和步骤b也可以由信息处理中的两个不同处理器联合或分开执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同执行步骤a和b)。
图4是本申请中基于视觉的自动化标志牌语义建图定位系统400的一个实施例的组成示意图,如图4所示,所述语义建图定位系统400可包括图像采集模块410、定位模块420、识别模块430、建图模块430和在线定位模块440。
所述图像采集模块410可以采集车辆行驶过程中的连续图像,并将采集的连续图像传送至所述建图模块430。所述图像包括但不限于车辆前方视野的图像,所述图像的内容包括但不限于:其他车辆、建筑物、绿化带、路灯、天空、道路121、交通标志牌、地库内标志牌、停车场内标志牌等。所述图像采集模块410采集的图像为连续图像,也即在一定时间段内连续采集的若干帧图像,例如,一秒内采集30帧图像。在一些实施例中,所述图像采集模块410可以包括摄像机、照相机等。所述车辆在室外的路段行驶时,所述图像采集模块410采集的连续图像中可以包括交通标志牌的信息;所述车辆在室内的路段行驶时,所述图像采集模块410采集的连续图像中可以包括标志牌的信息,例如在地库或停车场内,其中的标志牌包含文字、图片、识别码等内容。
所述定位模块420可以对所述自动驾驶车辆130(也即所述图像采集模块410)进行实时定位,并将定位信息传送至所述建图模块430。所述定位模块420的定位信息与图像采集模块410采集的连续图像相对应,也即每一帧图像均有与其对应的定位信息。在一些实施例中,所述定位模块420可以包括双天线rtk-gps。所述车辆在室外的路段行驶时,所述定位模块420获取的定位信息可以是所述车辆在世界坐标系下的位置;所述车辆在室内的路段行驶时,所述定位模块420获取的定位信息可以是所述车辆在室内坐标系下的位置。在一些实施例中,预先建立室内场景地图及其对应的室内坐标系,所述室内场景地图至少包括:带内容的标志牌及标志牌在室内坐标系下的位置信息,由此确定所述车辆在室内坐标系下的位置。
所述建图模块430可以接收所述连续图像及其对应的定位信息,并根据所述连续图像及其对应的定位信息,建立基于标志牌的语义地图。在一些实施例中,所述建图模块430可以标定世界坐标系与摄像机坐标系的关系以及所述摄像机坐标系与图像坐标系的关系。在一些实施例中,所述建图模块430可以基于接收的连续图像,识别出每一帧图像中的所有标志牌130的识别框。在一些实施例中,所述建图模块430可以基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息。在一些实施例中,所述建图模块430可以基于所述连续图像中的标志牌信息和其对应的标志牌的定位信息,建立基于标志牌的语义地图。
所述在线定位模块440可以利用所述基于标志牌的语义地图,确定所述车辆的当前定位信息。在一些实施例中,所述在线定位模块440可以接收所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以推算所述车辆的当前定位信息。
图5是本申请中建图模块430的一个实施例的组成示意图,如图5所示,所述建图模块430可以包括标定单元431、识别单位432、初始单元433、优化单元434、建图单元435和存储单元436。
所述标定单元431可以标定世界坐标系与摄像机坐标系的关系以及所述摄像机坐标系与图像坐标系的关系。在一些实施例中,所述标定单元431可以标定摄像头内参,也即标定所述摄像机坐标系与图像坐标系的关系。在一些实施例中,所述摄像头内参包括但不限于摄像机焦距、畸变参数等。在一些实施例中,所述标定单元431可以标定摄像头外参,也即标定所述世界坐标系与摄像机坐标系的关系。在一些实施例中,所述摄像头外参包括但不限于摄像机与gps之间的相对位移等。
所述识别单位432可以识别图像帧中的所有标志牌的识别框。在一些实施例中,所述识别单元432可以利用标注好标志牌的识别框的图像数据,训练深度学习网络,训练好的深度学习网络可以识别出所述连续图像中的标志牌的识别框。在一些实施例中,所述识别单元432可以识别室外的交通标志牌的四个角点的框。在一些实施例中,所述识别单元432可以识别室内的标志牌的内容。
所述初始单元433可以接收标志牌的识别框第一次和最后一次出现的两个图像帧,并根据接收的两个图像帧的识别框的像素信息和对应图像帧的定位信息,计算该标志牌的定位信息,并作为该标志牌的推测值。
所述优化单元434可以接收标志牌的识别框出现的所有图像帧,并根据接收的所有图像帧的识别框的像素信息和对应图像帧的定位信息,优化该推测值,得到优化后的该标志牌的定位信息。
所述建图单元435可以接收所述连续图像中的标志牌信息和其对应的标志牌的定位信息,生成基于标志牌的语义地图。
所述存储单元436可以存储建图模块430接收或生成的数据和/或信息以及预先存储信息,例如,由所述图像采集模块410输入的连续图像,由所述定位单元420输入的连续图像的定位信息,由所述建图模块430生成的基于标志牌的语义地图,由所述在线定位模块440生成的车辆当前定位信息;又例如,预先建立的室内场景地图及其中的带内容的标志牌及标志牌在室内坐标系下的位置信息;再例如,标志牌对应的视觉跟踪器。在一些实施例中,所述标志牌对应的视觉传感器包括但不限于:使用medianflow、tld、kcf等算法。
图6是本申请中一个基于视觉的自动化标志牌语义建图定位方法的方法流程图。如图6所示,应用基于视觉的自动化标志牌语义建图定位系统,所述基于视觉的自动化标志牌语义建图定位系统包括图像采集模块410、定位模块420、建图模块430和在线定位模块440,方法包括如下步骤:
步骤610:通过所述图像采集模块410和定位模块420,分别获取车辆行驶过程中的连续图像和其对应的定位信息,所述连续图像对应的定位信息至少包括:所述车辆在室外行驶过程中,所述连续图像在世界坐标系下的位置信息,和所述车辆在室内行驶过程中,所述连续图像在室内坐标系下的位置信息的一个或多个。在一些实施例中,获取所述连续图像在室内坐标系下的位置信息具体包括:预先建立室内场景地图及其对应的室内坐标系,所述室内场景地图至少包括:带内容的标志牌及标志牌在室内坐标系下的位置信息;基于室内的场景地图及其对应的室内坐标系,确定所述连续图像在室内坐标系下的位置信息。
步骤620:通过所述建图模块430,识别所述连续图像中的标志牌信息,所述标志牌信息至少包括:室外的标志牌的识别框和室内的标志牌的识别框一个或多个。该过程具体包括:获取标注好标志牌的图像数据,所述标注好标志牌的图像数据至少包括:标注好室外的标志牌的识别框的图像数据和标注好室内的标志牌的识别框的一个或多个;利用上述图像数据训练深度学习网络;利用训练好的深度学习网络识别出所述连续图像中的标志牌的识别框。在一些实施例中,所述标注好标志牌的图像数据由人工标注好图像中的标志牌的识别框。在一些实施例中,室外的标志牌的识别框为标志牌的四个角点。在一些实施例中,室内的标志牌的识别框为标志牌的内容。在一些实施例中,在识别所述连续图像中的标志牌信息之前,先对所述连续图像进行去畸变,获取没有畸变的处理后的新图像,例如,利用标定好的摄像机内参进行去畸变。
步骤620还可以包括:获取最新出现的图像帧,识别其中的所有标志牌信息;针对识别出的每个标志牌,用其对应的视觉跟踪器在该图像帧中生成预测框;计算该图像帧中的预测框和每一识别框的重叠面积,取其中重叠面积最大对应的识别框作为最佳识别框,并以所述最佳识别框更新该标志牌的视觉跟踪器生成的预测框位置,记录所述最佳识别框的像素信息和该图像帧的定位信息。其中,若视觉跟踪器在该图像帧中无法生成预测框,或者,若该图像帧中的预测框和每一识别框均无重叠,则记录该标志牌的丢失帧数加一,当该标志牌的丢失帧数大于第一阈值,则移除该标志牌;否则,保留该标志牌。例如,所述第一阈值为10。在一些实施例中,预测框为标志牌的四个角点的框。
步骤630:通过所述建图模块430,基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息,所述标志牌的定位信息至少包括:室外的标志牌在世界坐标系下的位置信息和室内的标志牌在室内坐标系下的位置信息的一个或多个。在一些实施例中,基于所述标志牌的识别框的像素信息及其对应图像帧的定位信息,可以计算所述标志牌的位置。在一些实施例中,所述标志牌在世界坐标系的位置可以利用八个变量表示,其中三个变量为一个角点的位置自由度、三个变量为该角点的旋转自由度、两个变量为宽度和高度。
一些实施例中,判断出现该标志牌的识别框的图像帧数是否大于第二阈值,若是,则选取的识别框第一次和最后一次出现的两个图像帧,基于两个图像帧的识别框的像素信息及其对应的定位信息,计算该标志牌的定位信息,并作为该标志牌的推测值;否则舍弃该标志牌。例如,所述第二阈值为2。一些实施例中,利用优化方法,优化该推测值,得到优化后的该标志牌的定位信息。例如,所述优化方法为最小二乘法,对获取的每一该标志牌的识别框的像素信息和其对应图像帧的定位信息,基于标定好的世界坐标系与图像坐标系的关系,将该标志牌的识别框在世界坐标系中的位置,通过图像帧的位置信息投影到图像坐标系下,得到该标志牌的识别框在图像坐标系下的位置,定义误差为:该标志牌的识别框在图像坐标系下的位置与获取的标志牌的识别框的位置之差,定义误差函数为:上述误差之和。
步骤640:通过所述建图模块430,基于所述连续图像中的标志牌信息和其对应的标志牌的定位信息,建立基于标志牌的语义地图。一些实施例中,利用所有标志牌的定位信息和标志牌最后一次出现的图像帧中的识别框,建立基于标志牌的语义地图。
步骤650:通过所述在线定位模块440,获取所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。在一些实施例中,所述在线定位模块440可以接收其他定位源(例如,低精度gps、视觉重定位等)的粗略定位信息,结合获取的标志牌信息,利用所述基于标志牌的语义地图确定所述车辆的当前定位信息。
所述交通标志牌在世界坐标系中的位置信息利用八个变量表示,其中三个变量为一个角点的位置自由度、三个变量为该角点的旋转自由度、两个变量为宽度和高度。
对所述视觉跟踪器检测出的标志牌,而所述深度学习网络未识别出该标志牌,将该标志牌纳入所述深度学习网络的跟踪目标中。
利用优化方法,优化推测值中的该标志牌在世界坐标系下的八个变量,得到优化后的该标志牌在世界坐标系下的位置信息。
所述优化方法为最小二乘法,对获取的每一标志牌的识别框的位置信息和其对应图像帧的位置信息,将该交通标志牌的识别框在世界坐标系中的位置,通过图像帧的位置信息投影到图像坐标系下,得到该交通标志牌的识别框在图像坐标系下的位置,定义误差为:该交通标志牌的识别框在图像坐标系下的位置与获取的交通标志牌的识别框的位置之差,定义误差函数为:上述误差之和。
对所有标志牌,将优化后的标志牌的定位信息和该标志牌最后一次出现的图像帧,来建立语义地图。
所述建图模块包括:标定单元,在工作状态下,所述标定模块标定世界坐标系与摄像机坐标系的关系以及所述摄像机坐标系与图像坐标系的关系;识别单位,在工作状态下,所述识别模块识别图像帧中的所有标志牌的识别框;初始单元,在工作状态下,所述初始单元接收标志牌的识别框第一次和最后一次出现的两个图像帧,并根据接收的两个图像帧的识别框的像素信息和对应图像帧的定位信息,计算该标志牌的定位信息,并作为该标志牌的推测值;优化单元,在工作状态下,所述优化单元接收标志牌的识别框出现的所有图像帧,并根据接收的所有图像帧的识别框的像素信息和对应图像帧的定位信息,优化该推测值,得到优化后的该标志牌的定位信息;建图单元,在工作状态下,所述建图单元接收所述连续图像中的标志牌信息和其对应的标志牌的定位信息,生成基于标志牌的语义地图;存储单元,在工作状态下,所述存储单元存储建图模块接收或生成的数据和/或信息以及预先存储信息。
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本申请意图囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本申请提出,并且在本申请的示例性实施例的精神和范围内。
此外,本申请中的某些术语已被用于描述本申请的实施例。例如,″一个实施例″,″实施例″和/或″一些实施例″意味着结合该实施例描述的特定特征,结构或特性可以包括在本申请的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对″实施例″或″一个实施例″或″替代实施例″的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本申请的一个或多个实施例中适当地组合。
应当理解,在本申请的实施例的前述描述中,为了帮助理解一个特征,出于简化本申请的目的,本申请有时将各种特征组合在单个实施例、附图或其描述中。或者,本申请又是将各种特征分散在多个本发明的实施例中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本申请的时候完全有可能将其中一部分特征提取出来作为单独的实施例来理解。也就是说,本申请中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所有特征的时候也是成立的。
在一些实施方案中,表达用于描述和要求保护本申请的某些实施方案的数量或性质的数字应理解为在某些情况下通过术语″约″,″近似″或″基本上″修饰。例如,除非另有说明,否则″约″,″近似″或″基本上″可表示其描述的值的±20%变化。因此,在一些实施方案中,书面描述和所附权利要求书中列出的数值参数是近似值,其可以根据特定实施方案试图获得的所需性质而变化。在一些实施方案中,数值参数应根据报告的有效数字的数量并通过应用普通的舍入技术来解释。尽管阐述本申请的一些实施方案列出了广泛范围的数值范围和参数是近似值,但具体实施例中都列出了尽可能精确的数值。
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
最后,应理解,本文公开的申请的实施方案是对本申请的实施方案的原理的说明。其他修改后的实施例也在本申请的范围内。因此,本申请披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本申请中的实施例采取替代配置来实现本申请中的发明。因此,本申请的实施例不限于申请中被精确地描述过的哪些实施例。
1.基于视觉的自动化标志牌语义建图定位方法,其特征在于,包括如下步骤:
获取车辆行驶过程中的连续图像和其对应的定位信息,所述连续图像对应的定位信息包括以下信息的一个或多个:
所述车辆在室外行驶过程中,所述连续图像在世界坐标系下的位置信息,和
所述车辆在室内行驶过程中,所述连续图像在室内坐标系下的位置信息;
识别所述连续图像中的标志牌信息,所述标志牌信息包括室外的标志牌的识别框和室内的标志牌的识别框的一个或多个;
基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息,所述标志牌的定位信息至少包括室外的标志牌在世界坐标系下的位置信息和室内的标志牌在室内坐标系下的位置信息的一个或多个;
基于所述连续图像中的标志牌信息和其对应的标志牌的定位信息,建立基于标志牌的语义地图;
获取所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。
2.如权利要求1所述的基于视觉的自动化标志牌语义建图定位方法,其特征在于,确定室外的标志牌在世界坐标系下的位置信息还包括:
标定世界坐标系与摄像机坐标系的关系,以及所述摄像机坐标系与图像坐标系的关系;
基于上述标定的关系,利用所述连续图像在世界坐标系下的位置信息,确定所述连续图像中的标志牌在世界坐标系下的位置信息。
3.如权利要求1所述的基于视觉的自动化标志牌语义建图定位方法,其特征在于,获取所述连续图像在室内坐标系下的位置信息具体包括:
预先建立室内场景地图及其对应的室内坐标系,所述室内场景地图至少包括:带内容的标志牌及标志牌在室内坐标系下的位置信息;
基于室内的场景地图及其对应的室内坐标系,确定所述连续图像在室内坐标系下的位置信息。
4.如权利要求1所述的基于视觉的自动化标志牌语义建图定位方法,其特征在于,识别所述连续图像中的标志牌信息具体包括:
获取标注好标志牌的图像数据,所述标注好标志牌的图像数据至少包括:标注好室外的标志牌的识别框的图像数据和标注好室内的标志牌的识别框的一个或多个;
利用上述图像数据训练深度学习网络;
利用训练好的深度学习网络识别出所述连续图像中的标志牌的识别框。
5.如权利要求1所述的基于视觉的自动化交通标志牌语义建图定位方法,其特征在于,方法还包括:在识别所述连续图像中的标志牌信息之前,对所述连续图像进行去畸变,获取没有畸变的处理后的新图像。
6.如权利要求1所述的基于视觉的自动化交通标志牌语义建图定位方法,其特征在于,识别所述连续图像中的标志牌信息还包括:
获取最新出现的图像帧,识别其中的所有标志牌信息;
针对识别出的每个标志牌,用其对应的视觉跟踪器在该图像帧中生成预测框;
计算该图像帧中的预测框和每一识别框的重叠面积,取其中重叠面积最大对应的识别框作为最佳识别框,并以所述最佳识别框更新该标志牌的视觉跟踪器生成的预测框位置,记录所述最佳识别框的像素信息和该图像帧的定位信息。
7.如权利要求6所述的基于视觉的自动化交通标志牌语义建图定位方法,其特征在于,若视觉跟踪器在该图像帧中无法生成预测框,或者,若该图像帧中的预测框和每一识别框均无重叠,则记录该标志牌的丢失帧数加一,当该标志牌的丢失帧数大于第一阈值,则移除该标志牌;否则,保留该标志牌。
8.如权利要求1所述的基于视觉的自动化交通标志牌语义建图定位方法,其特征在于,基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息还包括:
判断出现该标志牌的识别框的图像帧数是否大于第二阈值;
若是,则选取该标志牌的识别框第一次和最后一次出现的两个图像帧,基于两个图像帧的识别框的像素信息和对应图像帧的定位信息,计算该标志牌的定位信息,并作为该标志牌的推测值,利用优化方法优化该推测值,得到优化后的该标志牌的定位信息;
若否,则舍弃该标志牌。
9.基于视觉的自动化交通标志牌语义建图定位系统,其特征在于,包括:
图像采集模块,在工作状态下,所述图像采集模块采集车辆行驶路段中的连续图像;
定位模块,在工作状态下,所述定位模块采集所述连续图像的定位信息;建图模块,在工作状态下,所述建图模块接收所述连续图像及其对应的定位信息,识别所述连续图像中的标志牌信息,确定所述连续图像中的标志牌的定位信息,并根据所述连续图像中的标志牌信息和标志牌的定位信息生成基于标志牌的语义地图;
在线定位模块,在工作状态下,所述在线定位模块接收所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。
10.一种非暂时性的计算机可读介质,包括可执行指令,所述指令被至少一个处理器执行时,导致所述至少一个处理器实现一种方法,包括:
获取车辆行驶过程中的连续图像和其对应的定位信息,所述连续图像对应的定位信息至少包括:所述车辆在室外行驶过程中,所述连续图像在世界坐标系下的位置信息,和所述车辆在室内行驶过程中,所述连续图像在室内坐标系下的位置信息的一个或多个;
识别所述连续图像中的标志牌信息,所述标志牌信息至少包括:室外的标志牌的识别框和室内的标志牌的识别框一个或多个;
基于所述连续图像中的标志牌信息和对应连续图像的定位信息,确定所述标志牌的定位信息,所述标志牌的定位信息至少包括:室外的标志牌在世界坐标系下的位置信息和室内的标志牌在室内坐标系下的位置信息的一个或多个;
基于所述连续图像中的标志牌信息和其对应的标志牌的定位信息,建立基于标志牌的语义地图;
获取所述车辆的当前图像中识别的标志牌信息,在所述基于标志牌的语义地图中检索出该标志牌的定位信息,以确定所述车辆的当前定位信息。
技术总结