用于存储数据的方法、装置、设备和计算机可读存储介质与流程

文档序号:16254114发布日期:2018-12-12 00:17阅读:157来源:国知局
用于存储数据的方法、装置、设备和计算机可读存储介质与流程

本公开总体上涉及存储技术领域,更具体地,涉及用于存储数据的方法、装置、设备和计算机可读存储介质。

背景技术

随着车辆智能化、网联化的发展,辅助驾驶系统、自动驾驶系统等技术使得驾驶责任主体更加复杂。一次交通事故,可能源自于人类操作失误、车辆自身质量缺陷,也可能来自辅助或自动系统在感知、预测、控制等方面的失误,甚至可能来自黑客的网络攻击。数据将是还原事故真相的最重要依据,只有依据完整可靠的数据,才可以在事故鉴定时查找发生事故的主要原因,明确认定责任主体,从而使事故得到合理、合法且快速的处理。

在传统的数据存储方法中,待存储的数据一般仅涉及与车辆的驾驶行为相关的数据,例如,用于记录车辆的刹车、加速、转向等行为的数据,或者用于记录车辆的行车速度、行车位置的数据。由于此类数据具有较小尺寸、较低精度的特点,故通常可以很容易地存储至车载黑匣子中。然而,对于高清摄像头所记录的视频数据、激光雷达所记录的激光点云数据等具有较大尺寸、较高精度的数据,目前的存储系统并不能对其进行高效且稳定的存储操作。



技术实现要素:

根据本公开的示例实施例,提供了一种数据存储方案。

在本公开的第一方面中,提供了一种用于存储数据的方法。该方法包括获取与运动实体的运动行为相关的、经采样的数据。该方法还包括从针对运动实体的计算资源中为数据确定空闲计算资源,计算资源对应于与运动实体相关联的存储设备中的不同存储单元。该方法进一步包括利用空闲计算资源,将数据与对应于数据的采样装置和采样时刻中的至少一项相关联地存储至与空闲计算资源相对应的存储单元。

在本公开的第二方面中,提供了一种用于存储数据的装置。该装置包括数据获取模块,被配置为获取与运动实体的运动行为相关的、经采样的数据。该装置还包括空闲计算资源确定模块,被配置为从针对运动实体的计算资源中为数据确定空闲计算资源,计算资源对应于与运动实体相关联的存储设备中的不同存储单元。该装置进一步包括存储处理模块,被配置为利用空闲计算资源将数据与对应于数据的采样装置和采样时刻中的至少一项相关联地存储至与空闲计算资源相对应的存储单元。

在本公开的第三方面中,提供了一种电子设备。该电子设备包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。

在本公开的第四方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。

应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了本公开的多个实施例能够在其中实现的示例环境的示意图;

图2示出了根据本公开的实施例的在车辆内部的计算系统中执行的过程或方法的流程图;

图3示出了根据本公开的一些实施例的数据存储的过程或方法的流程图;

图4示出了根据本公开的实施例的在车辆内部的计算系统中执行的装置的示意框图;以及

图5示出了能够实施本公开的多个实施例的计算设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如以上提及的,存储与车辆驾驶相关的数据的传统方式一般为:在车辆安全气囊弹出(发生交通事故)时,车载计算系统会将车辆在此前后的状态(例如汽车的行车速度、变速箱所处的挡位、刹车动作等)存储在车载黑匣子中。交通事故发生后,通过专业技术读取车载黑匣子中的数据,就可以真实地还原事故现场,为事故责任认定、伤亡原因探析提供权威证据。

传统的与车辆驾驶相关的数据具有较小尺寸、较低精度的特点,故通常可以很容易地存储至车载黑匣子中。然而,随着激光点云技术以及高清行车记录仪等的引入,如何更为高效、迅速的存储这些具有较大尺寸、较高精度的数据成为一种挑战。

针对上述问题和潜在的其他相关问题,本公开的实施例提出了一种可以使运动实体的存储设备(例如,车载黑匣子)快速、并行地存储来自多个采样装置的数据,这些采样装置可以是诸如摄像头、雷达、激光雷达、全球定位系统等的传感器,也可以是用于收集主控计算机数据的监控装置。在本方案中,并不是如传统的技术方案那样仅对具有较小尺寸、较低精度的行车数据进行存储,而是对较大尺寸、较高精度的行车数据进行并行的实时存储,而不过度增加对计算资源的需求。以此方式,可以有效利用车载计算系统中的计算资源,从而更为快速高效地将较大尺寸、较高精度的行车数据存储至车载黑匣子。

