用于在存储边缘处生成描述非结构化数据对象的元数据的系统和方法与流程

文档序号:24728757发布日期:2021-04-16 21:38阅读:178来源:国知局
用于在存储边缘处生成描述非结构化数据对象的元数据的系统和方法与流程

1.本公开涉及在存储边缘处使用计算引擎来生成描述媒体对象数据的元数据。


背景技术:

2.本文所提供的背景技术描述是为了总体上呈现本公开的上下文。此处发明人的工作,就在本背景技术部分中所描述的工作以及在提交时以其他方式不符合现有技术的描述内容的各方面,均未明确或暗含为承认是针对本公开的现有技术。
3.用于生成描述非结构化数据(诸如,媒体数据)的元数据的典型系统可以在数据初始被接收的位置处(摄取点,ingest point,诸如摄取服务器或其他集中式网络处理位置)处做这些。摄取点可以与系统的用户在物理上并置,或者可以是云存储位置。例如,视频数据可以从服务器处的相机或其他视频源接收,服务器负责对媒体进行转码并生成描述媒体的元数据。这些系统通常将元数据与所接收的、或经转码的媒体数据一起嵌入在媒体数据流中,从而要求取回媒体数据的整体,以便访问描述媒体数据的所有元数据。由于待处理的媒体数据的量,这可能导致摄取点处的负载增加,以便在其中嵌入或以其他方式包括元数据。典型的系统在摄取点处或集中式服务器处生成描述媒体数据的元数据。这可能导致从集中式服务器的摄取点到存储装置的待转移的数据量增加,并且因此导致执行存储操作所要求的网络带宽增加。例如,大量数据可能需要在远程处理位置和存储位置之间传输。


技术实现要素:

