人脸识别完整项目实战(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 。
微信公众号:
人脸识别完整项目实战(3):项目系统架构设计相关推荐
- 【人脸识别实战一】系统架构设计
1.前言 <人脸识别实战>系列文章将讲述一个人脸识别系统的设计与实现过程.本文是系列文章的开篇,主要描述系统的整体架构和各模块的功能职责,以及系统所需要的环境依赖部署.详细的设计细节及项目 ...
- 项目实战:动态系统的设计(类似朋友圈)
功能需求 发布动态:类似朋友圈的功能,支持图片.文字.视频. 读取动态:支持推荐.最新.最热等栏目. 删除动态:支持发布者删除,运营删除(包括硬删除和软删除). 审核动态:需要有正常.审核中.封禁中等 ...
- spring boot项目实战之理财系统
springboot项目实战之理财产品系统 项目完整代码下载地址: https://gitee.com/chuzhuyong/financial-project/tree/master 一.项目准备 ...
- Django项目实战——用户投票系统(三)
Django项目实战--用户投票系统(三) 承接上文 官方文档链接附上: 编写你的第一个 Django 应用,第 3 部分 | Django 文档 | Django (djangoproject.co ...
- Android园区部队人脸识别源码门禁项目讲解
Android园区部队人脸识别源码门禁项目讲解 这边搞人脸识别相关项目有一段时间,今天抽时间讲述一个经典的人脸识别项目:部队人脸识别门禁系统. 大家都知道部队对人员管理安全要求是相当高的,很多保密的技 ...
- python项目实战——银行取款机系统(七)
项目实战目录 python项目实战--银行取款机系统(一) python项目实战--银行取款机系统(二) python项目实战--银行取款机系统(三) python项目实战--银行取款机系统(四) p ...
- python项目实战——银行取款机系统(一)
项目实战目录 python项目实战--银行取款机系统(一) 前言 今天我们将通过python完成简易银行提款机系统的实战,我们一步步实现我们的要求.话不多说,看操作. 环境使用 python 3.9 ...
- python项目实战——银行取款机系统(六)
项目实战目录 python项目实战--银行取款机系统(一) python项目实战--银行取款机系统(二) python项目实战--银行取款机系统(三) python项目实战--银行取款机系统(四) p ...
- JavaEE项目实战(OA系统)之十八_流程审批之一
JavaEE项目实战(OA系统)之十八_流程审批之一 下面介绍OA系统的另一模块:流程审批. OA系统推崇的是无纸化办公,因此各项事务的流程审批是OA系统的一大类应用. 下面,我们来设计流程审批的数据 ...
最新文章
- php数组去重的函数,php数组去重的函数代码
- Linux xds100,【图片】【吧主帖】在LINUX(ubuntu)系统下装CCSv6方法(原创)【dsp吧】_百度贴吧...
- PHP中的addslashes()
- php trace 图形,trace工具定位php性能问题
- 微信公共平台接口开发--Java实现
- Jquery1.6版本后attr的变化
- eshop截取字符串长度 和去掉省略号
- php 常用的日期函数,常用php日期函数总结
- 【小摘抄】关于C++11下 string各类用法(持续更新)
- Effective C++ 重要条款
- android数据库开发案例教程,Android Studio项目开发教程 第6章 数据库编程(30页)-原创力文档...
- 笔记:制作游戏所需的数学
- 美食源码php,美食类门户网站仿豆果网php源码
- Win10下使用nvm安装多个版本node.js
- pdf线条粗细设置_pdf线条很模糊怎么办 如何调整pdf线条粗细
- 微信小程序:小程序内用户帐号登录规范调整和优化建议
- 每日一题·648.单词替换·前缀树
- 软件工程 wc.exe 代码统计作业
- 从live555 实战中了解MakeFile
- 面试资料-JAVA基础知识
热门文章
- ddr5内存上市时间_DDR5内存即将开始量产!DDR4内存史低价重现
- 进度条警告!TheBrain 11落幕!超多思维导图新功能即将登陆12版
- 上海申花外援登巴巴离队 加盟土超伊斯坦布
- MATLAB Appdesigner开发独立桌面App全流程(二):以实时时间显示为例介绍Timer和StartupFcn的使用以及try catch抛出错误
- vue-element-admin完整项目实例
- 《Redis开发与运维》各章重点回顾
- ipadpro上能跑matlab吗,iPad Pro跑Win10,软硬可算完美? - IT之家
- 数字化智慧经营怎么样?做起来难吗?
- cppzmq发布订阅模式
- php microtime true输出说明,php microtime函数怎么用