AnimateGAN 迁移部署

news2025/2/4 17:50:45

文章目录

    • 1. 模型概述
    • 2. 迁移过程
      • 2.1 将`ckpt`的权重文件转换为`pb`的权重文件。
      • 2.2 将`pb`的权重文件迁移为 BM1684 `bmodel`模型
      • 2.3 迁移后pipeline搭建
      • 2.4 使用streamlit部署
    • 3. 效果展示

AnimateGAN 是一个基于 GAN 的动漫生成模型,可以将真实的场景照片转换成动漫形式。本文将介绍如何将 AnimateGAN 迁移到 Sophon 并使用 Streamlit部署。

代码地址: https://github.com/sophgo/sophpi-shaolin

1. 模型概述

AnimateGAN是基于CartoonGAN的改进,并提出了一个更加轻量级的生成器架构。在论文中还提出了三个全新的损失函数用于提升风格化的动漫视觉效果,这三个损失函数分别是灰度风格损失,灰度对抗损失和颜色重建损失。

AnimateGAN 论文:AnimateGAN: A Generative Adversarial Network for Anime Character Animation

代码地址:https://github.com/TachibanaYoshino/AnimeGAN

体验地址: https://animegan.js.org/

2. 迁移过程

2.1 将ckpt的权重文件转换为pb的权重文件。

使用common_freeze_script.py脚本将https://github.com/TachibanaYoshino/AnimeGAN 库存中ckpt的权重文件转换为pb的权重文件。

或者使用我们处理好的权重文件,执行 bash prepare.sh 下载并转换。

2.2 将pb的权重文件迁移为 BM1684 bmodel模型

使用 sophon sdk bmnett命令将pb的权重文件迁移为bmodel模型。

具体为: python3 convert_pt_2_bmodel.py

如果执行bash prepare.sh 则不需要再转模型

2.3 迁移后pipeline搭建

使用sophon sail加载和推理模型。

通过python3 inference.py --images_path 图片文件夹 --output_path 输出文件夹命令进行推理,具体参数请参考脚本。

2.4 使用streamlit部署

安装依赖 pip3 install -r requirements.txt

执行 streamlit run demo_web.py 该命令会提示一个网址,打开网址即可进行体验。

3. 效果展示

在这里插入图片描述

选择图片后,即可进行推理,推理结果如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CASA(Carnegie-Ames-Stanford Approach)模型

植被作为陆地生态系统的重要组成部分对于生态环境功能的维持具有关键作用。植被净初级生产力(Net Primary Productivity, NPP)是指单位面积上绿色植被在单位时间内由光合作用生产的有机质总量扣除自养呼吸的剩余部分。植被NPP是表征陆地生态系统功能及可…

设计模式之美总结(创建型篇)

title: 设计模式之美总结(创建型篇) date: 2022-11-03 13:58:36 tags: 设计模式 categories:技术书籍及课程 cover: https://cover.png feature: false 文章目录1. 单例模式(Singleton Design Pattern)1.1 为什么要使用单例&…

如何在高密度的IB学习中杀出重围?

建议选择IB所需具备的能力/特点 ▣ 敢于挑战自我,愿意通过努力换取个人能力的飞跃 ▣ 如果擅长或喜欢写作(中英文),IB对于你来说可能不会那么难。 ▣ 有自主学习、自主研究的能力。有些老师可能教的并不太让人满意,因此…

OpenTelemetry系列 (三)| 神秘的采集器 - Opentelemetry Collector

前言 上个篇章中我们主要介绍了OpenTelemetry的客户端的一些数据生成方式,但是客户端的数据最终还是要发送到服务端来进行统一的采集整合,这样才能看到完整的调用链,metrics等信息。因此在这个篇章中会主要介绍服务端的采集能力。 客户端数…

学Python能做哪些副业?我一般不告诉别人

前两天一个朋友找到我吐槽,说工资一发交完房租水电,啥也不剩,搞不懂朋友圈里那些天天吃喝玩乐的同龄人钱都是哪来的? 确实如此,刚毕业的大学生工资起薪都很低,在高消费、高租金的城市,别说存钱…

日志篇- ES+Logstash+Filebeat+Kibana+Kafka+zk 安装配置与使用详解

1- 学习目标 ELK基本概念,特点安装部署 Kibana ES集群 Logstash Filebeat Kafka集群性能瓶颈以及优化QA汇总 2- 介绍 2.1- 基本概念 Elasticsearch 分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建&#xff0c…

xv6---Lab4 traps

