基于深度学习的人脸识别系统系列(Caffe+OpenCV+Dlib)——【六】设计人脸识别的识别类

前言

基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库)、Caffe(深度学习库)、Dlib(机器学习库)、libfacedetection(人脸检测库)、cudnn(gpu加速库)。
用到了一个开源的深度学习模型:VGG model。
最终的效果是很赞的,识别一张人脸的速度是0.039秒,而且最重要的是:精度高啊!!!
CPU:intel i5-4590
GPU:GTX 980
系统:Win 10
OpenCV版本:3.1(这个无所谓)
Caffe版本:Microsoft caffe (微软编译的Caffe,安装方便,在这里安利一波)
Dlib版本:19.0(也无所谓
CUDA版本:7.5
cudnn版本:4
libfacedetection:6月份之后的(这个有所谓,6月后出了64位版本的)
这个系列纯C++构成,有问题的各位朋同学可以直接在博客下留言,我们互相交流学习。
====================================================================

本篇是该系列的第六篇博客,介绍如何设计一个识别类来用于具体的分类任务。

思路

现在我们希望能够有一个识别的接口来实现输入一张图片,便可以分辨出他是哪个人。我们需要提前:
1、定义一个人脸空间;
2、将一些人脸的图片放到这个人脸空间中;
3、将n个人脸图片提取特征为n个向量,并且合并为一个矩阵;
4、将n个人脸图片的标注(label)合并为一个向量,与矩阵形成对应;
5、将其序列化并保存起来,等待识别时进行读取。

在前五篇博客中,我们已经可以很方便的来完成这些事情了。代码如下:

vector<Mat> imgArray;
    vector<string> labelArray;
    for ( int i = 0; i < 5; i++)//读入5张图片
    {
        string img_file = "img/" + Int_String(i) + ".jpg";
        Mat img = imread(img_file);
        imgArray.push_back(img);
        labelArray.push_back(img_file);
    }
    Register Train;

    
  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 56
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值