python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_Python


最近由于论文写作需要涉及到人脸的提取操作,结合以前做过的人脸识别项目:Python自动识别人脸开机 和 ffmpeg 的影片逐帧提取功能,实现了自动提取电影中所有人脸的操作。

我们知道,机器学习、深度学习的算法需要数据量到达一定量级之后效果才比较好。所以我们今天的这个功能主要可以用于一些人脸识别算法的训练集、测试集提取。


1.准备

1.1 (1)windows安装ffmpeg :

1.http://ffmpeg.zeranoe.com/builds/,点击 download build 按钮

2.解压 ffmpeg-20170418-6108805-win64-static.zip 文件到指定目录

3.将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中。添加方法:此电脑->右键->属性->高级系统设置->环境变量->编辑Path用户变量->新建-> 输入 bin目录的完整路径

4.进入 cmd,输入 ffmpeg -version,可验证当前系统是否识别 ffmpeg,以及查看 ffmpeg 的版本;如果可以,则说明安装成功。

1.1 (2)macOS安装ffmpeg:

1.Command+空格 搜索终端(Terminal)

2.输入以下命令安装homebrew:


python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_如何进入指定文件目录_02


3.输入以下命令安装ffmpeg:


python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_如何进入指定文件目录_03


2提取图片

FFmpeg从视频中提取图片非常简单,而且功能很强大,能选择多少秒提取一帧,或者每秒提取X帧。

如果我们只需要1秒1帧,在CMD或Terminal中输入以下命令即可:

如图所示


python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_如何进入指定文件目录_04


这样就能获得视频里的帧图:


python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_Python_05


3.从图片中提取人脸

如果你阅读过我以前的这篇文章:Python自动识别人脸开机 就会知道其实用OpenCV提取人脸是一件非常简单的事情。

它只需要你将图片使用 cv2.imread 函数读取进来,然后再使用一个训练好的 分类器文件 就能获得 人脸的位置。如下代码所示:


python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_人脸识别_06


最后让我们来看看效果:


python ffmpeg 摄像头流 并解码 python ffmpeg读取摄像头_人脸识别_07