retinaface+arcfae实现的人脸系统 人脸考勤 人脸打卡 宿舍管理 人脸信息管理系统

实际操作演示

人脸识别的贴图 戴眼镜 人脸跟踪


人脸识别 人脸活体检测 宿舍信息管理系统

神经网络人脸识别考勤系统

系统下载

1.人脸识别 人脸眼镜贴图 人脸跟踪
2.模拟宿舍门禁系统
3.人脸识别宿舍门禁系统

RetinaFace作用

RetinaFace是单步(one stage)推理人脸检测器,同时输出人脸框和5个人脸关键点信息。利用RetinaFace输出的人脸框定位人脸,landmark进行人脸矫正。检测到人脸的 5 个特征点:左眼,右眼,鼻子,左嘴角,右嘴角。计算双眼中心点的位置和双眼连线的倾斜角度 ,得到仿射变换矩阵 ,将整张图片进行仿射变换得到 align_image;根据从 原图检测的 2D 框从 align_image 图片中抠出人脸并进行下一步处理。
在这里插入图片描述

RetinaFace原理

简化版mnet结构
RetinaFace的mnet本质是基于RetinaNet的结构,采用了特征金字塔的技术,实现了多尺度信息的融合,对检测小物体有重要的作用,RetinaNet的结构如下:
在这里插入图片描述

RetinaNet

简化版的mnet与RetinaNet采用了相同的proposal策略,即保留了在feature pyramid net的3层特征图每一层检测框分别proposal,生成3个不同尺度上的检测框,每个尺度上又引入了不同尺寸的anchor大小,保证可以检测到不同大小的物体。

简化版mnet与RetinaNet的区别除了在于主干网络的选择上使用了mobilenet做到了模型的轻量化,最大的区别在于检测模块的设计。

mnet使用了SSH检测网络的检测模块,SSH检测模块由SSH上下文模块组成。

上下文模块的作用是扩张预检测区域的上下文信息。上下文模块和conv叠加后生成分类头和回归头得到网络的输出结合组成了一个检测模块。如下图所示:

mnet网络在使用SSH检测模块的同时实现了多任务学习,即在分类和回归的基础上加入了目标点的回归。官方的网络结构采用了5个目标点的学习,后续也可以修改为更多目标点,比如AFLW中的21个目标点以及常用的68或者106个目标点。

原版RetinaFace论文中的检测分支图如下:

注意:在开源简化版的不包含self-supervision部分,但是有5个关键点的extra-supervision部分

Lcls:人脸分类loss

Lbox:人脸框回归loss

Lpts:人脸关键点回归loss,五点

Lpixel:自监督3D Mesh Renderer稠密人脸回归

特征金字塔网络结构:单阶稠密人脸定位,多任务loss学习。

在这里插入图片描述

arcface loss作用

训练(人脸分类器):mobilenet v0.25+ ArcFace loss
测试:从人脸分类器FC1层的输出中提取128维的嵌入特征,对输入的两个特征计算余弦距离,再来进行人脸验证和人脸识别。

Arcface的优点

1.性能高,易于编程实现,复杂性低,训练效率高
2.ArcFace直接优化geodesic distance margin(弧度),因为归一化超球体中的角和弧度的对应。
3.为了性能的稳定,ArcFace不需要与其他loss函数实现联合监督,可以很容易地收敛于任何训练数据集。

Arcface的原理

ArcFace loss:Additive Angular Margin Loss(加性角度间隔损失函数),对特征向量和权重归一化,对θ加上角度间隔m,角度间隔比余弦间隔在对角度的影响更加直接。几何上有恒定的线性角度margen。
ArcFace中是直接在角度空间θ中最大化分类界限,而CosFace是在余弦空间cos(θ)中最大化分类界限。
(1)Softmax loss
在这里插入图片描述

(2)Normalized version of Softmax Loss (NSL)

特征向量归一化,权重归一化
在这里插入图片描述

(3)A-Softmax Loss

θ乘以决策余量m,进行权重归一化,并将偏置项归零(||W_i||=1,b_i=0)

在这里插入图片描述

(4)CosFace Loss

CosFace的LMCL(大间隔余弦损失函数):权重归一化,特征向量归一化到一个固定值s,让cos(θ)加上m(注意是加在了余弦上)
在这里插入图片描述

(5)ArcFace loss

在xi和Wji之间的θ上加上角度间隔m(注意是加在了角θ上),以加法的方式惩罚深度特征与其相应权重之间的角度,从而同时增强了类内紧度和类间差异。
惩罚θ角度的意思就是:训练时加上m就会使θ降低
解释Margin是如何使类内聚合类间分离的:比如训练时降到某一固定损失值时,有Margin和无Margin的e指数项是相等的,则有Margin的θ_yi就需要相对的减少了。这样来看有 Margin的训练就会把 i 类别的输入特征和权重间的夹角θ_yi缩小了,从一些角度的示图中可以看出,Margin把θ_yi挤得更类内聚合了,θ_yi和其他θ类间也就更分离了。
L2归一化来修正单个权重||W_j||=1,还通过L2归一化来固定嵌入特征||x_i|,并将其重新缩放成s。特征和权重的归一化步骤使预测仅取决于特征和权重之间的角度。因此,所学的嵌入特征分布在半径为s的超球体上。
由于提出的加性角度间隔(additive angular margin)惩罚与测地线距离间隔(geodesic distance margin)惩罚在归一化的超球面上相等,因此我们将该方法命名为ArcFace。
在这里插入图片描述

决策边界:ArcFace:Additive Angular Margin,加法角度间隔
在这里插入图片描述

Qt designer界面设计

群 686070107
在这里插入图片描述
在这里插入图片描述

数据库sqllite

特点:

1.轻量级
2.独立性,没有依赖,无需安装
3.隔离性 全部在一个文件夹系统
4.跨平台 支持众多操作系统
5.多语言接口 支持众多编程语言
6.安全性 事物,通过独占性和共享锁来实现独立事务的处理,多个进程可以在同一个时间内从同一个数据库读取数据,但只有一个可以写入数据
所支持的数据类型:

支持NULL,INTEGER,Real,text,blob数据类型
一次代表,空值,整型值,浮点值,字符串类型,二进制对象,
动态类型引用(弱引用)
当某个值插入到数据库是,SQlite将会检查他的类型,如果该类型与关联的列不匹配,SQlite则会尝试将改制转换成该列的类型,如果不能转换,则该值将作为本身的类型储存

SQLite菜鸟教程链接

特征存储npy文件

npy文件是numpy专用的二进制文件,将人脸特征直接保存到npy文件 ,加载时读取。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图像处理大大大大大牛啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值