图片分析方法及装置与流程

文档序号:14796306发布日期:2018-06-29 06:00阅读:285来源:国知局

本发明涉及视频分析技术领域,特别涉及一种图片分析方法及装置。



背景技术:

图片分析技术是一种用模式识别和人工智能的方法对物景进行分析、描述、分类和解释的技术,图片分析又称为景物分析或图像理解。

视频中的海量图片可以通过图片分析系统采用图片分析技术进行分析,图片分析系统通常包括中心节点和多个计算节点,中心节点将海量的图片打包成多个图片分析任务,其中每个图片分析任务可以包括多张关联图片(例如视频中的每秒钟内传输的图片为一个图片分析任务),各个计算节点在获取不同的图片分析任务后,并行执行各自的图片分析任务。

由于每个图片分析任务中包括多张图片,当某个计算节点获取的图片分析任务中存在该计算节点不支持的格式的图片时,该计算节点执行该图片分析任务的过程中,会造成计算节点的程序崩溃(也称进程崩溃)。

虽然可以先将使计算节点产生程序崩溃的任务丢弃,然后对程序崩溃的计算节点进行复原,计算节点复原后,会执行下一个图片分析任务,但是,由于将整个图片分析任务全部丢弃,其中的所有图片都会相应丢失,可能导致视频播放过程中出现长时间的失帧现象,图片分析的可靠性将会被降低。



技术实现要素:

为了解决相关技术中将使计算节点产生程序崩溃的图片分析任务丢弃,可能导致视频播放过程中出现长时间的失帧现象的问题,本发明实施例提供了一种图片分析方法及装置。所述技术方案如下:

一方面,提供了一种图片分析方法,用于中心节点,所述方法包括:

在第一计算节点发生程序崩溃时,获取使所述第一计算节点产生程序崩溃的第一图片分析任务;

将所述第一图片分析任务拆分成多个子图片分析任务,每个所述子图片分析任务包括所述第一图片分析任务中的一张图片;

将所述多个子图片分析任务依次发送至第二计算节点,直至所述第二计算节点产生程序崩溃;

获取使所述第二计算节点产生程序崩溃的错误子图片分析任务;

丢弃所述错误子图片分析任务。

可选地,在所述丢弃所述错误子图片分析任务之后,所述方法还包括:

将所述第一图片分析任务中未分析的子图片分析任务合成为第二图片分析任务;

将所述第二图片分析任务发送至第三计算节点;

接收所述第三计算节点发送的第一分析结果,所述第一分析结果为所述第三计算节点对所述第二图片分析任务分析得到的结果;

将所述第一分析结果和第二分析结果整合得到目标分析结果,所述第二分析结果为由所述第二计算节点分析所述第一图片分析任务中的子图片分析任务所得到的结果。

可选地,在所述将所述第一图片分析任务拆分成多个子图片分析任务之后,所述方法还包括:

为每个所述子图片分析任务分配图片身份标识ID,每个所述图片ID包括:源ID,所述源ID用于标识每个所述子图片分析任务所源于的图片分析任务,每个所述子图片分析任务携带有相应的图片ID;

所述将所述第一分析结果和第二分析结果整合得到目标分析结果,包括:

将所有携带所述源ID的分析结果整合得到所述目标分析结果。

可选地,所述中心节点中设置有完成图片任务队列,所述完成图片任务队列用于记录所述中心节点管理的计算节点执行图片分析任务得到的分析结果,每个分析结果包括至少一张图片的分析结果,

所述将所有携带所述源ID的分析结果整合得到所述目标分析结果,包括:

将所述完成图片任务队列中所有携带所述源ID的分析结果的队列元素整合得到一个队列元素,所述队列元素包括所述目标分析结果。

可选地,所述中心节点中设置有待筛选图片任务队列,所述待筛选图片任务队列用于记录由使计算节点发生程序崩溃的图片分析任务拆分得到的子图片分析任务,每个子图片分析任务包括一张图片,

在所述将所述多个子图片分析任务依次发送至第二计算节点之前,所述方法还包括:

将所述多个子图片分析任务依次写入所述待筛选图片任务队列;

