DAV首页
数字音视工程网

微信公众号

数字音视工程网

手机DAV

null
null
null
卓华,
招商,
null
null
null
快捷,
null

我的位置:

share

海康威视:海量人脸图片检索技术

来源:数字音视工程网        编辑:追忆    2014-11-03 15:38:58     加入收藏    咨询

咨询
所在单位:*
姓名:*
手机:*
职位:
邮箱:*
其他联系方式:
咨询内容:
验证码:
不能为空 验证码错误
确定

  传统针对海量图片的检索系统中,由于采用单节点架构,面对海量图片数据检索时存在检索速度慢、并发性差等诸多问题。本文提出了一种海量图片检索方法,将...

  传统针对海量图片的检索系统中,由于采用单节点架构,面对海量图片数据检索时存在检索速度慢、并发性差等诸多问题。本文提出了一种海量图片检索方法,将图片检索技术与并行计算框架相结合,在分布式文件系统里存储人脸图像模型,计算节点采用分布式存储调度算法,增强对多数据的并发处理能力,同时对计算后的数据进行压缩处理。首先采用海康威视自主开发的人脸识别算法从人脸图片里提取出人脸特征形成模型数据,然后采用多线程运算方式与海量图片库进行模型的逐一对比,采用统一排序节点接收各并行计算函数任务的计算结果,并按相似度大小进行排序,最后根据排序结果找到最优检索结果。实验结果表明,该方法在处理大数据图像检索时,与单节点检索系统相比,能够有效降低检索时间,提高检索速度。同时,由于存储在分布式文件系统内,能够保证人脸图片文件的高冗余性,避免丢失数据。

  海量人脸图片检索技术简介

  图片检索是直接根据初始查询图片的视觉特征,在海量图片库找出与之相似的图像,类似的应用叫做“以图搜图”。利用图片自身去检索图片,快速有效地提高了图片检索的性能,但在图片检索的过程中需要消耗大量的机器硬件资源,尤其是CPU资源。随着计算机科学技术和数字图像采集技术的迅速发展以及互联网的普及应用,每天从各行各业都产生出大量的多媒体数据,这些数据大部分是以图片和视频等形式表现的,传统基于单节点架构的图片检索系统存在检索速度慢、并发性差,实时性和稳定性无法保障等诸多问题,不能满足人们对于检索性能的要求。因此一种基于内容的实现图片快速检索、并行处理、及时响应方法成为了研究热点。云计算可以将任务分配到各个工作节点共同完成任务,具有分布式、并行处理能力,为海量人脸图片检索提供了一种新的研究思路。

  海康威视采用分布式架构构建的海量图片检索系统依赖于自主开发的分布式计算平台。该平台拥有高容错性、高可靠性、高效性、可扩展的软件体系,适合将各种资源、数据部署在廉价的机器上,进行分布式存储和分布式管理,让用户轻松支持上千个节点以及PB级数据量的运算。

  系统总体设计

  本文所介绍的系统的设计目标是实现海量、异构、分布的图片资源的快速检索和及时响应。系统采用分布式构架,由上而下分别由表现层、业务逻辑层以及数据及数据处理层组成,整体框架如下图所示。

  图1 整体架构图

  前端用户通过Internet获取服务,用来上传示例图片和接收Web服务器的处理结果。在服务器端,业务逻辑层主要根据用户检索请求执行相应业务处理。数据及数据处理层包括分布式文件系统的存储和管理模块,海量图片数据导入、请求模块。数据处理层是系统最核心的部分,负责人脸图片数据的分块、人脸特征的提取、匹配以及结果的返回等。

  本系统所采用的分布式文件系统采用Master/Slave这样的管理者/工作者模式的架构,即一个管理者和多个工作者方式。当用户通过客户端发出请求对文件进行读写操作时,集群通过管理者和工作者的交互实现读写操作。管理者是整个分布式文件系统的核心,用于管理数据节点和客户端对文件的访问,管理文件系统的命名空间,维护整个文件系统的数据结构,记录和保存系统中所有的文件和元数据。这些信息以备份文件的形式保存在管理者节点计算机上,该管理者计算机又有多台备份节点,一旦管理者节点计算机出现异常,备份计算机立即将所有的元数据信息读入内存,承担起管理者角色。当集群中的某一节点数据丢失造成任务失败后,管理者节点会自动重新部署计算任务。工作者是文件系统的工作节点,根绝需要负责存储或检索数据库,各数据快的存储位置随系统的调整而改变。管理者节点会自动搜集分布式文件系统内的目录信息、磁盘空间信息、备份因子、空闲的节点数目等信息。

  对于大数据量的计算,通常采用的处理手法就是并行计算。首先要将一个逻辑上完整的大任务分解城若干个子任务,系统根据任务的信息采用适当的策略把不同的任务分配带不同资源节点上去运行,当所有子任务处理结束,则完成整个大任务的一次处理,最后将处理结果传给用户。

  系统实现关键技术

  海量人脸图片检索系统处理的数据可以支持PB级以上的数据,这是传统的单节点计算无法达到的。通过对较大的图片进行分块处理,采用分布式存储调度算法,将系统提升到支持多数据的并发处理,同时采用压缩存储对多数据进行处理。

  本系统在处理大块人脸图片文件时采用的是分块存储的方法,即将一大块文件分块处理成若干块小的数据分块,并将这些属于同一大文件的数据分块以一个文件的形式存储,利用分布式存储调度算法,将分块后的所有数据存储在不同的存储节点上,并实施相应的备份机制。图片存储是人脸图片检索的基础,是一个数据密集型计算过程。经过算法建模生成的模型值最终被存储在基于列式的分布式数据库中,当数据库内的数据集非常大时,扫描搜索整个表要花费比较长的时间,为了减少检索图片的时间和提高检索效率,可以将所有的数据读入内存,这样可以在检索时减少磁盘的I/O操作,进而提高检索速度。

  并行计算框架参照MPI计算模型,实现了并行计算函数和统一排序函数。并行计算函数的功能是负责将数据分散处理,统一排序函数的功能是负责将处理后的中间结果进行聚集。在整个并行计算过程中,通过调用一个并行计算函数方法对每一个键值对进行处理,并将处理后的中间结果写入到内存,最后保存到本地文件系统里。统一排序函数实现了对所有节点处理信息的汇总、排序、输出。本系统采用的并行计算框架负责在图片检索过程中对图片匹配及人脸相似度的计算,人脸相似度计算依赖海康威视自主开发的人脸识别算法。通过调用算法库匹配模型值,将匹配处理结果按照相似度从高到低的顺序返回给用户。通过算法库获取图片中出现的人脸图片并对该人脸进行建模,然后由工作者节点将该模型传送至各任务计算节点进行运行,接着每个节点分别返回计算结果并汇总到某一节点,最后由该计算节点汇总数据后按照相似度从高到低的顺序返回用户设定的若干条匹配人脸图片及相关信息。  实验结果及分析

  本系统搭建了一个实验集群,该实验集群由四台普通的2U服务器组成,1个Master节点,3个Slave节点。每台机器的配置如下:CPU Intel E5,内存DDR3 32GB,以太网卡100Mb/s,操作系统是Centos 6.2。

  为了测试集群系统的性能,我们使用了不同数据级别的人脸图片数据对系统进行测试,实验结果如下图所示。

  图2 集群测试数据图

  测试数据样本数量级分别为10万、50万、100万、500万、1000万、5000万、1亿、2亿,这8个级别的人脸图片、基本信息及模型数据。

  4台机器的总内存数量是128GB,其中操作系统需要占用大约4GB/台,Master节点上分布式框架服务需要占用4GB,Slave节点上分布式框架协同管理服务需要占用2GB/台,4台机器剩余的可用内存一共有102GB,每张人脸图片的大小为10K,模型值为6K,其余人脸描述信息是4K,一共每条人脸信息需要20K,加上三份备份原则,所以102GB一共可以读取800万数据到内存。从上面数据图可以看出,当所有数据都在内存中时读取速度非常的快,每次检索都能控制在3秒钟以内。随着数据量的增大,到1000万时检索耗时上升到10秒左右,原因是需要从分布式数据库里读取数据用于检索,这样增加了磁盘I/O消耗。当数据量达到2亿的顶峰时,检索耗时也达到了顶峰的2分钟,虽然看起来耗时增长很多,但是与传统架构相比还是具有相当大的速度优势。

  从实验可以得出,当集群内存足够大时,可以把所有的数据读入内存,这样可以保证快速检索、快速结果呈现,同时也能做到数据的动态容灾备份。

  本文总结

  本文介绍的海量人脸图片检索系统将大数据集图像检索任务进行分解,通过与分布式文件系统和并行计算框架相结合的应用模式,实现各节点协同完成图片检索任务。通过基于若干个不同数量级别的图片数据测试,将实验结果进行对比验证,表明随着数据量的快速增长本系统不会受到太大的性能冲击,没有出现单节点击器的速度慢、并发性差等问题,有效提高了图片检索速度、并发性以及处理海量数据的能力。

  未来的工作重点将放在如何快速地从海量视频文件中搜索出指定的人脸图片,并对搜索出来的图片进行相关性数据挖掘,通过对海量数据分析为公安机关等特定部门提供更丰富的技术手段,减少人工过滤视频的苦恼。

免责声明:本文来源于网络收集,本文仅代表作者个人观点,本站不作任何保证和承诺,若有任何疑问,请与本文作者联系或有侵权行为联系本站删除。(原创稿件未经许可,不可转载,转载请注明来源)
扫一扫关注数字音视工程网公众号

相关阅读related

评论comment

 
验证码:
您还能输入500