当前位置: 首页 > 编程日记 > 正文

U^2-Net跨界肖像画,完美复刻人物细节,GitHub标星2.5K+

来源 | Jack Cui

头图 | CSDN下载自视觉中国

今年提出的 U^2-Net 显著性检测算法,刷爆了 reddit 和 twitter,号称是 2020 年「地表最强」的静态背景分割算法,可以看下效果:

你以为今天要讲分割?错!

U^2-Net 这两天又出新活,在 U^2-Net 网络架构基础上,实现了人物肖像画的生成,细节「完美」复刻。

我用自己的「歪脖子照」测试了下效果。

万年不变老规矩,继续手把手教学。

算法原理、环境搭建、效果实现,一条龙服务,尽在下文!

U^2-Net

受 U-Net 网络的启发,U^2-Net 也是一种类似编码-解码(Encoder-Decoder)的网络结构。

研究者在此基础上,提出了新型残差 U-block(ReSidual U-block, RSU),融合不同尺寸接受野的特征,以捕获更多不同尺度的上下文信息。

RSU 网络与现有卷积块的结构对比如下:

最右边的结构,就是 RSU-L,L 表示编码器中的层数,C_in、C_out 分别表示输入和输出通道,M 表示 RSU 内层通道数。

具体而言,RSU 主要有三个组成部件,分别是一个输入卷积层、一个高度为 L 的类 U-Net 对称编码器 - 解码器结构以及一个通过求和来融合局部和多尺度特征的残差连接。

为了更好地理解设计理念,研究者在下图中对 RSU 与原始残差块进行了比较。

结果显示,RSU 与原始残差块的最大区别在于 RSU 通过一个类 U-Net 的结构替换普通单流卷积,并且通过一个由权重层转换的局部特征替换原始特征。

更值得注意的是,得益于 U 形结构,RSU 的计算开销相对较少,因为大多数运算在下采样特征图中应用。下图展示了 RSU 与其他特征提取模块的计算成本曲线图:

U^2-Net 的整体网络架构如下:

U^2-Net 主要由三部分组成:

  • 6 阶段编码器;

  • 5 阶段解码器;

  • 与解码器阶段和最后编码器阶段相连接的显著图融合模块。

说完网络结构,再看下损失函数,研究者使用了类似于整体嵌套边缘检测(HED)的深度监督算法:

其中,M=6, 为 U^2-Net 的 Sup1, Sup2, ..., Sup6 stage。

为 Sup1, Sup2, ..., Sup6 输出的显著图,的损失函数;

为最终融合输出的显著图,的损失函数;为每个损失函数的权重。

对于每个 l ,采用标准的二值交叉熵损失函数:

其中,(r, c) 为像素坐标;(H, W) 为图像尺寸,height 和 width。

分别表示 GT 像素值和预测的显著概率图。

总的来说,U^2-Net 的设计构建了具有丰富多尺度特征以及较低计算和内存成本的深度架构。

更详细的内容,可以直接看 paper:

https://arxiv.org/pdf/2005.09007.pdf

效果测试

Github 项目地址:

https://github.com/NathanUA/U-2-Net

第一步:搭建测试环境。

很简单,没啥特殊的库,安装好 Pytorch、Numpy、Skimage 等基础第三方库即可。

第二步:下载训练好的模型权重文件。

我将程序和权重文件都进行了打包,嫌麻烦,可以下载直接使用。

第三步:在工程目录,运行程序。

python u2net_portrait_test.pybr

在 u2net_portrait_test.py 可以查看输入图片路径和输出图片路径:

最后再看下运行效果:

更多精彩推荐
  • Python画出心目中的自己

  • 清华、北大教授同台激辩:脑科学是否真的能启发AI?

  • 用Python分析5000+抖音大V,粉丝最喜欢的视频类型是它

  • Julia 创始人访谈:简单机器学习任务可与 Python 媲美,复杂任务胜过 Python

  • 一年加班几百小时,我是二胎宝妈,更是敢拼的女程序员

