一、前言
本文是《人脸识别完整项目实战》系列博文第1部分,第3节《项目系统架构设计》,本章内容系统介绍:人脸系统系统的项目架构设计,包括:业务架构、技术架构、应用架构和数据架构四部分内容。
本内容已经录制成视频课程,详见:网易云课堂
整个《人脸识别完整项目实战》系统架构结构如下图所示:
项目概述篇:系统介绍人脸识别项目的系统架构设计、项目关键技术说明、项目业务需求分析、项目业务流程设计;
环境部署篇:提供C++和Python两种编程语言的版本,系统介绍项目开发环境概述、DLib框架源码编译、项目工程文件创建、项目开发环境配置、项目性能优化设置;
程序设计篇:从实时视频采集开始,涵盖人脸区域检测、人脸特征点标定、人脸对齐、人脸比对和活体检测等全部技术环节的代码设计、运行演示和执行结果输出;
模型训练篇:基于人脸识别区域检测和人俩识别特征点标定两个应用场景,介绍数据样本采集、算法模型训练和算法模型测试的过程,让大家都人脸识别有一个完整的直观的认识;
算法原理篇:基于人脸识别区域检测和人俩识别特征点标定两个应用场景,人脸区域检测和人脸特征点标定的算法原理和实现机制,让大家对人脸识别与机器学习、深度学习进行有效关联;
学习框架篇:系统介绍主流深度学习框架,重点就本课程用到Dlib深度学习框架进行介绍,通过dlib深度学习实战案例1和dlib深度学习实战案例2,两个完整的案例,让大家对dlib的深度学习框架有一个直观的认识;
二、正文
2.1 业务架构
人脸识别系统的业务架构,可以分为三大层次:样本标注、模型训练和模型应用。样本标注,包括样本标注工具的使用、人脸区域检测样本标注和人脸特征点标定样本标注;模型训练,包括人脸区域检测模型训练、人脸区域检测模型评估,人脸特征点标定模型训练、人脸特征点标定模型评估,已经人脸比对模型训练和人脸比对模型评估;模型应用,包括实时视频采集、实时图像抓拍、实时人脸检测、实时人脸特征点标定、实时人脸特征点对齐、实时人脸比对、实时眨眼识别、实时张嘴识别。人脸识别业务架构如下图所示:
2.2 技术架构
人脸识别的技术架构,可以划分为四个层次:基础设施层、学习框架层、算法模型层和计算机视觉技术层。基础设施层主要包括CPU/GPU/云集算和大数据,其中与人脸识别项目相关度最高的是GPU,对应的开发框架是cuda。学习框架层主要包括计算机视觉相关的Opencv、Dlib、TensorFlow和Keras。算法模型层涉及的关键技术主要包括人脸区域检测算法模型(Hog/CNN),人脸特征点检测算法模型(ResNet/CNN),人脸对齐算法模型、人脸验证算法模型和活体检测算法模型。计算机视觉技术层主要包括实时视频采集、实时图像抓拍、实时人脸检测、实时人脸特征点标定、实时人脸特征点对齐、实时人脸比对、实时眨眼识别、实时张嘴识别等。人脸识别系统的技术架构如下图所示:
2.3 应用架构
典型的人脸识别系统,通常采用C/S/D架构,分为客户端、服务器端和数据端。其中客户端承担人脸采集和人脸注册两大职责。人脸采集功能包括视频采集、实时人脸区域检测、实时人脸区域抓拍和人脸识别接口调用。人脸注册功能包括:实时视频采集、实时人脸区域检测、实时人脸区域抓拍和人脸注册接口调用。服务器端负责实际的人脸特征点检测、人脸特征点对齐、人脸比对、眨眼识别、张嘴识别等实际功能,并提供人脸识别服务接口和人脸注册服务接口。数据端负责数据资源和模型资源的管理和维护,包括注册人脸图像库、注册人脸标签库、人脸区域检测模型、人脸特征点标注模型和人脸验证模型等。人脸识别系统的应用架构如下图所示:
2.4 数据架构
人脸识别系统的数据架构,分为样本数据、训练模型和应用数据三个层次。样本数据层是训练人脸识别相关模型的输入数据,包括人脸图像和标签数据;训练模型层则包括人脸区域检测模型、人脸特征点标注模型、人脸验证模型等;应用数据层则包括注册人脸资源库和注册人脸标签库。人脸识别系统数据架构如下图所示:
三、未完待续
本文是《人脸识别完整项目实战》系列博文第3章《项目系统架构设计》,全文共53个章节,持续更新,敬请关注。人脸识别技术交流QQ群:859860225 。
微信公众号:
作者:张子良
出处:http://www.cnblogs.com/hadoopdev
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。