宙视达专业视频结构化及千万级人脸库比对服务器系统架构及优势说明

来源:宙视达 / 日期:2020-11-18 / 阅读:2921
文章摘要:整个系统采用中间件服务器也即解析服务器,实现了端云结合的体系架构。充分的发挥了前端智能摄像机的边缘计算作用,将大量没有人经过的视频帧进行了过滤,每路视频25帧*60分*60秒*24小时=216万张帧,有人经过的可能只有2000-5000张,智能摄像机就是把这几千张照片找出来,也充分的发挥了具有专业计算能力的结构化服务器在算法上的绝对优势,让整个系统的可用性及监控监管的力度大幅度的提升。

宙视达专业视频结构化及千万级人脸库比对服务器系统架构及优势说明

整个系统采用中间件服务器也即解析服务器,实现了端云结合的体系架构。充分的发挥了前端智能摄像机的边缘计算作用,将大量没有人经过的视频帧进行了过滤,每路视频25帧*60分*60秒*24小时=216万张帧,有人经过的可能只有2000-5000张,智能摄像机就是把这几千张照片找出来,也充分的发挥了具有专业计算能力的结构化服务器在算法上的绝对优势,让整个系统的可用性及监控监管的力度大幅度的提升。

具备有行业最完整的21项属性102个不同值的结构化检测能力,性别:不确定、男性、女性。年龄阶段:不确定、幼儿、青年、中年、老年。戴眼镜:不确定、戴眼镜、无眼镜。使用手机:不确定、未使用手机、使用手机。背包:不确定、无背包、单肩包、双肩包。撑伞:不确定、打伞、未打伞。帽子:不确定、无帽、普通帽、安全帽。吸烟:不确定、吸烟、未吸烟。交通工具:不确定、没坐车、摩托车、自行车、三轮车、无交通工具。手提物:不确定、有提、无手提物。上装大类:不确定、长袖、短袖。上装颜色:不确定、红色、橙色、黄色、绿色、蓝色、紫色、粉色、黑色、白色、灰色、棕色。上装纹理:不确定、纯色、图案、碎花、条纹或格子。上装细分:不确定、T恤、无袖、衬衫、西装、毛衣、夹克、羽绒服、风衣、外套。下装种类:不确定、长裤、短裤、长裙、短裙。下装颜色:不确定、红色、橙色、黄色、绿色、蓝色、紫色、粉色、黑色、白色、灰色、棕色。遮挡:不确定、无遮挡、轻度遮挡、重度遮挡。身体朝向:不确定、正面、背面、左侧面、右侧面。是否残疾:不确定、正常人体、非正常人体。上方残疾:不确定、有上方截肢、无上方截肢。下方残疾:不确定、有下方截肢、无上方截肢。

中间件服务器不仅只是将摄像机的图片流,推送给结构化服务器,这中间需要一个缓存与调度机制,把结构化服务器的作用最大化。而且所有的照片存储,检索,回放等功能,也由中间件服务器来实现。使得结构化服务器只需完成最原始的智能分析即可,通过API把计算能力提供给中间件服务器,而边缘计算摄像机也只需完成最基本的人车检测即可,无需承载复杂的算法。而中间件服务器的功能定义,及向上级平台的接口。

整个系统采用中间件服务器也即解析服务器,实现了端云结合的体系架构。充分的发挥了前端智能摄像机的边缘计算作用,将大量没有人经过的视频帧进行了过滤,每路视频25帧*60分*60秒*24小时=216万张帧,有人经过的可能只有2000-5000张,智能摄像机就是把这几千张照片找出来。也充分的发挥了具有专业计算能力的人脸比对服务器在算法上的绝对优势。

可对人脸进行分析,获得眼、口、鼻轮廓等72个关键点定位准确识别多种人脸属性,如性别、年龄、表情、情绪,正脸系数等信息。该技术可适应大角度侧脸,遮挡,模糊,表情变化等各种实际环境。通过模式匹配的方式,512个特征征相当于512个字段,即相当于数据库查询的方式实现千万级人员库的秒级检索

中间件服务器不仅只是将摄像机的图片流,推送给结构化服务器,这中间需要一个缓存与调度机制,把比对服务器的作用最大化。而且所有的照片存储,检索,回放等功能,也由中间件服务器来实现。使得比对服务器只需完成最原始的比对即可,通过API把计算能力提供给中间件服务器,而边缘计算摄像机也只需完成最基本的人脸检测即可,无需承载复杂的高精度的比对算法。 智能人脸中间件识别服务器