相关文章:

使用sourceInsight 提高代码编写效率

source Insight是一个强大的程序编写器和代码浏览器,它拥有内置的对C/C,C#和Java等程序的分析。本文总结了常用的快捷键,重要的宏的应用(可以多行注释,自动补全,自动生成头文件和函数说明,修改说明……&…

php几个预定义变量$_SERVER['DOCUMENT_ROOT']

<?php echo documentroot:.$_SERVER[DOCUMENT_ROOT].<br>; //根目录,在apache的配置文件里定义&#xff1a;httpd.conf 比如&#xff1a;DocumentRoot "D:/work/php_root" echo httphost:.$_SERVER[HTTP_HOST].<br>; //域名&#xff0c;比如&#…

《用于物联网的Arduino项目开发:实用案例解析》—— 3.4 小结

本节书摘来自华章出版社《用于物联网的Arduino项目开发&#xff1a;实用案例解析》一 书中的第3章&#xff0c;第3.4节&#xff0c;作者&#xff3b;美&#xff3d;安德尔杰韦德&#xff08;Adeel Javed&#xff09;&#xff0c;更多章节内容可以访问云栖社区“华章计算机”公众…

HttpClient学习

HttpClient学习 &#xff08;1&#xff09;下面列举几个主要的Http相关概念的类 类名描述HttpClient建立请求客户端HttpGet代表请求方法&#xff0c;类似的还有HttpHead, HttpPost, HttpPut, HttpDelete, HttpTrace, HttpOptions等HttpResponse表示请求的响应&#xff08;包括…

赠书 | 新手指南——如何通过HuggingFace Transformer整合表格数据

作者 | Ken Gu翻译| 火火酱~&#xff0c;责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国*文末有赠书福利不可否认&#xff0c;Transformer-based模型彻底改变了处理非结构化文本数据的游戏规则。截至2020年9月&#xff0c;在通用语言理解评估&#xff08;General …

在HTML网页中巧用URL

http://www.cnbruce.com/blog/showlog.asp?cat_id5&log_id657 首先&#xff0c;先放出一个地址给大家测试http://cnbruce.com/test/htmlpro/?namecnbruce&emailcnbruce126.com 1&#xff0c;时下流行的&#xff08;可能是吧&#xff0c;因为最近问的人比较多&#xf…

《iOS 8应用开发入门经典(第6版)》——第1章,第1.6节小结

本节书摘来自异步社区《iOS 8应用开发入门经典&#xff08;第6版&#xff09;》一书中的第1章&#xff0c;第1.6节小结&#xff0c;作者 【美】John Ray&#xff08;约翰 雷&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 1.6 小结iOS 8应用开发…

用Visual C#创建Windows服务程序

一&#xff0e;Windows服务介绍&#xff1a; Windows服务以前被称作NT服务&#xff0c;是一些运行在Windows NT、Windows 2000和Windows XP等操作系统下用户环境以外的程序。在以前&#xff0c;编写Windows 服务程序需要程序员很强的C或C功底。然而现在在Visual Studio.Net下&a…

poj 3321 Apple Tree

树状数组 题意&#xff1a;一个树&#xff0c;以树枝连接两个点的形式给出&#xff0c;固定以1为整棵树的根。苹果长在树的节点上&#xff0c;节点上只可能0或1个苹果&#xff0c;一开始每个节点都有1个苹果 有两种操作&#xff0c;C表示更改某个节点的苹果数&#xff0c;0变1,…

人工智能在网络贷款中鲜为人知的事

作者 | Laksh Mohan翻译| 火火酱~&#xff0c;责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国现在&#xff0c;科技已经成为推动企业发展壮大的基本要素之一。人工智能&#xff08;AI&#xff09;就是一个证明此类技术在商业领域走红的好例子&#xff0c;比如网络…

《HTML5与CSS3实战指南》——2.5 构建The HTML5 Herald

