收集自己的照片,做一个简单的人脸识别
日期:2023-03-01 16:43:20 / 人气:204
最近在温习吴恩达教师的deeplearning.ai课程,所谓温故而知新,看到人脸辨认时,很多以前没有彻底知道的知识如今觉得恍然大悟,思绪明晰了很多,于是很想本人从头到尾,从搜集本人的照片开端来做一团体脸辨认。老手上路,欢送交流!与人脸辨认相近的还有人脸验证,即验证输出图片与宣称的能否是同一团体,例如如今大多的火车站,机场进站时都有人脸验证,旅客进入操作区,零碎扫描身份证车票等信息,验证能否爲宣称的人;领取宝等手机APP上也有人脸验证,每次使用时与之前帐户录入的照片做比对判别能否爲用户,综上所述,人脸验证是1:1成绩。比人脸验证更复杂的是,人脸辨认是1:k成绩 ,例如有个包括k团体的图片库,辨认新输出的图片是k团体中的哪一个,或许哪个都不是,如今有的企业就有使用人脸辨认做门禁,事后把员工人脸图片输出零碎,当有人员进入时,就去零碎内寻觅是哪一团体。我这里要重点讲的就是人脸辨认。深度学习效果好,很大水平上是基于少量训练样本的,而实践的使用中通常只要大批照片,要如何处理这个成绩呢?假设在企业的员工图片库里,能够只要每个员工的几张照片,假如依照其他成绩深度学习的常用办法,将一切图片输出网络,最初应用softmax分类输入标签,但是训练集太小效果会很差,并且当有新员工参加时,还需求重新训练网络。这时,我们就可以学习一个 ’similarity function’ 来处理成绩。d(img1,img2) = degree of defference between images,假如输出两张长相差异很大的人,那麼d(img1,img2)就很大,假如输出两张同一团体的照片或许长相类似的人的照片,d(img1,img2)就很小。要学习这个函数的一个办法就是使用Siamese网络。Siamese网络左右两个网络是构造,参数完全对称相反的,把图片x(i)输出卷积神经网络,经过一系列卷积,池化和全衔接层,最终失掉一个特征向量(假定是128维,即上图中f(x(i)), f(x(j))),把它看做图像x(i) 的编码,把第二张图片x(j)也输出这个网络,失掉编码f(x(j)),然后将这两个编码输出逻辑回归单元停止预测,于是人脸辨认成绩就应用Siamese网络转化成了一个二分类成绩。要留意这是个多输出成绩,每个输出爲一对图片,当图片中是同一团体,输入标签爲1,当照片是两团体,输入标签爲0.根底的原理弄清楚之后,上面开端搜集照片做一个复杂的人脸辨认模型。由于搜集照片比拟耗时,爲了能有足够的标签爲1(同一团体)的照片,我搜集了七团体,每团体大约30张照片,然后positive_pairs(同一团体)随机生成5000对,negative_pairs(不同的人)随机生成5000对,输出一个Siamese卷积网络,生成128维的编码对,经过一个逻辑回归单元停止二分类,应用反向传达优化网络参数:随机生成图片对树立Siamese网络应用训练好的网络在测试集上测试,训练了几轮当时训练集和验证集的精确率曾经很高,最初测试集的精确率并没有到达,估量还是数据太少,模型太粗陋,不过我的目的只是梳理一遍人脸辨认模型树立的思绪,这样就曾经到达了,也提供应大家,希望能有一点点巨大的协助!其中参考了:https://github.com/hfrommane/TF-siamesenethttps://github.com/sorenbouma/keras-oneshot我的完好的代码:https://github.com/zhaoloulou/face-recognition
作者:天辰娱乐
新闻资讯 News
- 《忍者》原配何莉莉:忍受第三年4...12-01
- “我儿子网瘾很大,他妈把他送去...12-01
- 她曾经是最漂亮的郭襄。她被黎明...12-01
- “陈都灵的新戏剧家不应该太情绪...12-01