项目实训(四)---人脸库建立

2021SC@SDUSC

做完基本的前后端文件传输的后端的服务之后,我和方新悦同学一起负责三个算法之一的视频中人脸识别的算法。

目录

一.功能介绍

二.人脸库建立过程记录

2.1dlib的安装

2.2人脸库建立


一.功能介绍

这部分我们的逻辑是用户可以上传视频和目标人物的照片,返回关于这个人物的片段,如果上传多个人物,则建立人物之间的关系,返回和这些人物相关的视频片段。

使用框架:dlib软件库

语言:python

和后端(springboot)连接,引入依赖:

<dependency>
    <groupId>org.python</groupId>
    <artifactId>jython-standalone</artifactId>
    <!--python版本是2.x还是3.x在这里指定-->
    <version>2.7.0</version>	
</dependency>

执行脚本:

import org.python.util.PythonInterpreter;
public class JavaPythonFile {
    public static void main(String[] args) {
        PythonInterpreter interpreter = new PythonInterpreter();
        //相对路径
        interpreter.execfile("getFaceDB.py");
    }
}

实现的总体思路:

1.根据输入照片提取特征向量,存入文件

2.视频逐帧检查(实际每6帧检查一次)人脸,与输入的人脸照片对比,计算欧式距离,小于阈值认为是同一个人。

3.若检查到则记数人物出现次数加一。最终遍历处理所有gif,返回给用户关键人物出现多的gif。若要得到多人关系则还需要记录时间点,根据出现在同1个gif的时间点建立人物联系。可以让用户查询多个人同时出现的场景。这部分后面实现,先实现一个人物频繁出现场景查询。

二.人脸库建立过程记录

这部分记录根据上传的人脸照片,提取特征向量,保存到人脸文件的过程。

2.1dlib的安装

安装的过程有不少波折,dlib库的安装就花费了一下午的时间。在cmake,boost都安装后,dlib库依然没办法成功安装。

最终经过查找很多资料知道这个dlib的版本需要和python的版本一致,版本一致是体现在cp38上而非dlib的版本上,最终找到dlib-19.19.0-cp38-cp38-win_amd64.whl资源后,成功安装。

2.2人脸库建立

实现思路:

1.读取本地人脸图像
2.人脸检测,获得关键点
3.dlib处理
4.获取人脸特征向量
5.计算个人特征向量平均值
6.打上标签
7.存入人脸库

代码结构:

 目标人物照片:

照片的 128D 特征,保存在csv中,供后期识别使用(这里只用了一张照片进行构建):

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值