Python 3 利用 Dlib 19.7 和 sklearn机器学习模型 实现人脸微笑检测

   利用机器学习的方法训练微笑检测模型,给一张人脸照片,判断是否微笑;

    数据集中69张没笑脸,65张有笑脸,训练结果识别精度在95%附近;

   效果:

    

Python 3 利用 Dlib 19.7 和 sklearn机器学习模型 实现人脸微笑检测

    图1 示例效果 

 

   工程利用python 3 开发,借助Dlib进行 人脸嘴部20个特征点坐标(40维特征)的提取,

   然后根据这 40维输入特征 1维特征输出(1代表有微笑 / 0代表没微笑)进行ML建模,

   利用几种机器学习模型进行建模,达到一个二分类(分类有/无笑脸)的目的,然后分析模型识别精度和性能,并且可以识别给定图片的人脸是否微笑;

   

  py文件:

   1. Get_features.py : 

      returnfeatures():  输入人脸图像路径,利用dlib的“shape_predictor_68_face_landmarks.dat”提取嘴部20个特征点坐标的40个特征值;

      writeintoCSV():  将40维特征输入和1维的输出标记(1代表有微笑/0代表没微笑)写入CSV文件中;

   2. ML_ways.py:

      pre_data():    读取CSV中的数据,然后提取出训练集和测试集;

      way_LR():     Logistic Regressio, 罗吉斯特回归方法建模;

      way_SGD():  Stochastic Gradient Decent, 随机梯度下降法建模;

      way_SVM():  Supported Vector Machine, 支持向量机法建模;

      way_MLP():   Multi-Layer Perceptron, 多层神经网络法建模;

   3. test_single_pic.py:

      输入给定测试图像,用ML模型检测其有/无笑脸;

    

   (实现稍微比较复杂,可以结合之前博客看看:

   Python 3 利用 Dlib 19.7 进行人脸识别:

      Python 3 利用 Dlib 19.7 进行人脸68个特征点的标定:

   Python 3 利用机器学习模型进行手写体识别: )

 

1.开发环境

  python:  3.6.3

  dlib:    19.7

  OpenCv, numpy, sklearn, pandas, os, csv等

 

  Get_features.py中调用的库:

1 import dlib # 人脸识别的库dlib 2 import numpy as np # 数据处理的库numpy 3 import cv2 # 图像处理的库OpenCv 4 import os # 读取文件 5 import csv # csv操作

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsyfz.html