https://github.com/WhyEastOne/face_recognization

本代码在参考了该大神的一篇博客,里面讲解很详细,包括环境安装和算法,膜拜。。。https://blog.csdn.net/qq_42633819/article/details/81191308

本人在此基础上实现了自动匹配人类别并把姓名显示在图像上,仅供参考

1、读取包含各个人的文件夹:

labels = np.array(LabelEncoder().fit_transform(labels))#进行编码

#从指定路径读取训练数据
def load_dataset(path_name):images,labels = read_path(path_name)    #将输入的所有图片转成四维数组,尺寸为(图片数量*IMAGE_SIZE*IMAGE_SIZE*3)#我和闺女两个人共1200张图片,IMAGE_SIZE为64,故对我来说尺寸为1200 * 64 * 64 * 3#图片为64 * 64像素,一个像素3个颜色值(RGB)images = np.array(images)print(images.shape)    #标注数据,'WHY'文件夹下都是我的脸部图像,全部指定为0,另外一个文件夹下,全部指定为1#labels = np.array([0 if label.endswith('WHY') else 1 for label in labels])labels = np.array(LabelEncoder().fit_transform(labels))#进行编码return images, labels

2、在训练时自动读取类别数量

class Dataset:def __init__(self, path_name):#训练集self.train_images = Noneself.train_labels = None#验证集self.valid_images = Noneself.valid_labels = None#测试集self.test_images  = None            self.test_labels  = None#数据集加载路径self.path_name    = path_name#当前库采用的维度顺序self.input_shape = None#类别数量self.nb_classes = None

#类别数量
        self.nb_classes = None

下面加载数据时也要定义类别,以供下面模型构建时传入。

3、在预测时匹配人名显示在图像上,下面这个函数即参考读取文件夹的思想,把图片对应标签存入labels变量:

#-------------------------获取图片对应的标签------------------------------------
import os
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
path_name = './face_detect_database/data'
labels = []
def read_path(path_name):  #读取类别,以便下面进行图像文字匹配  
    for dir_item in os.listdir(path_name):
        #从初始路径开始叠加,合并成可识别的操作路径
        full_path = os.path.abspath(os.path.join(path_name, dir_item))
        
        if os.path.isdir(full_path):    #如果是文件夹,继续递归调用
            read_path(full_path)
        else:   #文件
            if dir_item.endswith('.jpg') or dir_item.endswith('.png'):               
                if path_name not in labels: 
                    labels.append(path_name) 
    return labels
labels = read_path(path_name)
labels = [name.split('\\')[-1] for name in labels]

读取视频中人脸并基于labels匹配显示姓名在图像上:

#文字提示是谁
cv2.putText(frame,'%s'%labels[faceID], 
          (x + 30, y + 30),                                            #坐标
           cv2.FONT_HERSHEY_SIMPLEX,              #字体
           1,                                                                 #字号
            (255,0,255),                                                #颜色
             2)

4、识别结果如下,每个人图片都各自简历文件夹,最好图片数量多,本次图片数量较少,匹配相对不是很准确,偶尔需要匹配几次才能匹配成功,离摄像头的距离远近以对识别效果也有一定影响

