热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DeepFake技术实际操作

文章目录文件结构执行步骤效果优化总结:切图层面:extract层面:select层面:原始数据优化:执行过程

文章目录


  • 文件结构
  • 执行步骤
  • 效果优化
    • 总结:
    • 切图层面:
    • 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
  • OSS:————————————————————————————————————OSS
    • V_1:
      • source: A_source.zip;A_source.zip 上传至OSS,并下载到Mac
  • extract:—————————————————————————————GPU or cpu
    • V_1
      • A
        • input : 下载并解压缩
        • output : 提取人脸照片集
        • A_extract.zip(output) 压缩人脸照片集
      • B
  • OSS:————————————————————————————————————OSS
    • V_1:
      • extract :A_extract.zip;B_extract.zip 上传至OSS,并下载到Mac
  • select:—————————————————————————————————————————Mac
    • V_1: auto →manual
      • select_A→zip(A_select.zip) 挑选并压缩
      • select_B→zip(B_select.zip) 挑选并压缩
  • OSS:————————————————————————————————————————————————OSS
    • V_1:
      • select :A_select.zip;B_select.zip 上传至OSS,并下载到GPU
  • train:———————————————————————————————————————————————————— ————GPU
    • V_1_1:
      • input_A :下载解压
      • input_B :下载解压
      • models :训练生成
      • models.zip:压缩模型
  • OSS:————————————————————————————————————————————————OSS
    • V_1_1:
      • models :models.zip 上传至OSS,并下载到GPU
  • 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)
  • OSS:——————————————————————————————————————————————————————————————————————————OSS
    • V_1_1_1:
      • result :result.zip 上传至OSS,并下载到Mac

项目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/

执行步骤

1——环境搭建:


  1. 硬件:实例(OSS)、GPU、CUDN、CUDNN、
  2. 软件: anaconda、TensorFlow_GPU 、dlib 、face_recognize、keras、、、、、
  3. 文件:code、input_A 、input_B/、input、output、models、data(photo、video、history)

2——数据准备:


  1. 视频剪切
  2. 音频导出
  3. 图片切出

3——人脸提取:extract


  1. A:
    • 把A的照片集cp到input里
    • python3 faceswap.py extract -i input -o output( -i input -o output可以省略不写)
    • 手动删除output不合适的照片
    • mv output input_A;rm input/*
  2. 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操作:


  1. 视频剪切:ffmpeg -ss 0:2:22 -t 0:0:10 -i input.avi -vcodec copy -acodec copy output.mp4
  2. 提取音频:ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
  3. 切出图片:ffmpeg -i input.mp4 -vf fps=25 -qscale:v 2 “imagename%7d.jpg”
  4. 合成视频:
    1. ffmpeg -f image2 -i image%d.jpg video.mp4
    2. 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
  5. 添加音频:
    1. ffmpeg -i son.mp3 -i video_origine.mp4 video_finale.mp4
    2. 如果视频少帧了,可以进行如下尝试 ffmpeg -i son.mp3 -i video_origine.mp4 -c copy video_finale.mp4
  6. 视频合并:ffmpeg -f concat -i filelist.txt -c copy output.mkv
    1. filelist.txt 文件结构:https://blog.csdn.net/doublefi123/article/details/47276739
    2. python代码:
  7. 音频合并:ffmpeg64.exe -i “concat:123.mp3|124.mp3” -acodec copy output.mp3
  8. 注意点:
    • 切图片的频率要设为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
  9. 学习资料:
    • 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 congcongphoto

  • wget:

    • 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

环境配置——硬件


  • 迁移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/cuda

  • linux 检查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 with the name of this run file:sudo .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)

环境配置——其他


  1. cpu机上充分利用算力:
    https://github.com/lakshayg/tensorflow-build
  2. 持续训练:
    关闭云终端shell后,训练能够继续进行
    一直未解决这个问题,但是实际上这个问题很重要,要不然你很有可能会遇到功亏一篑的情况(例如训练一半,断网导致云端shell退出,训练停止,而你不知道,傻等了几个小时,浪费了时间+金钱)
  3. 镜像
    阿里云部分GPU服务器无法一键镜像
    使用阿里云GN5i服务器正常,使用gn5,因为默认搞了一个本地盘,导致无法一键镜像,但是应该可以通过进入具体的盘处,操作快照和镜像。
    尽量提前1h 制作镜像。
  4. 停机不收费
    阿里云部分机型支出停机不收费,或者很低的费用,好像主要是在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


推荐阅读
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转
    本文探讨了在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转的技术细节。通过详细分析Swscale的工作原理和实际应用,展示了如何在Android环境中高效地进行图像格式转换。此外,还介绍了FFmpeg的全平台编译过程,包括x264和fdk-aac的集成,并在Ubuntu系统中配置Nginx和Nginx-RTMP-Module以支持直播推流服务。这些技术的结合为音视频处理提供了强大的支持。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流
    字节流抽象类InputStream和OutputStream是字节流的顶级父类所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStreamInput ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 基于OpenCV的图像拼接技术实践与示例代码解析
    图像拼接技术在全景摄影中具有广泛应用,如手机全景拍摄功能,通过将多张照片根据其关联信息合成为一张完整图像。本文详细探讨了使用Python和OpenCV库实现图像拼接的具体方法,并提供了示例代码解析,帮助读者深入理解该技术的实现过程。 ... [详细]
  • 机顶盒,即数字电视机顶盒(Digital TV Set-Top Box,简称STB),是一种放置在电视机旁的设备。它主要用于将数字信号转换为电视能够识别的模拟信号,从而实现高质量的视频和音频播放。机顶盒不仅支持基本的电视节目接收功能,还具备多种增值服务,如互动点播、网络浏览等。随着技术的发展,现代机顶盒集成了更多的智能功能,成为家庭娱乐的重要组成部分。 ... [详细]
  • 在 Vbox 和 Hbox 布局中,当用户点击容器添加一个矩形时,系统会自动为该矩形分配坐标并打印其位置信息。此外,在按键事件触发时,系统仅打印当前矩形的坐标值。这两种布局在特定的交互场景下,能够动态地管理和更新子组件的位置。 ... [详细]
  • 池子比率:BSV 区块链上的去中心化金融应用——Uniswap 分析
    池子比率:BSV 区块链上的去中心化金融应用——Uniswap 分析 ... [详细]
  • 本文探讨了如何在C#中实现USB条形码扫描仪的数据读取,并自动过滤掉键盘输入,即使不知道设备的供应商ID(VID)和产品ID(PID)。通过详细的技术指导和代码示例,展示了如何高效地处理条形码数据,确保系统能够准确识别并忽略来自键盘的干扰信号。该方法适用于多种USB条形码扫描仪,无需额外配置设备信息。 ... [详细]
author-avatar
珠海南驰焊接检测工程有限公司
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有