关于人脸识别算法简介

作者: lqzzz | 来源:发表于2019-11-08 14:16 被阅读0次

    最近做了一个关于人脸识别的摄像头的项目,用到了一些关于人脸识别的项目,就简单-------真的是特别简单的发表一下我自己的理解吧。

    关于人脸识别,我们需要的步骤

    1.人脸检测
    2.人脸序列化,投影到空间
    3.人脸对比

    那接下来就详细说明一下我根据各种不同的博客得到的一些理解,我刚开始做人脸检测的时候,傻乎乎的用opencv里面的人脸检测的分类器,哈哈哈哈,检测效果一般般吧,除了有一些时候我抬起了头,它默认把我鼻孔当成了眼睛,这就造成了我纯手工制作的数据集有了很多的无效的,甚至影响人脸识别模型的数据,只能手动进行数据处理,哦豁,想想自己手动删除万把张人脸里面的鼻孔,想想都可怕。

    好好好,现在我就开始正题

    1.人脸检测

    1.使用python环境中opencv包里面的人脸分类器。
    地址我这里给的我本地地址啊,大家看的时候就根据自己的实际情况来改。

    classifier = cv2.CascadeClassifier(
        'C:/Users/Administrator.DESKTOP-M63KN3O/AppData/Local/Programs/Python/Python36/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')
    # 加载分类器
    

    这个分类器的缺点我也在前面吐槽过了,实在是有点点emmm,下面就介绍一个更好的算法,MTCNN
    在提到这个算法之前,我先给一个我看到的博客的一张图片吧,真的是笑死我了,哈哈哈哈哈


    你喜欢笑.png

    哈哈哈,你看那个研究肤浅学习的小小女孩笑的有多开心啊,对不起,她就是使用前面的opencv分类器的我,T_T,简直是太过分了,随随便便的一个网络那么多层谁顶得住啊,呜呜呜

    现在的科学家啊,就喜欢把东西变的复杂,说什么模型不够大就不够强,,但是,,,,我显存就那么大,你随随便便发明几个,我连跑一个都会把我GPU给跑炸,怎么用啊,委屈脸 委屈.png

    所以在要么模型大跑不动爆显卡,要么模型小检测的人人都是lqz,所以得做一个选择

    可是,小孩子才做选择,大人只会说

    我全都要

    所以就有了我们的mtcnn,就是在计算机视觉人脸检测和矫正中,兼顾小而准的代表作品
    怎么做到的呢,我们做不到一个模型完成,就分开来嘛,都说三个臭皮匠顶个诸葛亮嘛,放在我们cv计算机视觉里面也还是管用的
    mtcnn首先做了个图像金字塔化的操作,什么是图像金字塔呢,就是调整图片的尺寸,不断调整不断调整,到什么时候结束呢?就是到我们P-net网络需要接受的图片大小结束,也就是12*12的尺寸。注意!!!我们要把所有的图片,也就是从你开始的照片到中间处理的所有尺寸的照片都要输入到P-net网络中去。

    敲黑板,记笔记了

    我们的mtcnn除了图片金字塔化之后,还需要经过三层神经网络。

    小模型P-Net快速排除图片中不含人脸的部分。
    中模型R-Net进一步排除不含人脸的部分,并估计含有人脸框的位置
    大模型O-Net敲定人脸的位置,重叠的框用NMS除去并且标记人脸的左右眼、鼻、两嘴角共5个位置。

    当然,我这里就是纯粹的用简单的语言来帮助理解大概的内容,其实里面的知识还是很多的,我时间不多,就直接上别人的博客吧,完完全全的详解喔,hhh偷懒ing
    人脸检测--MTCNN从头到尾的详解
    MTCNN深度解读
    人脸特征点检测basic:MTCNN原理

    相关文章

      网友评论

        本文标题:关于人脸识别算法简介

        本文链接:https://www.haomeiwen.com/subject/lfqibctx.html