本文作者:云初冀北

Python实现人脸识别并进行视频跟踪打码

Python实现人脸识别并进行视频跟踪打码摘要: 前言事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~还好他爸妈不在家,不然表弟又要被打一顿!...

?=前言

事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~

还好他爸妈不在家,不然表弟又要被打一顿!

为了防止表弟的秘密被发现,从而被赏赐一顿男女混合双打,于是我用Python把他所有的视频都给打上了万恶的赛克。

我想,表弟肯定会感谢我的!

准备工作

话不多少,我们直接开始操作

首先需要一些素材,大家可以自己准备

Python实现人脸识别并进行视频跟踪打码

这个是要用的工具

Python实现人脸识别并进行视频跟踪打码

代码实战

使用模块

import cv2 imPort face_recognitiON import matplotlib.pyplot as plt # %matplotlib inline # 在 Jupyter 中使用的时候,去掉注释 import ffmpy3 import subpROCess import os from PIL import Image 

将视频转为音频

def vIDEo2mp3(File_name): outfile_name = file_name.split('.')[0] + '.mp3' cmd = 'ffmpeg -i ' + file_name + ' -f mp3 ' + outfile_name print(cmd) subprocess.call(cmd, Shell=True) 

视频添加音频

def vIDeo_add_mp3(file_name, mp3_file): outfile_name = file_name.split('.')[0] + '-f.mp4' subprocess.call('ffmpeg -i ' + file_name + ' -i ' + mp3_file + ' -strict -2 -f mp4 ' + outfile_name, shell=True) 

主要代码

def mask_video(input_video, output_video, mask_path='mask.jpg'): # 打码图片 # 完整源码、视频讲解 # python学习交流群:708525271 # 直接加它领取 mask = cv2.imread(mask_path) # 读取视频 CAP = cv2.VideoCapture(input_video) # 读取视频参数,FPS、width、heigth CV_CAP_PROP_fps = 5 CV_CAP_PROP_FRAME_WIDTH = 3 CV_CAP_PROP_FRAME_HEIGHT = 4 v_fps = cap.Get(CV_CAP_PROP_FPS) v_width = cap.get(CV_CAP_PROP_FRAME_WIDTH) v_height = cap.get(CV_CAP_PROP_FRAME_HEIGHT) # 设置写视频参数,格式为 mp4 size = (int(v_width), int(v_height)) fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') out = cv2.VideoWriter(output_video, fourcc, v_fps, size)   # 已知人脸 known_image = face_recognition.lOAd_image_file("tmr.jpg") biden_encoDIng = face_recognition.face_encodings(known_image)[0] # 读取视频 cap = cv2.VideoCapture(input_video) while (cap.isopened()): ret, frame = cap.read() if ret: # 检测人脸 face_locations = face_recognition.face_locations(frame) # print(face_locations) # 检测每一个人脸 for (top_right_y, top_right_x, left_bottom_y, left_bottom_x) in face_locations: unknown_image = frame[top_right_y - 50:left_bottom_y + 50, left_bottom_x - 50:top_right_x + 50] print(face_recognition.face_encodings(unknown_image)) if face_recognition.face_encodings(unknown_image) != []: unknown_encoding = face_recognition.face_encodings(unknown_image)[0]   # 对比结果 resulTS = face_recognition.compare_faces([biden_encoding], unknown_encoding) # 是仝卓,就将打码贴图。 if results[0] == True: mask = cv2.resize(mask, (top_right_x - left_bottom_x, left_bottom_y - top_right_y)) frame[top_right_y:left_bottom_y, left_bottom_x:top_right_x] = mask # 写入视频 out.write(frame) else: break 

将音频保存为cut.mp3

video2mp3(file_name='cut.mp4') 

处理视频,自动打码,输出视频为output.mp4

mask_video(input_video='cut.mp4', output_video='output.mp4') 

为 output.mp4 处理好的视频添加声音

video_add_mp3(file_name='output.mp4', mp3_file='cut.mp3')

效果展示

不愿透露姓名的唐先生

Python实现人脸识别并进行视频跟踪打码

到此这篇关于Python实现人脸识别并进视频跟踪打码的文章就介绍到这了,更多相关Python人脸识别内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,125人围观)参与讨论

还没有评论,来说两句吧...