一种基于大数据环境下的视图像快速识别方法
技术领域
本发明涉及图像识别技术领域,特别是一种基于大数据环境下的视图像快速识别方法。
背景技术
当前,随着新媒体产业的而不断发展,以图片、视频为载体的信息的在社会交流中逐步占据了重要的位置,而传统的信息识别手段主要是以文字为主,一般是通过关键词的模糊查询来实现对信息的分类和过滤,而这种传统技术手段将越来越难以适应当前形势的发展。而随着视图像识别技术的逐渐成熟,如基于特征值和特征向量视图像指纹识别技术和基于人工智能的深度学习视图像识别技术的蓬勃发展,为解决视图像信息的分类与过滤提供了有效手段,然而如何将这些先进的技术进行工程化整合并运用在实际的信息识别过程中成为技术转化的重要的问题之一,由于视图像识别相比于文字识别需要耗费更多的运算资源且速度相对较慢,因此一个能够通过简单的硬件堆叠来实现系统性能的扩展并尽量减少运算资源的视图像识别系统是解决这一问题的重要途径。
发明内容
本发明的目的在于克服现有技术的缺点,提供一种基于大数据环境下的视图像快速识别方法。
本发明的目的通过以下技术方案来实现:
一种基于大数据环境下的视图像快速识别方法,该方法的步骤如下:
S1.第三方业务系统向Mina服务器发送识别请求指令,对该指令与该MINA服务器进行关联存储;
S2. Mina服务器将第三方业务系统发送的识别请求信令发送到系统业务逻辑处理模块,并转化为内部业务的识别指令和入库指令;
S3.当为识别指令时,系统业务逻辑处理模块解析出识别文件的路径并对其进行判断是否需要进行下载,若需下载则将该路径封装成下载指令分发给分布式下载子系统进行处理,否则将文件路径及其关联信息封装成识别指令分发给分布式识别子系统进行识别;
S4. 当为入库指令时则直接分发给分布式识别子系统进行入库;
S5. 分布式识别子系统识别完成后,将识别结果反馈到系统业务逻辑处理模块;
S6. 系统业务处理模块在接收到识别结果信息后,将有效的识别结果信息上传至分布式存储系统进行存储,并将文件的存储路径和识别结果返回给对应的第三方业务系统。
进一步地,所述的步骤S3包括以下子步骤:
S301. 分布式下载子系统从Redis中获取到下载指令后,对指令中的下载路径进行解析,对下载路径的协议进行区分为FTP和HTTP,并基于协议调用不同的下载方案;
S302. 当使用HTTP协议下载视频时,根据HTTP协议规范对下载路径的有效性进行判断,当判定为无效时,则尝试使用JS和AJAX解析核心解析视频的真实地址,再通过标准HTTP下载协议进行下载。若是图片资源,则直接进行下载;
S303. 当使用FTP下载时,则直接使用FTP协议进行下载;
S304. 下载功能集群从统一的IP代理池中获取有效的IP代理信息,并按时间进行替换;
S305. 下载的资源文件将保存至系统共享目录供业务逻辑处理模块及分布式识别子系统访问。
进一步地,所述的步骤S4包括以下子步骤:
S401. 待入库文件被具有指纹计算能力的一台服务器计算出其对应的特征值和特征向量;
S402. 将该值同步给系统中其余具备相同能力的识别服务器。
进一步地,所述的步骤S5包括以下子步骤:
S501. 分布式识别子系统从Redis中获得识别指令后,解析出待识别文件的共享目录路径及识别类型,将该文件的HASH值在识别类型所对应的黑白名单库中进行搜索,如果存在,则直接返回识别结果,如不存在,则交由预处理模块进行处理;
S502. 预处理模块在接收到识别指令后,对待识别文件进行解码以判断文件的确定编码格式,若为图片,则判断图片尺寸大小是否符合要求,若为视频,则对视频进行关键帧抽帧处理,否则直接返回识别失败结果信息;
S503. 基础识别能力集群在接收到识别指令后,基于自身能力对待识别图片进行判断,将识别结果反馈到系统业务逻辑处理模块,并将识别结果更新到黑白名单库。
进一步地,所述系统业务逻辑处理模块包括异步通信接口、业务控制层和文件存储管理层;所述异步通信接口用于对外通信架构的搭建,并负责进行消息结构解析,以端口区分不同的系统通信连接,使其能够在功能上共享识别服务而在业务上实现独立;所述业务控制层用于视图像快速识别系统业务的控制,将分布式下载子系统和分布式识别子系统有机的结合起来,实现业务指令与内部控制指令和识别结果消息的交互,并实现对分布式识别子系统的识别控制;所述文件存储管理层用于处理产生的临时文件的维护管理功能,并负责处理与分布式存储系统的交互功能。
进一步地,所述基础识别能力集群的识别能力包括基于特征值和特征向量的指纹比对能力与基于深度学习的模式识别能力。
本发明具有以下优点:
本发明基于Nosql理念进行设计,下载子系统和视图像识别子系统均采用分布式部署策略,利用Redis进行消息分发,并利用黑白名单库大幅降低硬件运算资源,具有容错性高、扩展性高、成本低、速度快等特点,同时构建了通用性的异步接口方式,可以方便的与第三方系统进行业务对接。
附图说明
图1 为本发明的方法步骤示意图。
图2 为本发明的信号流向示意图。
具体实施方式
下面结合附图对本发明做进一步的描述,但本发明的保护范围不局限于以下所述。
如图1和图2所示,一种基于大数据环境下的视图像快速识别系统,构建系统业务逻辑处理模块,通过利用Mina服务器实现的系统业务异步通信接口定义对外数据交互方式,并将业务指令转化系统内部的控制指令,实现策略控制;另外将识别到的视图像文件上传至分布式存储系统(FASTDFS)中进行永久性存储。
系统业务逻辑处理模块架构主要由异步通信接口、业务控制层、文件存储管理层组成。其中通信接口层主要负责对外通信架构的搭建,包括Mina服务器、Redis等,并负责进行消息结构解析,另外通过构建多个MINA服务端用于连接多个第三方系统,以端口区分不同的系统通信连接,使其能够在功能上共享识别服务而在业务上实现独立;业务控制层主要负责视图像快速识别系统业务的控制,将下载子系统、识别子系统有机的结合起来,实现业务指令与内部控制指令和识别结果消息的交互,并基于系统既定策略实现对识别子系统的识别控制;文件存储管理层主要负责处理系统产生的临时文件的维护管理功能,并负责处理与分布式存储系统(FASTDFS)的交互功能。
系统业务逻辑处理模块基于流水线消息控制实现策略控制。其中,投票策略控制是通过在识别指令中封装过程信息实现异步的策略控制,将每一种识别能力的识别结果递增保存至识别指令中,当文件被所有识别能力识别完成后,再统一根据保存的过程信息判断系统的整体识别结果
一种基于大数据环境下的视图像快速识别系统构建分布式下载子系统,利用Redis实现分布式消息分发框架向多台下载节点提供下载指令,下载节点通过对HTTP/HTTPS、FTP等标准协议的支持将远端文件下载至系统共享目录。
下载节点支持反爬技术,通过集成JS、AJAX等页面开发技术的解析核心模拟浏览器解析动作,从而获得所需下载资源的真实地址,同时,下载子系统构建了统一的IP代理池,通过下载节点的反馈实时监测代理IP的有效性并进行更新,从而避免相同IP多次访问远端服务器而被禁止的风险。
一种基于大数据环境下的视图像快速识别系统构建视图像识别子系统,当收到的为识别信令时,待识别的视图像首先会通过文件HASH值进行在系统的黑白名单中进行搜索,如果HASH值已经存在黑白名单库中,则可快速返回对应的结果,不存在的则交由预处理模块进行处理,过滤掉损坏、尺寸过小等无效的文件,并最终确定待测文件的具体编码格式,另外还将对视频文件进行关键帧抽帧从而转化为图片以方便识别;在完成预处理后,视图像将依据识别信令通过预定的Redis键分发给不同的识别能力进行分类识别,最终形成识别结果,并将该结果更新到系统黑白名单库中。当收到的为入库指令时,则计算出该入库视图像的特征点及特征向量并将结果进行存储,同时将该结果同步至所有指纹识别能力中。
视图像黑白名单库基于系统支持的识别能力在HBASE中建立不同的数据库,当文件被相应的识别能力识别后,则在所对应的数据库中以文件HASH值为key,识别结果为VALUE的方式进行存储,在下一次得到相同文件识别请求时,可通过HASH值快速检索出识别结果。
预处理模块对待测视图像进行规则化处理,利用FFMPEG开源程序判断待测视图像文件的有效性,过滤掉损坏、尺寸过小等无效文件,并确定待测视图像文件的具体编码格式,如JPEG、MP4等。
视图像识别能力基于Redis键值进行分布式部署,相同识别能力共用相同的Redis键值,并共同消费该键值中所存储的识别信令,从而实现同一识别能力的并行计算。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。