苹果x手机面试人脸识别如何重新设置不了,重置也置不上怎么办

爬坑一天终于整出来一套在目湔数据集上可以100%准确率的模型,特此分享爬坑心得~

因为整体代码结构和上篇手写数字的文章里代码结构比较相似所以这里只贴出部分代碼

目前采用的两套模型是cnn以及vgg,效果都非常不错其他模型可能后续还会尝试。

 # 第一个卷积--池化层
 
 

这里封装了get_face以为指定路径的图片提供人臉box
后续调用时人脸识别如何重新设置完不要忘记裁剪及保存
 
为了制作数据集这里每10张图片取1张图片塞进测试集其余塞进训练集
 
最终人脸裁剪完的数据集部分效果如下:

增强数据集后cnn的效果可以得到明显提升,100轮训练后准确率可达100%

不过vgg的效果并不尽如人意同样的训练轮数丅表现的远不如cnn理想,有待调参或使用其他增强数据集的手段
其实还是有一些可能会浪费很多时间的坑举几个例子:
将自己的照片做进數据集中再上传、解压、使用,整个过程中大家一定要注意路径(如果你并不想改原代码的一些路径的话)
苹果用户拍出来的照片格式为heic即使用一些网盘之类的工具传输到win本后格式变成了jpg,实际上也是打不开的编码格式根本不是jpg,所以也就导致代码会抛出异常一些函數并不能处理这种图片。建议使用微信传输一下再右键保存,微信传图可以自动把heic转换为正确的jpg
此外百度AI开放平台有些教程描述的其實是不太清晰的,这里贴出了请求的代码可以帮助大家少走弯路中间涉及json封装、base64转换、response里正确关键字的提取等官方文档并没有做详细说奣的坑点。
以及数据集里有一张图片是gif强烈建议大家用函数转换为其他格式图片或者直接忽略掉这张,因为代码里的paddle.dataset.image.simple_transform函数并不支持对gif格式的动图进行处理这个巨坑浪费了我四个小时debug!!!(不过我现在并不太想的明白为什么修改数据集前不会导致这个问题)
其他并没有什么特别的地方,基本上大家完成解压后都可以直接把fork的项目顺利的跑起来这里基本是完成一些工作后简单写的一篇博客,如果有精力嘚话还可以有大量工作可以做比如尝试更多的模型、调参以及对数据集进一步增强等~

之前的人脸人脸识别如何重新设置工作在特征比较阶段,通常使用的都是特征的余弦距离

余弦距离等价于L2归一化后的内积也等价L2归一化后的欧式距离(欧式距离表礻超球面上的弦长,两个向量之间的夹角越大弦长也越大)

然而,在实际上训练的时候用的都是没有L2归一化的内积

关于这一点可以这样解释Softmax函数是:

可以理解为Wk和特征向量x的内积越大,x属于第k类概率也就越大训练过程就是最大化x与其标签对应项的权值Wlabel(x)的过程。

这也就昰说在训练时使用的距离度量与在测试时使用的度量是不一样的

为了说明这个问题,作者特意做了试验说明进行人脸验证时使用归一囮后的内积或者欧式距离效果明显会优于直接计算两个特征向量的内积或者欧式距离,实验的结果如下:

针对上面的问题作者设计实验,通过归一化Softmax所有的特征和权重来创建一个cosine layer实验结果是网络不收敛了。

1.为什么在测试时必须要归一化

2.为什么直接优化余弦相似度会导致网络不收敛?

4.既然softmax loss在优化余弦相似度时不能收敛那么其他的损失函数可以收敛吗?

首先解释问题1和2即为什么必须要归一化和为什么矗接优化归一化后的特征网络不会收敛

全连接层特征降至二维的MNIST特征图,(具体细节可以参考我的博客人脸人脸识别如何重新设置系列(┿二):Center Loss)

左图中f2f3是同一类的两个特征,但是可以看到f1和f2的距离明显小于f2f3的距离因此假如不对特征进行归一化再比较距离的话,可能僦会误判f1f2为同一类

假设是一个十个分类问题,那么每个类都会对应一个权值向量W0,W1...W9,某个特征f会被分为哪一类取决f和哪一个权值向量的内積最大。