所述将所述多个子图片分析任务依次发送至第二计算节点,包括:

依次从所述待筛选图片任务队列中,获取所述多个子图片分析任务,并将所述多个子图片分析任务分别发送至所述第二计算节点。

可选地,所述中心节点中设置有正常图片任务队列,所述正常图片任务队列用于记录所述中心节点生成的图片分析任务,每个图片分析任务包括至少一张图片,

在所述将所述第二图片分析任务发送至第三计算节点之前,所述方法还包括:

将所述第二图片分析任务写入所述正常图片任务队列;

所述将所述第二图片分析任务发送至第三计算节点,包括:

从所述正常图片任务队列中,获取所述第二图片分析任务,并将所述第二图片分析任务发送至所述第三计算节点。

可选地,每个所述图片ID还包括图片序列号,所述图片序列号用于标识图片在所述源ID所指示的图片分析任务中的排列顺序。

可选地,所述源ID为所述每个所述子图片分析任务所源于的图片分析任务生成时的时间戳。

另一方面,提供了一种图片分析装置,用于中心节点,所述装置包括:

第一获取模块,用于在第一计算节点发生程序崩溃时,获取使所述第一计算节点产生程序崩溃的第一图片分析任务;

拆分模块,用于将所述第一图片分析任务拆分成多个子图片分析任务,每个所述子图片分析任务包括所述第一图片分析任务中的一张图片;

第一发送模块,用于将所述多个子图片分析任务依次发送至第二计算节点,直至所述第二计算节点产生程序崩溃;

第二获取模块,用于获取使所述第二计算节点产生程序崩溃的错误子图片分析任务;

丢弃模块,用于丢弃所述错误子图片分析任务。

可选地,所述装置还包括:

打包模块,用于将所述第一图片分析任务中未分析的子图片分析任务合成为第二图片分析任务;

第二发送模块,用于将所述第二图片分析任务发送至第三计算节点;

接收模块,用于接收所述第三计算节点发送的第一分析结果,所述第一分析结果为所述第三计算节点对所述第二图片分析任务分析得到的结果;

整合模块,用于将所述第一分析结果和第二分析结果整合得到目标分析结果,所述第二分析结果为由所述第二计算节点分析所述第一图片分析任务中的子图片分析任务所得到的结果。

可选地,所述装置还包括:

分配模块,用于为每个所述子图片分析任务分配图片身份标识ID,每个所述图片ID包括:源ID,所述源ID用于标识每个所述子图片分析任务所源于的图片分析任务,每个所述子图片分析任务携带有相应的图片ID;

所述整合模块,用于:

将所有携带所述源ID的分析结果整合得到所述目标分析结果。

可选地,所述中心节点中设置有完成图片任务队列,所述完成图片任务队列用于记录所述中心节点管理的计算节点执行图片分析任务得到的分析结果,每个分析结果包括至少一张图片的分析结果,

所述将所有携带所述源ID的分析结果整合得到所述目标分析结果,包括:

将所述完成图片任务队列中所有携带所述源ID的分析结果的队列元素整合得到一个队列元素,所述队列元素包括所述目标分析结果。

可选地,所述中心节点中设置有待筛选图片任务队列,所述待筛选图片任务队列用于记录由使计算节点发生程序崩溃的图片分析任务拆分得到的子图片分析任务,每个子图片分析任务包括一张图片,所述装置还包括:

第一写入模块,用于将所述多个子图片分析任务依次写入所述待筛选图片任务队列;

所述第一发送模块,用于:

依次从所述待筛选图片任务队列中,获取所述多个子图片分析任务,并将所述多个子图片分析任务分别发送至所述第二计算节点。

可选地,所述中心节点中设置有正常图片任务队列,所述正常图片任务队列用于记录所述中心节点生成的图片分析任务,每个图片分析任务包括至少一张图片,所述装置还包括:

第二写入模块,用于将所述第二图片分析任务写入所述正常图片任务队列;

所述第二发送模块,用于:

从所述正常图片任务队列中,获取所述第二图片分析任务,并将所述第二图片分析任务发送至所述第三计算节点。

