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

深度学习环境配置和CPVTON复现

目录开发环境数据下载VITON复现(未完成)[TowardCharacteristic-PreservingImage-basedVirtualTry-

目录

      • 开发环境
      • 数据下载
      • VITON复现(未完成)
      • [Toward Characteristic-Preserving Image-based Virtual Try-On Network](https://arxiv.org/abs/1807.07688v1) (ECCV 2018)
      • CP-VTON复现


开发环境

除了根据link配置好cuDNN,Tensorflow,PyTorch以外,一些其他的依赖包如TensorboardX,Opencv 等也可以用同样的方法在命令行用pip3 install 并通过清华镜像 -i https://pypi.tuna.tsinghua.edu.cn/simple 进行配置。

安装PyCharm。先在PyCharm官网下载安装包,在命令行进入解压后的/bin文件夹,执行 sh ./pycharm.sh 命令,之后的操作参照链接,并参考link配置项目环境。

错误解决方案:

  • sudo apt-get install 出现“E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?”。参考1 参考2 。由于两种方案都有尝试,所以不确定是哪一个奏效。

  • “sudo add-apt-repository command not found”:解决方案

  • “no module named Tensorflow”:存在多个版本的python时,需要键入正确版本如使用pip3安装则是python3,以导入模块。参考

  • “tensorboard: command notfound”:解决方案 我是在tensorboard里python main.py解决的


数据下载

谷歌搜索镜像:谷歌学术镜像

MultCloud:在官网注册一个账号,进入后绑定百度云或其他可访问的网盘,绑定Google Drive(需要代理),在Google Drive中将需要下载的文件保存到自己的空间后,在MultCloud中选中,Copy to 目标网盘,即可在其他网盘工具进行高速下载。如果是放在谷歌网盘的数据集,可以通过上述方法下载。

我后来保存了cp-vton的数据集和模型,可以在(链接 提取码:8aum)下载,里面有一个model文件夹和一个viton_resize.tar.gz。

VITON复现(未完成)

VITON: An Image-based Virtual Try-on Network(CVPR 2018)

(论文地址 Github项目地址(Star 209))

在这里插入图片描述

在Github的诸多虚拟试穿的项目中,VITON的这一复现项目是最热门的项目之一,因此我原先的计划是跑一下这个模型。但是项目使用的数据集应该是涉及到zalando公司的利益而版权受到限制,有评论提到可以用CP-VTON项目中使用的数据集代替,而两边用到的数据的格式和深度学习库不一样,我没将数据处理修改好,所以暂时没跑。

使用PyCharm进行调试,命令行参数的设置可经下图所示步骤。
在这里插入图片描述在这里插入图片描述

Toward Characteristic-Preserving Image-based Virtual Try-On Network (ECCV 2018)

这篇文献是对 VITON 的一个改进,相较于 VITON,CP-VTON 在生成试衣图像时并没有采用 shape context matching,而是采用了一种 tailored convolutional neural network。

在这里插入图片描述

人物表示

姿势热图:一个18通道的特征图,每个通道对应一个人体姿势关键点,绘制为11 × 11白色矩形。

身体形状:模糊的二进制蒙版的1通道特征图,大致覆盖了人体的不同部位。

保留区域:包含保留区域以保持人的身份(包括脸部和头发)的RGB图像。

Geometric Matching Module(GMM)

它的输入是人物表示p和目标产品图片c,p和c的高级特征会由两个网络提取,然后被一个相关层组合到一起。与
VITON的编码器-解码器生成器不同,GMM的输出并不是目标变形衣服形状的mask,而是变形后的衣服。

GMM通过训练一个 regression network 预测空间变换参数并使用TPS转换来生成变形后的衣服,其代价函数为变形后的衣服与Ground True 的L1损失。直接使用像素对像素的误差能提升网络的效率,不过不一定能获得更好的生成效果。GMM不像VITON使用预先训练的VGG19,而是从头开始训练。
在这里插入图片描述

在 GMM部分,主要分为 Feature Extraction Network (用于人物表示和衣服的特征提取)和 Regression Network 两部分。在 Feature Extraction Network 部分中,包含四个2-stride的下采样卷积层,后接两层卷积层使用了 1-stride以维持输出的维数。Regression Network 包含两个 2-stride 的卷积层、两个 1-stride 的卷积层、一个全连接的输出层。文章也给出了 SCMM 与 GMM 的效果对比,结果显示 GMM 在处理较大幅度的变形的时候能获得比 SCMM 更好的效果。

Try-on Module(TOM)

给定人物表示和变形衣服,UNet同时生成渲染人物与Composition Mask,渲染人物与变形衣服将通过Composition Mask合成最终结果。

和 VITON 的 Refinement Network 差不多,比较具体的不同是在于代价函数的选择。在 VITON 中,代价函数只用了 VGG19感知损失,而在 CP-VTON 中,作者加上了 pixel-wise 的 L1 损失。此外,由于 CP-VION 在 GMM 中并没有得到 segmentation mask,在计算 Composition Mask 的误差的时候无法照搬 VITON 的损失函数。基于特征保留的目的,作者使用了 1 - M 的 L1
范数来增强服装部分像素点对 loss 函数的影响。具体损失函数如下:

在这里插入图片描述

CP-VTON复现

Toward Characteristic-Preserving Image-based Virtual Try-On Network (ECCV 2018)

(论文地址 Github项目(Star 156)地址 地址2 )

同样出自GitHub中的热门项目。Clone 地址中的项目到本地,将GoogleDrive 中/viton_resize文件夹里的数据保存到/data目录下,按照2中的说明修改cp_dataset.py以及命令行参数(使用命令行或 .sh文件运行时将python改为python3)。

项目的主要文件包括:

  • networks.py:定义GMM,TOM在内的各种网络结构

  • test.py:测试模块

  • train.py:训练模块

  • cp_dataset.py:数据预处理,包括绘制姿势热点图等

  • visualization.py:可视化测试结果

按照给定的参数进行了训练与测试。CP-VTON的第一部分为几何匹配模块,将干净的衣服图片变形,第二部分为试戴模块,将变形后的衣服穿戴到模特身上。

Geometric Matching Module训练结果:以产品图片和人物表示为输入,第二行中间为几何变形结果,第三行中间则为直接覆盖在原图的效果预览,其右为原图。

在这里插入图片描述

Geometric Matching Module测试结果:以产品图片和人物表示为输入,第二行中间为几何变形结果,第三行中间则为直接覆盖在原图的效果预览,其右为原图。

在这里插入图片描述

Try-on Module训练结果:以GMM得到的结果与人物表示作为输入。最后一行中央的图片为合成图片,其右为真实图片。

在这里插入图片描述

Try-on Module测试结果:以GMM得到的结果与人物表示作为输入。最后一行中央的图片为合成图片,其右为真实图片。

在这里插入图片描述

为了更直观查看模型效果,借用2的smart_show_test_result.py,由于dict类型是无序的,需要对原先代码进行修改,引入OrderedDict类型才能输出正确的结果。(关于OrderedDict)
在这里插入图片描述
使用matpoltlib显示图片:方法
在这里插入图片描述

从测试结果大致看来,CP-VTON在面对身体遮挡问题的表现有显著的不足,衣服细节保留方面也有许多欠缺。

总结:

之前在Github看到相关项目提供的数据集大多数都放在Google Drive里,由于难以访问Google Drive,浪费了太多时间才找到合适的方法来下载文件。

无法访问Google Drive的问题虽然解决起来简单,但是如果平时习惯用谷歌搜索,无法访问谷歌这一点,它出来的都是不相关的解决方案。一开始因为网络工具不太稳定而文件太大一直下不完,进度就卡住了。其实只要用百度搜索一下就能找到解决方案了,但是前期一直没有意识到这个问题。

千万不要只在一个搜索引擎找解决方案哈哈哈哈哈哈哈哈(哭了出来)。

除了看CP-VTON的项目相关外,留意了一些更新的研究如Multi-pose Guided Virtual Try-on Network(MG-VTON)或者End-to-End Learning of Geometric Deformations of Feature Maps for Virtual Try-On (WUTON),目前网上还没有看到相应的复现。

一些找到的其他虚拟试穿项目:

PaperProject LinkStar
Deep Virtual Try-on with Clothes Transform(ICS 2018)https://github.com/b01902041/Deep-Virtual-Try-on-with-Clothes-Transform53
VITON: An Image-based Virtual Try-on Network(CVPR 2018)https://github.com/amjltc295/VITON_realtime41
SwapNet: Image Based Garment Transfer(ECCV 2018)https://github.com/andrewjong/SwapNet26

推荐阅读
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 使用 Jupyter Notebook 实现 Markdown 编写与代码运行
    Jupyter Notebook 是一个开源的基于网页的应用程序,允许用户在同一文档中编写 Markdown 文本和运行多种编程语言的代码,并实时查看运行结果。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 阿里云服务器搭建详解——Ubuntu
    由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器。听朋友说,学生买的话是非常便宜 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • Python 脚本转换为可执行文件 (EXE)
    本文介绍了如何使用 PyInstaller 将 Python 脚本打包成独立的 EXE 文件,包括安装 PyInstaller 库和具体操作步骤。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
author-avatar
霸气的饭桶丶_130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有