教你用python视频聊天换脸伪装成别人
off999 2024-11-10 10:28 22 浏览 0 评论
AI换脸大家不感到陌生了,前段时间抖音里出现了很多经典电视剧的主角被人换脸,引起了网友们的一阵热议,于是小编也搜集了换脸相关技术文献,发现python不仅可以更换视频中的人脸,还可实时将视频聊天摄像头中的人脸换成别人,也就是说使用此技术,你微信视频聊天的好友可能不是本尊,所以大家要警惕了,即使视频聊天看到朋友问你借钱,也要慎重,多方确认,以免受骗。
好了,今天我们就来讲讲怎么实时更换摄像头中的人脸达到伪装者的目的,想看看效果,左边图片是摄像头实时抓取本尊的头像,右边是经过python实时换脸后输出到虚拟摄像头的影像,是不是看上去挺和谐的,好了,我们来讲讲怎么换脸吧。
安装要求
操作系统:Ubuntu 18.04或Win 10
NVidia fast GPU (GTX 1080, GTX 1080i, Titan,等)
Fast Desktop CPU (Quad Core or more)
Webcam 摄像头操作步骤
一、下载项目代码
不要忘记使用--recurse-submodules参数来签出所有依赖项。在Windows中,您可能需要安装 Git客户端。
$ git clone --recurse-submodules https://github.com/alew3/faceit_live3.git将'vox-adv-cpk.pth.tar'下载到/ model文件夹
您可以在以下位置下载它:
google-drive,地址为
https://drive.google.com/open?id=1PyQJmkdCsAkOYwUyaj_l-l0as-iLDgeH或者
yandex-disk。地址为
https://yadi.sk/d/lEw8uRm140L_eQ二、安装NVidia深度学习驱动程序库
安装最新的Nvidia视频驱动程序,然后安装深度学习基础架构:
NVidia CUDA 10.1驱动程序 -2.6GB下载!下载地址:
https://developer.nvidia.com/cuda-downloadsCUDA 10.1的cuDNN版本-您需要注册才能下载,下载地址:
https://developer.nvidia.com/cudnn其他版本可能会起作用,但我尚未对其进行测试。
三、安装Anaconda环境
下载并安装Anaconda,下载地址:
https://www.anaconda.com/distribution/创建Anaconda环境并安装要求
$ conda create -n "faceit_live3" python=3.8
$ conda activate faceit_live3
$ conda install pytorch=1.4 torchvision=0.5 cudatoolkit=10.1 -c pytorch
$ pip install -r requirements.txt四、设置虚拟摄像头
?windows版本设置如下:
设置虚拟摄像机以进行流传输
下载并安装OBS Studio for Win,下载地址:
https://obsproject.com/download然后按照页面上的说明安装OBS Virtual CAM插件,下载地址:
https://github.com/CatxFish/obs-virtual-cam/releases安装Virtual CAM之后。
创建一个场景
将“窗口捕获”项添加到“源”中,然后选择“流窗口”
右键单击并选择过滤器,然后单击“ +”并选择虚拟摄像头,将过滤器添加到Window Capture中。
从工具菜单启动虚拟摄像头
打开Firefox并加入Google Hangouts对其进行测试,请不要忘记从设置下的“相机”选项中选择OBS CAM。
?Linux版本设置如下
要使用伪造的网络摄像头功能通过我们的视频流参加会议,我们需要插入v4l2loopback内核模块以创建/ dev / video1。按照(https://github.com/umlaeute/v4l2loopback)上的安装说明进行操作,然后让我们设置伪造的网络摄像头:
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ make && sudo make install
$ sudo depmod -a
$ sudo modprobe v4l2loopback devices=1
$ sudo modprobe v4l2loopback exclusive_caps=1 card_label="faceit_live" video_nr=1
$ v4l2-ctl -d /dev/video1 -c timeout=1000如果您已经在/ dev / video1上运行了网络摄像头,请更改上面的video_nr
要检查一切是否正常,请尝试运行mp4来生成/ dev / video1视频(将ale.mp4替换为您自己的视频)。
$ ffmpeg -re -i media/ale.mp4 -f v4l2 /dev/video1 -loop 10并查看
$ ffplay -f v4l2 /dev/video1在Ubuntu 18上,我必须对v4l2loopback.c的源代码进行较小的更改才能使环回正常工作。如果上述方法不起作用,您可以在运行make之前尝试此更改:
# v4l2loopback.c
from
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
to
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)您还可以检查/ dev / video *设备:
$ v4l2-ctl --list-devices
$ v4l2-ctl --list-formats -d /dev/video1?Mac支持
不幸的是,Apple和NVidia已停止合作,并且Mac不再提供CUDA支持。在Mac上,这将非常慢,因为所有内容都将在不支持GPU的CPU上运行。
将/media要播放的jpg / png图像放入目录。仅有一张脸的方形图像可以填充大部分空间,效果更好。
五、运行程序
$ conda activate faceit_live3
$ python faceit_live.py参量
--system #操作系统 win or linux (默认是win)
--webcam_id # 网络摄像头的videoid 例如 0 如果是 /dev/video0 (默认是 0)
--stream_id # linux环境下专用 设置/dev/video number to stream to (默认是1)
--gpu_id # 多个GPU设置 选择哪个GPU去运行(默认是0)例子:
$ python faceit_live.py --webcam_id 0 --stream_id 1 --gpu_id 0 --system linux运行时的快捷键
B - cycle previous image in media folder
N - cycle next image in media folder
C - recenter webcam and create a new base image
T - option to alter between 'Relative' and 'Absolute' transformations mode
Q - to quit and close all Windows六、总结
为了获得更好的效果,请在启动程序或按C时查看网络摄像头,因为这将从您的脸部创建用于变换的基础图像。移近并靠近摄像头,以找到理想的距离以获得更好的效果。
七、常见问题
▲慢
如果运行缓慢,请使用nvidia-smi命令检查其是否在GPU上运行。Windows任务管理器无法正确报告GPU使用情况。(将C:\ Program Files \ NVIDIA Corporation \ NVSMI添加到Windows路径中以找到命令)。
▲错误
如果在LINUX下收到以下错误,则表明您尚未启动v4l2loopback。
cv2.error: OpenCV(4.2.0) /io/opencv/modules/imgproc/src/resize.cpp:4045: error: (-215:Assertion failed) !ssize.empty() in function 'resize'▲多GPU
如果您有多个GPU,则可能需要设置一些环境变量:
# specify which display to use for rendering (Linux)
$ export DISPLAY=:1
# which CUDA DEVICE to use (run nvidia-smi to discover the ID)
$ export CUDA_VISIBLE_DEVICES=0 (LINUX)
或者
$ SET CUDA_VISIBLE_DEVICES=0,1 (WIN)好了,如果有什么问题请留言给我或关注我私信我。
相关推荐
- 爱思助手app下载安装(爱思助手下载 安装安卓)
-
不能在手机端直接下载,需要先下载PC端。安装步骤如下:第1步,安装爱思助手PC端用电脑访问爱思助手官网在产品中心下载并安装“爱思助手PC端V7版”第2步,安装爱思助手移动端打开爱思助手PC端用数据线连...
- 手机电视直播在线直播(免费观看电视在线高清直播)
-
1、准备一个U盘,在电脑上下载电视直播软件的安装包(apk格式的,如泰捷视频、电视猫、电视家等软件),复制并存储到U盘的根目录下;2、将U盘插入电视机的USB接口;3、启动电视机,进入智能电视主界面;...
- 万能密码破解器(万能破解wifi密码神器下载)
-
不真实因为万能歪歪密码器声称可以破解任意密码,但实际情况下,密码破解需要依靠强大的计算力和算法,而万能歪歪密码器只是一个简单的软件,无法实现这种高难度的破解。同时,使用万能歪歪密码器还会存在一定的安全...
- firefox国际版
-
中国版:原生集成了如鼠标手势,支付助手等国内用户常用功能的浏览器扩展;提供了与国内网址导航类似的"火狐导航"作为默认主页;设置项与国际版略有不同;除国际通行的mozilla账户外,也可使用...
- 轻颜相机(轻颜相机有实况拍照吗)
-
轻颜相机调视频背景虚化的方法是通过调整相机的景深模式来实现。首先,打开轻颜相机应用并选择拍摄模式。然后,在拍摄界面上方可以找到一个景深模式的选项。点击该选项后,会出现不同的景深效果供选择。选择合适的景...
- 华为浏览器(华为浏览器app下载安装)
-
华为浏览器,是华为手机上用的浏览器是他自己设定的,一般都是安卓版的,IE浏览器是windows操作系统自带的浏览器,是windows系统下的一个应用程序,与这个华为浏览器是,风马牛不相及没有任何联系,...
- pps网络电视官方下载(pps网络电视tv版)
-
你的网速不好吧,不行就把任务删除在重新下一次试试,在不行的话就重新安装客户端建议可以电视和手机同一WiFi里安装悟空遥控器,然后手机下载你需要安装到电视的软件APP,使用手机上的悟空遥控器安装本地...
- 腾讯qq免费下载安装最新版(腾讯qq下载安装2019版免费)
-
出现此种情况是由于电脑上之前安装的QQ软件某些后台程序还在运行当中,并没有关闭掉,解决方法:1、点开始-控制面板-添加删除程序,找到QQ程序删除,然后安装新的QQ版本。2、点开始-注销或者重启计算机都...
-
- qq极速版下载官网(·qq极速版下载)
-
极速版就是把完整版分成三部分。第一部分是飞车可以运行的最基础部分,这部分下载玩了就可以跑图了。余下部分会在不跑图的时间内自动下载。也可以自己设置。简单来说,极速就是在最少时间内可以玩到游戏。不可以,没有头条极速qq登录。只听说过头条极速登...
-
2026-01-17 12:51 off999
- 洛克王国东哥辅助(洛克王国东哥辅助最新版)
-
洛克王国东哥辅助拥有非常丰富并且强大的辅助功能,功能分类为宠物区、洛助手、人物区、娱乐区、每日区、每周区、迷之岛、WPE模拟区、激战赛,这些功能可以帮助洛克玩家更加轻松地玩游戏。以下是提高洛克王国东哥...
- 英语听力每日一听(英语听力每日一听1小时)
-
一般来说,每天半小时,时间不宜过长,有损听力的,坚持三个月吧,语感就会有提升。如果厌倦,也可以听听英文歌曲。其实,当你真正对英语有了兴趣,会发现她是一种美丽的语言(当然没有汉语博大精深那是肯定的),听...
- 永久免费的网站服务器有哪些
-
网通大区的暗黑之城最好,法老诅咒,电信大区的狂热之约,神之图腾,艾可丽森,以及联通大区的六翼天使,加百列之魂等服务器,都是永久60级的免费的云服务器,国内IDC老牌供应商三丰云,提供免费云服务器和免费...
- 53短视频全部解锁版(五三软件)
-
欢乐五子棋53关残局解法如下:首先,观察棋盘上的情况,寻找可以利用的棋子。在53关残局中,你可能需要利用棋盘上的已有棋子,构建出连续五子连线。其次,要注意对方的棋子布局,尽量避免被对方阻止。在放置棋子...
- cf单机版手机版破解版(cf单机版手游破解版)
-
想玩这个游戏在应用宝中下载就可以了,应用宝它可是目前面对安卓系统开放的最专业的软件下载平台,里面几乎什么样的软件都有的,而且还都是支持一键下载和自动安装的呢。穿越火线是一款热门的网络游戏,但是如果想要...
-
- 腾讯会议下载(腾讯会议下载的文件保存在什么地方了)
-
1.打开电脑浏览器搜索【腾讯会议】,选择打开软件官网,往下滑动点击【立即下载】。2.在弹出的页面上选择要下载的【安装版本】,支持【windows系统】和【macOS】系统。3.接下来选择文件的【保存位置】,点击【下载】保存安装包。4.下载完...
-
2026-01-17 11:15 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