可选地,每个所述图片ID还包括图片序列号,所述图片序列号用于标识图片在所述源ID所指示的图片分析任务中的排列顺序。

可选地,所述源ID为所述每个所述子图片分析任务所源于的图片分析任务生成时的时间戳。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例提供的图片分析方法及装置,在计算节点发生程序崩溃时,中心节点可以获取使计算节点产生程序崩溃的图片分析任务,并将该图片分析任务拆分为多个子图片分析任务,再将子图片分析任务依次发送给计算节点,直至计算节点产生程序崩溃,然后获取使计算节点产生程序崩溃的错误子图片分析任务并丢弃该错误子图片分析任务,与相关技术相比,本发明实施例提供的图片分析方法,只会丢弃图片分析任务中使计算节点产生程序崩溃的图片,而保留了图片分析任务中的其他图片,有效减少了丢失图片的个数,缩短了视频播放过程中出现失帧现象的时间,提高了图片分析的可靠性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种图片分析方法所涉及的图片分析系统的结构示意图;

图2是本发明实施例提供的一种图片分析方法的流程图;

图3是本发明实施例提供的另一种图片分析方法的流程图;

图4-1是本发明实施例提供的一种中心节点的图片任务队列的结构示意图;

图4-2是本发明实施例提供的另一种中心节点的图片任务队列的结构示意图;

图4-3是本发明实施例提供的又一种中心节点的图片任务队列的结构示意图;

图4-4是本发明实施例提供的再一种中心节点的图片任务队列的结构示意图;

图4-5是本发明实施例提供的还一种中心节点的图片任务队列的结构示意图;

图5是本发明实施例提供的一种图片分析装置的结构示意图;

图6-1是本发明实施例提供的另一种图片分析装置的结构示意图;

图6-2是本发明实施例提供的又一种图片分析装置的结构示意图;

图6-3是本发明实施例提供的再一种图片分析装置的结构示意图;

图6-4是本发明实施例提供的还一种图片分析装置的结构示意图;

图7是本发明实施例提供的一种中心节点的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种图片分析方法所涉及的图片分析系统10的结构示意图,如图1所示,该图片分析系统10可以包括:中心节点101和至少一个计算节点102。

中心节点101可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心,例如中心节点可以是视频服务器等。计算节点102可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。

中心节点101和计算节点102之间可以通过有线网络或无线网络建立连接。

需要说明的是,中心节点可以设置有三个图片任务队列,分别为正常图片任务队列、待筛选图片任务队列和完成图片任务队列。其中,正常图片任务队列用于记录中心节点生成的图片分析任务,每个图片分析任务包括至少一张图片;待筛选图片任务队列用于记录由使计算节点发生程序崩溃的图片分析任务拆分得到的子图片分析任务,每个子图片分析任务包括一张图片;完成图片任务队列用于记录中心节点管理的计算节点执行图片分析任务得到的分析结果,每个分析结果包括至少一张图片的分析结果。中心节点获取视频流后,可以将视频中的图片进行打包生成图片分析任务,并将图片分析任务保存在正常图片任务队列中,中心节点在获取正常图片任务队列中的图片分析任务后,可以发送给计算节点,计算节点可以执行图片分析任务。

图2是本发明实施例提供的一种图片分析方法的流程图,可以用于如图1所示的图片分析系统10中的中心节点101,如图2所示,该方法可以包括:

步骤201、在第一计算节点发生程序崩溃时,获取使第一计算节点产生程序崩溃的第一图片分析任务。

步骤202、将第一图片分析任务拆分成多个子图片分析任务,每个子图片分析任务包括第一图片分析任务中的一张图片。

步骤203、将多个子图片分析任务依次发送至第二计算节点,直至第二计算节点产生程序崩溃。

步骤204、获取使第二计算节点产生程序崩溃的错误子图片分析任务。

步骤205、丢弃该错误子图片分析任务。