在本文中,术语“运动实体”是指可以在公共交通道路上移动的实体,例如,机动车辆、非机动车辆、穿戴有可穿戴设备的对象等。运动实体可以具有运动行为,例如,运动实体可以在道路上按照规划的路线行进,还可以在道路上按照机动车辆、非机动车辆的驾驶人或者穿戴有可穿戴设备的对象的意愿行进。

术语“存储设备”是指用于存储与运动实体的运动行为相关的数据的设备。在一些实施例中,存储设备例如是车载黑匣子、事故数据记录仪、和/或任何其他适当的用于存储运动实体的运动数据的装置。

以下将参照附图来具体描述本公开的实施例。

图1示出了本公开的多个实施例能够在其中实现的示例环境的示意图。该示例环境100包含汽车101、计算机102和用户103。应理解,图1中示出的汽车101仅是示例性的,汽车101还可以被其他机动车辆、非机动车辆、甚至可穿戴设备代替。此外,用户103可以是车主等相关人员,也可以是处理交通事故的相关人员。通常,响应于用户103的请求,汽车101所采集并存储的数据首先被导入计算机102。计算机102利用专用软件读取数据,以便向用户130进行展示。

如图1所示,汽车101内部包含数据采样装置104、计算系统105和存储设备106。应理解,虽然图1中仅示出了一个数据采样装置104,实际上汽车101中可以包含多个数据采样装置。在某些实施例中,数据采样装置104可以包括车载摄像头、车载雷达、车载激光雷达、车载全球定位系统、用于收集车载主控计算机数据的监控装置等。作为示例,汽车101的车载摄像头每40ms采样到一帧图像数据,汽车101的车载激光雷达每50ms采样到一帧激光点云数据。这些经采集的数据均会被收集到计算系统105中。

在本公开的实施例中,计算系统105中包含多个线程(未示出)。作为示例,计算系统105可以具有两个线程,也可以称之为“计算资源”。为了将收集到计算系统105中的图像数据和激光点云数据及时有效地存储至存储设备106,可以采用多线程并行处理的方式在这两个线程上互不影响地处理来自车载摄像头的一帧图像数据和来自车载激光雷达的一帧激光点云数据的存储操作。

下面将参照图2详细描述在计算系统105处执行数据存储的过程。图2示出了根据本公开的实施例的在汽车101内部的计算系统105中执行的过程或方法的流程图。在本公开的实施例中,方法200可以例如在图1所示的计算系统105处实现。

在框201,获取与运动实体的运动行为相关的、经采样的数据。作为示例,运动实体可以是诸如汽车101的机动车,也可以是非机动车或可穿戴设备。在本公开的实施例中,可以接收来自诸如前置车载摄像头的一个采样装置的、与汽车101的运动行为相关的一帧图像数据。备选地或附加地,还可以接收分别来自诸如车载摄像头、车载雷达、车载激光雷达、车载全球定位系统、用于收集车载主控计算机数据的监控装置等的多个采样装置的、与汽车101的运动行为相关的一帧图像数据、一帧车载雷达数据、一帧激光点云数据、一帧gps数据以及一帧主控计算机指令数据。应理解,这些数据的采样可以不基于同一时钟,故各数据的采样时间可以不同。

在本公开的实施例中,上述运动行为可以包括与汽车101前方物体的相对位移、与汽车101后方物体的相对位移、刹车、加速、转向等行为。

在框202,从针对运动实体的计算资源中为数据确定空闲计算资源,计算资源对应于与运动实体相关联的存储设备106中的不同存储单元。作为示例,运动实体可以是诸如汽车101的机动车,也可以是非机动车或可穿戴设备。在本公开的实施例中,计算系统105可以包括多个计算资源。作为示例,计算资源可以是线程。即,计算系统105可以利用多个线程并行地执行数据的存储操作。应理解,计算资源还可以是cpu的内核。即,计算系统105可以利用多核并行地执行数据的存储操作。应理解,计算系统105还可以包括其他类型的计算资源,上述示例仅仅是为了说明的目的,无意限制本公开的实施例的范围。

