
python是一款功能强大的数据分析工具,我们在平时的工作和生活中经常会用到。但是你知道如何使用python来提取视频中的素材吗?小编今天跟大家分享的就是如何使用python简单快速地提取电影中的片段,学会之后,能够省去我们剪辑的麻烦哦。
以下内容来源: Python的乐趣
作者: 一粒米饭
在上一篇中实现了基于人脸识别提取人物片段的功能,但是在实践过程中发现,如果是一部电影,那么提取到的片段太多了。为了找女神的电影片段,还要在辣么多剪辑中苦苦手工筛选,这个不是一个优秀的程序员应该做的。
经过一番实践和探索,发现了一个强大的库,叫做face_recognition。
本菜鸟也尝试过用opencv识别出图像,通过图像指纹计算出相似度,抑或通过图片向量的余弦相似度计算,奈何实现复杂,效果也不如face_recognition,只好弃暗投明。
face_recognition使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。
项目地址:https://github.com/ageitgey/face_recognition#face-recognition
官方介绍了face_recognition以下基本功能:
1.1 找出图片中的人脸
1.2 找到并且控制图像中的脸部特征
1.3 识别图片中的人脸
在本文中使用的就是它的第三个功能识别图片中的人脸。
face需要依赖于dlib,dlib的安装参考How to install dlib v19.9 or newer from github on macOS and Ubuntu
face_recognition的使用需要基于Python3.3以上或Python2.7,操作系统为MacOS或Linux(Windows不提供官方支持)。安装命令如下:
$ pip install face_recognition
安装完成后可以在命令行使用face_recognition或在Python中调用。以在Python中“识别女神李一桐”为例,其过程如下:
Python代码如下:
import face_recognition # 初始化 picture_of_liyitong = face_recognition.load_image_file("yilitong.jpg") liyitong_encoding = face_recognition.face_encodings(picture_of_liyitong)[0] # 加载对比图片 unknown_picture = face_recognition.load_image_file("unknown.jpg") unknown_face_encoding = face_recognition.face_encodings(unknown_picture)[0] # 用`compare_faces`方法继续对比得到结果, # 值得注意的是第一个参数是一个列表,可以传多个图片参数进行对比 results = face_recognition.compare_faces([liyitong_encoding], unknown_face_encoding) if results[0] == True: print("图片中包含女神") else: print("未找到女神!")
提取女神视频的过程与之前《从视频中自动提取人物的视频片段》的思路类似。
1.1. 获取图片,用moivepy读取视频,用iter_frames方法从中获取图片帧;
1.2. 标记时间点,利用opencv识别图片中的人物并标记人物出现的起始时间点和结束时间点,并将这些时间点放到到一个列表中。
1.3. 视频截取,用moivepy将上一步中标记的时间片段从视频中截取出来,最后筛选出需要的视频片段即可。
只是将上面第二步中“用opencv识别图片中的人物”改为“用face_recognition进行对比”。代码实现如下:
from moviepy.editor import VideoFileClip from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip import face_recognition def contain_godness(img, godness_encoding): face_locations = face_recognition.face_locations(img) is_godness = False for (top_right_y, top_right_x, left_bottom_y,left_bottom_x) in face_locations: unknown_image = img[top_right_y-50:left_bottom_y+50, left_bottom_x-50:top_right_x+50] unknown_encoding = face_recognition.face_encodings(unknown_image) if unknown_encoding: results = face_recognition.compare_faces([godness_encoding], unknown_encoding[0]) print(results) is_godness = results[0] return is_godness def find_durations(clip, godness_encoding): """ 从视频中搜索女神片段 """ duration_list = [] # 存储片段时间列表 start_time = 0 # 记录片段开始时间, 以毫秒为单位 end_time = 0 # 记录片段结束时间, 以毫秒为单位 last_index = 0 for i, img in enumerate(clip.iter_frames(fps=20)): print(i) flag = contain_godness(img, godness_encoding) if flag and start_time == 0: start_time = i / 20 last_index = i if start_time > 0 and not flag: end_time = i / 20 duration_list.append([start_time, end_time]) # 重置开始时间和结束时间 start_time = end_time = 0 # 打印片段时间列表并返回 print(duration_list) return duration_list if __name__ == "__main__": filename = "demo.mp4" clip = VideoFileClip(filename) godness_image = face_recognition.load_image_file("godness.png") godness_encoding = face_recognition.face_encodings(godness_image)[0] durations = find_durations(clip, godness_encoding) for d in durations: start_t, end_t = d ffmpeg_extract_subclip(filename, start_t, end_t)
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
2025 年,数据如同数字时代的 DNA,编码着人类社会的未来图景,驱动着商业时代的运转。从全球互联网用户每天产生的2.5亿TB数据, ...
2025-05-27CDA数据分析师证书考试体系(更新于2025年05月22日)
2025-05-26解码数据基因:从数字敏感度到逻辑思维 每当看到超市货架上商品的排列变化,你是否会联想到背后的销售数据波动?三年前在零售行 ...
2025-05-23在本文中,我们将探讨 AI 为何能够加速数据分析、如何在每个步骤中实现数据分析自动化以及使用哪些工具。 数据分析中的AI是什么 ...
2025-05-20当数据遇见人生:我的第一个分析项目 记得三年前接手第一个数据分析项目时,我面对Excel里密密麻麻的销售数据手足无措。那些跳动 ...
2025-05-20在数字化运营的时代,企业每天都在产生海量数据:用户点击行为、商品销售记录、广告投放反馈…… 这些数据就像散落的拼图,而相 ...
2025-05-19在当今数字化营销时代,小红书作为国内领先的社交电商平台,其销售数据蕴含着巨大的商业价值。通过对小红书销售数据的深入分析, ...
2025-05-16Excel作为最常用的数据分析工具,有没有什么工具可以帮助我们快速地使用excel表格,只要轻松几步甚至输入几项指令就能搞定呢? ...
2025-05-15数据,如同无形的燃料,驱动着现代社会的运转。从全球互联网用户每天产生的2.5亿TB数据,到制造业的传感器、金融交易 ...
2025-05-15大数据是什么_数据分析师培训 其实,现在的大数据指的并不仅仅是海量数据,更准确而言是对大数据分析的方法。传统的数 ...
2025-05-14CDA持证人简介: 万木,CDA L1持证人,某电商中厂BI工程师 ,5年数据经验1年BI内训师,高级数据分析师,拥有丰富的行业经验。 ...
2025-05-13CDA持证人简介: 王明月 ,CDA 数据分析师二级持证人,2年数据产品工作经验,管理学博士在读。 学习入口:https://edu.cda.cn/g ...
2025-05-12CDA持证人简介: 杨贞玺 ,CDA一级持证人,郑州大学情报学硕士研究生,某上市公司数据分析师。 学习入口:https://edu.cda.cn/g ...
2025-05-09CDA持证人简介 程靖 CDA会员大咖,畅销书《小白学产品》作者,13年顶级互联网公司产品经理相关经验,曾在百度、美团、阿里等 ...
2025-05-07相信很多做数据分析的小伙伴,都接到过一些高阶的数据分析需求,实现的过程需要用到一些数据获取,数据清洗转换,建模方法等,这 ...
2025-05-06以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/g ...
2025-04-30CDA持证人简介: 邱立峰 CDA 数据分析师二级持证人,数字化转型专家,数据治理专家,高级数据分析师,拥有丰富的行业经验。 ...
2025-04-29CDA持证人简介: 程靖 CDA会员大咖,畅销书《小白学产品》作者,13年顶级互联网公司产品经理相关经验,曾在百度,美团,阿里等 ...
2025-04-28CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-27数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25