在容器云上部署图像识别服务的方法与设备转让专利

申请号 : CN202011021515.1

文献号 : CN111930473B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖乐源

申请人 : 亮风台(上海)信息科技有限公司

摘要 :

本申请的目的是提供一种在容器云上部署图像识别服务的方法,该方法包括:在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理。

权利要求 :

1.一种在容器云上部署图像识别服务的方法,其中,所述方法包括:

在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;

对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;

其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。

2.根据权利要求1所述的方法,其中,所述基础服务包括以下至少一项:配置服务;

数据库服务;

文件存储服务;

缓存数据库服务;

镜像仓库服务;

配置编辑器服务。

3.根据权利要求1所述的方法,其中,所述对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,包括:对于所述图像识别业务服务中每个业务服务,根据所述部署文件中该业务服务对应的容器集数量,在容器云上创建该业务服务对应的、所述容器集数量的容器集,根据所述部署文件中该业务服务对应的镜像文件地址,下载该业务服务对应的镜像文件,并根据该镜像文件在所述容器集上启动该业务服务。

4.根据权利要求1所述的方法,其中,所述图像识别管理服务用于管理所述至少一个识别服务;

其中,所述方法还包括:

对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;

通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述基础服务中的数据库服务。

5.根据权利要求4所述的方法,其中,所述方法还包括:

对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;

若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第三识别服务发送的心跳信息,则在所述至少一个识别服务中确定第四识别服务,从所述基础服务中的数据库服务获得所述第三识别服务对应的当前加载图集信息,以在所述第四识别服务中加载所述当前加载图集信息所对应的图集。

6.根据权利要求5所述的方法,其中,所述在所述至少一个识别服务中确定第四识别服务,包括:若所述图像识别管理服务接收到所述至少一个识别服务中的新启动的第五识别服务发送的注册信息,通过所述图像识别管理服务将所述第五识别服务确定为所述第四识别服务。

7.根据权利要求5所述的方法,其中,所述在所述至少一个识别服务中确定第四识别服务,包括:通过所述图像识别管理服务从所述数据库服务获取所述至少一个识别服务中的每个已启动的识别服务的当前加载图集信息;

通过所述图像识别管理服务根据所述每个已启动的识别服务的当前加载图集信息,确定第四识别服务,其中,所述第四识别服务满足以下至少一项:当前未加载任何图集;

当前已加载的图集数量最少;

当前已加载的图集中识别图像数量最少。

8.根据权利要求1所述的方法,其中,所述方法还包括:

对于待处理图像服务请求,若所述待处理图像服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述待处理图像服务请求。

9.根据权利要求1所述的方法,其中,所述方法还包括:

通过所述容器管理平台监控已创建的一个或多个容器集的运行状态信息,若监控到目标容器集的负荷信息满足预定扩容条件,创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。

10.根据权利要求1所述的方法,其中,所述方法还包括:

响应于针对目标容器集的扩容指令,通过所述容器管理平台创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。

11.根据权利要求1所述的方法,其中,所述方法还包括:

若所述容器管理平台确定目标用户图集满足预定的并发加载条件,确定所述目标用户图集对应的一个或多个并发识别服务;

通过所述一个或多个并发识别服务中每个并发识别服务分别加载所述目标用户图集。

12.根据权利要求11所述的方法,其中,所述确定所述目标用户图集对应的一个或多个并发识别服务,包括:从所述至少一个识别服务中已部署的识别服务中确定所述目标用户图集对应的一个或多个并发识别服务。

13.根据权利要求11所述的方法,其中,所述确定所述目标用户图集对应的一个或多个并发识别服务,包括:创建一个或多个第二目标容器集,在所述一个或多个第二目标容器集中每个第二目标容器集上分别部署一个或多个第六识别服务,并将所述一个或多个第六识别服务作为所述目标用户图集对应的一个或多个并发识别服务。

14.根据权利要求1所述的方法,其中,所述方法还包括:

若所述容器管理平台确定目标用户图集满足预定的划分条件,将所述目标用户图集划分为互不相交的多个子集,其中,所述多个子集中的每个子集包括至少一个识别图;确定所述目标用户图集对应的一个或多个识别服务;

通过所述一个或多个识别服务中的每个识别服务分别加载所述多个子集中的一个子集,其中,不同识别服务对应不同子集。

15.一种基于容器云上部署的图像识别服务的图像发布的方法,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;

其中,所述方法包括:

通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;

通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;

通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;

通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。

16.根据权利要求15所述的方法,其中,所述方法还包括在所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务,之前:通过所述前端资源服务接收用户针对目标识别图的操作信息,将所述操作信息转发到内容管理服务;

通过所述内容管理服务根据所述操作信息,获得所述目标识别图及所述目标识别图对应的目标图集,更新所述图像识别服务对应的基础服务中的数据库服务中的所述目标识别图的相关信息,生成针对所述目标识别图的图像发布服务请求并发送至所述发布服务。

17.根据权利要求15所述的方法,其中,所述通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务,包括:通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件提供给所述图像识别服务对应的基础服务中的文件存储服务;

通过所述文件存储服务获得所述目标索引文件,存储并获得所述目标索引文件对应的目标存储地址,并将所述目标存储地址返回所述索引服务;

通过所述索引服务获得所述目标存储地址,并将所述目标存储地址返回所述发布服务。

18.根据权利要求15所述的方法,其中,所述通过所述发布服务将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务,包括:通过所述发布服务从所述图像识别服务对应的基础服务中的数据库服务获得所述目标图集对应的发布状态指示信息;

若所述发布状态指示信息指示所述目标图集已发布,通过所述发布服务从所述数据库服务获得所述至少一个识别服务中所述目标图集对应的目标识别服务,并根据所述目标识别服务的服务地址将所述目标存储地址提供给所述目标图集对应的目标识别服务;

若所述发布状态指示信息指示所述目标图集未发布,通过所述发布服务从所述至少一个识别服务中已部署的识别服务中确定目标识别服务,并根据所述目标识别服务的服务地址将所述目标存储地址提供给所述目标识别服务。

19.根据权利要求18所述的方法,其中,所述通过所述发布服务从所述至少一个识别服务中已部署的识别服务中确定目标识别服务,包括:通过所述发布服务从所述数据库服务获得所述至少一个识别服务中已部署的识别服务对应的当前加载图集信息;

通过所述发布服务根据所述当前加载图集信息,从所述已部署的识别服务中确定目标识别服务,其中,所述目标识别服务对应的当前加载信息满足以下至少一项:当前已加载的图集数量最少;

当前已加载的图集中的识别图数量最少。

20.根据权利要求15所述的方法,其中,所述方法还包括:

对于所述图像发布服务请求,若所述图像发布服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述图像发布服务请求。

21.根据权利要求15所述的方法,其中,所述方法还包括:

通过所述容器管理平台监控已创建的一个或多个容器集的运行状态信息,若监控到目标容器集的负荷信息满足预定扩容条件,创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。

22.根据权利要求15所述的方法,其中,所述方法还包括:

响应于针对目标容器集的扩容指令,通过所述容器管理平台创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。

23.根据权利要求15所述的方法,其中,所述方法还包括:

若所述容器管理平台确定目标用户图集满足预定的并发加载条件,确定所述目标用户图集对应的一个或多个并发识别服务;

通过所述一个或多个并发识别服务中每个并发识别服务分别加载所述目标用户图集。

24.根据权利要求15所述的方法,其中,所述方法还包括:

若所述容器管理平台确定目标用户图集满足预定的划分条件,将所述目标用户图集划分为互不相交的多个子集,其中,所述多个子集中的每个子集包括至少一个识别图;确定所述目标用户图集对应的一个或多个识别服务;

通过所述一个或多个识别服务中的每个识别服务分别加载所述多个子集中的一个子集,其中,不同识别服务对应不同子集。

25.根据权利要求15所述的方法,其中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于管理所述至少一个识别服务;

其中,所述方法还包括:

对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;

通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述图像识别服务对应的基础服务中的数据库服务。

26.根据权利要求25所述的方法,其中,所述方法还包括:

对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;

若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第七识别服务发送的心跳信息,则在所述至少一个识别服务中确定第八识别服务,从所述数据库服务获得所述第七识别服务对应的当前加载图集信息,以在所述第八识别服务中加载所述当前加载图集信息所对应的图集。

27.一种基于容器云上部署的图像识别服务的图像识别的方法,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;

其中,所述方法包括:

通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;

通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;

通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;

通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配;

若匹配成功,通过所述目标识别服务获得与所述特征信息相匹配的目标索引文件对应的目标识别图信息,并将所述目标识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述目标识别图信息,从所述基础服务获得所述目标识别图信息对应的目标AR素材,并将所述目标AR素材返回至所述目标应用。

28.根据权利要求27所述的方法,其中,所述通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集,包括:通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,对所述目标应用进行接入权限认证;

若认证通过,获得所述待识别图片对应的用户图集。

29.根据权利要求27所述的方法,其中,所述方法还包括:

对于所述图像识别服务请求,若所述图像识别服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述图像识别服务请求。

30.根据权利要求27所述的方法,其中,所述方法还包括:

通过所述容器管理平台监控已创建的一个或多个容器集的运行状态信息,若监控到目标容器集的负荷信息满足预定扩容条件的,创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。

31.根据权利要求27所述的方法,其中,所述方法还包括:

响应于针对目标容器集的扩容指令,通过所述容器管理平台创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。

32.根据权利要求27所述的方法,其中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于管理所述至少一个识别服务;

其中,所述方法还包括:

对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;

通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述图像识别服务对应的基础服务中的数据库服务。

33.根据权利要求32所述的方法,其中,所述方法还包括:

对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;

若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第九识别服务发送的心跳信息,则在所述至少一个识别服务中确定第十识别服务,从所述数据库服务获得所述第九识别服务对应的当前加载图集信息,以在所述第十识别服务中加载所述当前加载图集信息所对应的图集。

34.一种在容器云上部署图像识别服务的设备,其中,所述设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至14中任一项所述的方法。

35.一种基于容器云上部署的图像识别服务的图像发布的设备,其中,所述设备包括:处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求15至26中任一项所述的方法。

36.一种基于容器云上部署的图像识别服务的图像识别的设备,其中,所述设备包括:处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求27至33中任一项所述的方法。

37.一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如权利要求1至33中任一项所述方法的操作。

说明书 :

在容器云上部署图像识别服务的方法与设备

技术领域

[0001] 本申请涉及通信领域,尤其涉及一种用于在容器云上部署图像识别服务的技术。

背景技术

[0002] 在现有技术中,图像识别服务通常部署在物理服务器或虚拟机(VM)上,需要人工操作增加硬件服务器资源,安装操作系统,并且修改配置启动服务,调整集群的容量和负载,有时候甚至需要重启服务集群,还需要搭建额外的日志和错误收集方式来处理服务重启和错误记录,面对大容量的图片加载的并发处理时,处理能力不易扩充。

发明内容