本节书摘来自异步社区《HTML5与CSS3实战指南》一书中的第2章&#xff0c;第2.5节,作者&#xff1a; 【美】Estelle Weyl , Louis Lazaris , Alexis Goldstein 更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.5 构建The HTML5 Herald 我们已经介绍了页面结构的基础以及…

用.NET创建Windows服务

用.NET创建Windows服务 译者说明&#xff1a;我是通过翻译来学习C&#xff03;的&#xff0c;文中涉及到的有Visual Studio.NET有关操作&#xff0c;我都根据中文版的VS.NET显示信息来处理的&#xff0c;可以让大家不致有误解。作者&#xff1a;Mark Strawmyer 我们将研究如何…

BGP local-preference MED属性实验

实验拓扑 实验配置 建立两个AS 65001、65000 AS65000内跑OSPF&#xff0c;并在R1上发布三个网段100.1.1.1 100.1.2.1 100.1.3.1 在R3 R5上聚合后发布给R4。 每台路由器都有一个对应的loopback地址。 实验过程 <R1>dis bgp ro Total Number of Routes: 10 BGP Local route…

加速产业生态算力升级,华为鲲鹏展翅福州

11月20日&#xff0c;为了让更多开发者了解鲲鹏计算生态体系&#xff0c;并且助力行业人才培养&#xff0c;由福建鲲鹏生态创新中心、福州市大数据基地开发有限责任公司联合举办的鲲鹏开发者训练营圆满完成。此次活动现场吸引到了大量的开发者参与&#xff0c;产、学、研各界人…

《CCNP TSHOOT 300-135认证考试指南》——2.2节故障检测与排除及网络维护工具箱

本节书摘来自异步社区《CCNP TSHOOT 300-135认证考试指南》一书中的第2章&#xff0c;第2.2节故障检测与排除及网络维护工具箱&#xff0c;作者 【加】Raymond Lacoste , 【美】Kevin Wallace&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.2 故障检测与排…

在linux系统下实现音视频即时通讯的部分代码

由于使用习惯,Linux在中国受欢迎程度远不如windows&#xff0c;相应的软件也比较少&#xff0c;尤其是音视频类的软件&#xff0c;但是&#xff0c;这并不代表就完全没有。下面介绍一款强大的音视频即时通讯平台给大家&#xff0c;它就是——Anychat for Linux SDK。AnyChat是一…

文本分类六十年

作者 | Lucy出品 | AI科技大本营文本分类是自然语言处理中最基本而且非常有必要的任务&#xff0c;大部分自然语言处理任务都可以看作是个分类任务。近年来&#xff0c;深度学习所取得的前所未有的成功&#xff0c;使得该领域的研究在过去十年中保持激增。这些文献中已经提出了…

web service 和 remoting 有什么区别

其实现的原理并没有本质的区别&#xff0c;在应用开发层面上有以下区别&#xff1a;1、Remoting可以灵活的定义其所基于的协议&#xff0c;如果定义为HTTP&#xff0c;则与Web Service就没有什么区别了&#xff0c;一般都喜欢定义为TCP&#xff0c;这样比Web Service稍为高效一…

《实施Cisco统一通信管理器(CIPT1)》一2.4 使用分布式呼叫处理的多站点WAN部署模型...

本节书摘来异步社区《实施Cisco统一通信管理器&#xff08;CIPT1&#xff09;》一书中的第2章&#xff0c;第2.4节&#xff0c;作者&#xff1a; 【美】Dennis Hartmann译者&#xff1a; 刘丹宁 , 陈国辉 , 卢铭 责编&#xff1a; 傅道坤, 更多章节内容可以访问云栖社区“异步社…

【转】 LDA必读的资料

时间总是不够用&#xff0c;这里就不自己写了&#xff0c;摘自一篇转发的博客&#xff0c;感觉挺有用&#xff01; 一个大牛写的介绍&#xff0c;貌似需FQ http://tedunderwood.wordpress.com/2012/04/07/topic-modeling-made-just-simple-enough/David M.Blei主页&#xff1a;…

sizeof 操作符详解

