一、前言

本文是《人脸识别完整项目实战》系列博文第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 。

微信公众号:

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

  1. 【人脸识别实战一】系统架构设计

    1.前言 <人脸识别实战>系列文章将讲述一个人脸识别系统的设计与实现过程.本文是系列文章的开篇,主要描述系统的整体架构和各模块的功能职责,以及系统所需要的环境依赖部署.详细的设计细节及项目 ...

  2. 项目实战:动态系统的设计(类似朋友圈)

    功能需求 发布动态:类似朋友圈的功能,支持图片.文字.视频. 读取动态:支持推荐.最新.最热等栏目. 删除动态:支持发布者删除,运营删除(包括硬删除和软删除). 审核动态:需要有正常.审核中.封禁中等 ...

  3. spring boot项目实战之理财系统

    springboot项目实战之理财产品系统 项目完整代码下载地址: https://gitee.com/chuzhuyong/financial-project/tree/master 一.项目准备 ...

  4. Django项目实战——用户投票系统(三)

    Django项目实战--用户投票系统(三) 承接上文 官方文档链接附上: 编写你的第一个 Django 应用,第 3 部分 | Django 文档 | Django (djangoproject.co ...

  5. Android园区部队人脸识别源码门禁项目讲解

    Android园区部队人脸识别源码门禁项目讲解 这边搞人脸识别相关项目有一段时间,今天抽时间讲述一个经典的人脸识别项目:部队人脸识别门禁系统. 大家都知道部队对人员管理安全要求是相当高的,很多保密的技 ...

  6. python项目实战——银行取款机系统(七)

    项目实战目录 python项目实战--银行取款机系统(一) python项目实战--银行取款机系统(二) python项目实战--银行取款机系统(三) python项目实战--银行取款机系统(四) p ...

  7. python项目实战——银行取款机系统(一)

    项目实战目录 python项目实战--银行取款机系统(一) 前言 今天我们将通过python完成简易银行提款机系统的实战,我们一步步实现我们的要求.话不多说,看操作. 环境使用 python 3.9 ...

  8. python项目实战——银行取款机系统(六)

    项目实战目录 python项目实战--银行取款机系统(一) python项目实战--银行取款机系统(二) python项目实战--银行取款机系统(三) python项目实战--银行取款机系统(四) p ...

  9. JavaEE项目实战(OA系统)之十八_流程审批之一

    JavaEE项目实战(OA系统)之十八_流程审批之一 下面介绍OA系统的另一模块:流程审批. OA系统推崇的是无纸化办公,因此各项事务的流程审批是OA系统的一大类应用. 下面,我们来设计流程审批的数据 ...

最新文章

  1. php数组去重的函数,php数组去重的函数代码
  2. Linux xds100,【图片】【吧主帖】在LINUX(ubuntu)系统下装CCSv6方法(原创)【dsp吧】_百度贴吧...
  3. PHP中的addslashes()
  4. php trace 图形,trace工具定位php性能问题
  5. 微信公共平台接口开发--Java实现
  6. Jquery1.6版本后attr的变化
  7. eshop截取字符串长度 和去掉省略号
  8. php 常用的日期函数,常用php日期函数总结
  9. 【小摘抄】关于C++11下 string各类用法(持续更新)
  10. Effective C++ 重要条款
  11. android数据库开发案例教程,Android Studio项目开发教程 第6章 数据库编程(30页)-原创力文档...
  12. 笔记:制作游戏所需的数学
  13. 美食源码php,美食类门户网站仿豆果网php源码
  14. Win10下使用nvm安装多个版本node.js
  15. pdf线条粗细设置_pdf线条很模糊怎么办 如何调整pdf线条粗细
  16. 微信小程序:小程序内用户帐号登录规范调整和优化建议
  17. 每日一题·648.单词替换·前缀树
  18. 软件工程 wc.exe 代码统计作业
  19. 从live555 实战中了解MakeFile
  20. 面试资料-JAVA基础知识

热门文章

  1. ddr5内存上市时间_DDR5内存即将开始量产!DDR4内存史低价重现
  2. 进度条警告!TheBrain 11落幕!超多思维导图新功能即将登陆12版
  3. 上海申花外援登巴巴离队 加盟土超伊斯坦布
  4. MATLAB Appdesigner开发独立桌面App全流程(二):以实时时间显示为例介绍Timer和StartupFcn的使用以及try catch抛出错误
  5. vue-element-admin完整项目实例
  6. 《Redis开发与运维》各章重点回顾
  7. ipadpro上能跑matlab吗,iPad Pro跑Win10,软硬可算完美? - IT之家
  8. 数字化智慧经营怎么样?做起来难吗?
  9. cppzmq发布订阅模式
  10. php microtime true输出说明,php microtime函数怎么用