# Virtual Try-On System
基于深度学习的虚拟试衣系统
**第十四届中国服务外包创新大赛获奖作品**
联系方式:huangwenxuan271828@163.com
项目链接:https://github.com/T4t4KAU/VirtualTryOnSystem.git
论文链接:https://ieeexplore.ieee.org/document/10241865
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/0.png?raw=true" alt="image1.png" style="width:100%; height:auto;">
## 推荐硬件
内存: 32G
CPU: 16核
尚未支持GPU
## 安装方法
首先须要拉取所需的docker镜像,包含了所有的预处理和推理模块
```bash
docker pull nephilimboy/openpose-cpu
docker pull venuns/parse-agnostic
docker pull venuns/vitons
docker pull venuns/humanparse
docker pull venuns/densepose
docker pull venuns/resize:viton
docker pull venuns/clothmask
docker pull venuns/super-resolution
```
在项目根目录下执行:
```
bash run.sh
```
启动单个实例,默认启动在8888端口,启动时间可能会较长
启动3组实例:
```
bash govton-start.sh
```
POST请求接口:
```
curl -X POST -F "image=@./image/test.jpg" -F "cloth=@./cloth/test.jpg" 127.0.0.1:8888/vitons
```
`./image/test.jpg`是一个示例,实际上就是人物图片的路径,`./cloth/test.jpg`是衣服图片的路径
如果请求成功的话 收到的HTTP响应中会包含试衣结果,等待的时间可能会有3到5分钟
启动后,可以访问测试页面:http://127.0.0.1:8888/index
这个页面仅仅用来测试
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/1.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
点击上述按钮可以进行人物和衣服的上传
## 系统架构
### 预处理模块
#### DensePose UV Parts Segmentation
DensePose 是一种计算机视觉技术,旨在将图像中的人体姿态估计与密集表面估计结合起 来,能够精确地将人体图像中的每个像素点与一个身体部位或身体表面相关联。
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/6.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
#### Human Keypoint Detection using Openpose
OpenPose 是一种计算机视觉技术,能够实时地检测图像或视频中人体的姿势和动作,以 C++和 Python 编写,基于深度学习算法。
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/7.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
#### Human Parsing via Part Grouping Network (PGN)
Human Parsing via Part Grouping Network (PGN)是一种图像语义分割技术,主要用于 分割人体部位和解析人体姿势。
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/8.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
#### Clothing-Agnostic Representation
为了删除原始图像中的服装细节,本项目引入了一个新的特征服装不可知表示(Cloth Agnostic Processing),它使用姿势信息和分割图,彻底消除对原衣服的依赖,保留需要 复制的身体部位。
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/9.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
#### Cloth Mask Extraction via UNet
Cloth Mask Extraction via UNet 是一种基于深度学习的图像分割技术,主要用于从服装图像中提取出衣服的遮罩。
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/10.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
#### High Resolution via SRGAN
本项目额外引入的一种基于 SRGAN 的超分辨率算法,是对预处理结果的进一步优化,为本 团队基于项目需求的创新,能够显著提高最终的结果的效果。
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/11.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
### 推理模块
基于上述的预处理结果,应用高分辨率虚拟试衣算法生成最终的试衣图像,该算法旨在解决传统虚拟试穿技术中存在的对齐和遮挡问题
整个框架可以分为两个部分:
1. Try-on Condition Generator:该生成器使用无关衣服的人体表示和衣服图案,同 时生成衣服的分割图和人体的变形。在这个过程中,生成器不会产生任何错位或像 素挤压的伪影。具体地说,该生成器使用无关衣服的人体表示和衣服图像作为输入 ,生成衣服的分割图和人体的变形。生成器的设计能够确保衣服图案与人体之间的 错位不会产生任何伪影,同时可以避免像素挤压的情况。这种设计可以提高虚拟试 穿的质量,使试穿效果更加真实和自然。
2. Image Condition Generator: 试穿图像生成器使用这些输出来合成最终的试穿结 果图像,将衣服和人体进行融合,生成虚拟试穿图像。这个过程可以通过深度学习 模型来实现,具有很好的试穿效果和图像质量
架构图:
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/13.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
总体流程:
<img src="https://github.com/T4t4KAU/VirtualTryOnSystem/blob/main/static/12.png?raw=true" alt="image1.png" style="width:50%; height:auto;">
### 服务端
服务端的职责是启动、使用和调度已经容器化的计算模块。我们使用Go语言中的Go-Zero框架进行开发,利用事先定义的 protobuf 文件可以方便快捷地生成代码,也便于后期的扩展与更新。
服务端使用 RPC(基于gRPC框架) 与计算模块进行通信,具体应用中,对于占用较多计算资源的模块(如HumanParse),在服务启动时就预先加载(热启动)并且常驻后台运行并监听请求,在运行时尽量不和其他计算任务同时进行。
对于占用较少计算资源模块(如ClothMask), 该模块不会预先启动或常驻运行,仅在需要时运行一次,避免白白浪费内存(将内存资源尽量留给HumanParse),这样的模块将使用命令行和SDK直接启停。
服务端会用一个 pending 表记录正在运行的计算模块,如果有长作业在运行,那么不会调度其他的复杂计算任务与其同时运行(避免为机器带来过高的负载而导致崩溃)。
对于短期且资源需求较低的计算任务,可以调度其他计算任务运行。服务端也不会调度多个复杂计算任务连续执行,以免简单计算任务发生"饥饿"。
有些计算任务之间具有依赖性,前一个任务的结果会是后一个任务的输入,服务端会将一些计算任务的输出结果暂存到队列中,以待相关任务被调度时使用。
但是对于内存小于32G的机器不推荐启动多个实例,建议每个容器只启动一个实例。在制作容器镜像的时候,我们希望减小打包后的镜像的大小,所以所有镜像都基于一个公共的镜像。
目录结构:
```
.
├── README.md
├── containers # 容器操作实现
│ ├── agnostic
│ ├── containers.go
│ ├── densepose
│ ├── mask
│ ├── openpose
│ ├── parsing
│ ├── resize
│ ├── resolution
│ └── vitons
├── core
│ ├── etc
│ ├── govton.go
│ └── internal
│ ├── config
│ │ └── config.go
│ ├── handler # 请求处理
│ ├── logic # 业务逻辑
│ ├── svc
│ │ └── service_context.go
│ └── types
│ └── types.go
├── go.mod
├── go.sum
├── govton-restart.sh
├── govton-start.sh
├── govton-stop.sh
├── govton.api
├── nginx.conf
├── process # 预处理调用
│ ├── consts.go
│ ├── densepose.go
│ ├── human_agnostic.go
│ ├── mask.go
│ ├── parse.go
│ �
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉的实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
资源推荐
资源详情
资源评论
收起资源包目录
人工智能项目资料-基于深度学习的虚拟试衣系统.zip (448个子文件)
govton.api 3KB
nginx.conf 521B
.DS_Store 18KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
viton_test.go 12KB
human_agnostic.pb.go 9KB
parse_agnostic.pb.go 9KB
vitons.pb.go 9KB
vtion.pb.go 8KB
densepose.pb.go 6KB
parse.pb.go 6KB
mask.pb.go 6KB
vitons.go 6KB
mask_grpc.pb.go 4KB
human_agnostic_grpc.pb.go 4KB
parse_agnostic_grpc.pb.go 4KB
densepose_grpc.pb.go 4KB
parse_grpc.pb.go 4KB
vitons_grpc.pb.go 3KB
vtion_grpc.pb.go 3KB
vitons.go 3KB
process.go 3KB
docker_process_test.go 3KB
openpose_test.go 3KB
process_test.go 3KB
docker_test.go 3KB
cpu.go 2KB
agnostic.go 2KB
densepose.go 2KB
parsing.go 2KB
mask.go 2KB
vitons_logic.go 2KB
resolution.go 2KB
types.go 2KB
resize.go 2KB
gpu.go 2KB
parse_agnostic.go 2KB
viton.go 2KB
routes.go 1KB
parse.go 1KB
vitons_handler.go 1KB
mask.go 1KB
densepose.go 1KB
viton_handler.go 1KB
govton.go 920B
upload_test.go 915B
upload_handler.go 893B
containers.go 863B
human_agnostic.go 861B
http_interface_test.go 858B
densepose_logic.go 830B
human_agnostic_logic.go 812B
openpose_logic.go 778B
parse_agnostic_logic.go 774B
utils.go 748B
parse_logic.go 709B
index_handler.go 680B
clothmask_logic.go 678B
parse_agnostic_handler.go 650B
human_agnostic_handler.go 650B
upload_logic.go 646B
clothmask_handler.go 634B
densepose_handler.go 634B
openpose_handler.go 630B
parse_handler.go 623B
viton_logic.go 566B
index_logic.go 563B
consts.go 318B
service_context.go 211B
config.go 98B
govton 20.85MB
index.html 3KB
test5.jpg 351KB
test.jpg 321KB
test.jpg 307KB
test_image.jpg 307KB
test_cloth.jpg 306KB
test6.jpg 252KB
test.jpg 234KB
test.jpg 221KB
test4.jpg 210KB
test.jpg 210KB
test.jpg 174KB
test.jpg 104KB
test.jpg 103KB
test.jpg 103KB
test1.jpg 103KB
test.jpg 94KB
image.jpg 86KB
共 448 条
- 1
- 2
- 3
- 4
- 5
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功