利用Python cv2和CNN算法实现人脸识别相关推荐

  1. (转)利用python、tensorflow、opencv实现人脸识别(包会)!

    https://blog.csdn.net/qq_42633819/article/details/81191308 一,前言 查看全文 http://www.taodudu.cc/news/show ...

  2. (含源码)利用Python实现KLT跟踪算法

    利用Python实现KLT跟踪算法 NVIDIA 视觉编程接口 (VPI: Vision Programming Interface) 是 NVIDIA 的计算机视觉和图像处理软件库,使您能够实现在 ...

  3. 使用Python+PCA+SVM算法实现人脸识别模型

    在本文中,我们将使用主成分分析和支持向量机来建立人脸识别模型. 首先,让我们了解PCA和SVM是什么: 主成分分析: 主成分分析(PCA)是一种机器学习算法,广泛应用于探索性数据分析和建立预测模型,它 ...

  4. DL之LSTM/GRU/CNN:基于tensorflow框架分别利用LSTM/GRU、CNN算法对上海最高气温(数据归一化+构造有监督数据集)实现回归预测案例

    DL之LSTM/GRU/CNN:基于tensorflow框架分别利用LSTM/GRU.CNN算法对上海最高气温(构造有监督数据集)实现回归预测案例 目录 基于tensorflow框架分别利用LSTM/ ...

  5. CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)—(准确度高达100%)

    CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)-(准确度高达100%) 目录 基于DIY人脸图像数据集( ...

  6. Python与人工智能入门实践——简易人脸识别系统

    Python与人工智能入门实践--简易人脸识别系统 写在前面: 笔者在寒假期间进行了一些简短的实训,主要内容包括简单的爬虫和简单的人脸识别算法,由于时间有限,对于python也是第一次详细学习,功能较 ...

  7. 简单人脸识别一之使用opencv+cnn网络实现人脸识别

    最近在研究目标检测这个方向,看到网上有很多的人脸识别帖子,所以也想着上上手看看.当时是做了三个模型出来,第一个就是网上很通用普遍的opencv+简单三层cnn网络来实现的,说实话效果真的一般吧!具体的 ...

  8. 《人脸识别原理及算法——动态人脸识别系统研究》—1章1.2节人脸识别相关学科的进展...

    本节书摘来自异步社区<人脸识别原理及算法--动态人脸识别系统研究>一书中的1章1.2节人脸识别相关学科的进展,作者 沈理 , 刘翼光 , 熊志勇,更多章节内容可以访问云栖社区"异 ...

  9. 人脸识别三大经典算法_人脸识别系列四 | DeepID1算法

    前言 这是人脸识别系列的第5篇文章,前4篇文章可以在公众号的人脸识别栏里找到,这篇文章主要是解析CVPR 2014年的经典人脸识别论文DeepID1算法.论文的地址如下:http://mmlab.ie ...

最新文章

  1. Desert King POJ - 2728
  2. 剑指offer(刷题21-30)--c++,Python版本
  3. mysql多表添加怎么写_mysql多表连接的几种写法
  4. Python操作redis(普通操作,连接池,封装)
  5. linux Wi-Fi信号放大,wifi信号增强器
  6. ue4账号注册不了_UE4入门(一)软件安装教程
  7. C语言 由拼音字串获取拼音数量
  8. 用纯Python就能写一个漂亮的网页
  9. Mermaid语法绘制图表
  10. 怎样在Mac上查找WiFi密码并在iPhone上共享它?
  11. PS制作立体效果——圆环
  12. Unity使用Isometric Z As Y Tilemap创建2.5D地图(三)如何用代码创建Tilemap
  13. linux中lvm卷管理
  14. 逆向分析工具-APKtool+dex2jar+jd-gui下载安装
  15. c语言订单管理,C语言课程设计订单管理系统.doc
  16. ThinkPad T410加单条8G协德内存条成功
  17. QNX7.1 交叉编译开源库
  18. vue中将网页以pdf格式下载
  19. 来电语音播报软件下载apk_来电播报安卓版下载|来电播报app下载_v1.2.6_9ht安卓下载...
  20. 从酒鬼失足到赌徒破产,悲剧收场为何注定

热门文章

  1. Pycharm安装教程以及Pycharm汉化教程,超级详细
  2. sql2008java驱动_java连接sqlserver2008驱动包
  3. 系统集成项目管理工程师:第22章职业道德规范学习笔记
  4. 如何使用L298N电机驱动模块
  5. SpringBoot 入坑(八)Docker 暴露端口 容器数据卷 基本使用
  6. 【sciter】:sciter 使用阿里矢量图标库
  7. 二分查找法。Java泛型设计二分查找法。
  8. 注册表修改右键快捷方式
  9. 超微(Supermicro)主板的IPMI接口IP地址配置【笔记】
  10. geoserver2.18(4):wms服务——GeoWebCache影像切片缓存