4.本文所描述的实现方式提供了用于存储和管理媒体对象数据的装置和方法。存储控制设备与存储设备耦合、并且被定位远离主机设备的存储边缘处,存储控制设备从主机设备接收媒体对象数据。存储控制设备标识媒体对象数据的类型,并且基于所标识的类型,在多个计算模型之中选择计算模型,以用于由存储控制设备的计算引擎使用。计算引擎使用所选择的计算模型来生成描述媒体对象数据的元数据。元数据被存储在存储设备中,从而使元数据与媒体对象数据分开地从存储设备选择性地可取回。
5.在一些实现方式中,存储控制设备使用数据输入接口来访问媒体对象数据。每个计算模型具有相关联的输入数据接口参数,输入数据接口参数标识数据格式,计算模型针对该数据模式而被配置。存储控制设备使用输入数据接口参数来访问媒体对象数据,并且将媒体对象数据转换为所标识的数据格式。
6.在一些实现方式中,每个计算模型具有相关联的硬件接口参数。存储控制设备取回硬件接口参数,并且将硬件接口参数应用于硬件接口。存储控制设备使用硬件接口从第一物理连接访问媒体对象数据,并且使用硬件接口通过第二物理连接来将媒体对象数据和元数据存储在存储设备中。
7.在一些实现方式中,每个计算模型具有相关联的解密参数。存储控制设备取回解密参数,并且使用解密参数来对媒体对象数据进行解密。
8.在一些实现方式中,存储控制设备从存储设备取回媒体对象数据,针对该媒体对象数据,元数据已使用第一计算模型而生成。存储控制设备标识第一计算并且选择第二计算模型来生成与第一元数据不同的第二元数据。存储控制设备可以存储第二元数据,从而使第二元数据从第一元数据、以及从媒体对象数据选择性地可取回。存储控制设备可以将第一元数据和第二元数据组合,以生成经组合的元数据,并且存储经组合的元数据,从而使经组合的元数据从媒体对象数据选择性地可取回。
9.在一些实现方式中,存储控制设备从主机设备接收针对包含满足一个或多个准则的对象的媒体数据的请求。响应于该请求,在一些实现方式中,存储控制设备与媒体对象数据分开地从存储设备取回描述媒体对象数据的元数据。基于所取回的元数据,存储控制设备标识媒体数据的包含满足一个或多个准则的对象的一个或多个部分。存储控制设备然后从存储设备取回媒体数据的包含满足一个或多个准则的对象的经标识的部分,并且在无需发送媒体的其他部分的情况下,通过以下来响应来自主机的请求:通过网络连接发送媒体数据的所取回部分。
10.在一些实现方式中,存储控制设备生成媒体对象数据的副本,并且同时执行以下二者:将媒体对象数据提供给存储设备以用于存储、以及将媒体对象数据的副本提供给计算引擎以用于处理来生成元数据。
11.在一些实现方式中,存储控制设备按逻辑上分开的方式存储媒体对象数据,从而使其彼此分开地选择性地可取回。
附图说明
12.在结合附图考虑以下具体实施方式时,本公开的其他特征、其性质以及各种优点将变得显而易见,其中相似的附图标记始终指代相似的部分,并且其中:
13.图1是图示了根据本公开的一些实现方式的用于生成描述非结构化数据对象的元数据的组件、以及组件之间的数据流的框图;
14.图2是图示了根据本公开的一些实现方式的用于生成描述非结构化数据对象的元数据的组件、以及组件之间的数据流的另一框图;
15.图3是图示了根据本公开的一些实现方式的将元数据和媒体数据存储在非易失性存储设备中的框图;
16.图4是图示了根据本公开的一些实现方式的将元数据和媒体数据存储在非易失性存储设备中的另一框图;
17.图5是图示了根据本发明的一些实现方式的计算引擎的组件的框图;
18.图6是图示了根据本公开的一些实现方式的数据结构的组件的框图,计算模型从该数据结构中提取;
19.图7是表示根据本公开的一些实现方式的用于生成描述非结构化数据对象的元数据的过程的流程图;
20.图8是表示根据本公开的一些实现方式的用于生成描述数据对象的元数据的另一过程的流程图;以及
21.图9是表示根据本公开的一些实现方式的用于基于单独取回的描述数据对象的元数据来取回数据对象的各部分的过程的流程图。
具体实施方式
22.本文所述的实现方式提供了用于在存储边缘处生成描述非结构化数据对象的元数据的装置和方法。存储边缘指代一环境,该环境对于存储设备(诸如一个或多个固态存储驱动装置或硬盘驱动装置)是本地的。被定位在存储边缘处的存储控制设备用来控制数据在一个或多个存储设备处的存储和取回。每个存储设备可以被耦合到相应的存储控制设备,并且由相应的存储控制设备控制。备选地,若干存储设备可以被耦合到单个存储控制设备,并且由单个存储控制设备来控制,单个存储控制设备诸如在题为“storage aggregator controller with metadata computation control”的美国专利申请号16/264,248中所描述的存储聚合器。存储控制设备接收诸如媒体对象的非结构化数据对象,描述性元数据尚未针对该数据对象而生成。存储控制设备的控制电路标识数据对象的诸如数据类型的类型。基于该类型,计算模型从多个计算模型之中选择。计算引擎,比如相对于存储边缘或存储设备是本地的计算引擎,使用所选择的计算模型来生成描述数据对象的元数据。存储控制设备将元数据提供给存储设备以用于在数据对象内、或与数据对象相关联的存储,从而使元数据与数据对象的数据分开地选择性地可取回。元数据可以在以下项中被嵌入到数据对象中:数据对象的头部或其他离散部分,其可以与数据对象分开地取回。例如,数据对象可以包括视频数据,并且元数据可以被生成为文本文件。存储控制设备将元数据文本和视频数据组合为单个文件,该单个文件具有逻辑上分开的文本部分和视频部分。元数据然后可以通过仅访问文件的文本部分而分开地被取回。备选地,元数据可以与数据对象的数据交织。例如,视频数据中所包含的每个关键帧包括某种元数据,其描述了视频数据中相应关键帧所应用于的部分。作为第三备选方案,元数据可以被存储在物理上分开的存储设备中,或者可以被存储在数据对象被存储的存储设备的逻辑上分开的部分中。例如,数据对象可以被存储在第一固态驱动装置中,而元数据可以被存储在第二固态驱动装置中。作为另一示例,数据对象可以被存储在固态驱动装置的第一分区中,并且元数据可以被存储在相同固态驱动装置的第二分区中。对数据的任何其他合适的物理或逻辑分开也可以使用。
23.本公开描述了方法和系统,用于在存储边缘处生成描述非结构化数据对象的元数据、并且存储元数据,从而使元数据与数据对象的数据分开地选择性地可取回。存储控制设备包括控制电路和计算引擎,诸如合适的人工智能(ai)或机器学习(ml)引擎。存储控制设备被定位在存储边缘处,并且接收待存储在存储设备中的非结构化数据(诸如媒体对象)。存储控制设备生成针对非结构化媒体对象的媒体数据的元数据,并且将元数据存储在存储设备中,使得元数据可以与非结构化媒体数据分开地选择性地可取回。
24.如本文所使用的,术语“存储边缘”意指对于非易失性存储设备为本地的模块或组件。例如,控制器被设置在存储边缘上,该控制器控制一个或多个存储设备的操作,以在非易失性存储器的一个或多个实例处存储或取回数据。存储边缘例如在专用存储设备中或者在存储网络处找到,并且与远程被定位在比如主机计算机中、或数据中心处的处理器分开。存储边缘与远程主机之间的通信通过计算机网络连接进行。
25.如本文中所使用的,术语“媒体数据对象”、“数据对象”、“媒体对象”或“对象”意指各种类型的数据,其由主机系统上运行的应用发出、并且可以存储在存储设备上。“媒体对象”或“对象”的示例可以包括但不限于视频、声音记录、静态图像、文本对象(诸如文本消息和电子邮件)、从各种类型的传感器(诸如,机动车传感器和物联网(iot)传感器)获得的数
据、数据库对象和/或任何其他合适的对象。在许多情况下,媒体对象是非结构化的。如本文中所使用的,术语“非结构化对象”意指对象的媒体内容(“内容媒体数据”)(例如,文本内容、音频内容、图像内容或视频内容)以原始形式提供,并且未根据固定的字段格式而被提前组织。非结构化对象不会使用元数据而先验地标记,元数据定义了每帧的内容或其他内容部分的任何方面。非结构化数据是非事务性的,并且其格式不容易符合关系数据库架构。
26.如本文所使用的,术语“元数据”指代非易失性存储设备中所存储的媒体对象的实际数据内容的高级表示。“元数据”可以是实际数据内容的抽象层,其以紧凑格式给出数据内容的描述或意义。元数据可以以各种方式从媒体对象生成,媒体对象几乎总是非结构化的。示例元数据可以包括标签、标记、数据的类型、在数据内容中所检测的对象/概念/情感、数据内容内的这样的对象/概念/情感的空间/时间位置等。
27.如本文所使用的,术语“人工智能(ai)模型”指代任何合适的ai算法,其例如在深度神经网络或任何递归神经网络或其任何变型上实现。在一些实现方式中,ai模型适当地是任何其他监督学习、或非监督学习、或强化学习的算法。ai模型使用“训练集”——已知是准确的媒体对象和对应元数据的主体——来训练。经训练的ai模型然后被应用于生成针对其他媒体对象的元数据。接收经预训练的ai模型、并且使用经预训练的ai模型来计算对象的元数据的软件或硬件模块在本文中被称为“ai引擎”或“ai接口引擎”。在一些实现方式中,若干不同的ai模型将被应用于非结构化或部分结构化媒体对象。
28.根据本公开的一个方面,使用互联网或其他合适联网协议,通过诸如局域网(lan)或广域网(wan)的网络,存储控制设备从主机设备接收非结构化数据。备选地,非结构化数据从与计算机本地连接的捕获设备(例如,视频记录器、音频记录器、传感器)接收。在这样的实现方式中,存储控制设备被并入计算机的存储设备中并且通过总线从计算机的其他部分接收数据。存储控制设备创建数据对象的副本并且将原始数据对象存储在存储设备中,同时使用计算引擎以使用副本来生成元数据。在生成元数据之后,数据对象的副本不再被要求。元数据以与非结构化数据选择性可取回的方式被存储,并且数据对象的副本被删除、被标明以用于删除、被覆写或者以其他方式从存储控制设备移除。
29.如下所述,元数据与非结构化数据分开地存储,以便促进元数据的选择性可取回性而不要求取回相关联的非结构化数据。例如,元数据和非结构化数据可以被存储在数据文件或其他数据结构的一个或多个逻辑上可分开的部分中。在一个实现方式中,包含元数据的一个或多个部分被结构化为自包含的数据文件,自包含的数据文件可以由存储控制设备在非结构化数据的上下文之外进行访问和读取。附加地,包含元数据的一个或多个部分可以在数据文件或数据结构内被标记或以其他方式被标识,以允许存储控制设备容易地对它们进行定位和取回。另外,元数据标识或以其他方式包括与该元数据描述的非结构化数据的关联性。这允许存储控制设备基于对元数据的研究或分析来取回非结构化数据的相关部分。该实现方式和其他实现方式在题为“metadata generation for multiple object types”的美国专利申请号16/262,971中进一步描述。
30.对元数据以从非结构化数据选择性地可取回的方式的存储可以允许在索引和搜索功能中更高的效率。不同于必须从非结构化数据对象中解析出元数据,搜索引擎或索引器可以在无需取回媒体数据的情况下,访问或选择性地取回描述对象的元数据。该选择性取回减少了为了取回元数据或非结构化数据对象的相关部分而需要访问的数据的量,并且
减少了在以下情况时处理器负载:执行搜索或索引功能、或取回先前非结构化数据的相关部分(诸如媒体对象的相关部分)。
31.在存储边缘处而不是在主机设备处生成元数据还导致在主机设备、处理器与存储边缘之间较少的待转移的数据,这进而导致从摄取点、或从中央数据处理中心更快的总体数据转移速度。例如,当元数据在摄取点、数据处理中心或云服务器(即,远离存储边缘的位置)处生成时,包含数据对象的非结构化媒体数据必须被转移到存储边缘,并且有时还要从存储设备转移到比如在远程数据中心处的远程处理器,以标识和/或标记媒体中的各种对象。这需要通过计算机网络转移海量数据,从而影响网络中的可用带宽并且要求可观的时间,并且最终影响总体网络速度和/或性能。通过将元数据的生成移动到存储边缘,元数据可以很容易地针对显著更大量的非结构化数据而生成,从而促进使用元数据来标识所存储的非结构化内容媒体数据的相关部分。较大量的内容媒体可以针对相关分段而被过滤,并且相关分段可以从存储设备转移,而无需通过计算机网络将非结构化内容媒体数据的整个大体量主体从存储装置转移到数据中心设施。这促进显著减少需要转移的内容媒体数据的数量,并且促进用以更快速地精确指出、并且查看仅内容媒体数据中相关的那些分段。因此,用以使非结构化数据的相关部分可用于从存储边缘取回所要求的时间量通过以下二者之间的差异而减少:在一方面,向数据中心设施转移大体量的内容数据媒体所需的时间量,该大体量的内容数据媒体需要在数据中心处使用计算引擎生成元数据;以及在另一方面,向数据处理设施转移相对少量的数据所需的时间量,该相对少量的数据包含在存储边缘处生成的元数据、以及内容数据的与解决对特定需要相关的那些分段二者。例如,元数据针对监视视频而生成,以标记监视视频中所捕获的人的情绪,或者监视视频中所捕获的特定人或活动的存在。仅具有所期望的人、情绪或活动的相关帧可能需要被发送(例如,到数据处理中心或人类操作者)以用于进一步分析。作为另一示例,元数据被生成用于音频记录,以标记特定的话音序列,诸如在机器人服务台处进行的对话的分段。元数据针对特定的话音序列而进行搜索,并且仅包含相关序列的相关记录部分而非整个记录被发送到一设施,在该设施处,相关记录部分被分析并且被用来改进自动会话中的机器人响应。
32.根据本公开的另一方面,先前接收的非结构化数据从存储设备中取回,元数据使用第一计算模型,针对先前接收的非结构化数据而先前地生成。使用不同于第一计算模型的第二计算模型,第二元数据针对所取回的非结构化数据而生成。第二计算模型可以是第一计算模型的经更新的版本,第二计算模型可以更准确地生成与第一计算模型相同类型的元数据。第二元数据与第一元数据进行比较,并且第二元数据的与第一元数据的对应元数据不同的任何元数据、或者第二元数据的不在第一元数据中存在的任何元数据被存储。备选地,第二计算模型可以被配置为生成与第一计算模型不同类型的元数据。第二元数据也可以被存储,以使第二元数据与先前存储的非结构化数据、以及先前生成的第一元数据二者分开地选择性地可取回。备选地,第二元数据与第一元数据合并,并且经合并的元数据被存储,以使经合并的元数据与先前存储的非结构化媒体分开地选择性地可取回。
33.图1是图示了根据本公开的一些实现方式的用于生成描述非结构化数据对象的元数据的组件、以及组件之间的数据流的框图。存储控制设备102被定位在存储边缘100处。非结构化数据对象104在存储控制设备处从主机设备接收,主机设备诸如是音频记录器、视频记录器、成像传感器(例如,红外传感器)、环境传感器(例如,温度计)、运动传感器(例如,加
速度计、雷达、激光雷达)或服务器(“摄取服务器”),来自任何这样的记录器或传感器的数据首先在该服务器处被接收。
34.在一些实现方式中,控制电路106被配置为使用输入数据接口来接收、取回或访问非结构化数据104。输入数据接口可配置,以根据需要来访问各种类型的非结构化数据。输入数据接口的配置可以通过将输入数据接口参数应用于输入数据接口来实现。如以下结合图6所描述的,输入数据接口参数可以与特定计算模型相关联地存储,该特定计算模型被配置为处理特定格式的非结构化数据。如果非结构化数据104以与特定格式不同的格式被接收,则控制电路106被配置为将非结构化数据104转换为特定格式,以促进描述非结构化数据的元数据的生成。例如,视频数据可以以诸如h.262的经压缩格式来接收,而计算模型被配置为处理h.264视频数据。输入数据接口参数标识一组视频压缩格式,该一组视频压缩格式可以被转换为所要求的h.264格式,并且输入数据接口参数可以附加地供应格式转换工具,以由控制电路106使用来将视频数据转换为h.264格式。作为另一示例,图像数据可以以jpeg格式接收,而计算模型被配置为处理以位图格式的图像。输入数据接口参数将jpeg标识为合适输入格式以用于转换为位图格式,并且提供由控制电路106使用的转换工具。
35.在一些实现方式中,控制电路106可以使用硬件接口来接收、取回或访问非结构化数据104。硬件接口可配置,以从存储控制设备102的各种物理或逻辑端口和/或连接来访问数据。硬件接口的配置可以通过将硬件接口参数应用于硬件接口来实现。如以下结合图6所描述的,硬件接口参数可以与特定计算模型相关联地存储。响应于对特定计算模型的选择(例如,响应于指令118,指令118可以在接收非结构化数据之前被接收),控制电路106将硬件接口参数应用于硬件接口。硬件接口参数可以指定网络连接的特定逻辑端口,诸如tcp端口20(ftp)、80(http)或115(sftp)。硬件接口参数可以指定物理端口或连接,诸如以太网端口、串行端口、usb端口或其他数据端口,存储控制设备102可以通过该其他数据端口来接收非结构化数据。硬件接口侦听所指定的端口,并且允许控制电路106访问通过所指定的端口接收的数据。
36.在一些实现方式中,非结构化数据104被加密,以用于传输给存储边缘。为了允许处理非结构化数据104,控制电路106使用解密参数来对非结构化数据104进行解密。如以下结合图6所描述的,解密参数可以与特定计算模型相关联地存储。响应于对特定计算模型的选择(例如,响应于指令118,指令118可以在接收非结构化数据之前被接收),控制电路系统106取回解密参数。解密参数可以包括预定义的解密密钥、或解密密钥生成例程,诸如rsa算法。控制电路应用解密密钥、或使用rsa算法来生成并应用解密密钥,以访问非结构化数据104。
37.在访问或接收非结构化数据104时,存储控制设备102的控制电路106创建两个相同的数据流。第一数据流包含如原始接收的非结构化数据104,并且第二数据流包含由控制电路106生成的非结构化数据104的相同副本。控制电路106然后将第一数据流108存储在非易失性存储器110中。非易失性存储器110可以是任何非易失性数据存储设备,诸如硬盘驱动装置、闪速存储器阵列(例如,nor

闪速存储器或nand

闪速存储器)或任何其他合适类型的数据存储介质。上述解密和/或格式转换可以对如初始接收的非结构化数据104执行,或者仅对待由计算引擎116处理的第二数据流执行。
38.控制电路106还确定非结构化数据的数据类型,诸如视频数据、图像数据、音频数
据或任何其他数据类型。控制电路106将与数据流108相同的第二数据流114引导到存储控制设备102的计算引擎116。计算引擎116使用计算模型来生成元数据。例如,计算引擎116可以是机器学习、人工智能或其他合适的元数据生成引擎。由计算引擎116所使用的计算模型可以是ai模型并且可以采用矩阵乘法运算、卷积运算、神经网络中定义的其他运算或任何其他合适的数据处理方法或运算。存储控制设备102选择待由计算引擎116使用的计算模型,并且向计算引擎116传输指令118来使用所选择的模型。存储控制设备102选择与所确定的数据类型相对应的计算模型,或者选择期望从内容中提取的元数据的类型。例如,一些计算模型适合于标识图像帧中的面部或声音记录的分段中的语音,而其他计算模型被设计为例如标识图像帧中的人的动作或情绪。一些计算模型标识对象在帧或数据流内的位置。一些计算模型被配置为标识媒体数据的分段的多个不同特性。
39.在一个实现方式中,计算引擎116处理非结构化数据的副本,以将非结构化数据分段为帧、生成描述比如非结构化数据中内容的位置以及内容的元数据。如以下结合图3和图4所描述的,元数据120然后被存储在非易失性存储装置110中,以与非结构化数据分开地选择性地可取回。这可以允许在元数据的索引和搜索功能的更高效率,这些功能用以例如提取内容媒体数据的相关分段。
40.在一些实现方式中,上述媒体数据和元数据在非易失性存储装置110中的存储使用硬件接口来实现,硬件接口使用上述硬件接口参数来进行配置,硬件接口参数可以进一步指定特定端口或连接,存储控制设备102通过该特定端口或连接将媒体对象数据和元数据存储在非易失性存储装置110中。例如,硬件接口参数可以指定特定服务器或数据存储设备的物理地址或逻辑地址,在该特定服务器或数据存储设备中存储媒体对象数据和元数据。备选地或附加地,硬件接口参数可以指定诸如以太网端口、串行端口、usb端口或其他数据端口的特定端口,存储控制设备102可以通过该特定端口来访问非易失性存储装置110。
41.图2是图示了根据本发明的一些实现方式的用于生成描述非结构化数据对象的元数据的组件、以及组件之间的数据流的另一框图。如果针对已存储在非易失性存储装置110中的非结构化数据对象,没有元数据已生成,或者如果附加元数据针对非结构化数据对象待生成,则存储控制设备102从非易失性存储装置110取回内容媒体数据200。如以上结合图1所描述的,控制电路106标识媒体数据200的数据类型。控制电路106将内容媒体数据202提供给计算引擎116以用于处理。在一些情形中,内容数据是非结构化的,而在另一些情形中,内容利用部分元数据而被部分地结构化,部分元数据先前针对内容而生成。存储控制设备102选择计算模型,并且将指令204传输给计算引擎116以使用所选择的计算模型。如以上结合图1所描述的,存储控制设备102基于媒体数据200的所确定的数据类型来选择计算模型。如果描述非结构化数据对象的元数据已存在,则控制电路106确定被用来生成元数据的第一计算模型,并且选择待使用的第二计算模型。例如,元数据可以已使用用于在监视视频中标识面部的计算模型而生成。控制电路106可以选择用于在相同监视视频中标识面部表情、动作、情绪或语音的计算模型作为第二计算模型。如以下结合图3和图4所描述的,使用第二计算模型所生成的元数据206然后被存储在非易失性存储装置110中,以使其与非结构化数据分开地选择性可取回。使用第一计算模型所生成的元数据、以及使用第二计算模型所生成的元数据可以彼此分开地存储,以便是选择性地可取回的。备选地或附加地,使用第二计算模型所生成的元数据可以与使用第一计算模型所生成的元数据进行组合,以生成单个组
的元数据,其待以与非结构化数据分开地选择性地可取回的方式而存储。
42.图3是图示了本公开的一些实现方式的元数据和媒体数据在非易失性存储装置110中的存储的框图。元数据和媒体数据被存储在非易失性存储装置110中的单个数据文件300内。数据文件300具有一文件格式,该文件格式在元数据部分302和媒体数据部分304中,分别托管基于文本的元数据和非结构化媒体数据。包含非结构化媒体数据的数据流108在非易失性存储装置110处被接收,并且数据文件300被创建,以例如在媒体数据部分304中包含非结构化媒体数据。由计算引擎116生成的元数据120也在非易失性存储装置110处被接收。非易失性存储装置110将元数据存储在数据文件300的元数据部分302中。在一个实现方式中,元数据部分302与媒体数据部分304分开地存储。在另一实现方式中,相应元数据部分302和媒体数据部分304被存储在一起、例如交织在一起,但使其相互可分开。数据文件300可以利用元数据部分302和媒体数据部分304两者来创建。备选地,如果非结构化媒体数据108在元数据120之前在非易失性存储装置110处被接收,则数据文件300可以仅使用媒体数据部分304来创建,并且在接收到元数据120时,元数据部分302可以被附加、追加到媒体部分304,或与媒体部分304级联(concatenate)或交织。如上所述,通过与媒体数据108分开地存储元数据120,元数据120可以与媒体数据108分开地选择性地可取回,这进而导致访问元数据120,或基于元数据120访问媒体数据108的特定部分的提高的效率。
43.图4是图示了根据本公开的一些实现方式的元数据和媒体数据在非易失性存储装置110中的备选存储的另一框图。非易失性存储装置110可以包括物理上分开的存储区域(例如,若干硬盘驱动装置或固态驱动装置)或逻辑上分开的存储区域(例如,单个硬盘或固态驱动装置上的若干分区)。非易失性存储装置110可以指派用于元数据存储的第一存储区域400、以及用于数据对象存储的第二存储区域402。数据流108在非易失性存储装置110处被接收。非易失性存储装置110确定所接收的数据流108包含非结构化媒体数据,并且将非结构化媒体数据存储在数据对象存储装置402中。非易失性存储装置110还接收由计算引擎116生成的元数据120。非易失性存储装置110确定所接收的数据是基于文本的元数据,并且将元数据120存储在元数据存储装置400中。如以上,元数据120的存储将是与媒体数据108可分开的允许元数据120与媒体数据108分开地可取回,这进而导致访问元数据120、或基于元数据120访问媒体数据108的特定部分的提高的效率。
44.在一些实现方式中,计算模型被存储在存储控制设备102的存储器中的相应数据结构中。计算引擎116或控制电路106从其相应的数据结构中提取所选择的计算模型,以用于由计算引擎116使用。图5是图示了根据本公开的一些实现方式的计算引擎的组件的框图。计算引擎116包括数据结构运行时模块500。数据结构运行时模块500提供一环境,其中数据结构的内容可以由计算引擎116执行、或应用于计算引擎116。附加地,数据结构运行时模块500分配特定数据结构所需要的虚拟系统资源。换言之,数据结构运行时模块500提供应用层,在应用层中,如以下结合图6所述的数据结构的内容可以使用计算引擎116的硬件(诸如cpu 506和硬件加速器512)来执行。计算引擎116还包括编制(orchestration)代理502。在数据结构运行时模块500负责执行数据结构(诸如以下结合图6所描述的数据结构514n)时,编制代理502确定哪个数据结构将执行。编制代理502接收诸如指令118的命令来选择特定数据结构,或者接收待处理的非结构化数据对象的所确定的数据类型的指示,并且确定适当的数据结构。编制代理502将请求516传输给存储控制设备102的存储器,以从多
个数据结构(514a,514b,514c,...,514n)之中取回数据结构(例如,数据结构514b)。存储控制设备102的存储器传输响应318,该响应包含所选择的数据结构514b,其然后由计算引擎116加载到数据结构运行时模块500中。
45.数据结构运行时模块500从数据结构514b提取计算模型。数据结构运行时模块500将所提取的计算模型520加载到计算引擎116的易失性存储器510中。数据结构运行时模块500还可以从所选择的数据结构提取所需要的其他数据和参数,以使用所提取的计算模型520来处理媒体数据。在一个实现方式中,计算引擎116包括在cpu 506上运行的操作系统504,数据结构运行时模块500和编制代理502通过该操作系统来执行上述动作。
46.在一个实现方式中,计算引擎116还包括硬件加速器512。计算模型包括数千个操作,其无法在cpu 506上高效执行。计算引擎116使用硬件加速器512来运行所提取的计算模型。
47.图6是图示了根据本公开的一些实现方式的数据结构的组件的框图,计算模型从数据结构的组件提取。在一些实现方式中,附加于经编译的计算模型600,诸如数据结构514n的数据结构包括若干其他项和参数,其可以由计算引擎116在处理非结构化数据对象中使用。例如,输入数据接口602提供针对非结构化数据的输入格式的参数。例如,特定数据结构内所包含的计算模型可以被配置为处理以位图类型格式的图像。如果媒体对象数据供应以诸如jpeg的经压缩格式的图像,则计算引擎116必须将经压缩的图像转换为位图。媒体对象数据可以被加密。例如,媒体数据可能受到安全问题或版权的影响。数据加密/解密604提供了访问非结构化数据所需的加密或解密算法和密钥(例如通过将数据解密)。数据预处理模块606提供了用于准备用于处理的非结构化数据的机制,诸如如上所述的输入数据接口602所要求的非结构化数据的转换。附加地,数据预处理模块606可以提供用于从媒体对象数据中提取单独视频帧或音频样本的机制。在一个实现方式中,数据后处理模块608提供用于对由计算模型600所生成的元数据进行格式化的参数。例如,数据后处理模块提供特定数据结构和/或数据字段,其中与媒体对象数据有关的元数据将被放置。数据结构或数据字段特定于被处理的数据类型、以及经编译的计算模型600的配置二者。硬件接口610提供了用于使用特定组件(诸如网络接口或串行数据连接)来访问数据的参数。
48.图7是表示根据本公开的一些实现方式的用于生成描述非结构化数据对象的元数据的过程700的流程图。作为非限制性示例,非结构化数据对象是内容媒体数据对象。在702处,存储控制设备102使用控制电路106从主机设备接收媒体对象。例如,控制电路106可以包括网络接口或其他数据输入连接,数据通过网络接口或其他数据输入连接而从远程源接收。远程源包括诸如视频记录器、音频记录器、摄取服务器、云服务器等的任何主机设备或服务器,在主机设备或服务器处,媒体对象生成和/或传输到存储边缘,。在存储边缘处,针对存储边缘处已存在的数据或所接收的数据执行元数据生成,而不是针对数据存储中心处或分布式存储系统(即,云存储)处存储的数据执行元数据生成,导致跨网络所需要转移的数据的体量的显著减少。在一些实现方式中,存储控制设备102可以从主机设备接收用以将媒体对象数据存储在非易失性存储装置110中的请求。在704处,控制电路106创建媒体对象数据的副本,由此导致包含相同内容数据的两个数据流。在706处,控制电路106将一个数据流提供给非易失性存储装置110以用于存储。在708处,控制电路106标识媒体对象数据的数据类型。例如,媒体对象数据可以是视频流。控制电路106可以处理、检查或以其他方式检验
分组头部,以确定从主机设备接收的数据的类型。控制电路106可以还确定数据格式,诸如mpeg