综上所述,本发明实施例提供的图片分析方法,在计算节点发生程序崩溃时,中心节点可以获取使计算节点产生程序崩溃的图片分析任务,并将该图片分析任务拆分为多个子图片分析任务,再将子图片分析任务依次发送给计算节点,直至计算节点产生程序崩溃,然后获取使计算节点产生程序崩溃的错误子图片分析任务并丢弃该错误子图片分析任务,与相关技术相比,本发明实施例提供的图片分析方法,只会丢弃图片分析任务中使计算节点产生程序崩溃的一张图片,而保留了图片分析任务中的其他图片,有效减少了丢失图片的个数,缩短了视频播放过程中出现失帧现象的时间,提高了图片分析的可靠性。

实际应用中,中心节点管理多个计算节点,本发明实施例以中心节点与该中心节点管理的3个计算节点为例进行说明,其中,该3个计算节点包括第一计算节点、第二计算节点和第三计算节点,如图3所示,图3是本发明实施例提供的另一种图片分析方法的流程图,可以用于如图1所示的图片分析系统10,该方法可以包括:

步骤301、中心节点向第一计算节点发送第一图片分析任务。

需要说明的是,第一计算节点上电后,向中心节点申请执行图片分析任务,当中心节点确定第一计算节点有能力执行图片分析任务时,可以向个该计算节点分配图片分析任务,假设为第一计算节点分配的图片分析任务为第一图片分析任务,则中心节点向第一计算节点发送第一图片分析任务。其中,判断第一计算节点是否有能力执行第一图片分析任务,可以包括:判断第一计算节点是否能够执行图片分析任务。

可选地,中心节点在获取视频流后,可以将视频流中的大量图片一一打包成一个个图片分析任务,每个图片分析任务包括至少一张图片,实际应用中,为了加快处理速度,通常一个图片分析任务包括多张图片,该多张图片为具有关联关系的图片,例如,可以为视频中的每秒钟内传输的图片,打包后的图片分析任务保存在中心节点的正常图片任务队列中,中心节点将正常图片任务队列中的第一图片分析任务发送给第一计算节点。

可选地,中心节点在将第一图片分析任务发送给第一计算节点之后,中心节点的正常图片任务队列中还可以保存有该第一图片分析任务,当中心节点接收到第一计算节点分析完的第一图片分析任务时,删除该第一图片分析任务;或者,中心节点在将第一图片分析任务发送给第一计算节点之后,可以直接删除该第一图片分析任务,等待第一计算节点对该第一图片分析任务进行相应的反馈。

步骤302、第一计算节点执行第一图片分析任务。

需要说明的是,第一计算节点接收到中心节点发送的第一图片分析任务后,开始执行第一图片分析任务,对第一图片分析任务中的每张图片进行分析。

步骤303、第一计算节点在执行第一图片分析任务的过程中发生程序崩溃时,向中心节点发送第一分析失败信息。

需要说明的是,第一节点在执行第一图片分析任务的过程中,如果出现不可逆的情况(例如第一图片分析任务中存在第一计算节点不支持的格式的图片),可能导致第一计算节点发生程序崩溃。在第一计算节点发生程序崩溃后,第一计算节点向中心节点反馈第一分析失败信息,该第一分析失败信息用于指示第一计算节点对第一图片分析任务的分析失败,其程序崩溃,当中心节点在将第一图片分析任务从正常图片任务队列发送至第一计算节点之后已删除该第一图片分析任务时,第一计算节点则需要在第一分析失败信息中携带该第一图片分析任务,以便中心节点对该第一图片分析任务做后续处理;当中心节点的正常图片任务队列中还保存有第一图片分析任务时,第一计算节点发送的第一分析失败信息中则无需携带该第一图片分析任务,只需上报错误提示即可。

可选地,中心节点可以监控第一计算节点有无发生程序崩溃,具体的,当中心节点将第一图片分析任务发送给第一计算节点之后,若在预设时间段内未接收到第一计算节点发送的第一图片分析任务对应的分析结果时,中心节点可以确定该第一计算节点发生程序崩溃,若正常图片队列中还保存有第一图片分析任务,可以直接对保存在正常图片队列中的第一图片分析任务做后续处理;若正常图片队列中未保存有第一图片分析任务,可以从第一计算节点获取第一图片分析任务并对该第一图片分析任务做后续处理。