[0003] 本申请的一个目的是提供一种在容器云上部署图像识别服务的方法与设备。
[0004] 根据本申请的一个方面,提供了一种在容器云上部署图像识别服务的方法,该方法包括:
[0005] 在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;
[0006] 对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0007] 其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:
[0008] 通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,
[0009] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。
[0010] 根据本申请的另一个方面,提供了一种基于容器云上部署的图像识别服务的图像发布的方法,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0011] 其中,该方法包括:
[0012] 通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;
[0013] 通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;
[0014] 通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;
[0015] 通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。
[0016] 根据本申请的另一个方面,提供了一种基于容器云上部署的图像识别服务的图像识别的方法,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0017] 其中,该方法包括:
[0018] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;
[0019] 通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;
[0020] 通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;
[0021] 通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配;
[0022] 若匹配成功,通过所述目标识别服务获得与所述特征信息相匹配的目标索引文件对应的目标识别图信息,并将所述目标识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述目标识别图信息,从所述基础服务获得所述目标识别图信息对应的目标AR素材,并将所述目标AR素材返回至所述目标应用。
[0023] 根据本申请的另一个方面,提供了一种在容器云上部署图像识别服务的网络设备,该设备包括:
[0024] 一一模块,用于在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;
[0025] 一二模块,用于对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0026] 其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:
[0027] 通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,
[0028] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。
[0029] 根据本申请的另一个方面,提供了一种基于容器云上部署的图像识别服务的图像发布的网络设备,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0030] 其中,该设备包括:
[0031] 二一模块,用于通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;
[0032] 二二模块,用于通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;
[0033] 二三模块,用于通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;
[0034] 二四模块,用于通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。
[0035] 根据本申请的另一个方面,提供了一种基于容器云上部署的图像识别服务的图像识别的网络设备,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0036] 其中,该设备包括:
[0037] 三一模块,用于通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;
[0038] 三二模块,用于通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;
[0039] 三三模块,用于通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;
[0040] 三四模块,用于通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配;
[0041] 三五模块,用于若匹配成功,通过所述目标识别服务获得与所述特征信息相匹配的目标索引文件对应的目标识别图信息,并将所述目标识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述目标识别图信息,从所述基础服务获得所述目标识别图信息对应的目标AR素材,并将所述目标AR素材返回至所述目标应用。
[0042] 根据本申请的一个方面,提供了一种在容器云上部署图像识别服务的设备,其中,该设备包括:
[0043] 处理器;以及
[0044] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如下操作:
[0045] 在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;
[0046] 对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0047] 其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:
[0048] 通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,
[0049] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。
[0050] 根据本申请的另一个方面,提供了一种基于容器云上部署的图像识别服务的图像发布的设备,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0051] 其中,该设备包括:
[0052] 处理器;以及
[0053] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如下操作:
[0054] 通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;
[0055] 通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;
[0056] 通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;
[0057] 通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。
[0058] 根据本申请的另一个方面,提供了一种基于容器云上部署的图像识别服务的图像识别的设备,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0059] 其中,该设备包括:
[0060] 处理器;以及
[0061] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如下操作:
[0062] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;
[0063] 通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;
[0064] 通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;
[0065] 通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配;
[0066] 若匹配成功,通过所述目标识别服务获得与所述特征信息相匹配的目标索引文件对应的目标识别图信息,并将所述目标识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述目标识别图信息,从所述基础服务获得所述目标识别图信息对应的目标AR素材,并将所述目标AR素材返回至所述目标应用。
[0067] 根据本申请的一个方面,提供了一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如下操作:
[0068] 在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;
[0069] 对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0070] 其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:
[0071] 通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,
[0072] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。
[0073] 根据本申请的另一个方面,提供了一种存储指令的计算机可读介质,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0074] 其中,所述指令在被执行时使得系统进行如下操作:
[0075] 通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;
[0076] 通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;
[0077] 通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;
[0078] 通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。
[0079] 根据本申请的另一个方面,提供了一种存储指令的计算机可读介质,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;
[0080] 其中,所述指令在被执行时使得系统进行如下操作:
[0081] 通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;
[0082] 通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;
[0083] 通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;
[0084] 通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配。
[0085] 与现有技术相比,本申请通过将图像识别服务部署在容器云上,可以提升图像识别服务的可移植性和安全性,并采用容器管理平台降低部署难度,增加部署灵活性,加速相关产品上线速度,还可以解决大规模图像识别服务快速扩容的技术问题,实现图像识别服务的动态扩充。

附图说明

[0086] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0087] 图1示出根据本申请一个实施例的一种在容器云上部署图像识别服务的方法流程图;
[0088] 图2示出本申请一个示例的图像识别服务架构图;
[0089] 图3示出根据本申请一个实施例的一种基于容器云上部署的图像识别服务的图像发布的方法流程图;
[0090] 图4示出根据本申请一个实施例的一种基于容器云上部署的图像识别服务的图像识别的方法流程图;
[0091] 图5示出根据本申请一个实施例的一种在容器云上部署图像识别服务的网络设备结构图;
[0092] 图6示出根据本申请一个实施例的一种基于容器云上部署的图像识别服务的图像发布的网络设备结构图;
[0093] 图7示出根据本申请一个实施例的一种基于容器云上部署的图像识别服务的图像识别的网络设备结构图;
[0094] 图8示出可被用于实施本申请中所述的各个实施例的示例性系统。
[0095] 附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