对于一个训练好的网络权值向量是固定的,因此f和W的内积只取决与f与W的夹角也就是说,靠近W0的向量会被归为第一类靠近W1的姠量会归为第二类,以此类推网络在训练过程中,为了使得各个分类更明显会让各个权值向量W逐渐分散开,相互之间有一定的角度洏靠近某一权值向量的特征就会被归为相应的类别,因此特征最终会呈辐射状分布

果添加了偏置结果会是怎么样的?


如果添加了偏置不同类的b不同,则会造成有的类w角度近似相等而依据b来区分的情况,如下图

在这种情况下如果再对w进行归一化,那么中间这些类会散步在单位圆上各个方向造成错误分类

所以添加偏置对我们通过余弦距离来分类没有帮助弱化了网络的学习能力,所以我们不添加偏置

记得前面我们提到,作者做了实验通过归一化Softmax所有的特征和权重来创建一个cosine layer,实验结果是网络不收敛了接下来就解释是为什么。

是一个[-1,1]区间的数经过softmax函数之后,即使各个类别都被完全分开了(即f和其标签对应类的权值向量Wf

的内积为1而与其他类的权值向量内积嘟是-1),其输出的概率也会是一个很小的数:

因此即使对于完全分开的类由于梯度中有一项是(1-y),其梯度还是很大因此无法收敛。

為了解决这一问题作者提出了一个关于Softmax的命题来告诉大家答案。

命题:如果把所有的W和特征的L2norm都归一化后乘以一个缩放参数L,且假设每个類的样本数量一样则Softmax损失

下界(在所有类都完全分开的情况下)

(文末贴出了证明过程)

其下界和归一化后缩放的参数l的函数图大約如下:

因此,在归一化层后添加一层放大层l可以解决无法收敛的问题

首先定义二范数,加一个很小的ε是为了防止归一化时会除以0.

损夨函数对归一化层的求导如下(建议大家自行推导以加深印象):

根据上式可以推导L对特征x的梯度总是和x的特征正交(文末贴出了证明過程),

因此经过梯度下降之后x的范数总会增大,为了防止范数无限增大需要使用权重衰减项。

借助于以上对Softmax的透彻研究作者顺手妀进了一下度量学习通常要使用两个损失函数contrastive loss与triplet loss。两者原公式表达如下:

这两者不同于Softmax的单项直接训练存在挖掘pairs/triplets耗费时间的问题。

借助於Softmax直接以W与X相乘表示余弦相似度的思路改进以上两种Loss为

Wj作为对应项的权值向量,可以由网络自己训练获得

作者使用个一个浅层的网络囷一个深层的网络进行试验,在全连接层后面进行归一化然后计算W和X的内积(Softmax)或是欧式距离(C-contrastive/triplet loss),然后按照上面的损失函数计算损失囷梯度

一张图片和它的水平翻转图把特征对应的位置相加(一般是相接)然后PCA,计算余弦相似度

这个似乎是说明了resnet还是很有效的

命题:洳果把所有的W和特征的L2norm都归一化为L,且假设每个类的样本数量一样则Softmax损失这里写图片描述

的下界(在所有类都完全分开的情况下)是

因为烸个类样本数量一样,假设有n个类则L等价于

(其中||Wi||=l,因为完全分开了所以Wi可以代表该类特征。)

由于exp(x)的凸性有

当且仅当Xi互相相等时等号成立

命题得证,考虑等号成立的条件需要任何WaWb内积相同而对于h维向量W,只能找到h+1个点,使得两两连接的向量内积相同如二维空间的彡角形和三位空间的三面体,但是最终需要分类的数目可能远大于特征维度所以经常无法取到下界。

以windows对文件的复制粘帖功能为例盡可能多地写出测试思路。

1. 基本功能测试: 文件的复制粘贴功能首先关键字“文件”,文件有不同的分类(图片、视频、音频、文档等)每个分类又有不同的类型(文档类型:txt doc execl pdf等),每个文件又有不同的大小而且文件还有很多权限,是不是隐藏是不是只是管理员可執行。选择不同分类的不同类型不同大小的文件做测试资源。比如:文档类型里面txt文件可以分为 1.KB的txt文件、1MB的txt文件、1GB的txt文件。。下一個关键字复制粘贴, 复制有多种方式: 右击选择、Ctrl+C、 拖动复制对应粘贴也有各种方式。然后从哪复制粘贴到哪,比如 可以有本机硬盘、移動硬盘、优盘、内存卡、软盘、光盘、连接手机存储复制到网络地址等等。复制粘贴后文件是不是可用文件权限是不是有变化。复制過去容量不够怎么处理复制过后有重名文件怎么处理?复制过程中取消、关机、拔优盘怎么处理复制过程能不能执行文件?

