技术领域
[0001] 本发明涉及动态图像技术领域,更具体地,涉及一种生成交通事件动态图像的方法。
相关背景技术
[0002] 随着科技的发展,为了避免人为疏忽所引发的交通事故,提出了自动驾驶技术。自动驾驶技术通过传感器来感测周围环境并可自动导航。而为了增加自动驾驶功能的安全性,需要充分的训练数据集来作为深度学习模型的训练与验证使用。然而,在一般车用训练中,所需训练数据集需要花费大量时间去录制。即,针对每一种场景、每一种天气型态都需要实地去录制。而边角案例(corner‑case)更是不容易收集,相关成本也很高。
[0003] 目前在自驾车的训练阶段中的边角案例收集有如下两种方法。方法1:收集实际发生的边角案例视频来做为训练数据集。然而,一般只能通过网络收集行车记录仪的图像,因此筛选成本高,且难以获得高质量且合适的图像。此外,网络收集的实际视频,难以规范图像质量,也无法调整镜头和客制化边角案例。此外,缺少以本车为边角案例的视频。方法2:通过车辆模拟器编排来生成训练数据集。方法2虽然可以客制化图像,然而成本较高。越细致的虚拟图像,其生成所需的时间越多。此外,方法2所获得的图像皆为虚拟图像,真实程度较低,可能会影响后续训练结果。
具体实施方式
[0063] 图1是依照本发明一实施例的电子装置的方块图。请参照图1,电子装置100可采用任一具有运算功能的电子设备来实现,通过电子装置100来量产自驾车产业所需的训练数据集。电子装置100至少包括处理器110以及存储器120。处理器110耦接至存储器120。
[0064] 处理器110例如为中央处理单元(Central Processing Unit,CPU)、物理处理单元(Physics Processing Unit,PPU)、可程序化的微处理器(Microprocessor)、嵌入式控制芯片、数字信号处理器(Digital Signal Processor,DSP)、特殊应用集成电路(Application Specific Integrated Circuit,ASIC)或其他类似装置。
[0065] 存储器120例如是任意型号的固定式或可移动式随机存取内存(Random Access Memory,RAM)、只读存储器(Read‑Only Memory,ROM)、闪存(Flash memory)、硬盘或其他类似装置或这些装置的组合。存储器120中存储了一或多个代码段,上述代码段在被安装后,会由处理器110来执行下述生成交通事件动态图像的方法。
[0066] 图2是依照本发明一实施例的生成交通事件动态图像的方法流程图。请参照图2,本实施例主要分为三个阶段,即,地图对位步骤S205、事件适配步骤S210以及图像生成步骤S215。
[0067] 在地图对位步骤S205中,处理器110将行进动态图像映射的移动轨迹坐标组与电子地图进行地图对位,以从电子地图中获得与移动轨迹坐标组对应的轨迹地图信息(waypoint)组。在此,移动轨迹坐标组包括在多个取样时间点所获得的多个移动轨迹坐标。地图对位是用于在实际的电子地图中找出每一个移动轨迹坐标对应的实际坐标。
[0068] 在此,电子地图例如是从各个地方所建构的地图数据库中所获取,故,电子地图提供的地图信息(waypoint)会包括多条实际道路各自的道路坐标、道路标识符、路宽等道路信息,以及多个路口各自的路口坐标与每一个路口连接至哪几个道路标识符等路口信息。
[0069] 处理器110将行进动态图像所包括的每一个图像帧对应的移动轨迹坐标与电子地图进行地图对位,以在电子地图中找出移动轨迹坐标对应的轨迹地图信息,也就是移动轨迹坐标对应位置的道路信息及/或路口信息等,进而根据找出的轨迹地图信息构成轨迹地图信息组。通过地图对位,可使得行进动态图像和电子地图之间具有关联性。
[0070] 接着,在事件适配步骤S210中,处理器110在轨迹地图信息组中取得符合事件轨迹模型的多个事件地图信息、对应的行进动态图像的多个图像帧信息,并依据事件轨迹模型生成虚拟物件的多个位置信息。本实施例的虚拟物件是至少一虚拟车辆,而所述图像帧信息例如是图像帧的时间戳。
[0071] 所述事件轨迹模型包括事件类型、事件时段以及事件路径信息。以将交通事件动态图像作为交通事件的训练素材,事件轨迹模型为用于建构交通事件的事件路况与轨迹的模型。在一实施例中,事件类型包括车辆在道路中可能会发生的交通事件类型,例如道路事件或路口事件。路径信息包括角度范围、宽度范围以及移动速度范围。并且,事件类型具有对应的车辆轨迹信息。车辆轨迹信息用于指示至少一虚拟车辆的轨迹信息。所述虚拟车辆包括自主车辆(ego‑vehicle,下文称为EGO车辆)以及外部车辆(Non‑ego traffic vehicle,下文称为NEGO车辆)至少其中一者,NEGO车辆指EGO车辆以外的事件相关外部车辆。
[0072] 道路事件所指例如为前车停止(Lead Vehicle Stopped,LVS)、逆向对撞、或蛇行(drifting)等在直线道路中发生的事件。前车停止表示:自主车辆直行并跟随在撞击车辆的后方的情况下,撞击车辆突然停止所发生的冲撞。逆向对撞表示:自主车辆在原车道上行驶的状态下,与对向行驶的撞击车辆发生冲撞。
[0073] 路口事件所指例如为直线交叉路口‑左侧对撞(Straight crossing path‑left,SCP‑L)、直线交叉路口‑右侧对撞(Straight crossing path‑right,SCP‑R)、左转进入路径(Left turn into path,LTIP)、右转进入路径(Right turn into path,RTIP)、左转穿越路径‑逆向对撞(Left turn across path‑opposite direction,LTAP‑OD)或左转穿越路径‑横向对撞(Left turn across path‑lateral direction,LTAP‑LD)等。然而,所述事件类型仅为举例说明,并不以此为限。
[0074] 然后,在图像生成步骤S215中,处理器110基于所述图像帧信息在行进动态图像中提取动态图像片段,并基于虚拟物件的位置信息将虚拟物件与动态图像片段进行合成,生成对应于事件轨迹模型的交通事件动态图像。即,将真实场景(行进动态图像中的动态图像片段)和虚拟物件进行合成,最终生成所需要的交通事件动态图像。
[0075] 上述方法也可以是以云端服务的方式实现,也就是由服务器执行运算,例如车辆搭载之前视镜头记录的行进动态图像及移动轨迹坐标组,可回传至提供服务的服务器,由服务器基于回传的行进动态图像及移动轨迹坐标组执行上述方法,以生成交通事件动态图像。
[0076] 图3A是依照本发明另一实施例的生成交通事件动态图像的方法的架构示意图。图3B是依照本发明另一实施例的生成交通事件动态图像的方法流程图。图3A所示是依照图3B的生成交通事件动态图像的方法的架构。图3A所示的架构包括5个阶段P31、P32‑1、P32‑2、P33、P34,并且以图像对位模块31、地图对位模块32、事件适配模块33、图像提取模块34以及图像合成模块35来进行说明。在一实施例中,所述各模块例如是由一或多个代码段组成,且存储在存储器120中。
[0077] 请参照图3A及图3B,首先,在步骤S31中,执行图像收集步骤,可同时参见图3A的阶段P31。在此,利用定位装置41收集移动轨迹坐标组310,并且利用摄像机42纪录实际行车前视角的行车动态图像320。
[0078] 举例来说,图4是依照本发明一实施例的图像收集步骤的示意图。请参照图4,本实施例采用车辆400收集实际行车的资料。车辆400中结合设置有定位装置41以及摄像机42。定位装置41例如为采用全球定位系统(Global Positioning System,GPS)的装置。摄像机
42例如是采用电荷耦合组件(Charge coupled device,CCD)镜头、互补式金氧半晶体管(Complementary metal oxide semiconductor transistors,CMOS)镜头的摄影机、照相机等。
[0079] 在车辆400的移动过程中,同时通过定位装置41来获得车辆400在多个取样时间点的移动轨迹坐标组310以及通过摄像机42来拍摄车辆400行进中前视角的行进动态图像320。例如,定位装置41每隔一段时间(例如0.1秒)将当下的GPS坐标记录下进而获得移动轨迹坐标组310。即,移动轨迹坐标组310包括对应于多个取样时间点的多个导航点311,每一个导航点311记录有对应的移动轨迹坐标。而行进动态图像320包括多个图像帧321,且每一图像帧321具有各自的时间戳。
[0080] 在处理器110取得行进动态图像320以及对应的移动轨迹坐标组310之后,在步骤S32‑1中,执行图像对位步骤,可同时参见图3A的阶段P32‑1。在此,利用图像对位模块31对行进动态图像320和移动轨迹坐标组310进行时间对位,因此可使得行进动态图像320的每一个图像帧具有对应的移动轨迹坐标。在一实施例中,图像对位模块31以时间戳对行进动态图像320和移动轨迹坐标组310进行时间对位,使得行进动态图像320的每一张图像帧321都具有对应的移动轨迹坐标。
[0081] 例如,结合图4进行说明,图像对位模块31在读取图像帧321‑1~321‑6的图像帧信息而获得的时间戳为t1~t6,则图像对位模块31会自移动轨迹坐标组310中取出时间戳分别为t1~t6的导航点311‑1~311‑6,之后在图像帧321‑1~321‑6对应的图像帧信息中分别记录下导航点311‑1~311‑6作为移动轨迹坐标。
[0082] 在图像对位步骤后,在步骤S32‑2中,执行地图对位步骤,可同时参见图3A的阶段P32‑2。在此,地图对位模块32对移动轨迹坐标组310与电子地图330进行地图对位,以在电子地图330中获得与移动轨迹坐标组310对应的轨迹地图信息组350。具体而言,地图对位模块32会先在电子地图330中决定移动轨迹坐标组310所在的地图区块。该地图区块包括多个路径节点地图信息。之后,地图对位模块32将移动轨迹坐标组310所包括的全部移动轨迹坐标与所述路径节点地图信息进行比对,以从这些路径节点地图信息中决定多个轨迹地图信息,并且根据这些轨迹地图信息建构轨迹地图信息组350。所述多个轨迹地图信息为分别与所述多个移动轨迹坐标相距最短的路径节点地图信息。所述轨迹地图信息的决定方式并不以最短距离为限,所述多个轨迹地图信息也可以是分别以所述多个移动轨迹坐标为圆心在一预定半径范围内的多个路径节点地图信息。
[0083] 下文以图5、图6来进一步说明。图5是依照本发明一实施例的在电子地图中取出地图区块的示意图。图6是依照本发明一实施例的地图对位步骤的示意图,其中是显示了部分的移动轨迹坐标与部分的路径节点。
[0084] 处理器110通过地图对位模块32在电子地图330找出移动轨迹坐标组310的移动轨迹坐标311对应的位置,因此来找出能够涵盖移动轨迹坐标组310的地图区块510,如图5所示。例如,以最小矩形包覆电子地图330上的移动轨迹坐标组310,而获得地图区块510。在此,地图区块510包括多个路径节点地图信息,其以R树(R‑tree)的方式存储。路径节点地图信息包括路径型态及位置坐标。路径型态为路口或道路。
[0085] 接着,请参照图6,空心圆点代表地图区块510所包括的路径节点610(一个路径节点610具有对应于实际的电子地图330上的路径节点地图信息),实心圆点代表移动轨迹坐标组310所包括的移动轨迹坐标311。通过地图对位模块32将移动轨迹坐标组310所包括的多个移动轨迹坐标311与地图区块510所包括的全部路径节点610的坐标进行比对,以在这些路径节点610中找出分别与移动轨迹坐标311相距最短的路径节点(即虚线框所框选)作为匹配节点620,并集合这些匹配节点620的路径节点地图信息建构轨迹地图信息组350。例如,地图对位模块32可找出与各移动轨迹坐标311距离最短的一个路径节点610作为匹配节点620。或者,地图对位模块32以各移动轨迹坐标311对应于电子地图330中的坐标为圆心,以一预设长度为半径来设定一个搜寻范围,之后将电子地图330中的此一搜寻范围内的全部路径节点610作为是匹配节点620。
[0086] 通过上述方式,将移动轨迹坐标组310转换为电子地图330上的轨迹地图信息组350,进而可使用电子地图330所提供的路径节点地图信息。例如,路径节点地图信息包括路径型态与位置坐标。所述路径型态用于指示各匹配节点620为路口或道路。补充说明的是,在执行了图像对位步骤及地图对位步骤后,可取得行进动态图像320的每一张图像帧321、移动轨迹坐标组310、轨迹地图信息组350三者之间的对应关系。
[0087] 接着,在执行事件适配步骤(对应于阶段P33)之前,在步骤S33‑1中,先执行图像长度判断步骤。具体而言,事件适配模块33先判断行进动态图像320的总时间是否大于或等于事件轨迹模型340的事件时段,并在判定总时间大于或等于事件时段时,前往步骤S33,执行事件适配步骤。在每一次执行完事件适配步骤之后,更新总时间,并返回步骤S33‑1。在判定总时间小于事件时段时不执行事件适配步骤,前往步骤S34。
[0088] 在步骤S33中,执行事件适配步骤,可同时参见图3A的阶段P33。此时,事件适配模块33在轨迹地图信息组350中取得符合事件轨迹模型340的事件地图信息、对应的动态图像的多个图像帧信息352。并且,事件适配模块33依据事件轨迹模型340运算虚拟物件的位置信息342。事件轨迹模型340还包括物件轨迹,例如是对应于事件类型的自主虚拟车辆(也就是EGO车辆)移动的位置信息及/或碰撞虚拟车辆(也就是NEGO车辆)移动的位置信息。以虚拟物件为虚拟车辆而言,虚拟车辆对应于图像帧信息的位置信息342是相对位置信息。
[0089] 具体而言,事件适配模块33在轨迹地图信息组350所包括的多个轨迹地图信息中找出符合事件轨迹模型340所定义的事件类型及事件路径信息的事件地图信息。事件适配模块33是依照时间顺序在轨迹地图信息组350的多个轨迹地图信息中,判断这些轨迹地图信息是否符合事件类型及事件路径信息,以找出符合事件类型及事件路径信息的一或多笔事件地图信息;而图像长度判断步骤(步骤S33‑1)中,总时间即是自执行判断是否符合的轨迹地图信息对应的图像帧起算的行进动态图像320的时间长度。
[0090] 在事件适配步骤中,当时间最晚的图像帧对应的轨迹地图信息不符合事件类型及事件路径信息时,结束事件适配步骤。
[0091] 以路口事件而言,处理器110通过事件适配模块33依照时间顺序在轨迹地图信息组350的轨迹地图信息中找出路径型态为“路口”,且同时满足事件路径信息的事件地图信息,然而当执行到时间顺序最晚的轨迹地图信息后未有符合路径型态(“路口”)或者事件路径信息,则结束事件适配步骤,并前往步骤S34。以道路事件类型而言,处理器110通过事件适配模块33依照时间顺序在轨迹地图信息组350中找出路径型态为“道路”或“路口”,且同时满足事件路径信息的事件地图信息,然而当执行到时间顺序最晚的轨迹地图信息后未有符合路径型态(“道路”或“路口”)或事件地图信息者,则结束事件适配步骤。在本实施例中,事件地图信息的位置为事件中双方的交会点,例如是交通事故的双方车辆交会而碰撞的位置。
[0092] 前述事件轨迹模型340的事件路径信息包括发生事件类型需满足的条件,例如角度范围、宽度范围以及移动速度范围,具体而言是指发生事件类型的路口的道路间角度需符合落在角度范围内,发生事件类型所在的道路或路口的宽度需落在宽度范围内,并且基于录制的行进动态图像320来计算虚拟物件(也就是EGO车辆)在事件地图信息的位置(例如交会点)的速度且应落在设定的移动速度范围内。因此,可判断此轨迹地图信息是否符合事件类型以便于后续生成交通事件动态图像。以交通事件类型SCP‑L为例,事件路径信息包括角度范围90度、移动速度范围为时速40公里至60公里之间;以交通事件类型Drifting为例,事件路径信息包括宽度范围大于7M、移动速度范围为时速40公里至60公里之间。在执行事件适配步骤时,判断事件路径信息是否符合时可设定一偏差值,并且可调整偏差值改变事件适配的精确度。
[0093] 详细来说,在事件适配步骤(对应于阶段P33)中,事件适配模块33倘若在轨迹地图信息组350中找到符合事件类型的轨迹地图信息,却不符合事件路径信息,则继续寻找下一个符合事件类型的轨迹地图信息。倘若在轨迹地图信息组350中找到符合事件类型的轨迹地图信息,且符合事件路径信息,将此轨迹地图信息设定为事件地图信息。
[0094] 在取得事件地图信息后,事件适配模块33取得事件地图信息对应的移动轨迹坐标,再依据此移动轨迹坐标决定对应的行进动态图像的图像帧,并纪录下图像帧的图像帧信息352。本实施例的图像帧信息352是图像帧的时间戳。取得事件地图信息对应的时间戳后,依据事件时段运算事件类型发生的结束时间及起始时间,并取得事件类型发生的所有图像帧的时间戳。例如,假设事件时段为10秒,事件地图信息对应的图像帧的时间戳为2:30,则此事件类型发生的起始时间为2:22,结束时间为2:31,事件适配模块33记录下时间2:
22至时间2:31之间所有图像帧的时间戳。
[0095] 另外,在取得事件类型发生的所有图像帧的图像帧信息(时间戳)后,事件适配模块33基于每一时间戳逐一执行:取得对应于时间戳的移动轨迹坐标,依据对应的移动轨迹坐标与事件轨迹模型,运算并记录虚拟车辆于此时间戳的位置信息,也就是虚拟车辆在此时间戳的图像帧的坐标。在本实施例中虚拟车辆的位置信息是与自主车辆的相对位置,但也可以是绝对位置,不以相对位置为限。在逐一对事件类型发生的所有时间戳执行运算后,事件适配模块33取得并存储虚拟车辆在各时间戳中的位置信息。
[0096] 进一步说明,运算虚拟车辆的位置信息的另一实施例,事件适配模块33自移动轨迹坐标组310所包括的数个移动轨迹坐标中取出与每一事件地图信息对应的移动轨迹坐标,并基于移动轨迹坐标取得EGO车辆的事件第一轨迹,亦即事件类型发生的所有图像帧的行进轨迹坐标的集合。之后,依据事件轨迹模型340、事件第一轨迹,建构NEGO车辆的事件第二轨迹,也即每一图像帧中虚拟物件的位置信息的集合。例如,以事件类型为SCP‑L举例而言,假设将摄像机42所取得的行进动态图像320作为EGO车辆的主视角画面,并且假设一事件地图信息对应的时间戳为2:22与2:31之间,也就是事件类型发生的起止时间。在此情况下,集合时间戳2:22~2:31之间的图像帧对应的行进轨迹坐标来生成事件第一轨迹,并且运算自移动轨迹坐标的左侧往移动轨迹坐标移动的事件第二轨迹,也即虚拟物件的位置信息。
[0097] 在事件适配步骤中,通过事件适配步骤而取得事件类型发生的所有图像帧的图像帧信息(时间戳)及虚拟车辆的位置信息之后,将总时间减去事件时段,并更新总时间后,返回步骤S33‑1,接续根据更新后的总时间执行图像长度判断步骤。在其他实施例中,也可以是从事件类型发生的时间戳中最晚者之后的行进动态图像320长度来更新总时间,后续根据更新后的总时间以执行图像长度判断步骤,因此不以减去事件时段为限。在其他实施例中,总时间也可以是预计进行事件适配步骤的轨迹地图信息对应的图像帧起算的行进动态图像的长度,因此不以减去事件时段为限。
[0098] 在步骤S34中,执行图像生成步骤,可一并参见图3A的阶段P34。在此,图像截取模块34与图像合成模块35依据事件配置步骤中取得并记录的信息,例如图像帧信息352及虚拟物件的位置信息,来生成交通事件动态图像。本实施例的图像帧信息352为图像帧的时间戳。详细而言,在图像生成步骤中,图像截取模块34基于图像帧信息352,从行进动态图像320中提取动态图像片段360,并将动态图像片段360提供给图像合成模块35。例如,假设其中一组图像帧信息352是记录自2:21至2:30之间的图像帧的时间戳,则图像截取模块34取出2:21~2:30对应的动态图像片段360。
[0099] 接着,图像合成模块35基于虚拟物件的物件信息342、每一时间戳对应的虚拟物件的位置信息,来生成对应于事件轨迹模型340的交通事件动态图像。
[0100] 进一步地说,每一笔图像帧信息352可对应于一个虚拟物件的位置信息,亦即图像合成模块355可取得虚拟物件在动态图像片段360的每一图像帧中的坐标,因此在图像生成步骤中,图像合成模块355依据图像帧信息352及虚拟物件的位置信息将所述虚拟物件合成在动态图像片段360中,生成交通事件动态图像。
[0101] 另外,还可进一步在所合成的动态图像中加入天气效果,以获得不同天气状态下的交通事件动态图像。例如,在合成的动态图像中加入雨丝或是雾气等天气效果。
[0102] 图7A及图7B是依照本发明一实施例的合成图像的示意图。请参照图7A及图7B,假设此范例的事件轨迹模型340中记录的事件类型为“蛇行”。在所获得的动态图像片段710中,加入一台虚拟车辆(NEGO车辆)720,并基于虚拟车辆720对应的事件第二轨迹来获得合成后的交通事件动态图像730。即,将动态图像片段710作为以EGO车辆为主要视角的移动画面(作为背景画面),基于事件第二轨迹来设定虚拟车辆720对应至不同时间点所应呈现的姿态,以在动态图像片段710所包括的每一个图像帧中加入不同姿态下的虚拟车辆720以获得多个合成图像帧,如合成图像帧730a~730d所示。
[0103] 补充说明的是,本发明以车辆交通事件来说明,然而行进动态图像也可以是无人机行进中纪录的前视动态图像,电子地图也可以是呈现特定高度的空中地图,通过上述生成交通事件动态图像的方法来生成无人机行进的交通事件动态图像,因此不以地面交通事件为限。此外,本发明的虚拟物件是以外部车辆为例,然而也可以是动物,例如行人、猫或狗等可能造成交通事件的相关物件,而在非地面交通事件的情况下,虚拟物件也可以是飞行器、鸟或空中可能造成交通事件的障碍物。
[0104] 综上所述,本发明结合由摄像机所录制的真实场景(行进动态图像)的优点和虚拟物件的合成来灵活生成各种事件轨迹模型的优点,并降低模拟器构建环境模型的成本以高性价比的方式来量产各种事件轨迹模型的交通事件动态图像。据此,解决自驾车产业于训练决策系统的边角案例数据集的数量不足的问题。
[0105] 由于本发明采用实际录制的图像作为背景画面,故背景画面呈现的车流、交通环境等都是真实场景。因此,通过本发明所获得的交通事件动态图像的真实性高于模拟器所构建的环境。相较于由模拟器所建立的环境模型的高昂成本,本发明只需要实景拍摄数次便可自动来获得对应于各种事件轨迹模型的交通事件动态图像,因此不仅节省执行模拟器的资源也节省了构建虚拟环境的耗时。此外,相较于网络收集的行车记录仪画面,本发明可以客制化各种不同的事件轨迹模型(例如边角案例),此外在实景拍摄的过程中也可调整摄像机的角度和位置,因此来客制化不同拍摄角度的事件轨迹模型。
[0106] 通过本发明可以获得收集不易的边角案例的交通事件动态图像,并且能够使得一个实景拍摄的行进动态图像做多次的利用,并结合各种事件轨迹模型来获得所需的交通事件动态图像。如此一来,可利用少量的真实场景来大量生产符合各种事件轨迹模型的交通事件动态图像(训练数据集),以供深度学习模型的训练与验证用。