当计算系统105接收到来自数据采样装置104的一帧数据时,计算系统105可以从多个线程中为该数据确定一个空闲线程,以使该空闲线程执行该数据的存储操作。在该空闲线程正在处理该数据的存储操作的过程中,如果计算系统105又接收到来自同一数据采样装置或其他数据采样装置的一帧附加数据时,计算系统105可以从剩余的多个线程中为该附加数据确定一个附加空闲线程,以使该附加空闲线程执行该附加数据的存储操作。通过上述操作,计算系统105可以并行地处理多个数据的存储操作。

需要特别说明的是,当计算系统105利用多个线程在存储设备106并行写入多个数据时,可能出现多个数据被写入同一存储区域或存储地址的情况。即,可能出现并行冲突。为解决此问题,在本公开的实施例中,可以将存储设备106预先划分为多个存储单元,并且计算系统105中的多个线程分别对应于这些存储单元。通过上述操作,不同线程所执行的写入操作的存储区域或存储地址不同,因而避免了并行冲突。

在框203,利用在框202中确定的空闲计算资源,将接收到的经采样的数据与对应于该数据的采样装置和采样时刻中的至少一项相关联地存储至与该空闲计算资源相对应的存储单元。

在本公开的实施例中,运动实体101可以具有一种或多种数据采样装置104,例如,车载摄像头、车载雷达、车载激光雷达、车载全球定位系统、用于收集车载主控计算机数据的监控装置,和/或其他适当的数据采集设备。

在本公开的实施例中,当汽车101中需要存储多个采样装置的数据时,可以将接收到的经采样的数据与对应于该数据的采样装置和采样时刻均存储至与该空闲计算资源相对应的存储单元。备选地或附加地,当汽车101中仅需要存储一个采样装置的数据时,则可以将接收到的经采样的数据与对应于该数据的采样时刻存储至与该空闲计算资源相对应的存储单元。

在本公开的实施例中,可以在待存储的数据中标记对应于该数据的采样装置(例如,采样装置的标识信息)和采样时刻的信息。在标记完成后,可以将经标记的数据存储至对应的存储单元。备选地或附加地,还可以创建待存储的数据与对应于该数据的采样装置(例如,采样装置的标识信息)和采样时刻的映射关系表(例如,哈希表)。在映射关系表创建完成后,可以将该数据与该映射关系表存储至对应的存储单元。通过存储各数据的采样装置标识信息和采样时刻信息,可以在发生事故之后或者用户103请求之后对存储的所有数据进行有序组合。

在本公开的实施例中,当计算系统105中不存在空闲线程时,计算系统105将接收到的数据与对应于该数据的采样装置和采样时刻中的至少一项保持在缓存设备中,从而确保采样数据不被丢失。

通过执行上述操作,可以充分利用计算资源及时、准确地存储尺寸较大、精度较高的行车数据,并且避免了并行冲突。

为了更为详细地描述本公开的数据存储方法的优选实施例,图3示出了根据本公开的一些实施例的数据存储的过程或方法的流程图。在本公开的实施例中,方法300可以在图4示出的设备中实现。作为示例,方法300可以在图1所示的计算系统105中实现。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。

在框301,首先由计算系统105将存储设备106划分为多个存储单元(或多个不同的存储区域)。划分的多个存储单元与计算系统105中的计算资源(例如,多个线程)相对应。也就是说,计算系统中的某个线程仅可以将数据写入与之对应的存储单元中。

在框303,由计算系统105获取与运动实体(诸如汽车101)的运动行为相关的、采样的数据。该数据通常是由数据采样装置104采样得到的。之后,在框305,由计算系统105进一步判定计算系统105中的计算资源中是否存在空闲计算资源。如果存在空闲计算资源,则进入框307。在框307,利用在框305中确定的空闲计算资源,将接收到的经采样的数据与对应于该数据的采样装置和采样时刻中的至少一项相关联地存储至与该空闲计算资源相对应的存储单元。

与图2所述的过程或方法200不同地,图3的过程或方法300还包括:如果不存在空闲的计算资源,则进入框309。在框309,计算系统105将接收到的数据与对应于该数据的采样装置和采样时刻中的至少一项保持在缓存设备中。备选地或附加地,当计算系统105发现计算资源中重新出现空闲计算资源时,保持在缓存设备中的数据将被空闲计算资源优先处理。