参考: Lab: Traps 关于寄存器s0和堆栈https://pdos.csail.mit.edu/6.828/2020/lec/l-riscv-slides.pdf RISC-V assembly Q: 哪些寄存器包含函数的参数?例如,哪个寄存器在main对printf的调用中保存了传参13 ? A: a2保存13(通过gdb调试可看出寄存器a2的…

【设备管理系统】如何助力制造企业实现精益生产?

随着企业对于机械设备的依赖性越来越高,生产设备日益大型化、自动化,流程线生产流程问题逐渐浮于表面,现阶段设备管理的各项制度已经不能够满足日常的生产工作。企业逐渐都面临着设备管理的复杂问题,尤其是设备的保养、维修、日常…

JMeter—HTTP压测

目录:导读 一、创建线程组 二、添加HTTP 三、查看结果树 四、响应断言 五、聚合报告 六、自定义变量 七、CSV可变参数压测 结语 一、创建线程组 右击-->添加-->Threads(Users)-->线程组 下面对比较重要的几个参数,讲解下: …

Vue基础7

Vue基础7生命周期引出生命周期用css animation实现用定时器实现错误:用methods实现使用生命周期函数mounted实现生命周期定义分析生命周期挂载流程beforeCreate()created()beforeMount()mounted()template的作用更新流程beforeUpdate()updated()销毁流程beforeDestr…

【数据库】二阶段锁

Two-phase locking (2PL) is a concurrency controlprotocol that determines whether a txn can access an object in the database on the fly. The protocol does not need to know all the queriesthat a txn will execute ahead of time. 分为两个阶段: 一阶…

颅内EEG记录揭示人类DMN网络的电生理基础

使用无创功能磁共振成像(fMRI)的研究为人类默认模式网络(DMN)的独特功能组织和深远重要性提供了重要的见解,但这些方法在跨多个时间尺度上解决网络动力学的能力有限。电生理技术对于应对这些挑战至关重要,但…

RAID 0 添加新磁盘

1:查看当前可用挂载磁盘 lsblk 2:可见 sda 与 sdb 已被挂载,需要挂载 sdc 和 sdd 由于硬盘的默认分区格式是MBR,这种格式的硬盘支持的最大挂载容量为2T,为了满足我们的要求,需要将硬盘格式转化为MBR&…

Node.js 编写接口入门学习(GET、POST)

一、简介 nvm 安装、卸载与使用(详细步骤),用于管理/切换 Node 多版本环境。 node 是否安装成功 $ node -v安装完成之后,通过 node 直接运行 test.js。 // test.js console.log(Hello Node)# 命令行执行 $ node test.js二、简单的…

[ 数据结构 -- 手撕排序算法第七篇 ] 归并排序

文章目录前言一、常见的排序算法二、归并排序的基本思想三、归并排序3.1 归并排序的递归版本3.2 归并排序的非递归版本四、归并排序的特性总结前言 手撕排序算法第七篇:归并排序! 从本篇文章开始,我会介绍并分析常见的几种排序,例…

深度学习秘籍

显式构造 隐式构造 loss通常是一个标量 batchsize越小其实越好 回归 预测的是一个连续 softmax回归是一个多分类问题 分类 预测是一个离散值 Huber RoBust Loss, 也就是通常所说SmoothL1损失 常用命令 import torch import torchvision from torchvision import transformsso…

ContentProvider的介绍和使用

文章目录ContentProviderContentProvider简介运行时权限Android权限机制详解在程序运行时申请权限访问其他程序当中数据ContentResolver的基本用法读取系统联系人信息创建自己的ContentProvider创建ContentProvider的步骤实现跨程序数据共享ContentProvider 如果我们想要实现跨…

浅拷贝深拷贝递归

常见的基本数据类型:Number、String 、Boolean、Null和Undefined 引用数据类型:Object、Array、Function 1)基本数据类型:存储在栈内存中,可以直接访问到该变量的值。 2)引用数据类型:存储在堆内存中,每…

有哪些数据统计软件适合初学者使用?

前段时间写过一篇“数据分析工具”的内容,周末有伙伴私信问我有没有什么适合初学者、业务人员的,更简单一点的数据可视化软件。 所以今天来分享下我在做数据分析时用过的几个简单易上手的数据可视化软件。 先放上目录: 数据统计收集类——简…

谷粒学院——Day12【整合阿里云短信服务、首页登录和注册】

用户登录业务介绍 一、单一服务器模式 早期单一服务器,用户认证。 缺点:单点性能压力,无法扩展。 二、SSO(single sign on)模式 分布式,SSO(single sign on)模式 优点: 用户身份信息独立管理,更好的…