发明内容
基于此,有必要针对上述技术问题,提供一种能够提高局部图像处理实时性的图像处理方法、装置、计算机设备和存储介质。
一种图像处理方法,该方法包括:
获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;
通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;
异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
在其中一个实施例中,所述通过第一线程实时处理所述多个局部图像数据,包括:通过第一线程对所述多个局部图像数据进行实时存储和/或进行格式转换。
在其中一个实施例中,所述异步处理所述多个全景图像数据,包括:
将所述多个全景图像数据放入第一缓冲队列;
通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;
存储所述当前全景图像数据对应的全景图像,得到当前存储地址;
从图像解析单元获取所述解析结果列表;
判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;
若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中。
在其中一个实施例中,所述异步处理所述多个全景图像数据,包括:
将所述多个全景图像数据放入第一缓冲队列;
通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;
从图像解析单元获取所述解析结果列表;
判断解析结果列表中是否存在与所述当前全景图像数据对应的目标解析结果;
若存在,则存储所述当前全景图像数据对应的全景图像,得到当前存储地址;将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;
若不存在,则将所述当前全景图像数据放入所述第一缓冲队列的队尾。
在其中一个实施例中,所述异步处理所述多个全景图像数据,包括:
通过第二线程逐一存储所述全景图像数据对应的全景图像,得到存储地址;
将所述存储地址放入第二缓冲队列;
逐一从第二缓冲队列中取出存储地址,将取出的存储地址作为当前存储地址;
从图像解析单元获取所述解析结果列表;
判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;
若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;
若不存在,则将当前存储地址放入所述第二缓冲队列的队尾。
在其中一个实施例中,所述方法还包括:
接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;
通过第三线程根据所述优先全景图像ID,从第一缓冲队列中取出所述优先全景图像ID对应的优先全景图像数据;
存储所述优先全景图像数据对应的全景图像,得到优先存储地址;
将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在其中一个实施例中,所述方法还包括:
接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;
通过第三线程根据所述优先全景图像ID,从第二缓冲队列中取出所述优先全景图像ID对应的优先存储地址;
将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在其中一个实施例中,所述获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据,包括:
通过数据接入处理服务从图像数据源获取多个局部图像数据;
通过所述数据接入处理服务从所述图像数据源获取与所述多个局部图像数据对应的多个全景图像数据。
一种图像处理装置,该装置包括:
获取模块,用于获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;
第一处理模块,用于通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;
第二处理模块,用于异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;
通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;
异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;
通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;
异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
上述图像处理方法、装置、计算机设备和存储介质,采用两个不同的线程分别对局部图像数据和全景图像数据进行处理,可以对局部图像数据实时处理,对全景图像数据异步处理,这样可以提升对局部图像数据进行处理的时效性,即可以保证对局部图像数据处理的实时性,从而可以提高业务系统的稳定性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,图像数据源(例如安装在各种场所的摄像头,存储有图像的数据库等)在给图像解析系统传输图片时,通常是将局部图像和其关联的全景图像一起传输给图像解析单元进行处理。通常图片检索、分析等业务流程只针对局部图像进行,这就要求保证局部图像的处理的实时性,希望在局部图像接入图像解析单元后快速对其进行解析,以用于后续的图像检索、分析,而对于全景图像来说,只有在必要时,才对全景图像进行查看,没有必要实时解析。而全景图片在传输或处理过程中会占用大量的计算机资源,这样就会导致单个局部图像-全景图像图像对的处理时间过长,对全景图像的处理将影响局部图像的实时性。也就是说,目前对局部图像、全景图像的处理方式难以保证对局部图像处理时的实时性。因此本申请提供一种图像处理方法、装置、计算机设备和存储介质,可以解决上述技术问题。
本申请提供的图像处理方法,可以应用于如图1所示的应用环境中。其中,图像数据源101(可以为摄像头等图像采集设备,也可以为存储有图像数据的数据库、云端等)通过网络与图像解析单元102进行通信。其中,图像数据源将图像数据发送至图像解析单元102,图像数据可以为视频或图像,可以包括局部图像数据和全景图像数据。当然还可以包括数据接入处理设备103,该数据接入处理设备103用于对采集设备101采集的图像源进行数据存储和/或格式转换等处理,并将处理后的图像数据传输给图像解析单元102进行解析。图像解析单元102可以是在终端或服务器上安装的可以对图像进行解析、并对解析后的图像进行检索、分析等业务处理的设备。数据接入处理设备103可以是计算机设备,可以包括终端或服务器。
需要说明的是,本申请实施例的方法可以应用于图像解析单元,也可以应用于数据接入处理设备,下述实施例将以数据接入处理设备,即计算机设备作为执行主体来进行说明。
在一个实施例中,提供了一种图像处理方法,本实施例涉及的是如何分别存储局部图像数据和全景图像数据,以及优先对局部图像数据进行处理的具体过程。如图2所示,该方法可以包括以下步骤:
S202,获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID。
在一例中,局部图像为从全景图像中截取关注对象部分得到的关注对象图像。例如,关注对象为人脸时,局部图像为人脸图像。全景图像为摄像头拍摄的全画幅图像。当一张全景图包含一张或多张人脸,因此局部图像数据和全景图像数据是一对一或多对一的关系。
其中,从图像数据源获取的图像数据可以包括图像(例如base64数据)和/或图像地址(例如图像在图像数据源的存储地址),还可以包括图像ID、局部图像拍摄的时间、地点(例如拍摄相机ID)。局部图像数据中还可以包括其对应的全景图像ID,表明局部图像和全景图像的关联关系。类似的,全景图像数据中也可以包括其对应的局部图像ID,表明局部图像和全景图像的关联关系。可以理解的是,局部图像数据和全景图像数据中的至少一个同时包含相互关联的局部图像ID-全景图像ID即可,可通过局部图像ID-全景图像ID找到二者的关联关系。在一例中,局部图像数据和全景图像数据中都包含全景图像ID,局部图像数据中还包含全景图像ID,如此可建立局部图像数据和全景图像数据的对应关系。此时,局部图像数据中可以包括局部图像ID,全景图像ID,局部图像、局部图像存储地址(局部图像和局部图像地址可以存在一者或二者同时存在),局部图像拍摄时间、局部图像拍摄相机。
数据接入处理设备可以通过FTP文件传输、KAFKA消息、HTTP接口等形式从图像数据源获取图像数据。
S204,通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID。
在接收到局部图像数据后,第一线程对局部图像数据进行实时处理并发送给图像解析单元,以保证在局部图像产生后尽快用于解析。
对局部图像数据的处理包括存储和/或格式转换,当同时包括存储和格式转换时,二者的顺序可根据需要设置。一例中,格式转换包括两次,存储和格式转换的顺序为格式转换-存储-格式转换,其中,第一次格式转换将来自图像数据源的图像数据转换成可存储的格式,第二次格式转换将数据转换为图像解析单元匹配的格式。图像数据源、数据接入处理设备交互时使用的图像数据格式通常与数据接入处理设备、图像解析单元交互时使用的图像数据格式不同,可通过数据接入处理设备对来自图像数据源的数据转换为图像解析单元匹配的格式后发送给图像解析单元。
当局部图像数据包括局部图像时,对局部图像数据的处理可以包括存储和格式转换。一例中,可以首先将局部图像存储在文件系统,得到文件系统中的局部图像地址,再将局部图像地址和局部图像数据中的其他信息例如局部图像ID、全景图像ID等转换为图像解析单元匹配的格式。如此,在后续向图像解析单元进行图像数据传输时,可以传输数据量更小的图像地址而非数据量更大的图像,从而保证数据传输速度。
当然,当局部图像数据包括图像时,对局部图像数据的处理也可以包括格式转换而不包括存储,此时传输的数据包括图像。
当局部图像数据包括局部图像地址时,对局部图像数据的处理可以包括格式转换而不包括存储,也可以包括存储和格式转换。一例中,局部图像数据包括的局部图像地址是局部图像在第三方的存储地址,数据接入处理设备可根据局部图像在第三方的存储地址将局部图像下载下来,再将局部图像上传至文件存储系统,得到局部图像地址在文件存储系统中的局部图像地址。如此,可使局部图像存储在与图像解析单元同属一个局部网或网段的文件存储系统,相比于存储在第三方的存储系统,能够提高图像解析单元根据地址获取图像的速度。随后,数据接入处理设备可以将局部图像地址和局部图像数据中的其他信息例如局部图像ID、全景图像ID等转换为图像解析单元匹配的格式。
收到来自数据接入处理设备发送的处理后的局部图像数据后,图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID。
局部图像数据A中包括与其对应的全景图像数据的全景图像ID,因此数据接入处理设备对局部图像数据A进行处理,得到的处理后的局部图像数据B中仍包括全景图像ID,图像解析单元对数据B进行解析,得到的解析结果C中仍包括全景图像ID。解析结果列表包括解析结果。如果图像解析单元对某个处理后的局部图像数据已解析完毕,将得到与该局部图像数据对应的解析结果,从解析结果列表中能够查找到对应该局部图像数据的解析结果。如果图像解析单元尚未对某个处理后的局部图像数据解析完毕,则无法从解析结果列表中能够查找到对应该局部图像数据的解析结果。
对局部图像数据的解析包括特征提取、属性识别等,例如,局部图像数据对应的关注对象为人脸时,解析结果可以包括通过属性识别获得的人脸位置、年龄、性别等信息。解析结果中还可以包括局部图像ID、全景图像ID、图像数据抓拍时间。解析结果还可以包括预留的局部图像数据对应的全景图像数据的存储地址,以便在需要时根据该地址拉取局部图像对应的全景图像。在未向解析结果中写入全景图像数据地址时,局部图像数据对应的全景图像数据的存储地址可以为空、无意义值或代表该地址尚未得到更新的值。
其中,这里的第一线程可以是数据接入处理设备在处理局部图像数据时使用的线程,可以是任意设定的一个线程。
S206,异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
如前所述,图像解析单元对图像的解析、检索、分析大多是针对局部图像数据进行的,只有当某个局部图像数据作为检索、分析结果展示给用户时,才有可能响应于用户查看该局部图像对应全景图像的需求,调取该局部图像对应的全景图像。可见,图像解析单元使用全景图像是小概率事件,而且使用全景图像必然以该全景图像对应的局部图像数据已经被解析完毕、已被应用于检索、分析且被作为检索、分析的结果为前提。因此,对全景图像数据处理的实时性要求较低,可对其进行异步处理,将更多的资源用于处理局部图像数据。
对全景图像数据的处理包括存储和将全景图像的存储更新到解析结果中,因此异步处理可以是存储过程中的异步处理,也可以是存储地址更新过程中的异步处理。对全景图像数据的处理包括还可以包括存储前的图像压缩。
与局部图像数据类似,全景图像数据可以包括全景图像,也可以包括全景图像在第三方的存储地址,对全景图像数据的存储同对局部图像数据的存储类似,在此不再赘述。需要说明的是,这里存储全景图像数据的文件存储系统可以和上述存储局部图像数据的文件存储系统相同或不同。
将全景图像的存储地址更新到其对应的解析结果中后,当用户对解析结果进行查看时(通常在解析结果作为检索或分析结果展示给用户后,用户才会对解析结果对应的全景图像进行查看),即可通过全景图像的存储地址获取到全景图像。
其中,这里的第二线程可以和上述的第一线程不同,可以是数据接入处理设备在处理全景图像数据时的线程,可以是在设置好第一线程之后,从设备其余的线程中任意选定的线程。另外,由于全景图像的数据大小大于局部图像,对全景图像的处理速度慢于对局部图像的处理,当第二线程存储全景图像时,通常该全景图像对应的局部图像已经被推送至图像解析单元进行图像处理。
上述图像处理方法采用两个不同的线程分别对局部图像数据和全景图像数据进行处理,可以对局部图像数据实时处理,对全景图像数据异步处理,这样可以提升对局部图像数据进行处理的时效性,即可以保证对局部图像数据处理的实时性,从而可以提高业务系统的稳定性。
在一例中,步骤S206可以通过如下方式实现:
方式一:
步骤SA1:将多个全景图像数据放入第一缓冲队列;
步骤SA2:通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;
步骤SA3:存储当前全景图像数据对应的全景图像,得到当前存储地址;
可以理解的是,当全景图像数据中包含的是全景图像时,在文件系统中存储当前全景图像数据包含的当前全景图像,得到当前全景图像数据对应的全景图像在文件系统中的当前存储地址;当全景图像数据中包含的是全景图像在第三方存储系统中的存储地址时,根据第三方存储系统中的存储地址获取当前全景图像,在文件系统中存储当前全景图像,得到当前全景图像数据对应的全景图像在文件系统中的当前存储地址。
步骤SA4:从图像解析单元获取所述解析结果列表;
步骤SA5:判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;
步骤SA6:若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中。
方式二:
步骤S B1:将所述多个全景图像数据放入第一缓冲队列;
步骤S B2:通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;
步骤S B3:从图像解析单元获取所述解析结果列表;
步骤S B4:判断解析结果列表中是否存在与所述当前全景图像数据对应的目标解析结果;
步骤S B5:若存在,则存储所述当前全景图像数据,得到当前存储地址(具体步骤同SA3);将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将所述当前全景图像数据放入所述第一缓冲队列的队尾。
以上两种方式,在存储步骤中实现异步处理,存储步骤是资源占用较大的步骤,对存储步骤进行异步处理能够将更多资源用于处理局部图像数据。其中方式二在判断当前全景图像数据已经解析完毕后才对其进行存储。
方式三:
步骤S C1:通过第二线程逐一存储所述全景图像数据,得到存储地址(具体步骤同SA3);
步骤S C2:将所述存储地址放入第二缓冲队列;
步骤S C3:逐一从第二缓冲队列中取出存储地址,将取出的存储地址作为当前存储地址;
步骤S C4:从图像解析单元获取所述解析结果列表;
步骤S C5:判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;
步骤S C6:若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;
若不存在,则将当前存储地址放入所述第二缓冲队列的队尾。
该方式中,在地址更新的步骤中实现异步处理。
针对不同性能的系统,方式一到方式三效率不同,可根据需要选择。
在一例中,图像处理方法还包括:
步骤S208:接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果。
图像解析单元针对局部图像数据进行解析,获得解析结果,之后可针对解析结果进行检索、分析。例如,解析结果包括目标的拍摄时间、拍摄地点。用户可在解析结果的拍摄时间字段中检索拍摄时间在t1-t2之间的解析结果,即可获得满足检索条件的解析结果所对应的局部图像数据。用户希望对某个局部图像数据对应的全景图像进行查看时,则需要拉取其对应的全景图像。
当用户希望对某解析结果对应的全景图像数据进行查看、且该解析结果中的全景图像数据地址不为空、无意义数或代表地址未更新的值时,说明该全景图像数据地址已经更新到解析结果中,此时可以按照解析结果中包含的全景图像数据地址从文件存储系统拉取对应的全景图像数据展示给用户。
当用户希望对某解析结果对应的全景图像数据进行查看、但该解析结果中的全景图像数据地址为空、无意义数或代表地址未更新的值时,说明该全景图像数据地址尚未更新到解析结果、仍在排队更新中,此时需要立即获取全景图像数据地址,才能保证及时将全景图像数据展示给用户。在这种情形下,图像解析单元会向数据接入处理设备发出发送优先处理信息,通知数据接入处理设备对该全景图像数据进行插队处理。
与方式一和方式二对应,数据接入处理设备通过方式四对该全景图像数据进行插队处理。
步骤S D1:通过第三线程根据优先全景图像ID,从第一缓冲队列中取出所述优先全景图像ID对应的优先全景图像数据;
步骤S D2:存储所述优先全景图像数据,得到优先存储地址(存储方式参见步骤SA3);
步骤S D3:将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
与方式三对应,数据接入处理设备通过方式五对该全景图像数据进行插队处理。
步骤S E1:通过第三线程根据优先全景图像ID,从第二缓冲队列中取出优先全景图像ID对应的优先存储地址;
步骤S E2:将优先存储地址更新到优先全景图像ID对应的解析结果中。
方式五中,全景图像数据已存储完毕但未更新,此时只需要插队更新即可。
可以理解的是,数据接入处理设备将优先存储地址更新到优先全景图像ID对应的解析结果中后,可以将更新后的解析结果发送给图像解析单元,以使图像解析单元可根据解析结果中包括的优先存储地址获取全景图像展示给用户。
在另一个实施例中,提供了另一种图像处理方法,本实施例涉及的是如何对局部图像数据以及全景图像数据进行存储以及格式转换的具体过程。一例中,如图3所示,上述S204中的“通过第一线程实时处理所述多个局部图像数据”可以包括以下步骤:
S302,通过上述第一线程逐一存储上述多个局部图像数据,得到每个上述局部图像数据对应的第一存储地址。
在本步骤中,一般从图像数据源提供格式的图像数据中一般不能直接提取出图像或地址并存入文件存储系统,所以在存储各局部图像数据以及各全景图像数据之前,可以先对获取到的各局部图像数据以及各全景图像数据的数据格式进行格式转换,将各局部图像数据以及各全景图像数据的数据格式转换为扩展坞数据格式(记为Docking数据格式,即Docking Data格式)。
之后,可以通过第一线程将各个局部图像数据依次存储到文件存储系统上(具体步骤见步骤S A3),在存储好之后,文件存储系统可以为每个局部图像分配一个存储地址,记为第一存储地址,即每个存储好的局部图像数均会获得一个第一存储地址。
S304,对每个上述第一存储地址以及每个上述局部图像数据中包含的其他信息进行封装,得到各上述局部图像数据对应的局部图像封装数据。
这里的其他信息例如可以是局部图像ID、全景图像ID。这里得到局部图像封装数据可以记为Capture数据格式,即Captuer Data格式。
另一例中,上述S206中的“通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址”可以包括以下步骤:
步骤A1,通过上述第二线程逐一存储上述多个全景图像数据,得到每个上述全景图像数据对应的第二存储地址。
在本步骤中,与上述局部图像数据相同的,在存储前,可以对各全景图像数据的数据格式进行格式转换。
之后,可以通过第二线程将格式转换后的各个全景图像数据中获取全景图像或全景图像地址,并将全景图像依次存储到文件服务器上,在存储好之后,文件服务器可以为每个全景图像分配一个存储地址,记为第二存储地址,即每个存储好的全景图像均会获得一个第二存储地址。
步骤A2,对每个上述全景图像ID和对应的第二存储地址进行封装,得到各上述全景图像数据对应的全景图像封装数据。
在本步骤中,在对全景图像数据进行封装时,可以将每个全景图像ID和其对应的第二存储地址封装在一起,得到每个全景图像数据对应的全景图像封装数据。
本实施例的图像处理方法,可以通过第一线程逐一存储各个局部图像数据,得到每个局部图像数据的第一存储地址,并对第一存储地址和局部图像数据中包含的其他信息(包括局部图像ID和其关联的全景图像ID)封装,得到各个局部图像封装数据。在本实施例中,由于可以对局部图像数据的存储地址以及局部图像ID和其关联的全景图像ID进行封装,这样可以便于后续图像处理时,快速通过存储地址以及全景图像ID找到全景图像ID对应的局部图像数据,提高数据查找的效率。
在另一个实施例中,提供了另一种图像处理方法,本实施例涉及的是如何获取多个局部图像数据和多个全景图像数据的具体过程。在上述实施例的基础上,如图4所示,上述S202可以包括以下步骤:
S402,通过数据接入处理服务从图像数据源获取多个局部图像数据。
S404,通过上述数据接入处理服务从上述图像数据源获取与上述多个局部图像数据对应的多个全景图像数据。
在S402-S404中,图像数据源(例如图像采集设备、存储图像、视频的数据库等)可以仅存在全景图像,也可以既存在包含人脸或其他目标的局部图像,也包含关注对象的局部图像所在的全景图像。在一例中,图像数据源仅存在全景图像、全景图像标识和全景图像拍摄的时间、地点信息,并将这些信息作为全景图像数据;之后对该全景图像进行人脸识别并进行人脸抠图,就可以得到局部图像,同时也可以为局部图像添加ID,并将局部图像及其ID、其所在全景图像的拍摄时间、地点等作为局部图像数据。然后第三方采集设备可以将该局部图像数据和全景图像数据发送至数据接入处理设备,数据接入处理设备就可以通过数据接入处理服务接收到该多个局部图像数据和多个全景图像数据并将其转换为图像解析单元所匹配的格式。
本实施例的图像处理方法,可以通过数据接入处理服务从图像数据源获取多个局部图像数据以及对应的多个全景图像数据,这样可以快速获取到局部图像数据以及全景图像数据,为后续图像处理提供数据源,同时提高后续业务的处理效率。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种图像处理装置,包括:获取模块10、第一处理模块11和第二处理模块12,其中:
获取模块10,用于获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;
第一处理模块11,用于通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;
第二处理模块12,用于异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
关于图像处理装置的具体限定可以参见上文中对于图像处理方法的限定,在此不再赘述。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述第一处理模块11具体用于通过第一线程对所述多个局部图像数据进行实时存储和/或进行格式转换。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述第二处理模块12可以包括第一放入单元、第一取出单元、第一存储单元、第一获取单元、第一判断单元和更新单元,其中:
第一放入单元,用于将所述多个全景图像数据放入第一缓冲队列;
第一取出单元,用于通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;
第一存储单元,用于存储所述当前全景图像数据对应的全景图像,得到当前存储地址;
第一获取单元,用于从图像解析单元获取所述解析结果列表;
第一判断单元,用于判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;
更新单元,用于若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述第二处理模块12可以包括第二放入单元、第二取出单元、第二获取单元、第二判断单元和存储单元,其中:
第二放入单元,用于将所述多个全景图像数据放入第一缓冲队列;
第二取出单元,用于通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;
第二获取单元,用于从图像解析单元获取所述解析结果列表;
第二判断单元,用于判断解析结果列表中是否存在与所述当前全景图像数据对应的目标解析结果;
存储放入单元,用于若存在,则存储所述当前全景图像数据对应的全景图像,得到当前存储地址;将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将所述当前全景图像数据放入所述第一缓冲队列的队尾。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述第二处理模块12可以包括第三存储单元、第三放入单元、第三取出单元、第三获取单元、第三判断单元、更新放入单元,其中:
第三存储单元,用于通过第二线程逐一存储所述全景图像数据对应的全景图像,得到存储地址;
第三放入单元,用于将所述存储地址放入第二缓冲队列;
第三取出单元,用于逐一从第二缓冲队列中取出存储地址,将取出的存储地址作为当前存储地址;
第三获取单元,用于从图像解析单元获取所述解析结果列表;
第三判断单元,用于判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;
更新放入单元,用于若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将当前存储地址放入所述第二缓冲队列的队尾。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述装置还可以包括:第一接收模块、第一取出模块、存储模块和第一更新模块,其中:
第一接收模块,用于接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;
第一取出模块,用于通过第三线程根据所述优先全景图像ID,从第一缓冲队列中取出所述优先全景图像ID对应的优先全景图像数据;
存储模块,用于存储所述优先全景图像数据对应的全景图像,得到优先存储地址;
第一更新模块,用于将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述装置还可以包括:第二接收模块、第二取出模块和第二更新模块,其中:
第二接收模块,用于接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;
第二取出模块,用于通过第三线程根据所述优先全景图像ID,从第二缓冲队列中取出所述优先全景图像ID对应的优先存储地址;
第二更新模块,用于将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在另一个实施例中,提供了另一种图像处理装置,在上述实施例的基础上,上述获取模块10可以包括局部获取单元和全局获取单元,其中:
局部获取单元,用于通过数据接入处理服务从图像数据源获取多个局部图像数据;
全局获取单元,用于通过所述数据接入处理服务从所述图像数据源获取与所述多个局部图像数据对应的多个全景图像数据。
关于图像处理装置的具体限定可以参见上文中对于图像处理方法的限定,在此不再赘述。上述图像处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,可以是数据接入处理设备的一部分或直接作为数据接入处理设备,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图像处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过第一线程对所述多个局部图像数据进行实时存储和/或进行格式转换。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将所述多个全景图像数据放入第一缓冲队列;通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;存储所述当前全景图像数据对应的全景图像,得到当前存储地址;从图像解析单元获取所述解析结果列表;判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将所述多个全景图像数据放入第一缓冲队列;通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;从图像解析单元获取所述解析结果列表;判断解析结果列表中是否存在与所述当前全景图像数据对应的目标解析结果;若存在,则存储所述当前全景图像数据对应的全景图像,得到当前存储地址;将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将所述当前全景图像数据放入所述第一缓冲队列的队尾。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过第二线程逐一存储所述全景图像数据对应的全景图像,得到存储地址;将所述存储地址放入第二缓冲队列;逐一从第二缓冲队列中取出存储地址,将取出的存储地址作为当前存储地址;从图像解析单元获取所述解析结果列表;判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将当前存储地址放入所述第二缓冲队列的队尾。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;通过第三线程根据所述优先全景图像ID,从第一缓冲队列中取出所述优先全景图像ID对应的优先全景图像数据;存储所述优先全景图像数据对应的全景图像,得到优先存储地址;将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;通过第三线程根据所述优先全景图像ID,从第二缓冲队列中取出所述优先全景图像ID对应的优先存储地址;将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过数据接入处理服务从图像数据源获取多个局部图像数据;通过所述数据接入处理服务从所述图像数据源获取与所述多个局部图像数据对应的多个全景图像数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取多个局部图像数据和与所述多个局部图像数据对应的多个全景图像数据;其中,所述多个局部图像数据中的每个包含与该局部图像对应的全景图像的全景图像ID,所述多个全景图像数据中的每个包括全景图像ID;通过第一线程实时处理所述多个局部图像数据,并将处理后的多个局部图像数据发送至图像解析单元,以使图像解析单元对处理后的多个局部图像数据进行解析得到解析结果列表;其中,所述解析结果列表中包括与局部图像数据一一对应的解析结果,所述解析结果包含与其对应的局部图像数据所对应的全景图像数据的全景图像ID;异步处理所述多个全景图像数据,包括:通过第二线程存储所述全景图像数据,得到与所述全景图像数据一一对应的存储地址,将所述存储地址更新到目标解析结果中;所述目标解析结果为包含所述存储地址所对应的全景图像数据的全景图像ID的解析结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过第一线程对所述多个局部图像数据进行实时存储和/或进行格式转换。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将所述多个全景图像数据放入第一缓冲队列;通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;存储所述当前全景图像数据对应的全景图像,得到当前存储地址;从图像解析单元获取所述解析结果列表;判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将所述多个全景图像数据放入第一缓冲队列;通过第二线程逐一从第一缓冲队列中取出全景图像数据,将取出的全景图像数据作为当前全景图像数据;从图像解析单元获取所述解析结果列表;判断解析结果列表中是否存在与所述当前全景图像数据对应的目标解析结果;若存在,则存储所述当前全景图像数据对应的全景图像,得到当前存储地址;将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将所述当前全景图像数据放入所述第一缓冲队列的队尾。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过第二线程逐一存储所述全景图像数据对应的全景图像,得到存储地址;将所述存储地址放入第二缓冲队列;逐一从第二缓冲队列中取出存储地址,将取出的存储地址作为当前存储地址;从图像解析单元获取所述解析结果列表;判断解析结果列表中是否存在与所述当前存储地址对应的目标解析结果;若存在,则将所述当前存储地址更新到与所述当前存储地址对应的目标解析结果中;若不存在,则将当前存储地址放入所述第二缓冲队列的队尾。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;通过第三线程根据所述优先全景图像ID,从第一缓冲队列中取出所述优先全景图像ID对应的优先全景图像数据;存储所述优先全景图像数据对应的全景图像,得到优先存储地址;将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
接收优先处理信息,所述优先处理信息包括优先全景图像ID和所述优先全景图像ID对应的解析结果;通过第三线程根据所述优先全景图像ID,从第二缓冲队列中取出所述优先全景图像ID对应的优先存储地址;将所述优先存储地址更新到所述优先全景图像ID对应的解析结果中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过数据接入处理服务从图像数据源获取多个局部图像数据;通过所述数据接入处理服务从所述图像数据源获取与所述多个局部图像数据对应的多个全景图像数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。