1. 定义&#xff1a; sizeof是何方神圣&#xff1f; sizeof 乃 C/C 中的一个操作符&#xff08;operator&#xff09;是也。简单说其作用就是返回一个对象或者类型所占的内存字节数。 MSDN上的解释为&#xff1a; The sizeof keyword gives the amount of storage, in bytes, a…

石锤!谷歌排名第一的编程语言,死磕这点,程序员都收益

日本最大的证券公司之一野村证券首席数字官马修汉普森&#xff0c;在Quant Conference上发表讲话&#xff1a;“用Excel的人越来越少&#xff0c;大家都在码Python代码。”甚至直接说&#xff1a;“Python已经取代了Excel。”事实上&#xff0c;为了追求更高的效率和质量&#…

《关系营销2.0——社交网络时代的营销之道》一T表示Technology(技术)

本节书摘来异步社区《关系营销2.0——社交网络时代的营销之道》一书中的第1章&#xff0c;作者&#xff1a; 【美】Mari Smith 译者&#xff1a; 张猛 , 于宏 , 赵俐 责编&#xff1a; 陈冀康, 更多章节内容可以访问云栖社区“异步社区”公众号查看。 T表示Technology&#xff…

jquery拖拽实现UI设计组件

想做一个UI设计的组件&#xff0c;左侧是控件列表&#xff0c;右边是编辑区域&#xff0c;左侧的控件可以重复拖拽到右侧然后进行编辑。 效果草图&#xff1a; 部分js代码&#xff1a; function domop(){//set drag and drop $( "#compls .component" ).each(functi…

六年磨一剑,全时发布音视频会议平台TANG,多款新品亮相

作者 | 高卫华出品 | AI科技大本营时隔六年&#xff0c;全时于11月26日在北京举办了“时间的力量2020新产品发布会“。发布会现场&#xff0c;全时创始人&CEO陈学军回顾了全时近年来的发展历程&#xff0c;并正式推出了全时云会议2020版&#xff0c;全时小智和全时云直播三…

考察新人的两道c语言题目

1> 如何判断一个板子的cpu 是big-endian 还是 Little&#xff0d;endian的&#xff1f;用c实现非常简单&#xff0c;10行左右&#xff0c;就可以判断了&#xff0c; 关键考察新人是否了解了什么是endian &#xff0c;big-endian与little-endian的区别在哪里&#xff0c; 如果…

《Adobe After Effects CC经典教程》——导读

前 言 After Effects CC提供了一套完整的2D和3D工具&#xff0c;动态影像专业人员、视频特效艺术家、网页设计人员以及电影和视频专业人员都可以用这些工具创建合成图像、动画和特效。After Effects被广泛应用于电影、视频、DVD以及Web的后期数字制作之中。After Effects可以以…

scanf()函数的用法和实践

scanf()函数的用法和实践摘要&#xff1a; 本文阐述了基于ANSI&#xff0c;Win 95&#xff0c;Win NT上的 C/C语言中scanf()函数的用法&#xff0c;以及在实际使用中常见错误及对策。 关键词&#xff1a; scanf()一、 序言 在CSDN论坛的C/C版块&#xff0c;我时常见…

邢波出任全球第一所AI大学校长,履历横跨三门学科

整理 | 高卫华出品 | AI科技大本营近日&#xff0c;世界上第一家研究型人工智能大学——Mohamed bin Zayed University of Artificial Intelligence&#xff0c;简称MBZUAI大学&#xff08;MBZUAI&#xff09;&#xff0c;任命著名华人AI学术教授邢波为校长。据悉&#xff0c;首…

Ubuntu 10.10 安装 libx11-dev

今天&#xff08;2013-04-11&#xff09;尝试安装 ImageMagick&#xff0c;结果发现 config.log 文件中包含了如下错误信息&#xff1a; fatal error: X11/Xlib.h: No such file or directory 也就是说缺少了 libx11-dev 包&#xff0c;心想这有什么难的&#xff0c;直接通过 a…