专栏首页数据饕餮人脸识别完整项目实战(3):项目系统架构设计

人脸识别完整项目实战(3):项目系统架构设计

一、前言

本文是《人脸识别完整项目实战》系列博文第1部分,第2节《项目系统架构设计》,本章内容系统介绍:人脸系统系统的项目架构设计,包括:业务架构、技术架构、应用架构和数据架构四部分内容。

本内容已经录制成视频课程,详见CSDN学院

整个《人脸识别完整项目实战》系统架构结构如下图所示:

项目概述篇:系统介绍人脸识别项目的系统架构设计、项目关键技术说明、项目业务需求分析、项目业务流程设计;

环境部署篇:提供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 。

微信公众号:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简单易学的机器学习算法——Rosenblatt感知机的对偶解法

        在博文“简单易学的机器学习算法——Rosenblatt感知机”中介绍了Rosenblatt感知机的基本概念。Rosenblatt感知机是针对线性可分问题...

    zhaozhiyong
  • 论文阅读学习 - ModaNet: A Large-scale Street Fashion Dataset with Polygon Annotations

    原文:论文阅读学习 - ModaNet: A Large-scale Street Fashion Dataset with Polygon Annotatio...

    AIHGF
  • 漫谈加持Blink的Flink和Spark

    今天朋友圈有篇【阿里技术】发的文章,说Blink的性能如何强悍,功能现在也已经比较完善。譬如:

    用户2936994
  • 有大数据就有人工智能的机会

    人工智能时代,深度学习和大数据成了密不可分的一对儿。深度学习可以从大数据中挖掘出以往难以想象的有价值的数据、知识或规律。简单来说,有足够的数据作为深度学习的输入...

    黄成甲
  • 机器学习 - 交叉熵Cross Entropy

    假设训练数据 D={(x1,y1),(x2,y2),...,(xn,yn)}D={(x1,y1),(x2,y2),...,(xn,yn)}D = \{(x_1,...

    AIHGF
  • Caffe 实践 - 基于 ResNet101 的 Multi-label 多标签标注的训练与部署

    以前曾尝试过修改 Caffe ImageDataLayer 源码的方式来读取多个 labels - ImageMultilabelDataLayer [Caff...

    AIHGF
  • 简单易学的机器学习算法——朴素贝叶斯

        贝叶斯推断告诉我们,先预估计一个“先验概率”,然后加入实验结果,看这个实验到底是增强还是削弱了“先验概率”,由此得到更接近事实的“后验概率”。

    zhaozhiyong
  • 简单易学的机器学习算法——线性可分支持向量机

        线性可分支持向量机是用于求解线性可分问题的分类问题。对于给定的线性可分训练数据集,通过间隔最大化构造相应的凸二次优化问题可以得到分离超平面:

    zhaozhiyong
  • 简单易学的机器学习算法——非线性支持向量机

        前面三篇博文主要介绍了支持向量机的基本概念,线性可分支持向量机的原理以及线性支持向量机的原理,线性可分支持向量机是线性支持向量机的基础。对于线性支持向量...

    zhaozhiyong
  • 论文中的机器学习算法——基于密度峰值的聚类算法

        最近有一篇Science上的文章引起了大家的关注,是由Alex Rodriguez和Alessandro Laio发表的《Clustering by f...

    zhaozhiyong

扫码关注云+社区

领取腾讯云代金券