ffmpeg加opencv的人脸采集并做出识别的实战项目!

2022-06-09 21:26:04 浏览数 (1)

一、前言:

大家好,今天给大家分享一个ffmpeg加opencv的人脸采集并做出识别的实战项目!

我先大致简单介绍一下项目的整体功能实现:

本项目核心是在Linux平台上利用摄像头采集人脸,并进行人脸识别。这个项目使用的是FFMPEG OPENCV 虹软框架完成。FFMPEG的主要工作是负责采集摄像头的数据并把摄像头数据发送给opencv。Opencv的主要工作则是把摄像头数据转换成矩阵数据。虹软的主要功能则是利用Opencv的数据进行数据检测和识别并且和人脸数据库进行比较,如果识别成功则显示这个人的姓名,并把数据显示出来。目前整体项目只是简单的一个demo,后期会根据需求来进行开发扩展的,比如添加ui界面来查看!

二、开发环境准备:

  • (1) Ubuntu16.04
  • (2)4.1的版本的FFmpeg
  • (3)opencv 3.4.15的版本
  • (4)虹软代码框架

为了不那么浪费时间,这里面的环境搭建,我就不在这里说明,我会在专门的群里发给大家,这里我只展示一下整个工程运行过程,也就是一个readme:

第一步:首先运行asfort_face_insert的程序,这个程序的主要功能是读取一张人脸图片。并把人脸图片的特征读取出来,然后把人脸特征存储到数据库里面。具体的运行程序参数如图:

代码语言:javascript复制
./asfort_face_insert face_path face_name
  • 其中face_path是人脸图片的路径,如./face_lib/face01.png
  • face_name是录入人脸的名称,如:Harry,James

如果运行成功则会出现下面的打印信息:

当打印日志出现Get Face Feature Success则代表插入成功,此时人脸数据库就有了数据。(小提示:这里的人脸图片最好利用电脑自带的摄像头进行拍照,或者用自己的一个正面照即可)。

第二步:现在我们的数据库已经有了人脸数据,那下一步我们直接运行我们的主程序:ffmpeg_camera_asfort(运行方式:./ ffmpeg_camera_asfort),运行成功的话会看到,一个电脑自带的摄像头出现,并且会把自己的名字显示在一个矩形框里面。如下图:

而此时运行成功的日志如下:

(若成功打开摄像头则会打印Success Open Camera)

这里要注意的是,在运行ffmpeg_camera_asfort的时候,一定要在Linux虚拟机里面把摄像头打开,打开方式:

首选项->可移动设备->选择摄像头设备的名称(这里的摄像头名称各有不同,以自己电脑的名称为主,如我的摄像头名称是:IMC Networks Integrated Camera)->再选择连接。此时在虚拟机里面摄像头就已经打开了。这一步非常重要,如果没有这一步,程序直接报错。报错信息如下:

  • (core dump是指程序错误,退出)

0 人点赞