DeepFake技术--实际操作
文章目录
- 文件结构
- 执行步骤
- 效果优化
- 总结:
- 切图层面:
- extract层面:
- select 层面:
- 原始数据优化:
- 执行过程优化:
- convert :
- 其他优化idea
- 辅助知识
- 实验记录
- 环境配置
- 环境配置——数据:
- 环境配置——第三方库
- 环境配置——操作工具
- 环境配置——硬件
- 环境配置——其他
- bug解除
- 关键信息
原本这些文字是为了我方便,临时记录的,所以整体逻辑可能不清晰,留坑以后再梳理的更好。
文件结构
总的来说:
- 云端没有必要这么麻烦,只需要几个文件夹:源码、input、output、input_A、input_B、models,出过源码一般都要是空的才好。
- oss 端:文件系统需要完善一些,OSS可以作为一个项目的中心
- Mac端:Mac端主要起到的作用是:
- 准备素材:利用软件下载视频,利用FFmpeg剪切视频、切出图片等等。
- 查看效果:查看convert的结果的效果怎么样。
文件结构:
项目P:
- code: —————————————————————GPU
- data:—————————————————————————CPU
- A:
- video.rmvb(target_video.rmvb)下载素材视频
- photo_v/ : fps=100 生成素材照片
- photo_p 下载素材照片
- photo_f 合并素材照片
- A_source.zip(photo_v+photo_p) 压缩素材照片
- B
- A:
- OSS:————————————————————————————————————OSS
- V_1:
- source: A_source.zip;A_source.zip 上传至OSS,并下载到Mac
- V_1:
- extract:—————————————————————————————GPU or cpu
- V_1
- A
- input : 下载并解压缩
- output : 提取人脸照片集
- A_extract.zip(output) 压缩人脸照片集
- B
- A
- V_1
- OSS:————————————————————————————————————OSS
- V_1:
- extract :A_extract.zip;B_extract.zip 上传至OSS,并下载到Mac
- V_1:
- select:—————————————————————————————————————————Mac
- V_1: auto →manual
- select_A→zip(A_select.zip) 挑选并压缩
- select_B→zip(B_select.zip) 挑选并压缩
- V_1: auto →manual
- OSS:————————————————————————————————————————————————OSS
- V_1:
- select :A_select.zip;B_select.zip 上传至OSS,并下载到GPU
- V_1:
- train:———————————————————————————————————————————————————— ————GPU
- V_1_1:
- input_A :下载解压
- input_B :下载解压
- models :训练生成
- models.zip:压缩模型
- V_1_1:
- OSS:————————————————————————————————————————————————OSS
- V_1_1:
- models :models.zip 上传至OSS,并下载到GPU
- V_1_1:
- convert:———————————————————————————————————————————————————————— ——————GPU
- V_1_1_1:
- target_video.rmvb:目标视频 软连接做好
- input :切出照片集( fps=25)
- models : 转换算法软连接做好
- output: 转换结果
- silent.mp4: 合成无声视频
- voice.mp3 :取出目标视频音频
- result.mp4:合成最终完整结果
- result.zip:压缩(output+silent.mp4+voice.mp3+result.mp4)
- V_1_1_1:
- OSS:——————————————————————————————————————————————————————————————————————————OSS
- V_1_1_1:
- result :result.zip 上传至OSS,并下载到Mac
- V_1_1_1:
项目Q:
oss
- data
- h
- l
- photo
- video
- p
- photo
- video
- l_project/
- v_1/
- source/
- extract/
- select/
- v_1_1/
- models/
- V_1_1_1/
- result/
- v_1/
执行步骤
1——环境搭建:
- 硬件:实例(OSS)、GPU、CUDN、CUDNN、
- 软件: anaconda、TensorFlow_GPU 、dlib 、face_recognize、keras、、、、、
- 文件:code、input_A 、input_B/、input、output、models、data(photo、video、history)
2——数据准备:
- 视频剪切
- 音频导出
- 图片切出
3——人脸提取:extract
- A:
- 把A的照片集cp到input里
- python3 faceswap.py extract -i input -o output( -i input -o output可以省略不写)
- 手动删除output不合适的照片
- mv output input_A;rm input/*
- B:
- 把B的照片集cp到input里
- python3 faceswap.py extract -i input -o output( -i input -o output可以省略不写)
- 手动删除output不合适的照片
- mv output input_B;rm input/*
4——模型训练:train
- python3 faceswap.py train -A input_A -B input_B -o models(-A input_A -B input_B可以省略不写)
- lossA 和 loss B 至少降到0.015以下
5——照片转换:convert
- python3 faceswap.py convert -i input -o output( -i input -o output可以省略不写)
- 照片中尽量只有目标人脸,不要有其他人脸,不然会一起被转换了的
效果优化
总结:
* 最必要的一个参数就是在convert时候的-f fi
* 其他的参数基本上用处不大(-v 可以展现详细的信息)
* train中的部分参数,可能要启动图形界面相关的东西,在云端无GUI的命令行界面下简单调用可能会出错。
* 训练的时候:input_A是吴京的大头照,input_B是你的大头照(假设你想验一下战狼2),如果反了,在convert中有一个参数可以调整,我的经验下来,感觉,loss_B 的训练似乎非常重要,因为如果视频同一画面中有多张人人脸的时候(例如吴京、达康书记、张翰等等),你会发现你的脸会出现他们每个明星的脸上,而且有时候效果也差不多。
* 如果input_A、input_B文件数比较多,例如5000以上,可以考虑把样本拆分成10 份(等距随机抽样),然后一份一份的训练,先用第一份把loss训练到0.3左右,再在这个基础上,继续训练原有模型,用第二份训练到0.2左右。这样可能比直接用5000份样本来训练,要快一些。
* 注意aligment.json这个文件,这个文件在extract过程中,在input文件里产生的,里面保存的应该是人脸识别的一些结果,例如68个关键点的坐标等等。如果你仍然用这个input文件去convert,会自动调取aligment.json文件的结果,而不是在convert过程再去识别一次。如果input里的这个文件不小心被你删掉了,那么程序就会从新去识别一次人脸,找出关键点等等,这样convert过程就会很慢,很慢。
* 从耗时角度来看:最耗时的是train过程,要想把loss降到0.15以下,可能花费数个小时的GPU时间,下来是extract过程,稍微会花一些时间,十几分钟到几十分钟不等,取决文件数量。convert非常快,前提是aligment.json文件正确且完好。当然以上都是PGU环境下,CPU环境下,会非常慢,train过程更是无法想象。
* models 是可以借力训练的:* 训练一半,按下enter键退出训练(千万不要Ctrl+C)并保存结果后,可以再次启动训练,程序会默认加载已有的models继续训练(除非没有models)。* 利用上面这个特性,你可以在你替换吴京的models基础上训练你替换钢铁侠。
* 整个过程,难点是环境搭建和效果优化两个层面* 环境搭建:建议用anaconda建立虚拟环境,借用阿里云镜像市场的深度学习镜像,配合镜像保存环境,具体内容见环境配置。* 效果优化:主要牵扯到效果优化和速度提升。* 效果优化:低级层面能操作的就只有优化样本,和调整参数* 速度提升:低级层面能操作就只有优化样本了。
* 省钱策略:* 充分利用阿里云OSS:可以更加快速传输文件,更加廉价的保存文件* 镜像:基本环境搭建好了,就可以利用镜像保存环境了。* 其他:利用其他云端平台,还未尝试。
切图层面:
ffmpeg
* 用%4d这样方便排列顺序
extract层面:
更多高质量人脸
* CPU跑提取过程:* 速度太慢,3~4s一个,1万张需要 需要8个小时 如果是晚上自己去跑还是可以考虑的* 建议直接上GPU,不要浪费时间,除非能够利用上睡觉时间。
* 尝试多线程:=cpu数量时,差异不大,但是>CPU数量,就变慢了
* 提取的时候,加上人脸选择功能:-f 目标人脸 -n 删除掉不是目标人脸的人脸。* 初次尝试,发现加上-f 虽然没有报错,但是也没有work.* 第二次尝试,改变参数的输入方式,由多个照片到一个照片(且照片中仅有一张脸),由字符串到直接输入。依然是没有报错,也没有work。* 第三次尝试,换成输入extract的结果,即大头照,并且cp到当前目录,试试。有效果,但是准确率似乎并不好,很多漏掉的,很多错的也加进来来了。后续可以优化的方法:加上旋转功能或者改变阈值。我决定不在这个方向继续优化,理由是,宁愿多花一点时间,手动过滤,保证数据集的质量,也不在这个上面浪费时间。* -n 第一次尝试,似乎没有任何效果.* 反向使用(-f 非目标人脸jpg),似乎效果挺好的,哈哈,基本上目标人脸都没有是识别出来。指的注意一点是,0405照片似乎是识别出来了(=非目标人脸jpg),但是为什么-n使用的时候,这张照片没有过滤掉呢?* 决定不再继续在这个点上进行优化,因为虽然对速度没有多大改进,但是完全无法保证正确率,所以还是手动筛选吧,以保证数据集的质量。
* 旋转人脸:* 例: python3 code/faceswap-master/faceswap.py extract -r 30* 的确多检查出了一些,但是速度满了6倍,而且还有多了一些不是的,不值得。
* 调价阈值:* 没有尝试,但是不是很建议,可以尝试设置的更高一些,以提高人脸质量,但是相信默认值是作者验证过的最优值。
* 模糊检测:* 不试了,没有必要,速度第一位,其他人来搞。
* 尝试CNN检测器:* python3 faceswap.py extract -D "cnn"* 同样也是慢了很多
* 对其人眼:* python3 code/faceswap-master/faceswap.py extract -ae * 速度正常,可以使用
* 预处理:* 视频预处理:尽量找仅有目标人脸的,尽量把没有目标人脸的视频剪切掉* 图片预处理:原始切出
* 展示更为详细的输出 -v:* python3 code/faceswap-master/faceswap.py extract -v * 实测,可行,可以用来比对速度
* 画出脸部标记:* python3 code/faceswap-master/faceswap.py extract -dl* 没有必要,而且不知道会不会影响后面算法训练过程。
* 多终端一起跑:* 当然首先把数据集进行切分,一起跑,首先可以先手动删掉一些图片,然后再跑。
* 长时间运行,可能会导致速度变慢* 猜测是因为没有做内存优化,导致内存膨胀原因导致。* 解决:停掉进程,同时再次运行时,先检测运行结果 加上-s
* alignments.json 是在extract这一步写到input里的,在后面convert时候会用到,这个只要在目标视频的extract过程注意好就行了,即为目标视频,你必须这样切一下。别忘了在extract后,把json文件加到原文件当中。* 记得在多次对同一个input进行尝试时候,每次尝试都要删除一下 input里的alignments.json文件
* 模糊提出;* 并不是真正剔除,会放到output/blur文件夹内* 操作形式为 -bt 参数int 或者 --blur-threshold 参数int * 参数取值建议我3比较理想
select 层面:
* 做一个人脸识别系统,把阈值大于一定值的人脸全部跳出来,删除掉* 可以先把阈值设的高一点,把一定不是的删掉,然后再阈值降低,再删除* 当然每一波都得要人眼过滤一遍* 最终结果也要人眼过滤一下
原始数据优化:
* 视频* 尽量找只有目标人物的。* 在切出照片前可以提前剪辑,去掉没有大段没有目标任务的片段。
* 照片:* 爬虫百度图片* 爬虫其他明星照片网站
执行过程优化:
* 使用OSS作为数据中转站:
* 做一个表格辅助多线程操作(记录操作步骤和关键信息)
* 服务器端用本地磁盘,加快下载复制速度:没有必要,已经很快了,而且用本地磁盘成本陡升,用ssd盘就好了
convert :
其他优化idea
* 而数据B包含想要插入到数据中的人的面孔
* 拼接时:转换出的人脸比较小的话,拼接时,拉伸到比较大时,就会导致比较模糊
* 拼接时:脸的外侧有一个模糊的区间,也会产生问题。
* 选择人脸的区域:完全整个人脸都选中了,还是选了一部分呢,也会影响最终效果
* 两个人脸的相似度,会影响。
* 既用视频中的人脸,也用外部的人脸,这样效果会好一些(防止过拟合或欠拟合xs)
* 侧脸也会影响。
* 通用模型:别人训练好,直接用就好,例如dlib。非通用模型: 每次应用时候,都需要全部或部分单独训练,例如AB人脸替换。AB替换时,如果你用奥巴马的脸替换川普的模型训练好了,再制作奥巴马替换普京的时候,可以用之前的模型直接继续training,会省时间。
* deepfake 版本选择:选deepfake-fakeswap
* shuffle 优化:把原始图片扭曲后送入encoding,因为图片扭曲了,更容易学到共性。
* 边缘拼接:
* 训练集:并非图像越多越好,最好找一些多角度的高质量的图片训练集
* 难度在于配置,想办法在iCloud跑通。
* loss 降到0.015以内
I trained a video of Katy Perry with many different scenes, that caused the 20 days delay. Since the scenes had different positions on the faces, I had to take lots of pictures of mine. I realized that it's faster if you train each separate scene. Now that I have 20 days of training, I spend about 30 minutes on new scenes using the previous training.
辅助知识
源代码使用教程:
github.com/Fabsqrt/BitTigerLab
https://github.com/Fabsqrt/BitTigerLab/blob/master/SystemDesign/DeepFake/README.md
python环境变量的修改:
https://blog.csdn.net/qw_xingzhe/article/details/52695486
深度学习环境配置:
http://www.52nlp.cn/深度学习主机环境配置-ubuntu-16-04-nvidia-gtx-1080-cuda-8
GPU计算能力查询表:
https://blog.csdn.net/JiaJunLee/article/details/52067962
https://blog.csdn.net/allyli0022/article/details/54628987
cudnn下载:但是这个cudnn不知道怎样用,怎样解压
https://developer.nvidia.com/rdp/cudnn-archive
如何让linux程序在ssh shell关闭后继续运行?
https://blog.csdn.net/u012973744/article/details/37659551
https://blog.csdn.net/laven54/article/details/45569617
统计文件数
https://www.cnblogs.com/uzipi/p/6100790.html
图片体积,图片分辨率,图片尺寸之间是啥关系?
https://www.zhihu.com/question/19617114
创建镜像
https://help.aliyun.com/document_detail/25460.html?spm=5176.11065259.1996646101.searchclickresult.261b66d0mZJyAI 链接。
linux操作
查看文件夹下文件个数: ls -l |grep “^-”|wc -l
实验记录
放大100倍后的图
环境配置
apt-get 源更新:
https://www.cnblogs.com/gabin/p/6519352.html
环境配置——数据:
数据源是视频,所以免不了用ffmpeg进行一顿操作。
ffmpeg安装:可用anaconda一键安装
ffmpeg操作:
- 视频剪切:ffmpeg -ss 0:2:22 -t 0:0:10 -i input.avi -vcodec copy -acodec copy output.mp4
- 提取音频:ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
- 切出图片:ffmpeg -i input.mp4 -vf fps=25 -qscale:v 2 “imagename%7d.jpg”
- 合成视频:
- ffmpeg -f image2 -i image%d.jpg video.mp4
- ffmpeg -f concat -safe 0 -i Desktop/input.txt -vsync vfr -pix_fmt yuv420p Desktop/output.mp4
- https://blog.csdn.net/wangshuainan/article/details/77914508?fps=1&locationNum=4
- 添加音频:
- ffmpeg -i son.mp3 -i video_origine.mp4 video_finale.mp4
- 如果视频少帧了,可以进行如下尝试 ffmpeg -i son.mp3 -i video_origine.mp4 -c copy video_finale.mp4
- 视频合并:ffmpeg -f concat -i filelist.txt -c copy output.mkv
- filelist.txt 文件结构:https://blog.csdn.net/doublefi123/article/details/47276739
- python代码:
- 音频合并:ffmpeg64.exe -i “concat:123.mp3|124.mp3” -acodec copy output.mp3
- 注意点:
- 切图片的频率要设为25时,这样后面音频视频才能匹配上,>25音慢图像块,<25音快图像慢。
- 切图时候图片名称格式要和合图时候一直,例如均为:imagename%04d 或 image%d
- rmvb格式的视频无法进行“切出图片”操作
- 腾讯视频Mac本地缓存文件位置: /Users/longqi/Library/Containers/com.tencent.tenvideo/Data/Library/Application Support/Download/video
- 命令行视频下载工具:you-get和youtube-dl
- https://www.cnblogs.com/tsdxdx/p/7215336.html
- https://www.jianshu.com/p/8817a7b0c8d6
- 视频剪辑的精准切割:把-i input.avi 放到 -ss 前面可以实现精准时间切割,否则,最小时间间隔为8秒左右https://zhuanlan.zhihu.com/p/28008666
- 学习资料:
- https://baike.baidu.com/item/ffmpeg/2665727?fr=aladdin
- https://github.com/Fabsqrt/BitTigerLab/blob/master/SystemDesign/DeepFake/README.md
- https://www.linuxidc.com/Linux/2016-10/136545.htm
环境配置——第三方库
必要库安装:其他的都问题不大,直接用pip或者是conda安装即可,主要是下面三个比较难搞
TensorFlow:
- pip install --ignore-installed —upgrade https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp35-cp35m-linux_x86_64.whl
dlib:
- 如果是仅安装dlib,那么建议多次尝试:conda install -c menpo dlib
同时安装 face_recognition,dlib
综合下面两个教程:- https://github.com/davisking/dlib
- http://www.360doc.com/content/17/1114/15/16619343_703760624.shtml
OpenCV:如果普通的pip、conda方法不行,尝试下面的方法:
- 如果普通的pip、conda方法不行,尝试下面的方法:
- conda install —channel https://conda.anaconda.org/menpo opencv3
- 如果上面这个方法把OpenCV的依赖包都下完了,就是没下OpenCV,可以用pip单独下一次OpenCV试一下。
pip:
- http://www.ttlsa.com/python/how-to-install-and-use-pip-ttlsa/
安装结果检查:基本上直接用Python import一下就好了。
tensorflow检查:
import tensorflow as tf
检查版本:tf.version
安装路径: tf.path
安装TensorFlow:http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html
- 安装TensorFlow和CUDA常见问题:链接底部:http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html
- Keras 的两个 Backen:https://morvanzhou.github.io/tutorials/machine-learning/keras/1-3-backend/
- fakeapp 源码操作视频教程:https://m.weike.fm/lecture/6062924?st=sharelink&inviter_id=54173110
环境配置——操作工具
软件:配色、wget、anaconda、zip、unzip、scp、ssh
ssh
ssh -i fenneishi_personal_1.pem root@47.100.229.181 —— 绑定秘钥
ssh root@47.100.229.181 ——————————————–没有绑定配色方案
- (vim ~/.bashrc )
- export PS1=’[\e[32m][[\e[35m]\u[\e[m]@[\e[36m]\h [\e[31m]\W[\e[32m]][\e[36m]$[\e[m] ’
anaconda
- 下载地址:https://www.anaconda.com/download/#linux
- 安装教程:(linux)https://docs.anaconda.com/anaconda/install/linux
- 环境变量:
- 如果在安装Anaconda的过程中没有将安装路径添加到系统环境变量中,需要在安装后手工添加:
- 在终端输入$sudo gedit /etc/profile,打开profile文件。
- 在文件末尾添加一行:export PATH=/home/grant/anaconda2/bin:$PATH,其中,将“/home/grant/anaconda2/bin”替换为你实际的安装路径,保存
- 安装注意事项:
- 首先要确保进入了conda建立的隔离环境当中。
- 在conda隔离环境当中,用pip和pip3是没有差别的,因为如果你的环境是Python3的,那么无论pip3 or pip 都会把包安装到cond下面的Python3中。
- pip的镜像源默认为阿里云,所以会更快,所以能用pip就用pip,有问题(通常是依赖关系问题)再用conda。
scp
scp -r root@101.132.150.5:/root/tiger/congcongphoto congcongphotowget:
- wget -c http://www.xxx.xxx/xxx(文件的下载链接)
- 服务器从oss上下载文件非常快,但要注意文件名尽量不要有中文,否则会乱码。
- 有些网站的下载链接会隐藏起来,你直接右键获取不到真正的下载链接,这时候就要启动一些前端开发者模式
- -c 的意思是断点续传,最好加上,防止中断。
oss:
https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.3.1.1YQRqF
Mac文件上传到OSS:直接拖拽即可
服务器从OSS下载文件:wget -c 即可(速度要求不高时)
工具下载地址:建议把名字改成oss
本地化调用配置:把oss 放到PATH变量支持的路径或者修改PATH也行(echo $PATH 查看PATH变量 )
先修改权限:chmod 755 ossutilmac64
配置文件配置:- Access Key管理 :右键头像
- LTAI6EQI9vrYRRH8
02Z5bGk3YstFfWqf4VGoCfJ36OIBPD
- endpoint:https://help.aliyun.com/document_detail/31837.html
- 阿里云服务器用内网endpoint,非常快,可以达到100MB每秒以上
- 本地Mac必须要要用外网endpoint。
- oss-cn-shanghai-internal.aliyuncs.com
- oss-cn-shanghai.aliyuncs.comf
使用:
- 查看帮助:oss help cmd -L CH
- cp:
- oss cp pp_photo.zip oss://fenneishi-test/data/photo/pp/
- 生成:oss://bucket1/b/a
- oss cp oss://bucket/abcdir/a b/
- 在目录b下生成文件a
以上,如果b/文件夹不存在都会新建的,无论是在OSS还是在src
- 在目录b下生成文件a
- oss cp pp_photo.zip oss://fenneishi-test/data/photo/pp/
- Access Key管理 :右键头像
环境配置——硬件
迁移CUDNN:
你还需要设置 LD_LIBRARY_PATH 和 CUDA_HOME 环境变量. 可以考虑将下面的命令 添加到 ~/.bash_profile 文件中, 这样每次登陆后自动生效. 注意, 下面的命令 假定 CUDA 安装目录为 /usr/local/cuda:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cudalinux 检查nvdia驱动
https://zhidao.baidu.com/question/91751639.html
查看nvdia 信息:nvidia-smi
命令行下执行:$ lshw -c video看configurure字段有没有driver字样,若有内容,则显卡驱动装好了。
直接安装CUDA 会有相应的驱动自动安装的GPU驱动安装:
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.0
Samples: Installed in /root, but missing recommended librariesPlease make sure that- PATH includes /usr/local/cuda-9.0/bin- LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as rootTo uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/binPlease see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:sudo <CudaInstaller>.run -silent -driverLogfile is /tmp/cuda_install_1247.log
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190122143453192.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjY3MzA0Mw==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190122143522357.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjY3MzA0Mw==,size_16,color_FFFFFF,t_70)
环境配置——其他
- cpu机上充分利用算力:
https://github.com/lakshayg/tensorflow-build - 持续训练:
关闭云终端shell后,训练能够继续进行
一直未解决这个问题,但是实际上这个问题很重要,要不然你很有可能会遇到功亏一篑的情况(例如训练一半,断网导致云端shell退出,训练停止,而你不知道,傻等了几个小时,浪费了时间+金钱) - 镜像
阿里云部分GPU服务器无法一键镜像
使用阿里云GN5i服务器正常,使用gn5,因为默认搞了一个本地盘,导致无法一键镜像,但是应该可以通过进入具体的盘处,操作快照和镜像。
尽量提前1h 制作镜像。 - 停机不收费
阿里云部分机型支出停机不收费,或者很低的费用,好像主要是在CPU环境下,没有仔细研究这块,但是建议如果不用了,就镜像+释放。
bug解除
1、input/alignments.json not read!
解决:在用ffmpeg从视频中提取图片集时,会出现这个/alignments.json。另外,最终用来转换的是原始照片集,不是用deepfake.py extract 出来的大头照。
2、源码参数不调节会把照片中所有人脸全部替换掉,而不是只替换目标人脸。
解决:只出现目标人脸
3、ImportError: libiomp5.so: cannot open shared object file: No such file or directory
解决:猜测是因为云端的英特尔芯片驱动问题,所以直接上了GPU的实例+搭建好的深度学习unbuntu框架.
关键信息
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36673043/article/details/86594786
DeepFake技术--实际操作相关推荐
- Deepfake技术实现秒速换脸!!!
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 想变就变,近日一款基于Deepfake技术的新应用Doublicat可在几秒钟实现 ...
- docker pull下载很慢_一文了解Docker容器技术的操作
一文了解Docker容器技术的操作 前言 相信点进这篇文章的Coder,不管是在各大技术论坛上.技术交流群,亦或招聘网上,应该都有见到过Doker容器技术的面孔,随着社会节奏的加快以及迫于生活的压力, ...
- 图像视频伪造检测,针对DeepFake技术检测效果不佳
随着Deepfake技术的发展,互联网上充斥着大量包含伪造人脸的虚假视频,Deepfakes类技术的滥用带来巨大的负面影响,本文给出一些典型检测思路及方案.很多情况下,Deepfake"以假 ...
- CV之Face Change:基于人工智能实现国内众多一线美女明星换脸(基于Face++输出4*106个特征点定位+融合代码、deepfake技术)
CV之Face Change:基于人工智能实现国内众多一线美女明星换脸(基于Face++输出4*106个特征点定位+融合代码.deepfake技术) 目录 视频实时换脸明星动画-最新案例 1.演示视频 ...
- 竞价猎马技术具体操作
什么是"开盘竞价"? 股市开盘前有一个集合竞价的过程,这个股市开盘竞价是什么意思? 每个交易日上午09:15至09:25撮合系统接受的全部有效委托进行集合竞价处理,对其余交 ...
- [渝粤教育] 四川工程职业技术学院 焊条电弧焊技术与操作 参考 资料
教育 -焊条电弧焊技术与操作-章节资料考试资料-四川工程职业技术学院[] 第一周单元作业 第一周单元测验 1.[单选题]焊条电弧焊属于 A.熔焊 B.压焊 C.钎焊 D.爆炸焊 参考资料[ ] 2.[ ...
- 计算机三级网络技术网络聚合,计算机三级《网络技术》操作试题及答案2016
计算机三级<网络技术>操作试题及答案2016 参考答案与解析 一.综合题 1.[解题思路] 该题考查的主要内容是给出IP地址和子网掩码,要求解出主机号.网络地址.广播地址.直接广播地址以及 ...
- 光纤熔接盒盘线方法_【图文教程】光纤熔接技术的操作与技巧分享!
众所周知,光纤熔接主要分为四个步骤:剥.切.熔.护. 所谓的剥:是指将光缆中的光纤芯剥离出来,这其中包括了最外层的塑料层,中间的钢丝,内层中的塑料层及光纤表面的颜色油漆层. 所谓的切:是指将剥好准备熔 ...
- 计算机二级办公软件高级应用操作题,谁有计算机二级办公软件高级应用技术word操作题目啊?...
信息检索技术论文 –基于网格的面向专业内容的Web信息检索1 引言 近年来,互联网得到了迅速的发展,网上信息资源愈来愈庞大,且信息具有量大.分散.异构等特性,因此,传统的Web信息检索工具开始暴露出它 ...
- 黑帽seo泛目录技术的操作详解
基础的黑帽SEO技术中,泛目录是目录做法中非常经典的一个做法,非常适合新手,原因是其操作简单,原理也容易被新手搞懂,相比于寄生虫等做法,泛目录无需复杂的配置,直接简单的配置后即可使用.泛目录虽然也是繁 ...
最新文章
- 论坛报名 | 视觉大模型是实现视觉智能的必由之路吗?
- 2015年第11本:代码整洁之道Clean Code
- python 中的位置参数和默认参数
- C++反汇编代码分析
- python lock_python多线程Lock和RLock的区别
- vue中标签自定义属性的使用
- Spark 开源新特性:Catalyst 优化流程裁剪
- 原生JS替代jQuery的各种方法汇总
- 数模论文研读--------09年B题:眼科病床
- iOS xcode ‘XXXX’ was compiled with optimization - stepping may behave oddly; variables may not be av
- 《Python密码学编程》——2.6 本书的文本换行
- 重构第0天--重构的理解
- 基于WebAssembly 的H.265播放器研发
- 只需三分钟小白也能学会!新手做自媒体,音乐拼接一晚200多
- ZYNQ开发(七)Linux开发之Petaliunx的设计流程(SD卡启动)
- 新特性速递 | InnoDB redo log archiving(归档)
- ROCKET PROPULSION ELEMENTS——DEFINITIONS AND FUNDAMENTALS笔记
- MySQL基本概念和正确发音(表、列、行、注解等讲解)
- 模拟集成电路设计与分析——全差分放大器
- 生成树最小树形图 -- 朱刘算法详解
热门文章
- Android Service中的android:process=:remote
- session和cookie的区别和联系详解,Cookie Session相关看这篇就够了。
- 平庸程序员的成长笔记
- Android自定义ProgressBar样式:渐变圆角水平进度条
- 关于Handler和子线程的记录
- MySQL存储引擎InnoDB、MyISAM 、其它存储引擎介绍
- 有关Select 语句查询.四
- Cocos2d—X游戏开发之VS2010 控制台输出中文,模拟器中文乱码问题解决
- 关于NSStringFromClass的一点见解
- ELK温度监控--lmsensorsbeat