ai实现视频通话换脸,伪装成别人
今天我们来试试在qq或微信聊天的时候,将自己通过ai换脸伪装成别人,声明:此文仅技术交流,不能使用此技术用于其他非法目的。
如果不会编程,可以直接使用两个软件安装到本地即可视频通话换脸
1、swapface,这个下载安装后直接运行即可实时视频换脸,还可对图片和视频文件中的人脸进行更换,关键还免费易操作。
下载网址:https://swapface.org/#/home
2、deepfacelive,一款开源视频换脸软件
开源地址:https://github.com/iperov/DeepFaceLive
软件下载地址:https://disk.yandex.ru/d/7i5XTKIKVg5UUg
https://mega.nz/folder/m10iELBK#Y0H6BflF9C4k_clYofC7yA
如果你会编程可以试试下面这种方式:
原文地址:https://github.com/alew3/faceit_live
一、实验环境
Linux host OSNVidia fast GPU (GTX 1080, GTX 1080i, Titan, etc ...)Fast Desktop CPU (Quad Core or more)NVidia CUDA 9 and cuDNN 7 库已经安装了Docker 安装了web摄像头工作在 /dev/video0
我们还要一个虚拟摄像头$ git clone https://github.com/umlaeute/v4l2loopback.git$ make && sudo make install$ sudo depmod -a$ sudo modprobe v4l2loopback video_nr=1$ v4l2-ctl -d /dev/video1 -c timeout=3000
这样就创建了一个流 /dev/video1二、下载faceit
$ git clone --recurse-submodules https://github.com/alew3/faceit_live.git /local_path/
三、创建docker
$ cd /local_path/faceit_live$ xhost local:root # this is necessary for your docker to access the host interface$ docker-compose build$ chmod +x ./run_docker.sh
$ ./run_docker.sh//运行docker
然后创建目录./data/persons,并放置一个包含人员A和人员B的人脸的图像。使用与设置模型时相同的名称。此文件用于从您提供的视频中的任何其他人过滤他们的脸。例如./data/persons/me.jpg./data/persons/oliver.jpg
四、捕获webcam生成一段视频
你可以使用cheese或其他程序从你的网络摄像头中捕获视频,并将其用于训练。这比使用手机更好,你将在现实世界的环境中,稍后将用于转换。$ sudo apt-get install cheese$ cheese
你至少需要512张图片来训练,所以做一些你自己的视频,移动你的头,做出不同的表情。然后将它们放入文件夹中。 ./data/videos/:e.g../data/videos/myvideo1.webm./data/videos/myvideo2.webm
对于来自第二个人的训练视频,您可以使用youku上的视频,也可以将其直接放入同一个./data/videos 文件夹中。将您的模型和训练数据设置在Faceit_Live.py文件的代码中,例如:#创建模型,三个参数为: 模型名称 人员A的名称 人员B的名称 faceit = FaceIt('me_to_oliver', 'me', 'oliver') # 从目录/data/videos中读取人员A的视频或者从youku mp4 url中. faceit.add_video('me', 'myvideo1.webm') faceit.add_video('me', 'myvideo2.webm') faceit.add_video('me', 'me_from youku.mp4', 'youku url here') #跟上面一样,人员b也这样 faceit.add_video('oliver', 'oliver_trumpcard.mp4', 'https://www.youku.com/watch?v=JlxQ3IUWT0I') faceit.add_video('oliver', 'oliver_taxreform.mp4', 'https://www.youku.com/watch?v=g23w7WPSaU8') faceit.add_video('oliver', 'oliver_zazu.mp4', 'https://www.youku.com/watch?v=Y0IUPwXSQqg')
五、训练和转换
现在让我们启动Docker容器并运行代码:$ ./run_docker.sh
然后,对数据进行预处理。这将下载视频,将其分解为帧,并提取相关面。运行脚本后,请转到./data/processed/以确保它不会将其他人的图像提取到培训数据中。如果有,就删除它们。python faceit_live.py preprocess me_to_oliver
然后训练模型,例如:
python faceit_live.py train me_to_oliver
要查看它的工作效果,请使用:python faceit_live.py live me_to_oliver
ok,最终的效果如下
网友评论0