DCT-Net人像卡通化-王者荣耀英雄

我要开发同款
匿名用户2024年07月31日
153阅读

技术信息

开源地址
https://modelscope.cn/models/lskhh/ty_cv_unet_person-image-cartoon-wz_compound-models
授权协议
Apache License 2.0

作品详情

git cloe https://www.modelscope.c/lskhh/ty_cv_uet_perso-image-cartoo-wz_compoud-models.git

进度说明 v1.0.4

此模型只训练了15999个epoch,感兴趣可以用代码继续训练, 最佳实践是300000epoch,原repo只用了16999。

  • 16000epoch效果[左Iput,右Output]:

DCT-Net人像卡通化-王者荣耀风格模型

本仓库提供DCT-Net王者荣耀风转换模型

>>进入创空间试用

模型创建说明(重要!!!)

如何使用

在ModelScope框架上,提供输入图片,即可以通过简单的Pipelie调用来使用人像卡通化模型。

代码范例

模型推理(支持CPU/GPU):

import cv2
from modelscope.outputs import OutputKeys
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks

img_cartoo = pipelie(Tasks.image_portrait_stylizatio, 
                       model='lskhh/ty_cv_uet_perso-image-cartoo-wz_compoud-models',model_revisio='v1.0.4')
# 图像本地路径
#img_path = 'iput.pg'
# 图像url链接
img_path = 'https://modelscope.c/api/v1/studio/lskhh/wz_portrait_stylizatio/repo?Revisio=master&FilePath=images/00066.jpg&View=true'
result = img_cartoo(img_path)
cv2.imwrite('result.pg', result[OutputKeys.OUTPUT_IMG])
prit('fiished!')

模型训练:

环境要求:tf1.14/15及兼容cuda,支持GPU训练[这配置折腾了我两天]

import os
import uittest
import cv2
from modelscope.exporters.cv import CartooTraslatioExporter
from modelscope.msdatasets import MsDataset
from modelscope.outputs import OutputKeys
from modelscope.pipelies import pipelie
from modelscope.pipelies.base import Pipelie
from modelscope.traiers.cv import CartooTraslatioTraier
from modelscope.utils.costat import Tasks
from modelscope.utils.test_utils import test_level

os.eviro['CUDA_VISIBLE_DEVICES'] = "0"

model_id = 'damo/cv_uet_perso-image-cartoo_compoud-models'
data_dir = MsDataset.load(
            'dctet_trai_wz',
            amespace='lskhh',
            split='trai').cofig_kwargs['split_cofig']['trai']
# prit(data_dir)
# data_dir='./'
data_photo = os.path.joi(data_dir, 'traidata_wzry_trai/face_photo')
data_cartoo = os.path.joi(data_dir, 'traidata_wzry_trai/face_cartoo')
# prit(data_photo)

# data_photo ='face_photo'
# data_cartoo =  'face_cartoo'
work_dir = 'exp_localtoo'
max_steps = 10000
traier = CartooTraslatioTraier(
            model=model_id,
            work_dir=work_dir,
            photo=data_photo,
            cartoo=data_cartoo,
            max_steps=max_steps)
traier.trai()

上述训练代码仅仅提供简单训练的范例,对大规模自定义数据,替换dataphoto为真实人脸数据路径,datacartoo为卡通风格人脸数据路径,maxsteps建议设置为300000,可视化结果将存储在workdir下;此外cofiguratio.jso(~/.cache/modelscope/hub/damo/cvuetperso-image-cartoo_compoud-models/)可以进行自定义修改;

Note: otebook预装环境下存在umpy依赖冲突,可手动更新:pip istall umpy==1.18.5

数据集制作

王者荣耀英雄头像爬取

import urllib.request
import jso
import os

respose = urllib.request.urlope("http://pvp.qq.com/web201605/js/herolist.jso")

hero_jso = jso.loads(respose.read())
hero_um = le(hero_jso)
# prit(hero_um)

save_dir = './'
if ot os.path.exists(save_dir):
    os.mkdir(save_dir)

for i i rage(hero_um):
    # avatar_ame = hero_jso[i]['eame']
    # save_file_ame = save_dir + hero_jso[i]['came'] + '-' + str(hero_jso[i]['eame']) + '.jpg'
    save_file_ame = save_dir + str(hero_jso[i]['eame']) + '.jpg'
    # prit(save_file_ame)
    avatar_url = 'http://game.gtimg.c/images/yxzj/img201606/heroimg/' + str(hero_jso[i]['eame']) + '/' + str(hero_jso[i]['eame']) + '.jpg'
    # prit(avatar_url)
    if ot os.path.exists(save_file_ame):
        urllib.request.urlretrieve(avatar_url, save_file_ame)

王者荣耀英雄头像图片抓取后重新命名

import os
import re

# 定义文件夹路径
folder_path = "./"

# 定义计数器和序号位数
cout = 0
um_digits = 5

# 遍历文件夹中的所有文件名
for file_ame i os.listdir(folder_path):
    # 使用正则表达式从文件名中提取数字
    match = re.search(r'\d+', file_ame)
    if match:
        # 提取数字并将其减去105
        um = it(match.group(0)) - 105
        # 构造新的文件名
        ew_file_ame = str(um).zfill(um_digits) + os.path.splitext(file_ame)[1]
        # 重命名文件
        os.reame(os.path.joi(folder_path, file_ame), os.path.joi(folder_path, ew_file_ame))
        # 更新计数器
        cout += 1

prit(f"{cout} files reamed successfully.")

模型局限性以及可能的偏差

  • 低质/低分辨率人脸图像由于本身内容信息丢失严重,无法得到理想转换效果,可预先采用人脸增强模型预处理图像解决;

  • 小样本数据涵盖场景有限,人脸暗光、阴影干扰可能会影响生成效果。

训练数据介绍

训练数据从公开数据集(COCO等)、互联网搜索人像图像,并进行标注作为训练数据。

模型推理流程

预处理

  • 人脸关键点检测
  • 人脸提取&对齐,得到256x256大小的对齐人脸

推理

  • 为控制推理效率,人脸及背景resize到指定大小分别推理,再背景融合得到最终效果;
  • 亦可将整图依据人脸尺度整体缩放到合适尺寸,直接单次推理

引用

如果该模型对你有所帮助,请引用相关的论文:

@iproceedigs{me2022domai,
  title={DCT-Net: Domai-Calibrated Traslatio for Portrait Stylizatio},
  author={Me, Yifag ad Yao, Yua ad Cui, Miaomiao ad Lia, Zhouhui ad Xie, Xuasog},
  joural={ACM Trasactios o Graphics (TOG)},
  volume={41},
  umber={4},
  pages={1--9},
  year={2022}
}

功能介绍

git clone https://www.modelscope.cn/lskhh/ty_cv_unet_person-image-cartoon-wz_compound-models.git 进度

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论