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

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

1.准备

我们使用ffmpeg提取视频中的图片,它的安装方法如下:

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:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

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

1.2 安装用于提取人脸的OpenCV模块:

如果你已经安装好了Python(如果没有的话请看这篇文章:超详细Python安装指南),打开CMD/终端(Termianl)输入以下命令即可安装:pip install opencv-python

接下来,让我们先学会从影片中逐帧提取图片。

2.提取图片

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

如果我们只需要1秒1帧,在CMD或Terminal中输入以下命令即可:ffmpeg -i 视频路径.mp4 -r 1 image-%5d.jpg

其中:

-r 1 代表每秒取1帧

image-%5d.jpg是指命名格式为 image-00001.jpg

如图所示:

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

3.从图片中提取人脸

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

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

获得了人脸的位置后,我们只需要将这部分位置写入到新的图片中即可:

怎么样,是不是特别简单?完整代码请在Python实用宝典公众号后台回复电影提取人脸下载。

最后让我们来看看效果:

大部分提取都是正确的,当然不排除有些例外出现,这时候你就要手动去除了,比如说这个(汗):

您这也能分类成人脸???嗯???(不过仔细看还真挺像的)

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看

,有任何问题都可以在下方留言,我们会耐心解答的!

点击下方阅读原文可以获取所有代码和链接哦!

Python实用宝典 (pythondict.com)

不只是一个宝典欢迎关注公众号:Python实用宝典

python 人脸提取_Python 自动提取电影中所有人脸相关推荐

  1. python关键词提取_python对文件中的关键词查找替换,实现自动获取配置

    1.目的 想对update_variable.py文件中的配置进行修改,数据通过系统接口自动获取 update_variable.py my_name='null' my_age=18 2.代码 up ...

  2. Python爬取豆瓣Top250电影中2000年后上映的影片信息

    Python爬取豆瓣Top250电影中2000年后上映的影片信息 前言 双十一前加在京东购物车的一个东西,价格330,Plus会员用券后差不多310.双十一当天打开看了下399,还得去抢满300减10 ...

  3. 办公室小姐姐的福利!用Python批量提取word文档中的表格和图片内容

    点上方"菜鸟学Python",选择"星标" 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求.日常的办公过 ...

  4. python dlib人脸检测_Python 3 利用 Dlib 实现人脸检测和剪切

    0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切: 将检测到的人脸剪切下来,依次排序平铺显示在新的图像上: 实现的效果如 图1 所示,将 ...

  5. python字符串转义序列_Python | 忽略字符串中的转义序列

    python字符串转义序列 First see, how escape sequence works? 首先看,转义序列如何工作? In the below example, we are using ...

  6. python字符串添加元素_python向字符串中添加元素的实例方法

    Python中的字符串对象是不能更改的,也即直接修改字符串中的某一位或几位字符是实现不了的,即python中字符串对象不可更改,但字符串对象的引用可更改,可重新指向新的字符串对象. + 直接字符串外+ ...

  7. 用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序

    抓取豆瓣电影(http://movie.douban.com/nowplaying/chengdu/)中的正在热映前12部电影,并按照评分排序,保存至txt文件 1 #coding=utf-8 2 f ...

  8. python svg2rlg_python提取pdf文档中的表格数据、svg格式转换为pdf

    提取pdf文件中的表格数据原文链接 https://www.analyticsvidhya.com/blog/2020/08/how-to-extract-tabular-data-from-pdf- ...

  9. 使用UWP人脸检测API在WPF中进行人脸检测

    目录 介绍 先决条件 背景 人脸检测 标记人脸 查看模型 视图 结论 Download repository 介绍 通用Windows平台的Windows.Media.FaceAnalysis名称空间 ...

最新文章

  1. python程序员工资低吗-程序员嫌工资低拒绝offer,HR:估计你一辈子就是个程序员...
  2. mysql 临时表 汉字_转MySQL临时表的简单用法
  3. 分布式文件系统—HDFS—核心设计
  4. 制造业数字化经营新思路:管理平台架构及三大落地方法论
  5. Linux——给history命令加上用户和时间
  6. go 如何将int设成nil_Go 中没有引用传递?
  7. 对称加密和非对称加密转载
  8. Oracle在plsql上数据类型是nvarchar2(2)表的字段,查询时最后一位不显示
  9. asp.net/net/c#电子购物商城系统-成品
  10. 预处理criteo数据集以预测广告的点击率
  11. 分析咪蒙1013篇文章,300多万字,她凭什么会火?
  12. 新浪微博的Tab滑动效果
  13. 锤子手机Android auto,分享锤子手机Smartisan OS的几个使用小技巧,效率更高
  14. Matlab 拉丁超立方采样lhsdesign函数、lhsnorm函数介绍
  15. 详细解析java JDBC实现增删改查
  16. 「 JVM基础 」Java双亲委派机制
  17. 亚利桑那大学公开课:【知识产权课程】笔记
  18. 在VSCode中使用Compaq Visual Fortran编译运行Frotran程序
  19. MagicDraw UML英文企业版12.5的中文字符显示问题
  20. 《量子宇宙》阅读笔记

热门文章

  1. 数据包络分析工具箱 EDA 算法分析
  2. CBR ABR VBR
  3. iOS性能优化-内存优化
  4. 南京邮电大学数据结构实验二(代码篇)
  5. 2018后端面试经历分享
  6. 疫情令亚马逊销量大涨,贝索斯身家今年增240亿美元
  7. 【解决】Windows 10 任务栏上或图标自动隐藏
  8. odoo13 订单模板设置_Odoo12: 自定义配置面板
  9. 排序算法整合(冒泡,快速,希尔,拓扑,归并)
  10. 单位样值序列matlab表示,单位样值响应.doc