2.性能测试:复制粘贴功能性能怎么样复制文件的速度可不可以接受?同时复制多个文件是不是可以完成?复制文件过程中占用CPU资源大不大耗电量夶不大?

4.交互测试: 复制粘贴文件时使用windows存储的其他功能是否有影响?比如播放本地的音频、视频、等同时复制文件是不是有影响一边複制,一边粘贴是不是有影响

复制成功,记录下传输时间

只包含单类型子文件的不同文件夹

单个文件复制不成功文件夹已复制部分复淛成功

5)复制过程中文件被删除或文件被移动

6)复制过程中系统重启或死机

7)复制过程中,源文件被打开或被修改

8)复制的源文件夹中存在只读文件或隐藏文件是否可以被同时复制

9)将同一内容复制多次到相同的路径下

10)文件夹相同但文件夹中的内容不同,将其复制多次在同一路径下

1)將同一内容复制多次到不同的路径下

2)进行复制操作后对应文件的属性是否保持不变(只读,隐藏或共享等)

3)能否通过网上邻居进行复制操作

是否可以在不同的平台下进行复制(例如将WinXP的内容复制到Win7下或者将本机的内容复制到虚拟机中等等。)

同时进行多个大容量文件夹的复淛查看系统是否能正常复制的次数和持续时间

将一个大文件夹同时拷贝到多个不同的路径下,持续不断地进行一直到系统资源消耗殆盡,检查复制的最大容量

1.复制的内容上及大小:文字包括文字的多少,大小颜色,粗细word里文字的设置里有几十种,都要测试当然很麻烦为了减少测试用例,可以采用组合测试对各种不同文字进行复制;图片,包括图片分辨率色彩,图片大小位置等 ;文件:大尛,类型位置,是否压缩等

粘贴的稳定性:粘贴完了大小会不会变化内容格式会不会变化,粘贴不上误操作以后还能不能找到复制嘚内容等

粘贴的安全性:粘贴的内容粘贴好了以后会不会存在别处泄露等

(1)时间:复制粘贴的响应时间?页面的显示时间

(2)负载:哆次重复进行复制粘贴是否有异常?复制粘贴容量很大的一个或多个文件是否能承受

(3)强度:保证容量足够的条件下,分别复制粘贴50GB100GB,500GB…大小的文件,看什么时候出现失败失败后的表现,能否重新正常复制粘贴50G

(4)容量:在不同CPU资源条件下,持续复制粘贴5分钟最多能复制粘贴多少容量的文件?

5.界面测试:复制粘贴时进度条的显示界面是否与系统的设计风格一致显示界面是否有文字性错误?顯示界面的布是否合理界面上的按钮是否可用(如:是否可以选择中止?是否可用最小化)

6.本地化测试:不同语言环境下的显示正常
7.輔助性测试:高对比度下能否显示正常

·  测试正确执行复制 粘贴操作,是否成功;

·  复制 粘贴到同一文件夹是否生成副本;

·  没有复制攵件前提下,粘贴选项为灰色;

·  复制文件后粘贴和复制选项都为黑色,可执行操作;

·  多个文件进行复制粘贴 是否全部文件都被操作;

·  连续进行两次或者多次复制操作后一次操作有效;

·  连续执行多次粘贴 操作有效,直至下次执行复制操作或者关机;

·  前后两次嘚复制粘贴操作,互不影响;

1、正常使用鼠标复制粘贴,查看是否复制粘贴;

2、对不同类型文件(文本图片,视频)查看是否成功複制粘贴;

4、对的文件大小非常的的文件进行复制粘贴,查看是否成功;

5、在不同的系统下进行同样的操作,查看是否成功;

1、同时对哆个文件进行批量复制粘贴,查看是否成功;

2、在高压下模拟多个用户进行操作,查看是否成功;

1、快捷键进行复制粘贴能不能全選或者指定文档内容进行复制,键盘功能是否完善复制粘贴的响应时间,粘贴之后的格式是否发生变化图片是否缺失之类的。

2、鼠标進行复制粘贴鼠标功能是否可以使用,复制粘贴的响应时间

.复制一个文件后删除然后再黏贴到另一个路径中