步骤304、中心节点将第一图片分析任务拆分成多个子图片分析任务。

可选地,中心节点可以在接收到第一计算节点反馈的第一分析失败信息后,获取第一图片分析任务,并将第一图片分析任务拆分成多个子图片分析任务。该多个子图片分析任务中,每个子图片分析任务包括第一图片分析任务中的一张图片。

具体的,中心节点将第一图片分析任务拆分成多个子图片分析任务之后,为每个子图片分析任务分配图片身份标识(英文:Identity;简称:ID),每个图片ID包括:源ID,该源ID用于标识每个子图片分析任务所源于的图片分析任务,例如由第一图片分析任务拆分得到的多个子图片分析任务中每个子图片分析任务源自于第一图片分析任务,每个子图片分析任务携带有相应的图片ID,该图片ID中包括的源ID用于指示第一图片分析任务。

可选地,每个图片ID还包括图片序列号,该图片序列号用于标识图片在源ID所指示的图片分析任务中的排列顺序。例如,在由第一图片分析任务拆分得到的多个子图片分析任务中,每个子图片分析任务的图片ID所包含的图片序列号用于标识相应图片在第一图片分析任务中的顺序。源ID用于标识每个子图片分析任务所源于的图片分析任务,例如,由第一图片分析任务拆分得到的多个子图片分析任务中的源ID可以为第一图片分析任务生成时的时间戳。又例如,由第一图片分析任务拆分得到的多个子图片分析任务中的源ID也可以是第一图片分析任务的编号。

示例的,假设第一图片分析任务包括5张图片,中心节点将5张图片拆分成5个子图片分析任务,每个子图片分析任务携带的图片ID分别可以为:201610251855-1、201610251855-2、201610251855-3、201610251855-4和201610251855-5,其中,201610251855为源ID,可选地,该源ID既可以为第一图片分析任务生成时的时间戳,也可以为中心节点向第一计算节点发送第一图片分析任务时的时间戳。

示例的,假设第一图片分析任务包括3张图片,第一图片分析任务的编号为A108,每个子图片分析任务携带的图片ID分别可以为:A1081、A1082、A1083,其中A108为源ID。

步骤305、中心节点将多个子图片分析任务依次写入待筛选图片任务队列。

可选地,中心节点中设置有待筛选图片任务队列,该待筛选图片任务队列用于记录由使计算节点发生程序崩溃的图片分析任务拆分得到的子图片分析任务,每个子图片分析任务包括一张图片。

步骤306、中心节点向第二计算节点依次发送待筛选图片任务队列中的多个子图片分析任务,直至第二计算节点产生程序崩溃。

可选地,该第二计算节点可以为图片分析系统中的一个或多个计算节点,例如,该中心节点可以将多个子图片分析任务均分配给一个计算节点来进行分析,也可以同时分配给多个计算节点来并行处理,处理该子图片分析任务的计算节点统称为第二计算节点,可选地,该第二计算节点可以包括复原后的第一计算节点。

具体的,中心节点将多个子图片分析任务依次发送至第二计算节点,可以包括:

中心节点依次从待筛选图片任务队列中获取多个子图片分析任务,并将多个子图片分析任务分别发送至第二计算节点。

可选地,中心节点在将多个子图片分析任务分别发送至第二计算节点之后,中心节点在接收到子图片分析任务对应的分析结果之前,待筛选图片任务队列中还可以保存有子图片分析任务;或者,中心节点在将子图片分析任务发送给第二计算节点之后,可以直接删除该子图片分析任务,等待第二计算节点对该子图片分析任务进行相应的反馈。

步骤307、第二计算节点向中心节点发送第二分析失败信息。

可选地,该第二分析失败信息可以包括:使第二计算节点产生程序崩溃的错误子图片分析任务,此步骤的具体解释可以参考上述步骤303,本发明实施例在此不做赘述。

可选地,在第二计算节点崩溃之前,第二计算节点分析第一图片分析任务中的至少一个子图片分析任务得到相应的至少一个分析结果,并将该至少一个分析结果分别发送给中心节点,中心节点将该至少一个分析结果保存在完成图片任务队列中。其中,该至少一个分析结果中不包括第二计算节点分析错误子图片分析任务的结果。