中间件服务器同时也承载了应用层的一些比对逻辑,在以图搜图或陌生人轨迹的应用场景中就发挥了很大的作用。本项目610个摄像机一年产生了1.8亿张照片,常规的系统架构是需要把1.8亿张照片保存在比对服务器中。检索的时候需要超高性能的服务器,将提供的照片与在一秒或几秒与抓拍保存的这1.8亿张照片进行比对。提供的照片可能是5年前的证件照,即便这个人在1.8亿张里有100张照片,大部分的非正脸照片也是比对不成功的,达不到85%的相似度。

而我们通过中间件服务器的方案,在比对服务器中只需保存不重复的最多1000万个人员的临时模版,而且每个模版都是当前在这610个摄像机前经过所抓拍的最为正脸的照片。每抓拍到一张照片,就去比对服务器中检索,如果不存在则新建一个模版。如果存在且当前所抓照片正脸系数比库中的还要高,就替换为刚抓的照片,如果要低则只返回ID号。实现了抓拍的当时对所有的照片已经进行了清洗,已经标注了一个唯一的FACEID,只是临时的,没详细的身份信息,但活动的频率与轨迹已经是在存入抓拍记录时就计算好了的。

对这1.8亿张照片进行检索时就优化为,从1000万张正脸的临时模版中去找到这个临时的FACEID,再根据这个FACEID去抓拍记录中进行数据库级别的查寻,速度可以在秒级。同时5年前的照片与最正脸的当前照片比对容易成功,而这个最正脸的照片与这610个摄像机中100张照片,都能比对成功。同样的摄像机抓的最正脸的模版,与第二次经过类似场景的照片,相似度可以达百分之百。

三、高性能检索服务器    动态人脸分析识别中间件服务器

检索服务器是整个系统结构化后非多媒体数据的集中存储服务器,人形结构化的属性特征及各中间件服务器的人脸抓拍记录的保存,但并不包含任何图片及视频数据,建立高性能的索引,保证对上十亿条标准线性数据的秒级检索。1年有1.8亿条抓拍记录,1年产生的人形结构化数据至少是人脸数据的两倍为3.6亿条,1.8+3.6=5.4亿条数据。适当做些性能的冗余,面对突发性的数据增涨。10亿条记录平均每条记录按100个字节,即93GB。整个存储量相对于视频录像来说并不算大的,并发写入的速度也不会太大,但检索的效率要求极高。存储的硬件自然要求比较高,数据库产品的选择也很重要,但应用层的一些策略更起决定性作用。

标准的数据库是针对企业级应用,不仅有增加删除,而且有更新动作。但人脸抓拍记录,及结构化数据都是具有严格的时间先后顺序,完全线性的存储。而且各通道之间也是完全孤立,没有任何关联性的,这些数据也是不可攥改的。针对这样的特性,我们完全可以把它按功能分割成不同的数据表,不同的数据库,或不同的数据库服务器。高性能检索服务器正是在不成倍的增加硬件成本的前提下,实现十倍以上的速度提升,在应用层做深度的定制。

周期性的删除一年前或是三年前的记录,用简单的删除语句,就算是一个月删除一次,也是上亿条记录,如果集中到一个数据库,一张表,可能需要数分钟的时间,而且会留下大量的碎片空间,长时间稳定运行很受影响。目前的数据库产品,要找到针对性解决这个问题的并不容易。我们在应用层就可以轻易解决这个问题,采用截断表或是删除表的方式,速度极快,可以达到毫秒极,相当于Format /q的作用是一样的。我们每个月建立一张独立的表格,从安防的应用场景来看,检索的时候一般也是有一定时间周期的,只要检索的时候根据时间段分别从不同表格去检索,最后汇总即可,我们就可以按表格来截断或是删除即可。这样不仅删除的速度可以达到秒级,写入的速度也会极大的提升。

 

这样的技术方案,即便是十年时间而且摄像机的数量达到十倍以上,达到1000亿条记录,通过2-3台服务器集成的方式,将不同的摄像机分布在不同的服务器上,也是可以达到同样的秒级检索的要求的,成本只需要按单台服务器承载数量的倍数增加即可。