blog.bfw.wiki Open in urlscan Pro
47.110.224.191  Public Scan

URL: https://blog.bfw.wiki/user1/15988269423573420025.html
Submission: On May 29 via api from US — Scanned from DE

Form analysis 1 forms found in the DOM

POST /

<form action="/" method="post" id="commentform">
  <div class="comt">
    <div class="comt-title">
      <img height="40" width="40" src="//img.bfw.wiki/static/Blog/image/avatar1.png" style="display: inline;">
      <p>
        <a id="cancel-comment-reply-link" href="javascript:;">取消</a>
      </p>
    </div>
    <div class="comt-box">
      <textarea placeholder="我有话要说" class="comt-area" name="comment" id="comment_text" cols="100%" rows="3" tabindex="1"></textarea>
      <div class="comt-ctrl">
        <div class="comt-tips">
          <input type="hidden" name="comment_parent_id" value="0" id="comment_parent_id">
          <input type="hidden" name="comment_a_id" value="15988269423573420025" id="comment_a_id">
          <input type="hidden" name="comment_a_type" value="0" id="comment_a_type">
          <div class="comt-tip comt-loading" style="display: none;"> 评论提交中... </div>
        </div>
        <button class="comt-submit" type="button" name="submit" id="comm_submit" tabindex="5">提交评论</button>
      </div>
    </div>
  </div>
</form>

Text Content

打赏博主×


支付完成

博客
技术学习

技术博客

人工智能 大数据 前端开发 笔记

技术问答



IT资料下载

提供it学习资料上传下载服务

视频课程

java入门php入门人工智能入门


开发工具

在线开发环境WEBIDE

Html Python Java Php Phpcli Golang C# Nodejs C C++ Sql R Rust Ruby Dart Vb D F#
Typescript Coffeescript Julia Kotlin Perl Groovy Lua Vala Ocaml Assembly Objectc
Scala Erlang Pascal Swift Fortran Bash Clojure Ada Elixir Cobol Haskell Nim
Racket Lisp

程序员工具箱

js压缩混淆图片压缩sqlite在线打开

开发框架

前端框架bfwuijs按需加载bfwonesoa框架bfwsoa分布式大数据框架bfwsea

离线开发环境

php集成开发包(bfwkit)


模板素材

js插件库

幻灯片人工智能数据库表单

html特效 代码库

三维粒子视觉差异动画

系统模板 系统源码

企业建站电商博客大数据人工智能

前端素材

图标图片字体视频音频

人工智能模型

人脸识别模型语音识别模型图片分类模型


面试招聘

求职招聘

求职招聘接私活找IT外包

码聊BFWIM

it人士专用及时通讯系统

IT笔试面试题库

golang笔试题php笔试题java笔试题python笔试题html前端笔试题


云空间

云桌面

专为IT技术人员打造的云电脑

域名

顶级域名注册 域名信息查询

云主机

Html空间 Php空间 Java空间 Python空间


我要吐槽
 * 技术学习 技术博客 技术问答 资料下载 技术课程
 * 工具环境 webide bfwstuio 工具箱 域名空间 码聊
 * 源码模板 js插件库 html特效 开源项目 模板库 代码库 素材库
 * 技能外包 人才技能库 项目外包 笔试题库
 * 登录/注册
 * 


 * 发布博文
 * 记录笔记
 * 我要提问
 * 我的项目
 * 我的代码
 * 我的错题
 * 我的收藏

综合 博客 模板 源码 js插件 代码 下载 问答 工具 音视频 图片 css

搜索
首页/博主/博文


用PYTHON实现视频聊天换脸伪装成别人

人工智能 音视频开发 Python

BFW 级别:五品

博文: 236 作品: 9033 开源: 1196
私信我



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-downloads
CUDA 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)


收藏


网友评论0

取消

评论提交中...
提交评论



2020年做好三件事就成功了

干一行爱一行,干什么像什么。敬重自己的事业,热爱自己从事的工作,才能不断开拓前进,取得事业成功。




推荐几款CANVAS炫酷好看粒子背景效果

html5的技术升级推出了canvas的画板功能,让我们很方便开发一些视觉特效的交互效果,今天我来整理一下几款炫酷的canvas粒子特效。




为啥要创建BFWUI

为啥要创建bfwui




腾讯云阿里云无依赖单页面发送短信PHP代码演示

阿里云和腾讯云都很强大,涵盖的服务和产品也是越来越多,那么他们的api服务接口也就越来越多,想要使用他们的短信服务,却发现要下载一大堆的基础sdk库,本来几行代码就能解决,非得整得这么复杂,




个人网站和APP如何接入支付宝微信支付呢

对于个人开发者而言,网站或APP收费,微信与支付宝都关闭了个人通道,那么还有什么办法来解决问题,今天来谈谈




TUI-IMAGE-EDITOR.JS 中文汉化配置及菜单SVG路径设置

非常强大的图形插件,我将其汉化了一下,方便大家使用




DEEPFAKELAB进行换脸入门教程

新手初看deepfakelab发现一堆bat命令,怎么操作,无从下手,今天我们来手把手教大家如何使用deepfakelab进行换脸。




FLUTTER UI 开发手册及实例集合

今天给大家介绍一下flutter入门的一些手册地址及示例地址,大部分在github上,而且都是国外的大牛写的




FLASH不支持后WEBRTC如何替代RTMP?

随着Adobe停止支持Flash的宣布,人们开始寻找RTMP的替代解决方案。从RTMP转向哪种解决方案的问题变得越来越重要。请我们强烈建议您将RTMP迁移到WebRTC。




用PYTHON检测是否打瞌睡并报警提醒

我们在开长途车的时候可能太累要打瞌睡,这是很危险的,很多高端车配备了瞌睡检测系统,那么是怎么实现的呢,




BFW 级别:五品

博文: 236 作品: 9033 开源: 1196
私信我


其他文章

 * 何为BFWSOA框架

 * BFWSOA框架特性

 * BFWSOA框架程序流程图

 * MVCVPSCW七层架构

 * BFWSOA框架创建一个小应用

 * BFWSOA框架路由模式与APACHE、NGINX配置

 * BFWSOA框架表单验证与提交

 * BFWSOA框架数据库操作

 * BFWSOA 缓存设置

 * BFWSOA模型简介

最新提问

 * 如何通过JSON来描述数据表设计及流程设计?

 * 如何通过JSON配置文件表单流程图直接生成一个完整的软件系统源代码?

 * GRAPEJS如何自定义BLOCK组件?

 * GRAPEJS如何选择文本进行链接?

 * GRAPEJS如何限制HTML元素不能编辑或删除?

 * 如何突破CHATGPT API的一分钟3次请求限制?

 * WGET如何将非HTML后缀但是是HTML文档的链接下载为HTML文档到本地?

 * 为啥VUE模板内的STYLE标签样式无效呢?

 * 如何下载PHOTOSHOP 的AI版本?

 * 请问抖音POI地址如何申请?


BFW.WIKI 专业的互联网技术学习交流开发部署一站式平台
本站所有栏目导航

技术学习

技术博客 技术问答 技术课程 资料下载

工具环境

webide bfwstudio 工具箱 码聊 域名空间

源码模板

js插件库 html特效 代码库 开源项目 模板库 素材库

技能外包

人才技能库 项目外包 笔试题库

备案号:苏ICP备19002694号
关于我们 免责声明