2、mpeg

4或其他视频数据格式。作为另一示例,媒体对象数据可以是音频流。控制电路106可以处理,检查或以其他方式检验分组头部,以确定所接收的数据的类型,并且可以还确定数据格式,诸如mp3、wav或其他合适的音频数据格式。作为第三示例,媒体对象数据可以是从诸如红外传感器的成像传感器捕获的传感器数据。控制电路106可以从分组头部数据(诸如传感器的签名)标识传感器的类型。
49.在710处,控制电路106基于所标识的数据类型,从多个计算模型之中选择计算模型,以用于由计算引擎116使用。例如,控制电路106选择一计算模型,以用于对视频数据的连续帧执行图像处理来标识每个帧中所描绘的对象。在一些实现方式中,由控制电路106对计算模型的选择还基于期望生成的元数据的类型。例如,若干计算模型对于处理视频数据是可用的,每个计算模型生成不同的一组元数据。一个计算模型可以标识视频数据中的面部,而另一计算模型可以标识视频数据中的动作。控制电路106可以从用户、或从存储边缘处运行的程序接收输入,以生成特定类型的元数据。控制电路106因此选择被配置为处理视频数据、并且生成期望元数据的计算模型。附加概念在题为“metadata generation for multiple object types”的美国专利申请号16/262,971中描述。
50.在712处,计算引擎116使用所选择的计算模型来处理第二数据流,以生成描述媒体对象数据的元数据。在714处,使用以上结合图3至图4描述的方法,控制电路106将元数据提供给非易失性存储装置110以用于存储,从而使元数据与媒体对象数据分开地从非易失性存储装置110选择性地可取回。因此,元数据可以与媒体对象数据分开地取回,由此使得上述过程能够独立于媒体对象数据而仅取回由第一计算模型生成的元数据。
51.图8是图示了根据本公开的一些实现方式的用于生成描述数据对象的元数据的另一过程800的流程图。在一些实现方式中,已使用第一计算模型处理来生成第一元数据的媒体对象数据使用第二计算模型再次处理,以生成附加元数据或补充元数据。在802处,控制电路106取回描述媒体对象数据的第一元数据,第一元数据先前使用第一计算模型而生成。例如,响应于哪个非易失性存储装置110提供第一元数据,控制电路806可以使用sql“选择”(select)命令,来使用查询非易失性存储装置110或元数据存储装置400。备选地,控制电路106可以访问非易失性存储装置110的文件分配表,以标识第一元数据被存储的存储器位置或存储器地址范围,并且从所标识的位置或地址范围中取回第一元数据。
52.在804处,控制电路106标识被用来生成第一元数据的第一计算模型。例如,在一个实现方式中,控制电路106可以分析先前生成的元数据的类型,或者分析关于一个或多个计算模型,第一元数据内所包含的特定元数据字段,或者分析可用计算模型的索引来标识第二计算模型以用于处理所标识的数据类型,其产生第一元数据内所包含的特定元数据字段或该元数据的类型。例如,如果第一元数据包含描述随时间的面部和面部位置的字段,则控制电路106确定第一元数据使用被配置为在视频内容中标识面部的计算模型来产生。
53.在806处,控制电路106确定待生成的元数据的类型。控制电路106可以确定第一计算模型的更新版本是否存在。例如,控制电路106标识第一计算模型被编译的日期和时间,或者何时包含第一计算模型的数据结构首次可用。如果第一计算模型的更新版本存在,则控制电路106确定与第一元数据相同类型的元数据应生成。备选地,控制电路106可以自动选择元数据的类型来补充第一元数据,或者可以从用户接收标识待生成的元数据的特定类
型的输入。例如,控制电路106将第一计算模型标识为图像处理模型,以用于标识在视频帧中所描绘的诸如面部的对象。控制电路106然后确定标识与面部相关联的附加特性(诸如情绪)的元数据待生成。备选地,控制电路106确定描述视频数据内的口述词的元数据待生成。
54.在808处,控制电路106基于待生成的元数据的所确定的类型来选择计算模型。例如,如果控制电路106确定待生成的元数据的类型与第一元数据的类型相同,从而指示第一计算模型的更新版本存在,则控制电路106选择经更新的计算模型。备选地,如果不同类型的元数据待生成,则控制电路106选择被配置为生成该类型的元数据的计算模型。例如,如果描述情绪的元数据待生成,则控制电路106选择一计算模型,该计算模型被配置为对其中面部被标识的帧进行处理以标识情绪。如果描述口述词的元数据待生成,则控制电路106可以选择音频处理计算模型,以处理整个视频的音频数据或视频中包含面部的分段的音频数据,来标识视频内包含口述词的分段,并且然后使用相同或不同的计算模型将口述词文本化和/或分析话音的内容。备选地或附加地,控制电路106可以选择文本处理计算模型来提取和/或处理内容媒体中的文本、或与内容媒体相关联的文本,文本诸如隐藏式字幕(closed captioning)。
55.在810处,控制电路106基于所选择的计算模型的配置,从非易失性存储装置110取回媒体对象数据的至少一部分。例如,第一计算模型标识出视频内容中的面部,并且所选择的计算模型被配置为基于视频数据中的面部来标识情绪。并非从非易失性存储装置110中取回整个视频内容,控制电路106使用由第一计算模型生成的第一元数据来标识视频内容中包含面部的各部分,以用于由计算引擎116使用所选择的计算模型来进行处理。控制电路106然后仅取回视频内容的那些被标识的部分。
56.在812处,计算引擎116使用第二计算模型来生成第二元数据,第二元数据描述媒体对象数据中的内容。在814处,使用以上结合图3和图4所述的方法,控制电路系统106将第二元数据提供给非易失性存储装置110以用于存储,从而使第二元数据与媒体对象数据分开地从存储设备选择性地可取回。因此,元数据可以与媒体对象数据分开地取回,从而使得上述过程能够独立于媒体对象数据而仅取回由第一计算模型生成的元数据。
57.图9是表示根据本公开的一些实现方式的用于基于描述数据对象的经分开取回的元数据来取回数据对象的各部分的过程900的流程图。在902处,存储控制设备102从主机设备接收针对满足一个或多个准则的媒体对象的请求。例如,媒体对象是监视视频,并且主机设备请求包含人面部的视频数据。在904处,存储控制设备102从非易失性存储装置110中仅取回描述媒体对象数据的元数据。例如,存储控制设备102访问媒体对象的逻辑上可分开的部分,其中存储有描述监视视频的元数据,并且存储控制设备102提取、复制或以其他方式取回逻辑上可分开的部分中所包含的元数据,而无需取回任何监视视频数据。
58.在906处,存储控制设备102使用控制电路106来分析元数据,以标识媒体对象数据的满足一个或多个准则的部分。例如,控制电路106分析描述监视视频的元数据,并且标识监视视频中满足所请求的准则的部分——在本示例中是监视视频中包含人面部的部分。在908处,存储控制设备102与媒体对象数据的其他部分分开地仅取回媒体对象数据的所标识的部分,媒体对象数据的所标识的部分包含满足所请求的准则的对象,媒体对象数据的其他部分不包括包含满足所请求的准则的对象的部分。例如,存储控制设备102仅取回监视视频中包含基于元数据而被标识的人面部的部分。在910处,媒体对象数据的所取回的一个或
多个部分通过计算机网络而被发送给主机设备。在一个实现方式中,包含满足所请求准则的对象的所标识的部分通过计算机网络而被发送给主机设备。然而,媒体对象数据的不满足所请求准则(诸如确实包含人面部的那些部分)的其他部分不需要被发送。
59.结合图1至图9讨论的各种实现方式通过一个或多个电子电路的各种电子组件来执行,电子电路诸如但不限于集成电路、专用集成电路(asic)、dsp等。贯穿本公开讨论的各种组件,诸如但不限于控制电路和硬件加速器(例如,控制电路106和硬件加速器312)等被配置为包括一组电子电路组件,并且在一个或多个电子电路上通信地操作。每个电子电路被配置为包括但不限于以下任意项:逻辑门、存储器单元、放大器、滤波器等。本文所公开的各种实现方式和组件被配置为由一个或多个暂时性或非暂时性处理器可读介质上所存储的处理器可执行指令来至少部分地操作和/或实现。
60.虽然本文已示出和描述了本公开的主题的各种实现方式,但是这样的实现方式仅通过示例的方式提供。与本文描述的实现方式有关的诸多变型、改变和替代可应用,而不脱离本公开。注意的是,在实践本公开时,可以采用本文所述的本公开的实现方式的各种备选方案。意图的是,所附权利要求限定本公开的范围,并且由此涵盖这些权利要求及其等同物的范围内的方法和结构。
61.虽然在附图中以特定顺序描绘了操作,但这不应被解释为要求以所示的特定顺序或以连续的顺序来执行这样的操作,或者必须执行所有图示的操作来实现期望的结果。
62.本说明书的主题已根据特定方面进行了描述,但是其他方面可以被实现并且在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,图7、图8和图9中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。其他变型在所附权利要求的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1