[C#]基于winform结合photocartoon算法实现人物卡通化源码实现

【官方框架】

https://github.com/minivision-ai/photo2cartoon

简介

人像卡通风格渲染的目标是,在保持原图像ID信息和纹理细节的同时,将真实照片转换为卡通风格的非真实感图像。我们的思路是,从大量照片/卡通数据中习得照片到卡通画的映射。一般而言,基于成对数据的pix2pix方法能达到较好的图像转换效果,但本任务的输入输出轮廓并非一一对应,例如卡通风格的眼睛更大、下巴更瘦;且成对的数据绘制难度大、成本较高,因此我们采用unpaired image translation方法来实现。

Unpaired image translation流派最经典方法是CycleGAN,但原始CycleGAN的生成结果往往存在较为明显的伪影且不稳定。近期的论文U-GAT-IT提出了一种归一化方法——AdaLIN,能够自动调节Instance Norm和Layer Norm的比重,再结合attention机制能够实现精美的人像日漫风格转换。

与夸张的日漫风不同,我们的卡通风格更偏写实,要求既有卡通画的简洁Q萌,又有明确的身份信息。为此我们增加了Face ID Loss,使用预训练的人脸识别模型提取照片和卡通画的ID特征,通过余弦距离来约束生成的卡通画。

此外,我们提出了一种Soft-AdaLIN(Soft Adaptive Layer-Instance Normalization)归一化方法,在反规范化时将编码器的均值方差(照片特征)与解码器的均值方差(卡通特征)相融合。

模型结构方面,在U-GAT-IT的基础上,我们在编码器之前和解码器之后各增加了2个hourglass模块,渐进地提升模型特征抽象和重建能力。

由于实验数据较为匮乏,为了降低训练难度,我们将数据处理成固定的模式。首先检测图像中的人脸及关键点,根据人脸关键点旋转校正图像,并按统一标准裁剪,再将裁剪后的头像输入人像分割模型去除背景。

【效果展示】

同时也实现了摄像头实时检测功能

【部分实现代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;namespace FIRC
{public partial class Form1 : Form{Mat src = null;P2CManager detector = new P2CManager();public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";openFileDialog.RestoreDirectory = true;openFileDialog.Multiselect = false;if (openFileDialog.ShowDialog() == DialogResult.OK){src = Cv2.ImRead(openFileDialog.FileName);pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);}}private void button2_Click(object sender, EventArgs e){if(pictureBox1.Image==null){return;}var resultImg = detector.Inference(src);pictureBox2.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(resultImg);}private void Form1_Load(object sender, EventArgs e){detector.LoadWeights(Application.StartupPath+ "\\weights\\photo2cartoon_weights.onnx");}private void button3_Click(object sender, EventArgs e){VideoCapture capture = new VideoCapture(0);if (!capture.IsOpened()){Console.WriteLine("video not open!");return;}Mat frame = new Mat();var sw = new Stopwatch();int fps = 0;while (true){capture.Read(frame);if (frame.Empty()){Console.WriteLine("data is empty!");break;}sw.Start();var resultImg = detector.Inference(frame);sw.Stop();fps = Convert.ToInt32(1 / sw.Elapsed.TotalSeconds);sw.Reset();Cv2.PutText(resultImg, "FPS=" + fps, new OpenCvSharp.Point(30, 30), HersheyFonts.HersheyComplex, 1.0, new Scalar(255, 0, 0), 3);//显示结果Cv2.ImShow("Result", resultImg);int key = Cv2.WaitKey(10);if (key == 27)break;}capture.Release();}}
}

 【测试通过环境】

vs2019

netframework4.7.2

opencvsharp4.8.0

onnxruntime==1.16.2

【视频演示】

C# 基于winform结合photocartoon算法实现人物卡通化源码实现_哔哩哔哩_bilibili【测试通过环境】vs2019netframework4.7.2opencvsharp4.8.0onnxruntime==1.16.2更多信息参考博文:https://blog.csdn.net/FL1623863129/article/details/141241892, 视频播放量 2、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:比尔盖茨私密丑闻被曝?私生活混乱还爱去萝莉岛?,基于C# winform调用文心一言大模型实现实时聊天功能,左键连发鼠标左键连点使用教程,自己动手实现一个内网穿透3:MVP版本发布,C# winform YOLO区域入侵检测任意形状区域绘制射线算法实现演示,yolov9+deepsort+pyqt5实现目标追踪结果演示,一分钟教会你如何入侵他人手机,迈出成为黑客的第一步!(网络安全/黑客技术),最神秘的蓬莱仙山可能根本就不是山,而是早已沉入海底的上古文明,DCM文件转换工具使用教程,吴恩达亲授《给初学者的AI Python编程课1:基础篇|AI Python for Beginners:Basics of AI Python》中英字幕(豆包icon-default.png?t=N7T8https://www.bilibili.com/video/BV1LweTesEbi/

【源码下载地址】

https://download.csdn.net/download/FL1623863129/89643872

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

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

相关文章

企业级web应用服务器tomcat

目录 一、Web技术 1.1 HTTP协议和B/S 结构 1.2 前端三大核心技术 1.2.1 HTML 1.2.2 CSS(Cascading Style Sheets)层叠样式表 1.2.3 JavaScript 二、tomcat的功能介绍 2.1 安装 tomcat 环境准备 2.1.1 安装java环境 2.1.2 安装并启动tomcat …

vscode提升:JSON 中不允许有注释

解决方案 : 运行: json with comment 参考链接: https://blog.csdn.net/eqizhihui/article/details/134014010 人工智能学习网站 https://chat.xutongbao.top

基于飞腾平台的Hbase的安装配置

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适…

iOS Native与JS通信:JSBridge

文章目录 一、简介二、JS 调用 Native1.使用 URL Schemea.UIWebViewb.WKWebView 2.使用 JavaScriptCore (iOS 7)3.使用 WKWebView 和 WKScriptMessageHandler (iOS 8) 三、Native 调用 JS1.使用 UIWebView2.使用 WKWebView3.使用 JavaScriptCore (iOS 7) 一、简介 对于移动应用…

深入浅出:你需要了解的用户数据报协议(UDP)

文章目录 **UDP概述****1. 无连接性****2. 尽最大努力交付****3. 面向报文****4. 多种交互通信支持****5. 较少的首部开销** **UDP报文的首部格式****详细解释每个字段** **UDP的多路分用模型****多路分用的实际应用** **检验和的计算方法****伪首部的详细内容****检验和计算步…

Python 数据分析之Numpy学习(一)

Python 数据分析之Numpy学习(一) 一、Numpy的引入 1.1 矩阵/向量的按位运算 需求:矩阵的按位相加 [0,1,4] [0,1,8] [0,2,12] 1.1.1 利用python实现矩阵/向量的按位运算 # 1.通过列表实现 list1 [0, 1, 4] list2 [0, 1, 8]# 列表使用…

iOS 18 Beta 5:苹果的细腻之笔,绘制用户体验新画卷

在苹果的世界里,每一次系统更新都是对用户体验进行的一次精心雕琢。 随着iOS 18 Beta 5的上线,苹果带来了一系列令人耳目一新的功能,同时也在系统的每个细微之处展现了对完美的追求。 Safari浏览器的“干扰控制”功能 在今天信息充斥的数字…

SpringBoot接入高德地图猎鹰轨迹服务API

SpringBoot接入高德地图猎鹰轨迹服务API 一、AP文档 猎鹰轨迹服务API文档 二、页面图 1、需登录账号,申请对应的应用key值 三、代码部分: 1、控制层 RestController RequestMapping("/gdTrack") public class TrackController {private …

搜维尔科技:【研究】Haption Virtuose外科手术触觉视觉学习系统的开发和评估

Haption面临挑战 除此之外,外科医生有时会对骨组织进行非常复杂的手术,其中一个例子是人工耳蜗的手术植入。重要的是要避免神经或血管等危险结构受伤,并尽可能轻柔地进行手术。在外科医生能够安全、无差错地进行此类手术之前,需要…

Flink常见数据源使用教程(DataStream API)

前言 一个 Flink 程序,其实就是对 DataStream 的各种转换。具体来说,代码基本上都由以下几部分构成,如下图所示: 获取执行环境(execution environment)读取数据源(source)定义基于数据的转换操作(transformations)定义计算结果的输出位置(sink)触发程序执行(exec…

鸿蒙HarmonOS实战开发: CMake脚本编写构建NDK工程

NDK工程构建 HarmonyOS NDK默认使用CMake作为构建系统,随包提供了符合HarmonyOS工具链的基础配置文件ohos.toolchain.cmake,用于预定义CMake变量来简化开发者配置。 常用的NDK工程构建方式有: 从源码构建 源码构建也有不同方式:…

写给大模型新人的经验,刷到少走三年弯路!

这篇文章,我将结合自己在大模型领域的经验,给大家详细聊聊新人应该如何转行大模型赛道? 比如大模型都有哪些方向?各方向的能力要求和岗位匹配?新手转行大模型常踩的坑和常见的误区?以及入行大模型最顺滑的…

什么是HW,企业要通过什么方式进行HW安全保障?

一、什么是HW 网络安全形势近年出现新变化,网络安全态势变得越来越复杂,黑客攻击入侵、勒索病毒等网络安全事件愈演愈烈,严重威胁到我国的网络空间安全。同时,国内不少关键信息基础设施的建设管理单位安全意识不够、安全投入不足…

怎么管控终端电脑上的移动端口

管控终端电脑上的移动端口,尤其是USB等移动端口,是确保企业数据安全和提升网络管理效率的重要手段。 一、使用注册表编辑器禁用USB端口(适用于Windows系统) 打开注册表编辑器: 同时按下“WinR”组合键,打…

24年上半年天融信营收缩减1.8亿,亏损2.06亿

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

哪家轻量化PDM系统更适合中小企业?国内PDM系统推荐

在数字化转型的大潮中,中小企业面临着前所未有的挑战与机遇。产品数据管理PDM系统作为支持企业产品研发、制造和维护全生命周期的重要工具,其重要性日益凸显。然而,传统PDM系统往往因成本高、实施复杂而让中小企业望而却步。因此,…

java使用itext 直接生成pdf

itext 使用 需求背景itext 的使用依赖简单示例基础设置(页面大小、边距、字体等)段落内部,特殊设置关键字 字体或颜色生成动态表格页脚展示页数其他设置密码添加水印(背景图)目录Header, Footer分割 PDF合并 PDF 需求背…

HTML标签入门篇(1)——标题标签、段落标签、换行标签、水平线标签、图片标签、文本标签

目录 一. 标题标签 1.1 标题标签的介绍 1.2 标题标签的使用 1.3 快速在浏览器打开的插件 二. 段落、换行、水平线标签 2.1 段落标签 2.2 换行标签 2.3 水平线标签 三. 图片标签 3.1 标签举例 3.2 alt 替代文本属性 3.3 width图片宽度、heght图片高度属性 3.4 ti…

java学习--MySQL--安装与配置

\ 选中语句点击箭头,可出现user表

代码随想录算法day19 | 回溯算法part01 | 77. 组合,216.组合总和III,17.电话号码的字母组合

第77题. 组合 对着 在 回溯算法理论基础 给出的 代码模板,来做本题组合问题,大家就会发现 写回溯算法套路。 力扣题目链接(opens new window) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: […