步骤308、中心节点丢弃该错误子图片分析任务。

在本发明实施例中,中心节点丢弃使计算节点发生程序崩溃的一张图片,保留了图片分析任务中的其他图片,有效减少了丢失图片的个数,可以尽可能的减小图片分析过程中的数据丢失量,提高了图片分析的可靠性。

步骤309、中心节点将第一图片分析任务中未分析的子图片分析任务合成为第二图片分析任务。

可选地,中心节点将第一图片分析任务中未分析的子图片分析任务合成为第二图片分析任务后,将第二图片分析任务写入正常图片任务队列。

步骤310、中心节点向第三计算节点发送第二图片分析任务。

具体的,中心节点从正常图片任务队列中,获取第二图片分析任务,并将第二图片分析任务发送至第三计算节点。此步骤可以参考上述步骤301。

可选地,该第三计算节点可以为图片分析系统中的任一计算节点。

步骤311、第三计算节点执行第二图片分析任务。

需要说明的是,第三计算节点执行第二图片分析任务得到第一分析结果。

步骤312、第三计算节点向中心节点发送第一分析结果。

需要说明的是,中心节点接收到第一分析结果后,将第一分析结果保存在完成图片任务队列中。

步骤313、中心节点将第一分析结果和第二分析结果整合得到目标分析结果,完成第一图片分析任务。

需要说明的是,第二分析结果包括第二计算节点分析第一图片分析任务中的至少一个子图片分析任务得到相应的至少一个分析结果。

可选地,中心节点将第一分析结果和第二分析结果整合得到目标分析结果,可以包括:将所有携带源ID的分析结果整合得到目标分析结果。例如,该目标分析结果可以包括视频中的每秒内传输的第一图片分析任务中除错误子图片分析任务中的图片以外的所有图片,将属于第一图片分析任务的图片整合,可以避免在视频播放过程中由于图片乱序导致播放画面不流畅的现象。

具体的,中心节点将完成图片任务队列中所有携带源ID的分析结果的队列元素整合得到一个队列元素,该队列元素可以包括目标分析结果。可选地,整合得到的目标分析结果可以保存在完成图片任务队列中首个携带源ID的分析结果所在的位置,图片任务队列中其他图片分析任务按照预设的队列排布规则调整位置,避免出现队列中某一队列元素为空的现象。

需要说明的是,本发明实施例提供的图片分析方法既可以应用于中央处理器(英文:Central Processing Unit;简称:CPU),例如X86机器,也可以应用于图形处理器(英文:Graphic Processing Unit;简称:GPU),例如异构机器,在不同的硬件平台上可以采用同一种图片分析方法,该图片分析方法的应用范围广泛。

本发明实施例以以下一个示意性实施例对图片分析系统中的节点执行图片分析任务的过程进行说明,包括:

需要说明的是,中心节点101中可以设置有正常图片任务队列101a、待筛选图片任务队列101b和完成图片任务队列101c。

中心节点的图片任务队列如图4-1所示,正常图片任务队列101a中记录有第一图片分析任务,第一图片分析任务属于一个队列元素,假设第一图片分析任务包括5张图片,该5张图片的图片序列号按照排列顺序分别标记为1、2、3、4和5。

当第一计算节点发生程序崩溃时,中心节点的图片任务队列如图4-2所示,中心节点101获取第一图片分析任务,将第一图片分析任务中的5张图片拆分成5个子图片分析任务,每个子图片分析任务携带的图片ID分别可以为:201610251855-1、201610251855-2、201610251855-3、201610251855-4和201610251855-5,并将5个子图片分析任务保存在待筛选图片任务队列101b中。