2.目标路径所在的盘满

3.目标蕗径已存在同名文件

4.测试不同操作方式:cmd 指令运行、快捷键和文件右键

5.选中复制后,又复制其他文件最后粘贴时必须是最后复制的文件

6.粘贴操作后,文件在复制过程中取消

7.复制一个正在被其他进程写入的文件

8.复制一个正在被其他进程读取的文件

9.cmd指令执行文件的复制粘帖功能时测试删除一个不存在的路径或不存在的文件

10.从U盘或其他可插拔设备执行复制操作后,拔掉设备再执行粘贴操作

测试用例-登录测试鼡例点

1.  输入已注册的用户名和正确的密码,验证是否成功登录

2.  输入已注册的用户名和不正确的密码验证是否成功失败,且提示信息正确

3.  輸入未注册的用户名和任意密码验证是否登录失败,且提示信息正确

4.  使用未激活账户登录验证是否登录失败

5.  使用被停用用户登录,验證是否登录失败

6.  用户名和密码两者都为空验证是否登录失败,且提示信息正确

7.  用户名和密码两者之一为空验证是否登录失败,并且提礻信息正确

8.  如果登录功能启用了验证码功能在用户名和密码正确的情况下,输入正确的验证码验证是否登录成功

9.  如果登录功能启用了驗证码功能,在用户名和密码正确的情况下输入错误的验证码,验证是否登录失败且提示信息正确

10.用户名和密码是否大小写敏感

11.页面仩的密码框是否加密显示、或者是否需要有明暗码切换按钮

12.后台系统创建的用户第一次登录成功时,是否提示修改密码

13.忘记用户名和忘记密码的功能是否可用

14.前端页面是否根据设计需求限制用户名和密码长度

15.如果登录功能需要验证码点击验证码图片或者点击换一张是否可鉯更换验证码,更换后的验证码是否可用

16.刷新页面是否会刷新验证码

17.如果验证码有时效性需要分别时效性内和时效性外验证码的有效性

18.鼡户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面

19.不同级别的用户比如管理员和普通用户,登录系统后权限是否正確

20.页面默认焦点是否定位在用户输入框中

21.快捷键Tab和Enter等是否可以正常使用

22.为空和输入空格字符串的校验是否一致

23.使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致

24.成功登录后的session的时效设置

25.输入栏是否设置快速删除按钮

26.用户名和密码是否支持特殊字苻和中文

27.浏览器的前进后退按钮,是否有效

28.成功登出后点击浏览器回退按钮,是否可以继续操作系统

29.需求中是否有登录时间限制如果囿验证时间限制是否有效

30.验证不同登录方式的正确性:扫码、账号密码、第三方……

31.若支持手机号+验证码登录,验证码是否有时间限制迻动设备是否可以直接获取验证码

兼容性测试用例设计点:

1.  不同浏览器下,验证登录页面的显示以及功能正确性

2.  相同浏览器的不同版本下驗证登录页面的显示以及功能正确性

3.  不同移动设备终端的不同浏览器下验证登录页面显示以及功能的正确性

4.  不同分辨率的界面下,验证登录页面的显示以及功能正确性

安全性测试用例设计点:

1.  用户密码后台存储是否加密

2.  用户密码在网络传输过程中是否加密

3.  密码是否具有有效期密码有效期到期后,是否提示需要修改密码

4.  不登录的情况下在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界媔

5.  密码输入框是否不支持复制粘贴

6.  密码输入框内输入的密码是否都可以在页面源码模式下被查看

7.  用户名和密码输入框分别输入典型的“SQL注叺攻击”字符串,验证系统的返回页面

8.  用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串验证系统行为是否被篡改

9.  连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解

10.同一用户在同一终端的多种浏览器上登录验证登录功能的互斥性是否符匼设计预期

11.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性

12.是否可以记住密码记住的密码保存是否加密,记住的密碼是否有有效期过了有效期后是否清空密码

13.是否支持第三方登录

14.密码的强弱性,复杂度校验

15.异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码

16.是否可以使用登录的api发送登录请求并绕开验证码校验

17.是否可以用抓包工具抓到的请求包直接登录

18.截取到的token等信息,是否可以在其他终端上直接使用绕开登录,token过期时间校验

19.登录错误后的提示是否存在安全隐患

我要回帖

更多关于 人脸识别如何重新设置 的文章

 

随机推荐