[0096] 下面结合附图对本申请作进一步详细描述。
[0097] 在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(Central Processing Unit,CPU))、输入/输出接口、网络接口和内存。
[0098] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(Random Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash Memory)。内存是计算机可读介质的示例。
[0099] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PCM)、可编程随机存取存储器(ProgrammableRandom Access Memory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器 (Dynamic Random Access Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (Electrically-Erasable Programmable Read-Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc  ,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0100] 本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如Android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
[0101] 当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0102] 在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
[0103] 图1示出了根据本申请一个实施例的在容器云上部署图像识别服务的方法流程图,该方法包括步骤S11和步骤S12。在步骤S11中,在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;在步骤S12中,对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。
[0104] 在一些实施例中,容器化技术(docker)用于支持创建和使用Linux容器,docker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置(抽象化为部署清单文件)一起打包为容器映像,软件容器充当软件部署的标准单元。
[0105] 在一些实施例中,容器管理平台(包括但不限于Kubernetes(K8s)、Swam、Meso等,其中,Kubernetes提供了一个可弹性运行分布式系统的框架,上下文中以Kubernetes为例来对容器管理平台进行说明),用于部署、扩展和管理容器化(containerized)应用程序,因此可以将运行 Linux 容器的多组主机聚集在一起,由Kubernetes高效地管理这些集群,而且,这些集群可跨公共云、私有云或混合云部署主机。
[0106] 在一些实施例中,Kubernetes是由一组节点组成,这些节点可以是物理主机,也可以是虚拟机。Kubernetes平台运行这些节点之上,构成了集群。Kubernetes集群包括Master Node(主机节点)和用于实际部署的Pod的工作Node(节点)。一个集群往往由多个Master Node,这几个Master Node控制着整个集群的所有Node,所有任务分配都来自于Master Node。Master Node控制整个集群,做出关于群集的全局决策(例如调度),以及检测和响应群集事件。Node是K8s集群中真正的工作负载节点,K8s集群由多个Node共同承担工作负载,支持动态在集群中添加或删除Node。Pod(容器集)被分配到某个具体的Node上执行,且包含一个或多个容器的容器组。同一容器集中的所有容器共享同一个 IP 地址、IPC、主机名称及其它资源。容器从属于Pod,在运行应用、库及其依赖的微服务中,容器是最低层级的,通过绑定一个外部IP,容器可以被外网访问。
[0107] 在一些实施例中,Kubernetes 主节点(Master Node)从外部接受指令,再把指令转交给附属的Node(节点),这种带有大量服务的切换工作自动决定最适合该任务的节点,然后在该节点上分配资源并指派Pod(容器集)来完成任务请求。在一些实施例中,图像识别服务中的各个业务服务封装在docker镜像中,在Kubernetes中的各个Pod中运行。
[0108] 在一些实施例中,容器云平台是在云端把容器技术和容器管理平台结合起来,提供构建、发布和运行分布式应用的平台,以下简称容器云。在一些实施例中,容器云运行在多组服务器(例如,x64服务器、x86服务器)之上,在容器云上部署图像识别服务中的多个业务服务,并通过Kubernetes来对容器云上部署的图像识别服务中的这些业务服务进行管理,可以解决大规模图像识别服务快速扩容的技术问题,实现图像识别服务的负载均衡和动态扩充,解决不同系统和不同硬件环境部署的差异问题,提升服务的可移植性和安全性,降低部署难度,增加部署灵活性,加速相关产品上线速度。
[0109] 在一些实施例中,所述图像识别服务中的基础服务包括以下至少一项:数据库、缓存数据库、文件存储、配置、镜像仓库、配置编辑器等相关的基础类服务,所述基础服务可以部署在容器云上,也可以部署在容器云的外围(如外部的实体云服务器上),优选地,所述基础服务部署在容器云的外围。
[0110] 在一些实施例中,在部署完成图像识别服务中的基础服务后,k8s获取图像识别服务中的图像识别业务服务对应的部署文件,部署文件是启动图像识别业务服务的基础文件,里面指定了k8s所需要的基础内容,如在部署文件中指定图像识别业务服务中的每个业务服务的服务名称、镜像文件地址、容器集数量、容器集运行时的环境变量(如配置服务的地址等),进一步地,环境变量中还可以指定配置项key,更进一步地,部署文件中还可以指定每个业务服务的service(SVC)的内容(包括对外暴露的端口等内容)等,k8s根据部署文件创建容器集并在容器集上启动图像识别业务服务中的每个业务服务,图像识别业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务,其中,部署文件可以为一个或多个,在此不进行限定。在一些实施例中,每个业务服务对应同一个配置服务地址,在另一些实施例中,每个业务服务对应不同的配置服务地址,在此不进行限定。在此并不对不同业务服务之间的部署先后顺序作任何的限定。在一些实施例中,所述图像识别管理服务用于执行服务控制,如控制识别服务器的分配等。所述前端资源服务是用于管理后台或web网页前端,同时是对应客户端计入的入口服务。在一些实施例中,按照业务逻辑进行划分,图像识别业务服务包括依赖于所述基础服务的第二层服务、依赖于所述第二层服务的第一层服务,其中,所述第二层服务用于提供偏向于底层算法功能类型的服务(如索引服务、识别服务、特征提取服务等至少一项服务),与具体的相关的业务逻辑关联性小,所述第一层服务用于提供偏向于上层业务逻辑类型的服务(如账号服务、内容管理服务、发布服务、图像识别API服务等至少一项服务),与具体的业务逻辑关联性大,其中,需要注意的是,所述第一层服务和第二层服务是根据业务逻辑进行划分的,并不表示部署上存在层级划分,仅用于方便理解业务逻辑。依赖是指依赖方直接或间接使用或调用或更新被依赖方的数据、功能、接口等,例如第一层服务中的发布服务需要调用第二层服务中的索引服务;又例如,第一层服务中的内容管理服务更新基础服务中的数据库内容等。图2为本申请一个示例的服务架构图,其中,所有业务服务和配置编辑器存放在镜像仓库中,在容器云创建服务之后配置镜像地址,服务启动之后从配置服务(etcd)获取对应的配置,初始化mysql数据库表和数据,完成服务架构的搭建;其中,集群服务入口为前端资源服务(webhiar),服务请求转发到账号服务(accountsrv)、内容管理服务(contentsrv)、发布服务(publishsrv)、图像识别API服务(recognizesrv)等第一层服务,第一层依赖索引服务(包括云索引服务(cloudkey)、本地索引服务(localkey))、识别服务(searchsrv)、特征提取服务(featuresrv)等第二层服务,第二层服务依赖数据库服务mysql、文件存储服务fastdfs、资源存储服务(storagesrv)等基础服务。其中,webhiar 作为访问入口,用于部署管理后台或web网页前端的API 的入口服务,应用的访问及应用端的API 请求都由此节点为入口,当出现并发的访问时,可以在该部署的服务器之前搭建负载均衡的后面,根据不同的请求的压力,架构中不同的服务可以进行节点的扩充。需要说明的是,上述所涉及的各项服务将在后续实施例中予以详述。在一些实施例中,通过将图像识别服务部署在容器云上,可以提升图像识别服务的可移植性和安全性。
[0111] 在一些实施例中,对于所述图像识别业务服务中每个业务服务,根据部署文件中的每个业务服务对应的服务名称、镜像文件地址、容器集数量等部署信息,在容器云上创建容器集并启动该业务服务,所述容器集根据部署文件中的配置服务地址,从配置服务中加载该业务服务对应的配置文件(例如,配置服务中包括多个不同的业务服务分别对应的配置文件,可以通过该业务服务的服务名称在配置服务中找到该业务服务对应的配置文件并加载),并通过容器管理平台(例如,k8s)对容器云上已部署的图像识别业务服务中的至少一个服务进行管理。在一些实施例中,业务服务启动时需要加载配置文件,配置文件里面为业务服务运行时需要的内容,通常包含业务服务占用的端口号、连接的数据库地址、缓存服务器的地址、依赖(需要调用)的其他业务服务的服务地址等信息。在一些实施例中,K8S根据部署文件中业务服务对应的容器集数量,在容器云上创建该业务服务对应的、所述容器集数量的容器集,根据部署文件中该业务服务对应的镜像文件地址,下载该业务服务对应的镜像文件,并根据该镜像文件在所述容器集上开始启动该业务服务,然后根据部署文件设置环境变量,所述容器集读取环境变量中设置的配置服务的地址,从配置服务中加载该业务服务对应的配置文件,并根据配置文件的内容完成该业务服务的启动,然后该业务服务可以处理业务请求。
[0112] 在一些实施例中,若基础服务部署在容器云上,则可以通过容器管理平台对部署在容器云上的基础服务和图像识别业务服务中的至少一个服务进行管理。在另一些实施例中,若基础服务部署在容器云的外围服务上,则可以通过容器管理平台对部署在容器云上的图像识别业务服务中的至少一个服务进行管理。在一些实施例中,k8s主节点(Master Node)从外部接受指令,再把指令转交给附属的Node(节点),然后在该节点上分配资源并指派Pod(容器集)来完成任务请求。在一些实施例中各个服务封装在docker镜像中,在k8s中的各个Pod中运行。在一些实施例中,通过k8s来对容器云上部署的图像识别服务进行管理,可以解决大规模图像识别服务快速扩容的技术问题,实现图像识别服务的负载均衡和动态扩充,降低部署难度,增加部署灵活性,加速相关产品上线速度。
[0113] 在一些实施例中,配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务。例如,发布服务依赖于索引服务及其他业务服务,发布服务需要调用索引服务及其他业务服务,则发布服务对应的配置文件中包含索引服务的服务名称与索引服务地址之间的映射关系以及其他业务服务的服务名称与其他业务服务地址之间的映射关系,当发布服务需要调用索引服务时,可以通过配置文件中的索引服务的服务名称与服务地址之间的映射关系,来获取索引服务的服务地址,从而发布服务可以根据索引服务的服务地址来调用索引服务。
[0114] 在一些实施例中,所述第二层服务包括以下至少一项:
[0115] 1)索引服务
[0116] 在一些实施例中,所述索引服务为云索引服务(cloudkey),或者本地索引服务(localkey),或者同时包括云索引服务和本地索引服务;所述云索引服务用于生成图片的云端识别的索引文件,用于云端识别应用;所述本地索引服务用于生成本地识别需要的索引文件,用于本地识别应用。索引是指提取的图片的特征。
[0117] 在一些实施例中,所述索引服务接受索引识别请求,通过本地索引、云索引生成索引,保存索引文件到文件存储服务,并返回存储地址。
[0118] 2)识别服务
[0119] 所述识别服务(searchsrv)用于提供图片的识别算法的基础服务、核心服务。在一些实施例中,所述识别服务接受识别请求,检索本机的识别库中存储的索引文件,返回匹配成功的识别图片的标识信息(如ID)。
[0120] 3)特征提取服务
[0121] 所述特征提取服务(featuresrv)是识别时的前置服务,用于提取识别图片的特征。
[0122] 在一些实施例中,第二层服务可以是一个或多个,可以根据客户端请求的压力及流量情况进行动态扩充。需要说明的是,上述第二层服务仅为举例,而非对本申请的限制。
[0123] 在一些实施例中,所述第一层服务包括以下至少一项:
[0124] 1)内容管理服务
[0125] 所述内容管理服务(contentsrv)用于提供识别图库、AR 素材及AR 场景的相关管理服务。在一些实施例中,所述内容管理服务包括了应用管理、资源管理、图集管理和 AR 场景管理,还可以包括将识别图片和AR素材绑定。
[0126] 2)发布服务
[0127] 所述发布服务(publishsrv)是发布图片到识别服务的管理服务,用于控制图集的发布,属于核心服务。在一些实施例中,所述发布服务对已有的识别服务器进行管理、分配,接受图片的发布请求,调用索引生成模块,分配识别服务器,以使识别服务器调用对应索引加载模块进行索引文件的加载。
[0128] 3)图像识别API服务
[0129] 所述图像识别API服务(recognizesrv)提供客户端图片识别、资源获取、本地识别索引文件下载等 API 的接口服务。在一些实施例中,所述图像识别API服务用于:调用发布管理服务获取识别服务器信息;调用图像识别服务进行图片的检索,获取识别接口,查询数据,返回图像对应的AR素材。
[0130] 4)账号服务
[0131] 所述账号服务用于提供与账号管理相关的服务,如管理用户、企业相关信息。在一些实施例中,第一层服务可以是一个或多个,可以根据客户端请求的压力及流量情况进行动态扩充。需要说明的是,上述第一层服务仅为举例,而非对本申请的限制。
[0132] 在一些实施例中,所述基础服务包括以下至少一项:
[0133] 1)配置服务
[0134] 所述配置服务(etcd)用于提供相应服务的配置。在一些实施例中,配置服务用于共享配置和服务发现的分布式、一致性的KV存储系统,通过配置服务的管理页面,可修改和创建相应服务的配置。在一些实施例中,本申请服务架构采用共享配置服务。
[0135] 2)数据库服务
[0136] 数据库服务用于存储系统的数据,例如,数据库服务可以使用关系型数据库,以二维表的方式存储文本数据,包括但不限于mysql数据库。在一些实施例中,本申请包括但不限于四个数据库:账户数据库、内容数据库,发布数据库和识别服务器数据库。其中,账户数据库保存用户、企业信息等;内容数据库包括图集、图片的属性信息(图片ID、名称、所属图集、大小、类型、发布状态、所属用户等)、AR效果绑定信息、资源信息(视频、音乐、模型等)等;发布数据库存储发布服务器的信息及图片发布信息,包括图片ID、所属图集、索引文件地址、对应识别服务器等;识别服务器数据库为每一个识别服务生成一张记录表,包括加载的识别图的ID、索引文件地址、图集、发布时间等。在另一些实施例中,可以建立一个或多个数据库来保存上述信息,这里不进行限定。
[0137] 3)文件存储服务
[0138] 所述文件存储服务用于提供与文件(例如,图片文件、索引文件、视频、音乐、模型等资源文件)存储相关的服务。在一些实施例中,所述文件存储服务包括但不限于fastdfs等任何与文件存储相关的服务。
[0139] 4)缓存数据库服务
[0140] 例如,所述缓存数据库服务可以是redis(Remote Dictionary Server)。
[0141] 5)镜像仓库服务
[0142] 所述镜像仓库服务(harbor)用于提供镜像存储、分发的服务。
[0143] 6)配置编辑器服务
[0144] 所述配置编辑器服务(etcdkeeper)用于提供应用配置文件编辑服务。
[0145] 在一些实施例中,基础服务可以在容器云内部运行,也可以在容器云的外围运行。在一些实施例中,基础服务可以动态扩充。需要说明的是,上述基础服务仅为举例,而非对本申请的限制。
[0146] 在一些实施例中,所述方法还包括:在所述容器云上部署资源存储服务(storagesrv)。在一些实施例中,所述资源存储服务用于提供文件存储的中间服务,封装标准的存储接口给到其他服务,后面可对接多种存储服务。所述资源存储服务相当于适配器,用于适配不同的文件存储格式。在一些实施例中,所述资源存储服务需要部署在容器云的内部,不可以部署在容器云的外围。
[0147] 在一些实施例中,所述对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,包括:对于所述图像识别业务服务中每个业务服务,根据所述部署文件中该业务服务对应的容器集数量,在容器云上创建该业务服务对应的、所述容器集数量的容器集,根据所述部署文件中该业务服务对应的镜像文件地址,下载该业务服务对应的镜像文件,并根据该镜像文件在所述容器集上启动该业务服务。在一些实施例中,容器集启动该业务服务的过程中,所述容器集还需加载配置文件,以完成该识别服务的启动。
[0148] 在一些实施例中,所述图像识别管理服务用于管理所述至少一个识别服务;其中,所述方法还包括:对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述基础服务中的数据库服务。在一些实施例中,每个识别服务会记录图像识别管理服务的域名信息和/或地址信息,每个识别服务启动后,会根据图像识别管理服务的域名信息和/或地址信息,主动向图像识别管理服务发送包括该识别服务的标识信息(例如,识别服务的ID、名称、地址)在内的注册信息,告知图像识别管理服务该识别服务是可使用的状态,图像识别管理服务接收该注册信息,并将该注册信息写入基础服务中的数据库服务,在数据库服务中生成该识别服务的相关信息(例如,当前加载的识别图的ID、索引文件地址、图集、发布时间等),以记录当前有多少已启动的识别服务以及每个已启动的识别服务的相关信息,后续图像识别管理服务会定时监测所有已启动的识别服务的运行情况,当发现某个已启动的识别服务宕机时,会根据该宕机的识别服务的标识信息,从数据库服务中查找获得该宕机的识别服务的相关信息。
[0149] 在一些实施例中,所述方法还包括:对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第三识别服务发送的心跳信息,则在所述至少一个识别服务中确定第四识别服务,从所述基础服务中的数据库服务获得所述第三识别服务对应的当前加载图集信息,以在所述第四识别服务中加载所述当前加载图集信息所对应的图集。在一些实施例中,每个识别服务会定时向图像识别管理服务发送心跳信息,以使图像识别管理服务基于心跳信息确定每个识别服务是否以及何时出现故障或宕机,例如,每个识别服务每隔预定时间便向图像识别管理服务发送心跳信息,图像识别管理服务若接收到某个识别服务的心跳信息,则可确定该识别服务还在运行,图像识别管理服务若相隔预定时间没有接收到某个识别服务的心跳信息,则表示该识别服务宕机。在一些实施例中,若图像识别管理服务在预定时间间隔内未收到第三识别服务发送的心跳信息,则可确定该第三识别服务宕机,图像识别管理服务会从已注册的识别服务(已注册的识别服务中可能包括在该第三识别服务宕机之后新启动的识别服务,也可能包括在该第三识别服务宕机之前已启动的识别服务)中确定第四识别服务,之后,图像识别管理服务从数据库服务获得第三识别服务对应的当前加载图集信息,并通知第四识别服务,以在第四识别服务中加载当前加载图集信息所对应的图集,其中,当前加载图集信息可以是与识别服务当前加载的图集相关的任何信息,例如,当前是否加载图集、当前加载的图集数量、当前加载的每个图集的标识信息、当前加载的每个图集中的识别图以及数量、当前加载的每个图集中的识别图对应的索引文件、索引文件地址等任一项信息。在此需要说明的是,上下文中的“加载图集”是指识别服务加载图集中的一个或多个识别图分别对应的一个或多个索引文件,如所述在第四识别服务中加载当前加载图集信息所对应的图集包括在第四识别服务中加载当前加载图集信息所对应的图集中的识别图对应的索引文件。
[0150] 在一些实施例中,所述在所述至少一个识别服务中确定第四识别服务,包括:若所述图像识别管理服务接收到所述至少一个识别服务中的新启动的第五识别服务发送的注册信息,通过所述图像识别管理服务将所述第五识别服务确定为所述第四识别服务。在一些实施例中,若图像识别管理服务在预定时间间隔内未收到第三识别服务发送的心跳信息,图像识别管理服务等待新的识别服务启动并到图像识别管理服务注册,将新启动注册的第五识别服务作为第四识别服务,然后图像识别管理服务从数据库服务中读取第三识别服务对应的当前加载图集信息,并通知第四识别服务,以在第四识别服务中加载当前加载图集信息所对应的图集。例如,图像识别管理服务中已注册的识别服务包括M1、M2、M3,每个识别服务每隔30秒会向图像识别管理服务发送心跳信息,当图像识别管理服务隔30秒没有收到来自M1的心跳信息时,图像识别管理服务确定M1宕机;之后,若图像识别管理服务接收到新启动的识别服务M4发送的注册信息,则将识别服务M4确定为第四识别服务,然后M4加载M1当前加载图集信息对应的图集,如加载当前加载图集信息对应的图集中的识别图对应的索引文件。
[0151] 在一些实施例中,所述在所述至少一个识别服务中确定第四识别服务,包括:通过所述图像识别管理服务从所述数据库服务获取所述至少一个识别服务中的每个已启动的识别服务的当前加载图集信息;通过所述图像识别管理服务根据所述每个已启动的识别服务的当前加载图集信息,确定第四识别服务,其中,所述第四识别服务满足以下至少一项:当前未加载任何图集;当前已加载的图集数量最少;当前已加载的图集中识别图像数量最少。在一些实施例中,所述当前加载图集信息可以是与识别服务当前加载的图集相关的任何信息,例如,当前是否加载图集、当前加载的图集数量、当前加载的每个图集的标识信息、当前加载的每个图集中的识别图以及数量、当前加载的每个图集中的识别图对应的索引文件、索引文件地址等任一项信息。例如,图像识别管理服务中已注册的识别服务包括M1、M2、M3,每个识别服务每隔30秒会向图像识别管理服务发送心跳信息,当图像识别管理服务隔
30秒没有收到来自M1的心跳信息时,图像识别管理服务确定M1宕机,则从数据库服务获得当前已启动的M2和M3所分别对应的当前加载图集信息,之后从M2和M3中选择当前未加载任何图集的M3作为第四识别服务,或者选择加载图集中识别图像数量较少的M3作为第四识别服务。
[0152] 在一些实施例中,所述方法还包括:对于待处理图像服务请求,若所述待处理图像服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述待处理图像服务请求。在一些实施例中,图像服务请求包括但不限于用于图像发布服务的发布请求、用于图像识别服务的识别请求等,对于每个待处理的图像服务请求,要通过容器云中的多个不同业务服务来共同处理完成本次图像服务请求,其中,多个不同业务服务中的每个业务服务可以部署在容器云中的一个容器集上,也可以部署在容器云中的多个不同容器集上。在一些实施例中,对于每个待处理图像服务请求,先获取用于处理本次图像服务请求的多个业务服务,对于多个业务服务中的每个业务服务,若该业务服务部署在多个不同容器集上,则需要根据每个容器集的负荷信息,其中,负荷信息可以是容器集的CPU负荷或内存负荷,从多个容器集中选择负荷较小的目标容器集,并通过目标容器集上部署的该业务服务来处理本次图像服务请求,以此可以实现负载均衡的目的。例如,待处理图像服务请求为图像发布服务的发布请求,在一些实施例中,该请求包括发布服务、索引服务和识别服务,若容器云上部署发布服务、索引服务和识别服务的容器集的个数分别是二、三、一,则根据部署了发布服务的两个容器集的负荷信息,确定负荷信息最小的目标容器集(目标发布服务),同样地,根据部署了索引服务的三个容器集的负荷信息,确定负荷信息最小的目标容器集(目标索引服务),并通过该目标发布服务、目标索引服务和识别服务来处理本次发布请求。
[0153] 在一些实施例中,所述方法还包括:通过所述容器管理平台监控已创建的一个或多个容器集的运行状态信息,若监控到目标容器集的负荷信息满足预定扩容条件,创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。在一些实施例中,容器管理平台监控容器云上已创建的一个或多个容器集中的每个容器集的负荷信息,若监控到其中的某个目标容器集所对应的负荷信息满足预定扩容条件(例如,目标容器集所对应的负荷信息超过预定的负荷阈值),创建一个或多个第二目标容器集,并在该一个或多个第二目标容器集上部署目标容器集对应的业务服务,从而通过自动扩容来减轻目标容器集的负荷。例如,若监控到目标容器集的CPU负荷超过80%,则自动扩充一个第二目标容器集来部署并运行目标容器集对应的业务服务,以降低目标容器集的CPU负荷,从而解决大规模图像识别服务自动扩容的技术问题。如当前存在多个待识别图片的识别请求,需要特征提取服务对多个待识别图片进行特征提取,当目前的特征提取服务所在的容器集的负荷信息满足预定扩容条件时,容器管理平台则扩充一个或多个容器集(每个容器集部署特征提取服务)并启动一个或多个特征提取服务来处理多个待识别图片的特征提取,以实现负载均衡。
[0154] 在一些实施例中,所述方法还包括:响应于针对目标容器集的扩容指令,通过所述容器管理平台创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。在一些实施例中,扩容指令包括但不限于针对哪个目标容器集(对应业务服务)执行扩容操作以及针对该目标容器集扩充几个第二目标容器集。在一些实施例中,响应于针对目标容器集的扩容指令,在容器云上创建一个或多个第二目标容器集,并在该一个或多个第二目标容器集上部署目标容器集对应的业务服务,从而通过手动扩容来减轻目标容器集的负荷,从而解决大规模图像识别服务快速扩容的技术问题。
[0155] 在一些实施例中,所述方法还包括:若所述容器管理平台确定目标用户图集满足预定的并发加载条件,确定所述目标用户图集对应的一个或多个并发识别服务;通过所述一个或多个并发识别服务中每个并发识别服务分别加载所述目标用户图集。在一些实施例中,若容器管理平台确定目标用户图集满足预定的高并发加载条件(例如,目标用户图集的并发访问量超过预定的并发访问量阈值),分配一个或多个并发识别服务同时加载目标用户图集,可以解决指定图集并发量高的问题。
[0156] 在一些实施例中所述确定所述目标用户图集对应的一个或多个并发识别服务,包括:从所述至少一个识别服务中已部署的识别服务中确定所述目标用户图集对应的一个或多个并发识别服务。在一些实施例中,从容器云上当前已部署的至少一个识别服务中确定加载目标用户图集的一个或多个并发识别服务,例如,可以根据容器云上当前已部署的至少一个识别服务中的每个识别服务的负荷状态,将其中负荷较小的一个或多个识别服务作为并发识别服务,并加载目标用户图集。又如,根据容器云上当前已部署的至少一个识别服务中的每个识别服务的当前加载图集信息,将其中加载识别图对应索引文件数量较少的一个或多个识别服务作为并发识别服务,并加载目标用户图集。
[0157] 在一些实施例中,所述确定所述目标用户图集对应的一个或多个并发识别服务,包括:创建一个或多个第二目标容器集,在所述一个或多个第二目标容器集中每个第二目标容器集上分别部署一个或多个第六识别服务,并将所述一个或多个第六识别服务作为所述目标用户图集对应的一个或多个并发识别服务。在一些实施例中,在容器云上创建一个或多个第二目标容器集,并在该一个或多个第二目标容器集中的每个第二目标容器集上分别部署一个或多个第六识别服务,并将该一个或多个第六识别服务作为并发识别服务,并加载目标用户图集,其中,每个第二目标容器集上可以分别只部署一个第六识别服务,或者,还可以每个第二目标容器集上分别部署多个第六识别服务。
[0158] 在一些实施例中,所述方法还包括若所述容器管理平台确定目标用户图集满足预定的划分条件,将所述目标用户图集划分为互不相交的多个子集,其中,所述多个子集中的每个子集包括至少一个识别图;确定所述目标用户图集对应的一个或多个识别服务;通过所述一个或多个识别服务中的每个识别服务分别加载所述多个子集中的一个子集,其中,不同识别服务对应不同子集。在一些实施例中,若确定目标用户图集满足预定的划分条件(例如,目标用户图集中的识别图数量超过预定的数量阈值),将目标用户图集划分为互不相交的多个子集,每个子集中包括至少一个识别图,容器管理平台确定多个识别服务分别各自加载一个不同的子集,从而解决图集及图片数量增多,容器不足的问题。在一些实施例中,所述确定所述目标用户图集对应的一个或多个识别服务,包括:从已部署的至少一个识别服务中确定所述目标用户图集对应的一个或多个识别服务;在另一些实施例中,所述确定所述目标用户图集对应的一个或多个识别服务,包括:创建一个或多个第二目标容器集,在所述一个或多个第二目标容器集上部署一个或多个识别服务,并将所述一个或多个识别服务作为所述目标用户图集对应的一个或多个识别服务。
[0159] 图3示出了根据本申请一个实施例的基于容器云上部署的图像识别服务的图像发布的方法流程图,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;其中,该方法包括步骤S21、步骤S22、步骤S23和步骤S24。在步骤S21中,通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;在步骤S22中,通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;在步骤S23中,通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;在步骤S24中,通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。
[0160] 在一些实施例中,上下文中的“发布”是指将目标识别图添加到识别服务器或将目标识别图对应的索引文件加载到识别服务器,以提供检索。例如,用户在前端资源服务界面中上传目标识别图,并针对目标识别图执行一系列操作,如将目标识别图加入某个现有图集或新建图集并将物料图片放入该新建图集,又如将目标识别图与某个AR素材进行绑定,内容管理服务响应于用户针对目标识别图执行的相关操作信息,获得目标识别图及目标识别图对应的图集信息,在一些实施例中,还可以获得目标识别图所绑定的AR素材,并以此在数据库服务中更新该目标识别图的相关信息,其中,所述相关信息包括以下任一项:目标识别图的标识信息、目标识别图的存储地址、目标识别图对应的图集的标识信息、目标识别图所绑定的AR素材的标识信息、目标识别图所绑定的AR素材的存储地址等,生成针对目标识别图的图像发布服务请求并发送给发布服务,在一些实施例中,该图像发布服务请求包括目标识别图,其中,所述目标识别图可以是目标识别图本身,也可以是目标识别图的标识信息,如名称,ID等。或者,该图像发布服务请求除包括目标识别图外,还可以包括目标识别图对应的图集的信息(例如,图集的标识等)。在一些实施例中,发布服务启动时会根据部署文件中的配置服务地址,从配置服务加载发布服务对应的配置文件,该配置文件中包括发布服务所依赖的索引服务的服务地址,发布服务接收到针对目标识别图的图像发布服务请求后,获得该图像发布服务请求对应的目标识别图(可以是目标识别图本身,或目标识别图的标识信息,如名称,ID等),并根据配置文件中的索引服务的服务地址,将目标识别图或目标识别图的标识信息提供给索引服务,本地索引服务或云索引服务生成目标识别图对应的索引文件(本地索引服务用于生成本地识别的索引文件,云索引服务用于生成云端识别的索引文件,两个索引服务对应的特征提取算法可以相同或者不同),生成后的索引文件会存储到文件存储服务,并将索引文件对应的索引文件存储地址返回给发布服务,发布服务将存储地址提供给目标识别图所对应的图集所对应的识别服务,由识别服务根据索引文件存储地址从文件存储服务加载对应的索引文件到内存,以提供目标识别图的识别服务。在一些实施例中,识别服务加载索引文件后,更新数据库服务中该目标识别图对应的相关信息,例如更新目标识别图的发布状态,更新目标识别图对应的图集所对应的识别服务器信息等。其中,发布服务获取目标识别图对应的图集信息可以通过图像发布服务请求所包含的信息中获取目标识别图对应的图集的信息,还可以通过发布服务到数据库服务中获取目标识别图对应的图集的信息,在此不做限定。在一些实施例中,所述图像识别业务服务中的业务服务还包括账户服务,账户服务用于提供与账号管理相关的服务,如管理用户、企业相关信息等。
[0161] 在一些实施例中,所述方法还包括在所述步骤S21之前:通过所述前端资源服务接收用户针对目标识别图的操作信息,将所述操作信息转发到内容管理服务;通过所述内容管理服务根据所述操作信息,获得所述目标识别图及所述目标识别图对应的目标图集,更新所述图像识别服务对应的基础服务中的数据库服务中的所述目标识别图的相关信息,生成针对所述目标识别图的图像发布服务请求并发送至所述发布服务。在一些实施例中,用户在前端资源服务界面中上传目标识别图,并针对目标识别图执行一系列操作,如将目标识别图加入某个现有图集或新建图集并将目标识别图放入该新建图集,又如将目标识别图与某个AR素材进行绑定,前端资源服务接收用户针对目标识别图执行的相关操作信息,并该相关操作信息转发给内容管理服务,内容管理服务根据接收到的该相关操作信息,获得目标识别图及目标识别图片对应的图集,在一些实施例中,还可以获得目标识别图所绑定的AR素材,并以此在数据库服务中更新目标识别图的相关信息,其中,所述相关信息包括以下任一项:目标识别图的标识信息、目标识别图的存储地址、目标识别图对应的图集的标识信息、目标识别图所绑定的AR素材的标识信息、目标识别图所绑定的AR素材的存储地址等,生成针对目标识别图的图像发布服务请求并发送给发布服务。在一些实施例中,图像发布服务请求可以只包括目标识别图,其中,所述目标识别图可以是目标识别图本身,也可以是目标识别图的标识信息,如名称,ID等。或者,图像发布服务请求还可以同时包括目标识别图和目标识别图对应的图集的信息(例如,图集的标识等)。
[0162] 在一些实施例中,所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务,包括:通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件提供给所述基础服务中的文件存储服务;通过所述文件存储服务获得所述目标索引文件,存储并获得所述目标索引文件对应的目标存储地址,并将所述目标存储地址返回所述索引服务;通过所述索引服务获得所述目标存储地址,并将所述目标存储地址返回所述发布服务。在一些实施例中,索引服务在获得发布服务提供的目标识别图(可以是目标识别图本身,也可以是目标识别图的标识信息等)后,生成该目标识别图片对应的索引文件,并将该索引文件提供给基础服务中的文件存储服务进行存储,文件存储服务在该索引文件存储完成后,将对应的存储地址返回给索引服务,然后索引服务再将该存储地址返回给发布服务。在一些实施例中,所述图像识别业务服务中的业务服务还包括资源存储服务,所述资源存储服务用于提供文件存储的中间服务,封装标准的存储接口给到其他服务,后面可对接多种文件存储服务。所述资源存储服务相当于适配器,用于适配不同的文件存储格式,如七牛云,小米云,fastdfs等不同的文件存储服务。在一些实施例中,所述索引服务将所述目标索引文件提供给所述基础服务中的文件存储服务进一步包括,索引服务先利用资源存储服务将目标索引文件进行转换,然后将转换后的索引文件发送给文件存储服务进行存储。
[0163] 在一些实施例中,所述通过所述发布服务将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务,包括:通过所述发布服务从所述图像识别服务对应的基础服务中的数据库服务获得所述目标图集对应的发布状态指示信息;若所述发布状态指示信息指示所述目标图集已发布,通过所述发布服务从所述数据库服务获得所述至少一个识别服务中所述目标图集对应的目标识别服务,并根据所述目标识别服务的服务地址将所述目标存储地址提供给所述目标图集对应的目标识别服务;若所述发布状态信息指示所述目标图集未发布,通过所述发布服务从所述至少一个识别服务中已部署的识别服务中确定目标识别服务,并根据所述目标识别服务的服务地址将所述目标存储地址提供给所述目标识别服务。在一些实施例中,所述发布状态指示信息用于指示所述目标图集的发布状态,包括但不限于已发布、未发布、发布中等,发布服务从数据库服务中查询获得目标图集对应的发布状态,若目标图集已发布,从数据库服务中查询获得目标图集对应的目标识别服务(可以是目标识别服务的标识信息,如名称、地址等),并将目标索引文件的存储地址提供给该目标识别服务;若目标图集未发布,则从至少一个识别服务中确定目标识别服务,并将目标索引文件的存储地址提供给该确定的目标识别服务。在一些实施例中,对于新增的未发布的图集,寻找加载图片数量少/负荷小的识别服务优先发布,对于已发布的图集,从数据库服务中查询到相关识别服务的信息,通知对应的识别服务加载该目标识别图对应的索引文件。
[0164] 在一些实施例中,所述通过所述发布服务从所述至少一个识别服务中已部署的识别服务中确定目标识别服务,包括:通过所述发布服务从所述数据库服务获得所述至少一个识别服务中已部署的识别服务对应的当前加载图集信息;通过所述发布服务根据所述当前加载图集信息,从所述已部署的识别服务中确定目标识别服务,其中,所述目标识别服务对应的当前加载信息满足以下至少一项:当前已加载的图集数量最少;当前已加载的图集中的识别图数量最少。在一些实施例中,发布服务从数据库服务中获得至少一个识别服务中的每个识别服务当前已加载的图集信息,然后根据每个识别服务当前已加载的图集信息,从该至少一个识别服务中确定目标识别服务,其中,目标识别服务可以是当前已加载的图集数量最少的识别服务,也可以是当前已加载的图集中的识别图数量最少的识别服务。在一些实施例中,所述当前加载图集信息可以是与目标识别服务当前加载的图集相关的任何信息,如当前是否加载图集、当前加载的图集数量、当前加载的每个图集的标识信息、当前加载的每个图集中的识别图以及数量、当前加载的每个图集中的识别图对应的索引文件、索引文件地址等任一项信息。例如,识别服务包括M1、M2和M3,M1中已加载的图集数量为
20,M2已加载的图集数量为32,M3已加载的图集数量为25,则选择当前已加载的图集数量最少的M1作为目标图集对应的目标识别服务。又例如,识别服务包括N1、N2和N3,N1中已加载的识别图数量为450,N2已加载的识别图数量为312,N3已加载的识别图数量为256,则选择当前已加载的识别图数量最少的N3作为目标图集对应的目标识别服务。需要说明的是,上述目标识别服务满足的条件仅为举例,而非对本申请的限制,任何用于确定目标图集对应的目标识别服务的实现方式,均应包含在本申请的保护范围内。在一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于管理所述至少一个识别服务;其中,所述方法还包括:对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述图像识别服务对应的基础服务中的数据库服务。在一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于在数据库服务中生成识别服务的相关信息(例如,当前加载的识别图的ID、索引文件地址、图集、发布时间等当前加载图集信息),以记录当前每个已启动的识别服务的相关信息,而发布服务可从该数据库服务中获得至少一个识别服务中的每个识别服务当前已加载的图集信息,然后根据每个识别服务当前已加载的图集信息,从该至少一个识别服务中确定目标识别服务。
[0165] 在一些实施例中,所述方法还包括:对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第七识别服务发送的心跳信息,则在所述至少一个识别服务中确定第八识别服务,从所述数据库服务获得所述第七识别服务对应的当前加载图集信息,以在所述第八识别服务中加载所述当前加载图集信息所对应的图集。本实施例中的相关操作已在前述实施例中予以详述,在此不再赘述。
[0166] 在一些实施例中,所述方法还包括:对于所述图像发布服务请求,若所述图像发布服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述图像发布服务请求。
[0167] 图4示出了根据本申请一个实施例的基于容器云上部署的图像识别服务的图像识别的方法流程图,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;其中,该方法包括步骤S31、步骤S32、步骤S33、步骤S34和步骤S35。在步骤S31中,通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;在步骤S32中,通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;在步骤S33中,通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;在步骤S34中,通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配;在步骤S35中,若匹配成功,通过所述目标识别服务获得与所述特征信息相匹配的目标索引文件对应的目标识别图信息,并将所述目标识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述目标识别图信息,从所述基础服务获得所述目标识别图信息对应的目标AR素材,并将所述目标AR素材返回至所述目标应用。
[0168] 在一些实施例中,目标应用发送待识别图片,识别API 服务接收到该待识别图片后,获得该待识别图片对应的用户图集,例如,可以将目标应用对应的图集作为该待识别图片对应的用户图集,或者,可以将用户账号对应的图集作为该待识别图片对应的用户图集,或者,还可以根据目标应用发送的指定图集信息作为该待识别图片对应的用户图集。在一些实施例中,图像识别API服务启动时会根据部署文件中的配置服务地址,从配置服务加载图像识别API服务对应的配置文件,该配置文件中包括图像识别API服务所依赖的特征提取服务的服务地址。在一些实施例中,图像识别API 服务从数据库服务中查询到该用户图集对应的目标识别服务(如目标识别服务的地址、名称等)。更进一步地,所述图像识别业务服务中的业务服务还包括发布服务,图像识别API 服务调用发布服务,发布服务从数据库服务中查询到该用户图集对应的目标识别服务(如目标识别服务的地址、名称等),并将目标识别服务返回给图像识别API服务。在另一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于在数据库服务中生成识别服务的相关信息(例如,当前加载的识别图的ID、索引文件地址、图集、发布时间等当前加载图集信息),以记录当前每个已启动的识别服务的相关信息,而图像识别API 服务可从该数据库服务中获得图集对应的目标识别服务,然后将该目标识别服务返回给图像识别API服务。图像识别API 服务根据配置文件中的特征提取服务的服务地址,将该待识别图片及对应的目标识别服务(如目标识别服务的地址、名称等)发送给特征提取服务,特征提取服务提取该待识别图片对应的特征信息后,根据目标识别服务的服务地址,将该特征信息提供给目标识别服务,目标识别服务将该特征信息与目标识别服务当前已加载的一个或多个索引文件进行匹配,若匹配成功,获得与该特征信息相匹配的目标索引文件对应的目标识别图信息(例如,识别图ID、识别图名称等),并将该目标识别图信息返回给图像识别API服务,图像识别API服务根据返回的目标识别图信息在基础服务中查询得到目标识别图信息所绑定的AR素材,图像识别API服务将所述AR素材返回至所述目标应用。其中,所述图像识别API服务将所述AR素材返回至所述目标应用,在一些实施例中,图像识别API服务可以从基础服务中的文件存储服务中获取所述AR素材并直接将AR素材返回给目标应用,或者,图像识别API服务还可以从数据库服务中得到所述AR素材对应的存储地址并将AR素材对应的下载地址返回给目标应用,由目标应用来下载对应的AR素材,这里不进行限定;在一些实施例中,若匹配失败,目标识别服务或图像识别API服务生成用于指示待识别图片识别失败的图像识别服务响应信息,并将图像识别服务响应信息返回给目标应用,以提示用户识别失败。在一些实施例中,所述图像识别业务服务中的业务服务还包括账户服务,账户服务用于提供与账号管理相关的服务,如管理用户、企业相关信息等。
[0169] 在一些实施例中,所述通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集,包括:通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,对所述目标应用进行接入权限认证;若认证通过,获得所述待识别图片对应的用户图集。在一些实施例中,目标应用将待识别图片发送到识别API 服务,图像识别API服务会先对目标应用或用户身份进行接入权限认证,只有在认证通过后,才可以获得该待识别图片所对应的用户图集,并进行待识别图片的识别。在一些实施例中,所述方法还包括:对于所述图像识别服务请求,若所述图像识别服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述图像识别服务请求。
[0170] 在一些实施例中,所述图像识别业务服务中的业务服务还包括以下至少一项:前端资源服务、索引服务、内容管理服务、资源存储服务,其中,所述前端资源服务用于接收用户针对目标识别图执行的相关操作信息;所述内容管理服务响应于用户针对目标识别图执行的相关操作信息,并以此在数据库服务中更新该目标识别图的相关信息;所述索引服务用户生成目标识别图的索引文件;所述资源存储服务用于提供文件存储的中间服务,封装标准的存储接口给到其他服务,后面可对接多种文件存储服务。
[0171] 在一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于管理所述至少一个识别服务;其中,所述方法还包括:对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述图像识别服务对应的基础服务中的数据库服务。本实施例中的相关操作已在前述实施例中予以详述,在此不再赘述。
[0172] 在一些实施例中,所述方法还包括:对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第九识别服务发送的心跳信息,则在所述至少一个识别服务中确定第十识别服务,从所述数据库服务获得所述第九识别服务对应的当前加载图集信息,以在所述第十识别服务中加载所述当前加载图集信息所对应的图集。本实施例中的相关操作已在前述实施例中予以详述,在此不再赘述。
[0173] 图5示出了根据本申请一个实施例的在容器云上部署图像识别服务的网络设备结构图,该设备包括一一模块11和一二模块12。一一模块11,用于在部署完成图像识别服务中的基础服务后,获取所述图像识别服务中图像识别业务服务对应的部署文件,其中,所述部署文件中包含所述图像识别业务服务中每个业务服务对应的服务名称、镜像文件地址、容器集数量、配置服务地址,所述图像识别业务服务中的业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、至少一个识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务;一二模块12,用于对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,通过所述容器集根据该业务服务对应的配置服务地址加载对应的配置文件,并通过容器管理平台对该业务服务进行管理,其中,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;其中,通过所述容器云部署的所述图像识别业务服务执行以下至少任一项:通过所述发布服务接收针对第一识别图的图像发布服务请求,获得所述第一识别图,并将所述第一识别图提供给所述索引服务;通过所述索引服务获得所述第一识别图,生成所述第一识别图对应的第一索引文件,并将所述第一索引文件对应的第一存储地址返回所述发布服务;通过所述发布服务获得所述第一存储地址,将所述第一存储地址提供给所述至少一个识别服务中与所述第一识别图对应的第一图集相对应的第一识别服务;通过所述第一识别服务获得所述第一存储地址,根据所述第一存储地址,加载所述第一索引文件;或者,通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;通过所述图像识别API服务从所述基础服务中的数据库服务获得所述至少一个识别服务中所述用户图集对应的第二识别服务,将所述待识别图片及所述第二识别服务提供给所述特征提取服务;通过所述特征提取服务获得所述待识别图片及所述第二识别服务,提取所述待识别图片的特征信息,并将所述特征信息提供给所述第二识别服务;通过所述第二识别服务获得所述特征信息,将所述特征信息与所述第二识别服务当前已加载的索引文件进行匹配;若匹配成功,通过所述第二识别服务获得与所述特征信息相匹配的第二索引文件对应的第二识别图信息,并将所述第二识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述第二识别图信息,从所述基础服务获得所述第二识别图信息对应的第二AR素材,并将所述第二AR素材返回至所述目标应用。
[0174] 在一些实施例中,容器化技术(docker)用于支持创建和使用Linux容器,docker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置(抽象化为部署清单文件)一起打包为容器映像,软件容器充当软件部署的标准单元。
[0175] 在一些实施例中,容器管理平台(包括但不限于Kubernetes(K8s)、Swam、Meso等,其中,Kubernetes提供了一个可弹性运行分布式系统的框架,上下文中以Kubernetes为例来对容器管理平台进行说明),用于部署、扩展和管理容器化(containerized)应用程序,因此可以将运行 Linux 容器的多组主机聚集在一起,由Kubernetes高效地管理这些集群,而且,这些集群可跨公共云、私有云或混合云部署主机。
[0176] 在一些实施例中,Kubernetes是由一组节点组成,这些节点可以是物理主机,也可以是虚拟机。Kubernetes平台运行这些节点之上,构成了集群。Kubernetes集群包括Master Node(主机节点)和用于实际部署的Pod的工作Node(节点)。一个集群往往由多个Master Node,这几个Master Node控制着整个集群的所有Node,所有任务分配都来自于Master Node。Master Node控制整个集群,做出关于群集的全局决策(例如调度),以及检测和响应群集事件。Node是K8s集群中真正的工作负载节点,K8s集群由多个Node共同承担工作负载,支持动态在集群中添加或删除Node。Pod(容器集)被分配到某个具体的Node上执行,且包含一个或多个容器的容器组。同一容器集中的所有容器共享同一个 IP 地址、IPC、主机名称及其它资源。容器从属于Pod,在运行应用、库及其依赖的微服务中,容器是最低层级的,通过绑定一个外部IP,容器可以被外网访问。
[0177] 在一些实施例中,Kubernetes 主节点(Master Node)从外部接受指令,再把指令转交给附属的Node(节点),这种带有大量服务的切换工作自动决定最适合该任务的节点,然后在该节点上分配资源并指派Pod(容器集)来完成任务请求。在一些实施例中,图像识别服务中的各个业务服务封装在docker镜像中,在Kubernetes中的各个Pod中运行。
[0178] 在一些实施例中,容器云平台是在云端把容器技术和容器管理平台结合起来,提供构建、发布和运行分布式应用的平台,以下简称容器云。在一些实施例中,容器云运行在多组服务器(例如,x64服务器、x86服务器)之上,在容器云上部署图像识别服务中的多个业务服务,并通过Kubernetes来对容器云上部署的图像识别服务中的这些业务服务进行管理,可以解决大规模图像识别服务快速扩容的技术问题,实现图像识别服务的负载均衡和动态扩充,解决不同系统和不同硬件环境部署的差异问题,提升服务的可移植性和安全性,降低部署难度,增加部署灵活性,加速相关产品上线速度。
[0179] 在一些实施例中,所述图像识别服务中的基础服务包括以下至少一项:数据库、缓存数据库、文件存储、配置、镜像仓库、配置编辑器等相关的基础类服务,所述基础服务可以部署在容器云上,也可以部署在容器云的外围(如外部的实体云服务器上),优选地,所述基础服务部署在容器云的外围。
[0180] 在一些实施例中,在部署完成图像识别服务中的基础服务后,k8s获取图像识别服务中的图像识别业务服务对应的部署文件,部署文件是启动图像识别业务服务的基础文件,里面指定了k8s所需要的基础内容,如在部署文件中指定图像识别业务服务中的每个业务服务的服务名称、镜像文件地址、容器集数量、容器集运行时的环境变量(如配置服务的地址等),进一步地,环境变量中还可以指定配置项key,更进一步地,部署文件中还可以指定每个业务服务的service(SVC)的内容(包括对外暴露的端口等内容)等,k8s根据部署文件创建容器集并在容器集上启动图像识别业务服务中的每个业务服务,图像识别业务服务包括以下至少一项:图像识别管理服务、前端资源服务、索引服务、识别服务、特征提取服务、账号服务、内容管理服务、发布服务、图像识别API服务、资源存储服务,其中,部署文件可以为一个或多个,在此不进行限定。在一些实施例中,每个业务服务对应同一个配置服务地址,在另一些实施例中,每个业务服务对应不同的配置服务地址,在此不进行限定。在此并不对不同业务服务之间的部署先后顺序作任何的限定。在一些实施例中,所述图像识别管理服务用于执行服务控制,如控制识别服务器的分配等。所述前端资源服务是用于管理后台或web网页前端,同时是对应客户端计入的入口服务。在一些实施例中,按照业务逻辑进行划分,图像识别业务服务包括依赖于所述基础服务的第二层服务、依赖于所述第二层服务的第一层服务,其中,所述第二层服务用于提供偏向于底层算法功能类型的服务(如索引服务、识别服务、特征提取服务等至少一项服务),与具体的相关的业务逻辑关联性小,所述第一层服务用于提供偏向于上层业务逻辑类型的服务(如账号服务、内容管理服务、发布服务、图像识别API服务等至少一项服务),与具体的业务逻辑关联性大,其中,需要注意的是,所述第一层服务和第二层服务是根据业务逻辑进行划分的,并不表示部署上存在层级划分,仅用于方便理解业务逻辑。依赖是指依赖方直接或间接使用或调用或更新被依赖方的数据、功能、接口等,例如第一层服务中的发布服务需要调用第二层服务中的索引服务;又例如,第一层服务中的内容管理服务更新基础服务中的数据库内容等。图2为本申请一个示例的服务架构图,其中,所有业务服务和配置编辑器存放在镜像仓库中,在容器云创建服务之后配置镜像地址,服务启动之后从配置服务(etcd)获取对应的配置,初始化mysql数据库表和数据,完成服务架构的搭建;其中,集群服务入口为前端资源服务(webhiar),服务请求转发到账号服务(accountsrv)、内容管理服务(contentsrv)、发布服务(publishsrv)、图像识别API服务(recognizesrv)等第一层服务,第一层依赖索引服务(包括云索引服务(cloudkey)、本地索引服务(localkey))、识别服务(searchsrv)、特征提取服务(featuresrv)等第二层服务,第二层服务依赖数据库服务mysql、文件存储服务fastdfs、资源存储服务(storagesrv)等基础服务。其中,webhiar 作为访问入口,用于部署管理后台或web网页前端的API 的入口服务,应用的访问及应用端的API 请求都由此节点为入口,当出现并发的访问时,可以在该部署的服务器之前搭建负载均衡的后面,根据不同的请求的压力,架构中不同的服务可以进行节点的扩充。需要说明的是,上述所涉及的各项服务将在后续实施例中予以详述。在一些实施例中,通过将图像识别服务部署在容器云上,可以提升图像识别服务的可移植性和安全性。
[0181] 在一些实施例中,对于所述图像识别业务服务中每个业务服务,根据部署文件中的每个业务服务对应的服务名称、镜像文件地址、容器集数量等部署信息,在容器云上创建容器集并启动该业务服务,所述容器集根据部署文件中的配置服务地址,从配置服务中加载该业务服务对应的配置文件(例如,配置服务中包括多个不同的业务服务分别对应的配置文件,可以通过该业务服务的服务名称在配置服务中找到该业务服务对应的配置文件并加载),以完成该业务服务的启动,并通过容器管理平台(例如,k8s)对容器云上已部署的图像识别业务服务中的至少一个服务进行管理。在一些实施例中,业务服务启动时需要加载配置文件,配置文件里面为业务服务运行时需要的内容,通常包含业务服务占用的端口号、连接的数据库地址、缓存服务器的地址、依赖(需要调用)的其他业务服务的服务地址。在一些实施例中,K8S 根据部署文件中业务服务对应的容器集数量,在容器云上创建该业务服务对应的、所述容器集数量的容器集,根据部署文件中该业务服务对应的镜像文件地址,下载该业务服务对应的镜像文件,并根据该镜像文件在所述容器集上开始启动该业务服务,然后根据部署文件设置环境变量,所述容器集读取环境变量中设置的配置服务的地址,从配置服务中加载该业务服务对应的配置文件,并根据配置文件的内容完成该业务服务的启动,然后该业务服务可以处理业务请求。
[0182] 在一些实施例中,若基础服务部署在容器云上,则可以通过容器管理平台对部署在容器云上的基础服务和图像识别业务服务中的至少一个服务进行管理。在另一些实施例中,若基础服务部署在容器云的外围服务上,则可以通过容器管理平台对部署在容器云上的图像识别业务服务中的至少一个服务进行管理。在一些实施例中,k8s主节点(Master Node)从外部接受指令,再把指令转交给附属的Node(节点),然后在该节点上分配资源并指派Pod(容器集)来完成任务请求。各个服务封装在docker镜像中,在k8s中的各个Pod中运行。在一些实施例中,通过k8s来对容器云上部署的图像识别服务进行管理,可以解决大规模图像识别服务快速扩容的技术问题,实现图像识别服务的负载均衡和动态扩充,降低部署难度,增加部署灵活性,加速相关产品上线速度。
[0183] 在一些实施例中,配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务。例如,发布服务依赖于索引服务及其他业务服务,发布服务需要调用索引服务及其他业务服务,则发布服务对应的配置文件中包含索引服务的服务名称与索引服务地址之间的映射关系以及其他业务服务的服务名称与其他业务服务地址之间的映射关系,当发布服务需要调用索引服务时,可以通过配置文件中的索引服务的服务名称与服务地址之间的映射关系,来获取索引服务的服务地址,从而发布服务可以根据索引服务的服务地址来调用索引服务。
[0184] 在一些实施例中,所述第二层服务包括以下至少一项:
[0185] 1)索引服务
[0186] 2)识别服务
[0187] 3)特征提取服务
[0188] 在此,相关第二层服务与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0189] 在一些实施例中,所述第一层服务包括以下至少一项:
[0190] 1)内容管理服务
[0191] 2)发布服务
[0192] 3)图像识别API服务
[0193] 4)账号服务
[0194] 在此,相关第一层服务与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0195] 在一些实施例中,所述基础服务包括以下至少一项:
[0196] 1)配置服务
[0197] 2)数据库服务
[0198] 3)文件存储服务
[0199] 4)缓存数据库服务
[0200] 5)镜像仓库服务
[0201] 6)配置编辑器服务
[0202] 在此,相关基础服务与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0203] 在一些实施例中,所述设备还用于:在所述容器云上部署资源存储服务(storagesrv)。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0204] 在一些实施例中,所述对于所述图像识别业务服务中每个业务服务,根据所述部署文件在容器云上创建容器集并启动该业务服务,包括:对于所述图像识别业务服务中每个业务服务,根据所述部署文件中该业务服务对应的容器集数量,在容器云上创建该业务服务对应的、所述容器集数量的容器集,根据所述部署文件中该业务服务对应的镜像文件地址,下载该业务服务对应的镜像文件,并根据该镜像文件在所述容器集上启动该业务服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0205] 在一些实施例中,所述图像识别管理服务用于管理所述至少一个识别服务;其中,所述设备还用于:对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述基础服务中的数据库服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0206] 在一些实施例中,所述设备还用于:对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第三识别服务发送的心跳信息,则在所述至少一个识别服务中确定第四识别服务,从所述基础服务中的数据库服务获得所述第三识别服务对应的当前加载图集信息,以在所述第四识别服务中加载所述当前加载图集信息所对应的图集。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0207] 在一些实施例中,所述在所述至少一个识别服务中确定第四识别服务,包括:若所述图像识别管理服务接收到所述至少一个识别服务中的新启动的第五识别服务发送的注册信息,通过所述图像识别管理服务将所述第五识别服务确定为所述第四识别服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0208] 在一些实施例中,所述在所述至少一个识别服务中确定第四识别服务,包括:通过所述图像识别管理服务从所述数据库服务获取所述至少一个识别服务中的每个已启动的识别服务的当前加载图集信息;通过所述图像识别管理服务根据所述每个已启动的识别服务的当前加载图集信息,确定第四识别服务,其中,所述第四识别服务满足以下至少一项:当前未加载任何图集;当前已加载的图集数量最少;当前已加载的图集中识别图像数量最少。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0209] 在一些实施例,所述设备还用于:对于待处理图像服务请求,若所述待处理图像服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述待处理图像服务请求。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0210] 在一些实施例中,所述设备还用于:通过所述容器管理平台监控已创建的一个或多个容器集的运行状态信息,若监控到目标容器集的负荷信息满足预定扩容条件,创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0211] 在一些实施例中,所述设备还用于:响应于针对目标容器集的扩容指令,通过所述容器管理平台创建一个或多个第二目标容器集,并在所述一个或多个第二目标容器集上部署所述目标容器集对应的业务服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0212] 在一些实施例中,所述设备还用于:若所述容器管理平台确定目标用户图集满足预定的并发加载条件,确定所述目标用户图集对应的一个或多个并发识别服务;通过所述一个或多个并发识别服务中每个并发识别服务分别加载所述目标用户图。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0213] 在一些实施例中所述确定所述目标用户图集对应的一个或多个并发识别服务,包括:从所述至少一个识别服务中已部署的识别服务中确定所述目标用户图集对应的一个或多个并发识别服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0214] 在一些实施例中,所述确定所述目标用户图集对应的一个或多个并发识别服务,包括:创建一个或多个第二目标容器集,在所述一个或多个第二目标容器集中每个第二目标容器集上分别部署一个或多个第六识别服务,并将所述一个或多个第六识别服务作为所述目标用户图集对应的一个或多个并发识别服务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0215] 在一些实施例中,所述设备还用于:若所述容器管理平台确定目标用户图集满足预定的划分条件,将所述目标用户图集划分为互不相交的多个子集,其中,所述多个子集中的每个子集包括至少一个识别图;确定所述目标用户图集对应的一个或多个识别服务;通过所述一个或多个识别服务中的每个识别服务分别加载所述多个子集中的一个子集,其中,不同识别服务对应不同子集。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0216] 图6示出了根据本申请一个实施例的基于容器云上部署的图像识别服务的图像发布的网络设备结构图,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:前端资源服务、索引服务、至少一个识别服务、内容管理服务、发布服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;其中,该设备包括二一模块21、二二模块22、二三模块23和二四模块24。二一模块21,用于通过所述发布服务接收针对目标识别图的图像发布服务请求,获得所述目标识别图,并根据所述索引服务的服务地址将所述目标识别图提供给所述索引服务;二二模块22,用于通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务;二三模块23,用于通过所述发布服务获得所述目标存储地址,将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务;二四模块24,用于通过所述目标识别服务获得所述目标存储地址,根据所述目标存储地址,加载所述目标索引文件。
[0217] 在一些实施例中,上下文中的“发布”是指将目标识别图添加到识别服务器或将目标识别图对应的索引文件加载到识别服务器,以提供检索。例如,用户在前端资源服务界面中上传目标识别图,并针对目标识别图执行一系列操作,如将目标识别图加入某个现有图集或新建图集并将目标识别图放入该新建图集,又如将目标识别图与某个AR素材进行绑定,内容管理服务响应于用户针对目标识别图执行的相关操作信息,获得目标识别图及目标识别图对应的图集信息,在一些实施例中,还可以获得目标识别图所绑定的AR素材,并以此在数据库服务中更新该目标识别图的相关信息,其中,所述相关信息包括以下任一项:目标识别图的标识信息、目标识别图的存储地址、目标识别图对应的图集的标识信息、目标识别图所绑定的AR素材的标识信息、目标识别图所绑定的AR素材的存储地址等,生成针对目标识别图的图像发布服务请求并发送给发布服务,在一些实施例中,该图像发布服务请求包括目标识别图,其中,所述目标识别图可以是目标识别图本身,也可以是目标识别图的标识信息,如名称,ID等,或者,该图像发布服务请求除包括目标识别图外,还可以包括目标识别图对应的图集的信息(例如,图集的标识等)。在一些实施例中,发布服务启动时会根据配置文件中的配置服务地址,从配置服务加载发布服务对应的配置文件,该配置文件中包括发布服务所依赖的索引服务的服务地址,发布服务接收到针对目标识别图的图像发布服务请求后,获得该图像发布服务请求对应的目标识别图(可以是目标识别图本身,或目标识别图的标识信息,如名称,ID等),并根据配置文件中的索引服务的服务地址,将目标识别图或物料图片的标识信息提供给索引服务,本地索引服务或云索引服务生成目标识别图对应的索引文件(本地索引服务用于生成本地识别的索引文件,云索引服务用于生成云端识别的索引文件,两个索引服务对应的特征提取算法可以相同或者不同),生成后的索引文件会存储到文件存储服务,并将索引文件对应的索引文件存储地址返回给发布服务,发布服务将存储地址提供给目标识别图所对应的图集所对应的识别服务,由识别服务根据索引文件存储地址从文件存储服务加载对应的索引文件到内存,以提供目标识别图的识别服务。在一些实施例中,识别服务加载索引文件后,更新数据库服务中该目标识别图对应的相关信息,例如更新目标识别图的发布状态,更新目标识别图对应的图集所对应的识别服务器信息等。其中,发布服务获取目标识别图对应的图集信息可以通过图像发布服务请求所包含的信息中获取物料图片对应的图集的信息,还可以通过发布服务到数据库服务中获取目标识别图对应的图集的信息,在此不做限定。在一些实施例中,所述图像识别业务服务中的业务服务还包括账户服务,账户服务用于提供与账号管理相关的服务,如管理用户、企业相关信息等。
[0218] 在一些实施例中,所述设备还用于:通过所述前端资源服务接收用户针对目标识别图的操作信息,将所述操作信息转发到内容管理服务;通过所述内容管理服务根据所述操作信息,获得所述目标识别图及所述目标识别图对应的目标图集,更新所述图像识别服务对应的基础服务中的数据库服务中的所述目标识别图的相关信息,生成针对所述目标识别图的图像发布服务请求并发送至所述发布服务。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0219] 在一些实施例中,所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件对应的目标存储地址返回所述发布服务,包括:通过所述索引服务获得所述目标识别图,生成所述目标识别图对应的目标索引文件,并将所述目标索引文件提供给所述基础服务中的文件存储服务;通过所述文件存储服务获得所述目标索引文件,存储并获得所述目标索引文件对应的目标存储地址,并将所述目标存储地址返回所述索引服务;通过所述索引服务获得所述目标存储地址,并将所述目标存储地址返回所述发布服务。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0220] 在一些实施例中,通过所述发布服务将所述目标存储地址提供给所述至少一个识别服务中与所述目标识别图对应的目标图集相对应的目标识别服务,包括:通过所述发布服务从所述图像识别服务对应的基础服务中的数据库服务获得所述目标图集对应的发布状态指示信息;若所述发布状态指示信息指示所述目标图集已发布,通过所述发布服务从所述数据库服务获得所述至少一个识别服务中所述目标图集对应的目标识别服务,并根据所述目标识别服务的服务地址将所述目标存储地址提供给所述目标图集对应的目标识别服务;若所述发布状态信息指示所述目标图集未发布,通过所述发布服务从所述至少一个识别服务中已部署的识别服务中确定目标识别服务,并根据所述目标识别服务的服务地址将所述目标存储地址提供给所述目标识别服务。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0221] 在一些实施例中,所述通过所述发布服务从所述至少一个识别服务中已部署的识别服务中确定目标识别服务,包括:通过所述发布服务从所述数据库服务获得所述至少一个识别服务中已部署的识别服务对应的当前加载图集信息;通过所述发布服务根据所述当前加载图集信息,从所述已部署的识别服务中确定目标识别服务,其中,所述目标识别服务对应的当前加载信息满足以下至少一项:当前已加载的图集数量最少;当前已加载的图集中的识别图数量最少。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0222] 在一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于管理所述至少一个识别服务;其中,所述设备还用于:对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述图像识别服务对应的基础服务中的数据库服务。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0223] 在一些实施例中,所述设备还用于:对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第七识别服务发送的心跳信息,则在所述至少一个识别服务中确定第八识别服务,从所述数据库服务获得所述第七识别服务对应的当前加载图集信息,以在所述第八识别服务中加载所述当前加载图集信息所对应的图集。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0224] 在一些实施例中,所述设备还用于:对于所述图像发布服务请求,若所述图像发布服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述图像发布服务请求。在此,相关操作与图3所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0225] 图7示出了根据本申请一个实施例的基于容器云上部署的图像识别服务的图像识别的网络设备结构图,其中,所述容器云上部署有图像识别服务对应的图像识别业务服务,并通过容器管理平台对所述图像识别业务服务进行管理,所述图像识别业务服务中的业务服务包括以下至少一项:至少一个识别服务、特征提取服务、图像识别API服务,对于所述图像识别业务服务中每个业务服务,根据部署文件在容器云上创建容器集并启动该业务服务,所述容器集加载该业务服务对应的配置文件,所述配置文件中包含该业务服务所依赖的其他业务服务的服务名称与服务地址之间的映射关系,以使该业务服务根据所述映射关系调用该业务服务所依赖的其他业务服务;其中,该设备包括三一模块31、三二模块32、三三模块33、三四模块34和三五模块35。三一模块31,用于通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集;三二模块32,用于通过所述图像识别API服务从所述图像识别服务对应的基础服务中的数据库服务获得所述至少一个识别服务中与所述用户图集相对应的目标识别服务,并根据所述特征提取服务的服务地址将所述待识别图片及所述目标识别服务提供给所述特征提取服务;三三模块33,用于通过所述特征提取服务获得所述待识别图片及所述目标识别服务,提取所述待识别图片的特征信息,并根据所述目标识别服务的服务地址将所述特征信息提供给所述目标识别服务;三四模块34,用于通过所述目标识别服务获得所述特征信息,将所述特征信息与所述目标识别服务当前已加载的索引文件进行匹配;三五模块35,用于若匹配成功,通过所述目标识别服务获得与所述特征信息相匹配的目标索引文件对应的目标识别图信息,并将所述目标识别图信息返回所述图像识别API服务,通过所述图像识别API服务获得所述目标识别图信息,从所述基础服务获得所述目标识别图信息对应的目标AR素材,并将所述目标AR素材返回至所述目标应用。
[0226] 在一些实施例中,目标应用发送待识别图片,识别API 服务接收到该待识别图片后,获得该待识别图片对应的用户图集,例如,可以将目标应用对应的图集作为该待识别图片对应的用户图集,或者,可以将用户账号对应的图集作为该待识别图片对应的用户图集,或者,还可以根据目标应用发送的指定图集信息作为该待识别图片对应的用户图集。在一些实施例中,图像识别API服务启动时会根据配置文件中的配置服务地址,从配置服务加载图像识别API服务对应的配置文件,该配置文件中包括图像识别API服务所依赖的特征提取服务的服务地址。在一些实施例中,图像识别API 服务从数据库服务中查询到该用户图集对应的目标识别服务(如目标识别服务的地址、名称等)。更进一步地,所述图像识别业务服务中的业务服务还包括发布服务,图像识别API 服务调用发布服务,发布服务从数据库服务中查询到该用户图集对应的目标识别服务(如目标识别服务的地址、名称等),并将目标识别服务返回给图像识别API服务。在另一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于在数据库服务中生成识别服务的相关信息(例如,当前加载的识别图的ID、索引文件地址、图集、发布时间等当前加载图集信息),以记录当前每个已启动的识别服务的相关信息,而图像识别API 服务可从该数据库服务中获得图集对应的目标识别服务,然后将该目标识别服务返回给图像识别API服务。图像识别API 服务根据配置文件中的特征提取服务的服务地址,将该待识别图片及对应的目标识别服务(如目标识别服务的地址、名称等)发送给特征提取服务,特征提取服务提取该待识别图片对应的特征信息后,根据目标识别服务的服务地址,将该特征信息提供给目标识别服务,目标识别服务将该特征信息与目标识别服务当前已加载的一个或多个索引文件进行匹配,若匹配成功,获得与该特征信息相匹配的目标索引文件对应的目标识别图信息(例如,识别图ID、识别图名称等),并将该目标识别图信息返回给图像识别API服务,图像识别API服务根据返回的目标识别图信息在基础服务中查询得到目标识别图信息所绑定的AR素材,图像识别API服务将所述AR素材返回至所述目标应用。其中,所述图像识别API服务将所述AR素材返回至所述目标应用,在一些实施例中,图像识别API服务可以从基础服务中的文件存储服务中获取所述AR素材并直接将AR素材返回给目标应用,或者,图像识别API服务还可以从数据库服务中得到所述AR素材对应的存储地址并将AR素材对应的下载地址返回给目标应用,由目标应用来下载对应的AR素材,这里不进行限定;在一些实施例中,若匹配失败,目标识别服务或图像识别API服务生成用于指示待识别图片识别失败的图像识别服务响应信息,并将图像识别服务响应信息返回给目标应用,以提示用户识别失败。在一些实施例中,所述图像识别业务服务中的业务服务还包括账户服务,账户服务用于提供与账号管理相关的服务,如管理用户、企业相关信息等。
[0227] 在一些实施例中,所述通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,获得所述待识别图片对应的用户图集,包括:通过所述图像识别API服务接收目标应用发送的、针对待识别图片的图像识别服务请求,对所述目标应用进行接入权限认证;若认证通过,获得所述待识别图片对应的用户图集。在此,相关操作与图4所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0228] 在一些实施例中,所述设备还用于:对于所述图像识别服务请求,若所述图像识别服务请求对应的目标业务服务已部署在多个容器集上,通过所述容器管理平台根据所述多个容器集中每个容器集的负荷信息,从所述多个容器集中确定目标容器集,并通过所述目标容器集上部署的所述目标业务服务来处理所述图像识别服务请求。在此,相关操作与图4所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0229] 在一些实施例中,所述图像识别业务服务中的业务服务还包括以下至少一项:前端资源服务、索引服务、内容管理服务、资源存储服务,其中,所述前端资源服务用于接收用户针对目标识别图执行的相关操作信息;所述内容管理服务响应于用户针对目标识别图执行的相关操作信息,并以此在数据库服务中更新该目标识别图的相关信息;所述索引服务用户生成目标识别图的索引文件;所述资源存储服务用于提供文件存储的中间服务,封装标准的存储接口给到其他服务,后面可对接多种文件存储服务。
[0230] 在一些实施例中,所述图像识别业务服务中的业务服务还包括图像识别管理服务,所述图像识别管理服务用于管理所述至少一个识别服务;其中,所述设备还用于:对于所述至少一个识别服务中的每个识别服务,在该识别服务启动时,根据所述图像识别管理服务的域名信息和/或地址信息,向所述图像识别管理服务发送注册信息;通过所述图像识别管理服务接收所述注册信息,根据所述注册信息生成该识别服务的相关信息,并将该识别服务的相关信息存储于所述图像识别服务对应的基础服务中的数据库服务。在此,相关操作与图4所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0231] 在一些实施例中,所述设备还用于:对于所述至少一个识别服务中的每个已启动的识别服务,通过该已启动的识别服务定时向所述图像识别管理服务发送心跳信息;若所述图像识别管理服务在预定时间间隔内未收到所述至少一个识别服务中的第九识别服务发送的心跳信息,则在所述至少一个识别服务中确定第十识别服务,从所述数据库服务获得所述第九识别服务对应的当前加载图集信息,以在所述第十识别服务中加载所述当前加载图集信息所对应的图集。在此,相关操作与图4所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
[0232] 图8示出了可被用于实施本申请中所述的各个实施例的示例性系统。
[0233] 如图8所示在一些实施例中,系统300能够作为各所述实施例中的任意一个设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器
305)。
[0234] 对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
[0235] 系统控制模块310可包括存储器控制器模块330,以向系统存储器 315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
[0236] 系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
[0237] 对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
[0238] 例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
[0239] NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
[0240] (一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
[0241] 对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
[0242] 在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、持有计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
[0243] 本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
[0244] 本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
[0245] 本申请还提供了一种计算机设备,所述计算机设备包括:
[0246] 一个或多个处理器;
[0247] 存储器,用于存储一个或多个计算机程序;
[0248] 当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
[0249] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0250] 另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
[0251] 通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
[0252] 作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
[0253] 在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
[0254] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。