假设第三个子图片分析任务使第二计算节点发生程序崩溃,中心节点的图片任务队列如图4-3所示,第二计算节点分析第一和第二子图片分析任务得到的第二分析结果保存在完成图片任务队列101c,其中,201610251855-1为第二计算节点分析第一子图片分析任务的分析结果的图片ID,第一子图片分析任务的分析结果属于一个队列元素,201610251855-2为第二计算节点分析第二子图片分析任务的分析结果的图片ID,第二子图片分析任务的分析结果属于一个队列元素。进一步的,中心节点丢弃第三子图片分析任务后,将第四子图片分析任务和第五子图片分析任务合成为第二图片分析任务,并将第二图片分析任务保存在正常图片任务队列101a中。

进一步的,第三计算节点执行第二图片分析任务后,如图4-4所示,中心节点将第三计算节点执行第二图片分析任务的得到的第一分析结果保存在完成图片任务队列101c中,第一分析结果包括携带的图片ID为201610251855-4的第四子图片分析任务和携带的图片ID为201610251855-5的第五子图片分析任务的分析结果。

最后,中心节点将完成图片任务队列101c中的第一分析结果和第二分析结果整合得到目标分析结果,如图4-5所示,目标分析结果包括4张图片,该4张图片的图片序号分别为1、2、4和5,该目标分析结果可以保存在图片ID为201610251855-1的第一子图片分析任务所在的队列位置,需要说明的是,目标分析结果属于一个队列元素。

综上所述,本发明实施例提供的图片分析方法,在计算节点发生程序崩溃时,中心节点可以获取使计算节点产生程序崩溃的图片分析任务,并将该图片分析任务拆分为多个子图片分析任务,再将子图片分析任务依次发送给计算节点,直至计算节点产生程序崩溃,然后获取使计算节点产生程序崩溃的错误子图片分析任务并丢弃该错误子图片分析任务,与相关技术相比,本发明实施例提供的图片分析方法,只会丢弃图片分析任务中使计算节点产生程序崩溃的一张图片,而保留了图片分析任务中的其他图片,有效减少了丢失图片的个数,缩短了视频播放过程中出现失帧现象的时间,提高了图片分析的可靠性。

图5是本发明实施例提供的一种图片分析装置50的结构示意图,可以用于如图1所示的图片分析系统10中的中心节点101,如图5所示,该装置50可以包括:

第一获取模块501,用于在第一计算节点发生程序崩溃时,获取使第一计算节点产生程序崩溃的第一图片分析任务。

拆分模块502,用于将第一图片分析任务拆分成多个子图片分析任务,每个子图片分析任务包括第一图片分析任务中的一张图片。

第一发送模块503,用于将多个子图片分析任务依次发送至第二计算节点,直至第二计算节点产生程序崩溃。

第二获取模块504,用于获取使第二计算节点产生程序崩溃的错误子图片分析任务。

丢弃模块505,用于丢弃错误子图片分析任务。

综上所述,本发明实施例提供的图片分析装置,在计算节点发生程序崩溃时,中心节点可以通过第一获取模块获取使计算节点产生程序崩溃的图片分析任务,并通过拆分模块将该图片分析任务拆分为多个子图片分析任务,再通过第一发送模块将子图片分析任务依次发送给计算节点,直至计算节点产生程序崩溃,然后通过第二获取模块获取使计算节点产生程序崩溃的错误子图片分析任务并通过丢弃模块丢弃该错误子图片分析任务,与相关技术相比,本发明实施例提供的图片分析方法,只会丢弃图片分析任务中使计算节点产生程序崩溃的一张图片,而保留了图片分析任务中的其他图片,有效减少了丢失图片的个数,缩短了视频播放过程中出现失帧现象的时间,提高了图片分析的可靠性。

可选地,如图6-1所示,该装置50还可以包括:

打包模块506,用于将第一图片分析任务中未分析的子图片分析任务合成为第二图片分析任务。

第二发送模块507,用于将第二图片分析任务发送至第三计算节点。

接收模块508,用于接收第三计算节点发送的第一分析结果,该第一分析结果为所述第三计算节点对所述第二图片分析任务分析得到的结果。

整合模块509,用于将第一分析结果和第二分析结果整合得到目标分析结果,该第二分析结果为由第二计算节点分析第一图片分析任务中的子图片分析任务所得到的结果。

可选地,如图6-2所示,该装置50还可以包括:

