首页 > 其他分享 >使用Pytorch和OpenCV实现视频人脸替换

使用Pytorch和OpenCV实现视频人脸替换

时间:2023-08-22 10:15:17浏览次数:36  
标签:视频 py mp4 OpenCV Pytorch 人脸 data

DeepFaceLab”项目已经发布了很长时间了,作为研究的目的,本文将介绍他的原理,并使用Pytorch和OpenCV创建一个简化版本。

本文将分成3个部分,第一部分从两个视频中提取人脸并构建标准人脸数据集。第二部分使用数据集与神经网络一起学习如何在潜在空间中表示人脸,并从该表示中重建人脸图像。最后部分使用神经网络在视频的每一帧中创建与源视频中相同但具有目标视频中人物表情的人脸。然后将原人脸替换为假人脸,并将新帧保存为新的假视频。

项目的基本结构(在第一次运行之前)如下所示

  1. ├── face_masking.py
  2. ├── main.py
  3. ├── face_extraction_tools.py
  4. ├── quick96.py
  5. ├── merge_frame_to_fake_video.py
  6. ├── data
  7. │ ├── data_dst.mp4
  8. │ ├── data_src.mp4

main.py是主脚本,data文件夹包含程序需要的的data_dst.mp4和data_src.mp4文件。

 

 

https://avoid.overfit.cn/post/ec72d69b57464a08803c86db8720e3e9

 

标签:视频,py,mp4,OpenCV,Pytorch,人脸,data
From: https://www.cnblogs.com/deephub/p/17647794.html

相关文章

  • 轻松掌握图像处理技能,Python OpenCV库带你飞
    所有代码需要在安装了OpenCV库的Python环境中运行。1图像基础操作importcv2ascvimg=cv.imread("./img/run.png",flags=cv.IMREAD_COLOR)print(img)[[[255255255][255255255][255255255]...[255255255][255255255][255255255]]......
  • Lnton羚通算法算力云平台如何在OpenCV-Python中使用cvui库创建复选框
    CVUI之复选框Pythonimportnumpyasnpimportcv2importcvuidefcheckbox_test():WINDOW_NAME='Checkbox-Test'checked=[False]#创建画布frame=np.zeros((300,400,3),np.uint8)#初始化窗口cvui.init(WINDOW_NAME)while......
  • 【pytorch】目标检测:一文搞懂如何利用kaggle训练yolov5模型
    笔者的运行环境:python3.8+pytorch2.0.1+pycharm+kaggle。yolov5对python和pytorch版本是有要求的,python>=3.8,pytorch>=1.6。yolov5共有5种类型n\s\l\m\x,参数量依次递增,对训练设备的要求也是递增。本文以yolov5_6s为切入点,探究yolov5如何在实战种运用。1.数据集的准备roboflow......
  • 树莓派配置Opencv(C++)
    首先准备一个摄像头,连接到树莓派上树莓派配置首先执行命令sudoraspi-config进入设置页面后,之后按照下面步骤设置选择InterfacingOptions选择Camera点击Yes点击Ok之后重启树莓派验证执行命令sudoraspistill-otest.jpg​ 指令的意思是在......
  • OpenCV相机标定
    OpenCV相机标定相机内参矩阵cameraMatrix\[cameraMatrix=\begin{bmatrix}f_x&0&c_x\\0&f_y&c_y\\0&0&1\end{bmatrix}\]相机畸变系数distCoeffs畸变系数:径向畸变\((k_1,k_2,k_3)\),切向畸变\((p_1,p_2)\)\[distCoeffs=\beg......
  • OpenCV手眼标定
    OpenCV手眼标定使用OpenCV进行手眼标定,版本需要4.1.0及以上。为了确定手眼变换,至少需要两个具有非平行旋转轴的运动。因此,至少需要3个不同的姿势,但强烈建议使用更多的姿势。——OpenCV官方文档提示cv::calibrateHandEye()OpenCV有关手眼标定官方文档voidcv::cali......
  • OpenCV双目视觉
    OpenCV双目视觉参考资料:[双目立体视觉:标定和校正双目立体视觉:标定和校正双目立体视觉:块匹配视差图计算教你如何提高双目立体视觉系统的精度立体标定cv::stereoCalibrate()flagsCV_CALIB_FIX_INTRINSIC:K和D个矩阵是固定的。这是默认标志。如果你校准好你的相机,你可......
  • 【pytorch】目标检测:新手也能彻底搞懂的YOLOv5详解
    YOLOv5是GlennJocher等人研发,它是Ultralytics公司的开源项目。YOLOv5根据参数量分为了n、s、m、l、x五种类型,其参数量依次上升,当然了其效果也是越来越好。从2020年6月发布至2022年11月已经更新了7个大版本,在v7版本中还添加了语义分割的功能。本文以YOLOv5_v6为媒介,对YOLOv5进行学......
  • Android实现人脸识别动画效果
    效果展示实现步骤1.绘制圆圈遮罩这里我们是用了混合模式来实现圆圈部分的扣除,这里我们用到了PorterDuff.Mode.CLEAR/***绘制圆圈遮罩*@paramcanvas*/privatevoiddrawCircleMask(Canvascanvas){canvas.save();//目标图Dst......
  • linux环境下基于python的OpenCV 保存视频
    一概念在OpenCV中保存视频使用的是VedioWriter对象,在其中指定输出文件的名称,A创建视频写入的对象out=cv2.VideoWriter(filename,fourcc,fps,frameSize)参数含义:filename:视频保存的位置fourcc:指定视频编解码器的4字节代码fps:帧率frameSize:帧大小B 设置视频的编解......