在本公开的实施例中,计算系统105中的计算资源可以是多个线程。当计算系统105接收到来自数据采样装置104的一帧数据时,计算系统105可以从多个线程中为该数据确定一个空闲线程,以使该空闲线程执行该数据的存储操作。在该空闲线程正在处理该数据的存储操作的过程中,如果计算系统105又接收到来自同一数据采样装置或其他数据采样装置的一帧附加数据时,计算系统105可以从剩余的多个线程中为该附加数据确定一个附加空闲线程,以使该附加空闲线程执行该附加数据的存储操作。

此外,由于为了避免并行冲突,存储设备106会被预先划分为对应于各计算资源的多个存储单元,故可能存在特定存储单元所存储的数据的尺寸明显大于其他存储单元、进而使该特定存储单元没有多余存储空间的情况。为此,计算系统105可以在多个存储单元中找到被占用空间最少的存储单元,并将其部分存储空间(例如,一半存储空间)划分为该特定存储单元的一部分。

在存储这些数据的过程中,还会存储与这些数据相关的其他信息(诸如该数据的采样装置的标识信息和采样时刻信息),以便使计算机102能够准确地合并和重组这些数据。例如,可以将分散地存储在存储设备106的各存储单元中的高清摄像头数据合并和重组为高清摄像头的视频数据流,还可以将分散地存储在存储设备106的各存储单元中的激光点云数据合并和重组为激光点云数据流,以此类推。

此外,对于基于记录的每个数据的相应采样装置和相应采样时刻组合多个数据,可以是相同采样装置的数据组合,可以是将相同采样装置的数据组合完成之后进一步将不同采样装置的经组合的数据流拼接在一起。作为示例,可以将前置高清摄像头的视频数据流与后置高清摄像头的视频数据流甚至更多的采样装置的数据流拼接为一个显示画面用于向用户103进行展示。

应当理解,上述示例仅仅是为了说明的目的,而无意限制本公开的实施例的范围。

通过本公开讨论的上述方案,可以充分利用计算系统105中的计算资源,从而可以及时、准确的存储尺寸较大、精度较高的行车数据,并且避免了并行冲突。此外,由于计算系统105引入的多线程并行处理的操作模式,故还可以支持对来自多个不同采样装置的采样数据的并行存储操作。

图4示出了根据本公开的实施例的在汽车101内部的计算系统105中执行的装置的示意框图。结合图2和图3的描述,图4所示的装置400包括:数据获取模块410。数据获取模块410被配置为获取与运动实体的运动行为相关的、经采样的数据。该装置400还包括空闲计算资源确定模块420。空闲计算资源确定模块420被配置为从针对运动实体的计算资源中为数据确定空闲计算资源,计算资源对应于与运动实体相关联的存储设备中的不同存储单元。该装置400还包括存储处理模块430。存储处理模块430被配置为利用空闲计算资源将数据与对应于数据的采样装置和采样时刻中的至少一项相关联地存储至与空闲计算资源相对应的存储单元。

在本公开的实施例中,装置400还包括:数据保持模块(未示出),被配置为响应于计算资源中不存在空闲计算资源将数据与对应于数据的采样装置和采样时刻中的至少一项保持在运动实体的缓存设备中。

在本公开的实施例中,数据获取模块410被配置为获取与机动车、非机动车、可穿戴设备或其他设备相关的数据。

在本公开的实施例中,采样装置104包括车载摄像头、车载雷达、车载激光雷达、车载全球定位系统、用于收集车载主控计算机数据的监控装置或其他采样设备。

在本公开的实施例中,存储处理模块430包括标记模块(未示出),被配置为在数据中标记对应于数据的采样装置和采样时刻。存储处理模块430还包括存储模块(未示出),被配置为将经标记的数据存储至与空闲计算资源相对应的存储单元。

在本公开的实施例中,存储处理模块430包括映射关系表创建模块(未示出),被配置为创建数据与对应于数据的采样装置和采样时刻的映射关系表。存储处理模块430还包括存储模块(未示出),被配置为将数据与映射关系表存储至与空闲计算资源相对应的存储单元。

图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。如图所示,设备500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序指令,来执行各种适当的动作和处理。在ram503中,还可存储设备500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元501执行上文所描述的各个方法和处理,例如过程200和/或300。例如,在一些实施例中,过程200和/或300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram503并由cpu501执行时,可以执行上文描述的过程200和/或300的一个或多个步骤。备选地,在其他实施例中,cpu501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200和/或300。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

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