分配模块510,用于为每个子图片分析任务分配图片身份标识ID,每个图片ID包括:源ID,该源ID用于标识每个子图片分析任务所源于的图片分析任务,每个子图片分析任务携带有相应的图片ID。

可选地,整合模块509,可以用于:

将所有携带源ID的分析结果整合得到目标分析结果。

需要说明的是,中心节点中可以设置有完成图片任务队列,该完成图片任务队列用于记录中心节点管理的计算节点执行图片分析任务得到的分析结果,每个分析结果包括至少一张图片的分析结果,将所有携带源ID的分析结果整合得到所述目标分析结果,包括:

将完成图片任务队列中所有携带源ID的分析结果的队列元素整合得到一个队列元素,该队列元素包括所述目标分析结果。

需要说明的是,中心节点中可以设置有待筛选图片任务队列,该待筛选图片任务队列用于记录由使计算节点发生程序崩溃的图片分析任务拆分得到的子图片分析任务,每个子图片分析任务包括一张图片,可选地,如图6-3所示,该装置50还可以包括:

第一写入模块511,用于将多个子图片分析任务依次写入待筛选图片任务队列。

可选地,第一发送模块503,可以用于:

依次从待筛选图片任务队列中,获取多个子图片分析任务,并将多个子图片分析任务分别发送至第二计算节点。

需要说明的是,中心节点中可以设置有正常图片任务队列,该正常图片任务队列用于记录中心节点生成的图片分析任务,每个图片分析任务包括至少一张图片,可选地,如图6-4所示,该装置50还可以包括:

第二写入模块512,用于将第二图片分析任务写入正常图片任务队列。

可选地,第二发送模块507,可以用于:

从正常图片任务队列中,获取第二图片分析任务,并将第二图片分析任务发送至第三计算节点。

可选地,每个图片ID还可以包括图片序列号,该图片序列号用于标识图片在源ID所指示的图片分析任务中的排列顺序。

可选地,源ID可以为每个子图片分析任务所源于的图片分析任务生成时的时间戳。

综上所述,本发明实施例提供的图片分析装置,在计算节点发生程序崩溃时,中心节点可以通过第一获取模块获取使计算节点产生程序崩溃的图片分析任务,并通过拆分模块将该图片分析任务拆分为多个子图片分析任务,再通过第一发送模块将子图片分析任务依次发送给计算节点,直至计算节点产生程序崩溃,然后通过第二获取模块获取使计算节点产生程序崩溃的错误子图片分析任务并通过丢弃模块丢弃该错误子图片分析任务,与相关技术相比,本发明实施例提供的图片分析方法,只会丢弃图片分析任务中使计算节点产生程序崩溃的一张图片,而保留了图片分析任务中的其他图片,有效减少了丢失图片的个数,缩短了视频播放过程中出现失帧现象的时间,提高了图片分析的可靠性。

图7是图1所示实施例涉及的一种中心节点的结构示意图,如图7所示,该中心节点101包括:处理器12和网络接口14。

处理器12包括一个或者一个以上处理核心。处理器12通过运行软件程序以及单元,从而执行各种功能应用以及数据处理。

网络接口14可以为多个,该网络接口14用于与其它存储设备或者网络设备进行通信。

可选地,中心节点101还包括存储器16、总线18等部件。其中,存储器16与网络接口14分别通过总线18与处理器12相连。

存储器16可用于存储软件程序以及单元。具体的,存储器16可存储操作系统162、至少一个功能所需的应用程序单元164。操作系统162可以是实时操作系统(Real Time eXecutive,RTX)、LINUX、UNIX、WINDOWS或OS X之类的操作系统。其中该应用程序单元164可以包括第一获取单元164a、拆分单元164b、第一发送单元164c、第二获取单元164d和丢弃单元164e。

第一获取单元164a,具有与第一获取模块501相同或相似的功能。

拆分单元164b,具有与拆分模块502相同或相似的功能。

第一发送单元164c,具有与第一发送模块503相同或相似的功能。

第二获取单元164d,具有与第二获取模块504相同或相似的功能。

丢弃单元164e,具有与丢弃模块505相同或相似的功能。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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