cv2识别视频中拥有人像的部分
1. 引用包
import cv2 from moviepy.editor import VideoFileClip from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
2. 定义人脸识别部分的代码(此部分之后作为修改为识别并截取人像背景的函数)
def find_faces(img): eys_cascade = cv2.CascadeClassifier("I:/test/pythonProject/venv/Lib/site-packages/cv2/data/haarcascade_fullbody.xml") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = eys_cascade.detectMultiScale(gray, 1.3, 5) return faces
3. 定义剪切视频的部分(此后修改为全视频,不在删减而是替换帧)
def find_durations(clip): """ 从视频中搜索人物片段 """ duration_list = [] # 存储片段时间列表 start_time = 0 # 记录片段开始时间, 以毫秒为单位 end_time = 0 # 记录片段结束时间, 以毫秒为单位 for i, img in enumerate(clip.iter_frames(fps=20)): faces = find_faces(img) print(i, faces) # 若发现人物出现且未记录开始时间,记为开始时间 if len(faces) > 1 and start_time == 0: start_time = i / 20 # 若已记录开始时间且人物消失,记为结束时间 # 并将开始时间和结束时间添加到片段时间列表中并重置开始时间和结束时间 if start_time > 0 and len(faces) == 0: end_time = i / 20 duration_list.append([start_time, end_time]) # 重置开始时间和结束时间 start_time = end_time = 0 # 打印片段时间列表并返回 print(duration_list) return duration_list
4. main函数
if __name__ == "__main__": filename = "database/test.mp4" clip = VideoFileClip(filename) durations = find_durations(clip) for d in durations: start_t, end_t = d ffmpeg_extract_subclip(filename, start_t, end_t)
5. 机器学习基本概念
目的:找到一种方法,使得计算机通过数据分析、自我学习等方式去实现分析、预测等功能。
机器学习分类:监督学习、无监督学习、强化学习
训练方式:在线训练、离线训练
三要素:方式=模型+策略+算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】