码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 人脸比对CNN设计


    一、DeepID学习

    1. 基于Caffe的DeepID2实现 喵耳朵博客2016.10,让你的Caffe支持python层,屏蔽下面配置,然后重新编译。不过最好直接修改Caffe。

      修改的目的主要是适应两个图片的输入。自己实现了ContrastiveLossLayer,LocalNormalization两个层,似乎新版Caffe有这两个层。实现了FaceVerification部分。
    2. DeepFace–Facebook的人脸识别 雨石博客 2015.7
    3. FaceNet–Google的人脸识别 雨石博客2015.6
    4. DeepID人脸识别算法之三代 雨石博客2014.12
    5. 使用Caffe复现DeepID实验 ,DeepID网络配置文件,训练验证数据组织,本实验单模型只有95.45%的准确率,没有到97%左右。主要是人脸分类,不是人脸识别。
    6. 《Deep Learning Face Representaion from Predicting 10000 Classes》读书报告,包括两个阶段,一是对输入的人脸块(face patch)用多层卷积网络进行特征提取。一是人脸比对(FaceVerification)输入两张人脸图片,应用多层神经网络或者联合贝叶斯来判定,来判定这两张人脸图片是不是来自同一个人。
    7. 基于Caffe的DeepID人脸识别实现 爱程序网,精度有点低,只有82%。但是博客提供了人脸识别的python程序。训练模型未实现FaceVerification部分。
      out = net.forward_all(data_1 = X)
      feature1=np.reshape(feature1,(test_num,160))
      out = net.forward_all(data_1=X)
      feature2 = np.float64(out[‘deepid_1’])
      mt=pw.pairwise_distances(feature1, feature2, metric=metric)。
      上述代码的关键是从deepid层读取人脸的特征值(feature)。作者提供了人脸检测、特征点检测、对齐快捷工具FaceTools
    8. DeepID3: Face Recognition with Very Deep Neural Networks 2016.2.3
    9. 大裕量Softmax 损失函数,ICML2016 ,Large-Margin Softmax Loss for Convolutional Neural Networks。
    10. 人脸识别之caffe-face,也是watersink的博文,该论文为2016年的一篇ECCV,ADiscriminative Feature Learning Approach for Deep Face Recognition。还是深圳先进院乔宇老师组的一篇。不管是思想还是效果都非常的棒。整体流程就是读取输入的图像,然后做个前向传播,应用softmax loss+center loss学习到DiscriminativeFeatures,然后进行标签的预测。
      softmaxloss可以实现将2个类别分开,center loss可以实现减少类类距离,增加类间距离的效果,有点类似,线性判别分析LDA(Linear Discriminant Analysis)的思想。在效果上优于contrastiveloss和triplet loss,解决了这2个方法在采样问题中的trick。关键点是centerloss的思想
      看了deploy.prototxt和fac_train_test.prototxt的结构才发现用的是ResNet。作者温研东主页 github

    二、人脸检测对齐工具

    1. 上述代码的关键是从deepid层读取人脸的特征值(feature)。作者提供了[人脸检测、特征点检测、对齐快捷工具FaceTools]
    2. kpzhang93/MTCNN_face_detection_alignment,对应的python&caffe版本DuinoDu/mtcnn,相关介绍博文人脸检测:MTCNN,tinyZhao博客,MTCNN, WaterSink的博客,作者换了源码的缩放函数bilinear变成bicubic,增加耗时,能够识别第二批右边第二个小人脸。
    3. MTCNN python版本代码有点小问题,在demo.py中一个人脸的Box被画了两次,而且第一次画时坐标顺序错误。
    4. MTCNN python版本代码中的pad函数没有将boxes中的浮点数转换为整型,会报出警告。如下修改:boxes = np.array(boxesA.copy(),dtype = int) ,dx = np.ones(numbox,dtype=int)即可。
    5. 人脸数据集百度云,包括Celeb的人脸数据,Cross Age人脸识别,包括一部分数据Cross-Age Celebrity Dataset (CACD)
    6. 人脸的姿势估计与各种姿势下的对齐,上海交通大学博士论文
    7. 基于Landmark的人脸对齐以及裁剪方法,人生若只如初见博客
    8. opencv 仿射变换 根据眼睛坐标进行人脸对齐 计算变换后对应坐标
    9. 人脸旋转剪裁的python代码 Skimage图像选择,缩放。
    10. skimage api文档
    11. MatLab中cp2tform帮助文档,比较详细地介绍了各种transform的算法。比如similarity,affine,polynomial。
    12. Matlab cp2tform函数研究,在caff-face的extractDeepFeature.m代码中用到了cp2tfrom和intransform两个函数将人脸进行对齐。cp2tform函数是根据人脸的5个标记点与标准的5个点作为输入来计算(similarity)转换矩阵。该矩阵的转换公式为:

      [u v]=[x y 1]∗⎡⎣⎢scsctx−a∗−ss−a∗−ssty⎤⎦⎥


      该矩阵共有5个参数需要确定,因此至少需要两对以上原始点和目标点(将产生至少4个方程),a参数为1或-1,表示是否镜像,如果镜像后坐标与目标坐标的误差范数小则为-1。cp2tform求解过程为:

      U=X∗rr=inv(X)∗U

    13. skimage的Transform包括测试代码,很好学习,还有programtalk网站中的例子,来自kaggle diabetic,最终编程代码包括wrap应用tform进行变换在skimage Similarity应用例子博客中。
    14. YOLO论文记之概述与实践 ,偶然发现的目标检测最新最顶级论文,比R-CNN新。提出一种叫YOLO新的目标检测方法。以前的目标检测的研究大多是改进分离器来进行检测。我们将目标检测的当做一种回归的问题来解决,通过空间的分割成边界框和相应类别的概率。我们采用单独的网络直接从整副图像来预测边界框和类别的概率。因为整个检测在一个网络内,所以它可以直接优化端到端的检测性能。关键点两个,将检测当作回归问题,直接优化端端性能。
    15. camel007/caffe-yolo-face-detection,YOLO系列博客,小小杨_

    三、人脸比对实现的思路

    1. 分两个模型,一个是人脸特征识别模型,一个是人脸特征比对模型。首先用人脸特征识别模型来学习抽取人脸的特征feature模型,比如DeepID;其次,用人脸特征比对模型来学习根据两张人脸特征进行比对,最简单的比对可用Cos距离比对。其实《Deep Learning Face Representaion from Predicting 10000 Classes》读书报告已经说了这个方法,可是当时竟然没有理解!
    2. 深度学习与人脸识别系列(3)基于VGGNet的人脸识别系统 ,wjmishuai博客,直接给出训练好的人脸识别模型,好象有500多M。vgg face网络参数说明博客。wjmishuai的另一篇实时摄像头人脸识别博客,有详细的python代码, 深度学习与人脸识别系列(6)利用训练好的vgg模型进行人脸识别(利用摄像头) ,VggFace python实现问题解答,cv2.cvtColor(img, cv2.COLOR_RGB2BGR), img = img[:,:,::-1]*255.0 # convert RGB->BGR
  • 相关阅读:
    Android逆向第一步之开启root权限
    K8S群集调度
    FL Studio21.2升级更新​安装包下载及功能介绍
    雅思词汇笔记_1
    冒泡排序:了解原理与实现
    初识C语言:掌握未来的编程利器
    C语言,基于结构体,编写一个班级成绩排序系统。
    Android存储权限完美适配(Android11及以上适配)
    08_一句话让你人间清醒
    【行为型模式】备忘录模式
  • 原文地址:https://blog.csdn.net/m0_71272694/article/details/127652741
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号