论文阅读:Fast Color Segementation

news2024/11/17 12:51:32

Fast Color Segementation 发表于CVPR 2020,主要是对之前的一篇图像软分割的论文(参见:论文回顾:Unmixing-Based Soft Color Segmentation for Image Manipulation,Aksoy 2017)进行改进。

一、论文简介

[Aksoy 2017] 这篇论文假设每个图层的颜色服从一个正态分布,并通过优化的方法求解每个图层的均值,协方差矩阵,以及不透明度。总体上效率低下,难以满足实时性的需求,因此,本文通过深度学习的方法快速的预测半透明的图层。

先来看一下论文的teaser。输入:原始图像 + 调色板, 输出:RGBA图层,应用主要就是图像重着色。

在这里插入图片描述

二、本文解决方案

本文给出的网络结构主要基于AutoEncoder结构,如下所示,主要包括3个模块:调色板提取(Palatte Seletion),不透明度预测(Alpha Layer Estimation)和 RGBA图层预测 Color Layer Estimation。
在这里插入图片描述

1)调色板提取

调色板提取主要通过K-means算法对图像聚类获取,K的数目是固定的。预测过程中,调色板的颜色也可由用户直接指定。

2)不透明度预测

使用U-net网络预测每一个图层的不透明度(每个图层任意像素位置均有一个不透明度).
输入:原始图像 I I I + 调色板 U = { u 1 , u 2 , . . . u K } U=\{u_1,u_2,...u_K\} U={u1,u2,...uK}
输出:K个跟原始图像尺寸相同的不透明度图层(单通道,取值位于[0,1]), A = { α 1 , α 2 , . . . α K } A=\{\alpha_1,\alpha_2,...\alpha_K\} A={α1,α2,...αK}

在这里插入图片描述
通过归一化操作,使得图层在任意位置的取值位于[0,1]。为了使得重建误差尽可能小,这一部分的损失函数定义为:
L r = ∑ p ∈ I ∣ ∑ i = 1 K α i p u i − c p ∣ (1) L_r = \sum_{p \in I}|\sum^K_{i=1}\alpha^p_iu_i-c^p|\tag 1 Lr=pIi=1Kαipuicp(1)

其中, p p p 表示图像中任意像素的位置, α i p \alpha^p_i αip 表示第 i i i 个图层 在 p p p 点处的不透明度。 ∑ i = 1 K α i p u i \sum^K_{i=1}\alpha^p_iu_i i=1Kαipui 表示经多个图层重建的颜色, c p c^p cp表示输入图像在 p p p点处的颜色。

3)图层颜色微调

[Tan 2016] 使用凸包作为图像调色板,然后通过广义中心坐标插值算法计算的权重,可以很完美的重建输入图像。 本质上是因为凸包在几何上具有很好的性质,即凸包内部的任意点可以被凸包顶点唯一的表示为凸包顶点的线性组合(凸组合),从而保证了精确的重建。然而本文使用聚类的算法提取的调色板颜色并不具备这样的性质,因此难以通过插值实现精确的重建。

为了实现精确的重建,本文进一步对调色板进行改进,对单色的调色板进行扰动,变成非单色的调色板。其实差不多就是[Aksoy 2017] 的思想,只不过[Aksoy 2017] 假设每一个图层的RGB服从正态分布,本文并没有这么强的约束。

这里使用U-net预测图层颜色的变化量。
输入:原始图像 + 调色板 + 上一步计算出的图层不透明度
输出:调色板颜色的变化量 △ U = { △ u 1 , △ u 2 , . . . △ u K } \triangle U = \{\triangle u_1,\triangle u_2,...\triangle u_K\} U={u1,u2,...uK}
在这里插入图片描述
上图所示的:

  • RGB layers: G = [ U = { u 1 , u 2 , . . . u K } ] + [ △ U = { △ u 1 , △ u 2 , . . . △ u K } ] G = [U=\{u_1,u_2,...u_K\}] +[ \triangle U = \{\triangle u_1,\triangle u_2,...\triangle u_K\}] G=[U={u1,u2,...uK}]+[U={u1,u2,...uK}], 这样一来,调色板的颜色确实不再是单色。
  • Decomposed layers 其实就是 三通道的 RGB layer + 单通道的不透明度,结果为四通道的RGBA 图层。

这一部分的损失函数包块两部分:

1) 通过非单色调色板 P P P 和 不透明度的重建损失定义为:
L α = ∑ p ∈ I ∣ ∑ i = 1 K α i p G i p − c p ∣ (2) L_\alpha = \sum_{p \in I}|\sum^K_{i=1}\alpha^p_iG^p_i-c^p|\tag 2 Lα=pIi=1KαipGipcp(2)
其中, G i p G^p_i Gip 表示第 i i i 个非单色调色板在 p p p 处的颜色,其他跟第一个损失函数类似。

2)我们期望 G G G 应当尽可能趋近 U U U, 也就是尽可能单色,只是局部有些扰动。因此,添加额外约束。
L d = ∑ p ∈ I ∣ ∑ i = 1 K G i p − u i p ∣ (3) L_d = \sum_{p \in I}|\sum^K_{i=1}G^p_i-u^p_i|\tag 3 Ld=pIi=1KGipuip(3)

整体损失函数定义为:
L t o t a l = L r + L α + L d (4) L_{total} =L_r + L_\alpha + L_d \tag4 Ltotal=Lr+Lα+Ld(4)

这就是这个网络的全部内容了。

三、实验

    1. 跟[Aksoy 2017]的比较如下所示,可以看出图层结果十分接近。

在这里插入图片描述

    1. 运行时间对比,可以看出本文算法在速度上具有非常明显的优势
  • 在这里插入图片描述

四、简单总结

本文通过深度学习的方法根据已有的调色板,预测不透明度,并对原始调色板进行微调,使得重建图像具有较小的误差。跟已有算法相比极大的提升了速度。缺点跟之前的算法一样,因为得到的调色板已经不是单色,所以编辑起来并不容易,需要借助PS软件对RGBA图层单独编辑。

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

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

相关文章

【Mac】Mac与PlayCover、Mac关闭sip

文章目录Mac笔记本使用PlayCover游玩Ipad游戏1.1 Mac 安装 PlayCover1.2 Mac 安装 原神/明日方舟1.3 注意事项Mac笔记本关闭sip2.1 查看sip状态2.2 关闭sip为什么要关闭SIP,关闭SIP的利与弊,请看:3.1 什么时候要关闭sip3.2 sip是什么3.3 关闭…

[附源码]Python计算机毕业设计大学生项目众筹系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

webpack详解

webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块&…

Django中的CSRF使用及ajax请求接口时问题总结

前言说明 在Django中提交数据到后端服务的时候,为了安全,要使用CSRF(跨站请求伪造)。跨站请求伪造的问题在于,服务器信任来自客户端的数据。 常规的做法是在template模板HTML文件中的form表单 中添加 {% csrf_token …

葡萄糖-聚乙二醇-巯基Glucose-PEG-Alkyne|葡萄糖-聚乙二醇-生物素Glucose-PEG-Biotin

葡萄糖-聚乙二醇-巯基Glucose-PEG-Alkyne 巯基,又称氢硫基或硫醇基,是由一个硫原子和一个氢原子相连组成的负一价官能团,化学式为-SH。巯基端连接不同的基团,有机物所属的类别不同,如硫醇(R-SH&#xff09…

固定VMware中Linux系统的ip地址

我们的虚拟机中的Linux的ip地址默认是随机的,那就导致了如果我们要配置例如finshell这类的远程连接,就需要常常修改ip地址,非常的麻烦啊,那有没有什么办法可以固定这个IP呢。 方法肯定是有的 首先我们打开VMware 点这个 之后修改…

LeGO-LOAM

LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain 在可变地形上的轻量级的利用地面点优化的Iidar 里程计和 建图 作者:Tixiao Shan and Brendan Englot Abstract— We propose a lightweight and ground-optimized …

Bi-CLKT: Bi-Graph Contrastive Learning based Knowledge Tracing

图对比学习 文章目录摘要1 引言2 相关工作2.2 自监督学习2.3 图上的对比学习摘要 知识追踪(KT)的目标是根据学生对相关练习的历史学习来估计他们对一个概念的掌握程度。知识追踪的好处是可以更好地组织和调整学生的学习计划,并在必要时进行干预。随着深度学习的兴起…

回顾10年发展,2022亚马逊云科技re:Invent全球大会即将来袭

每年的亚马逊云科技re:Invent全球大会,都是全球云计算领域每年创新发布的关键节点,亚马逊云科技的这些技术发布,无一例外地成为了云计算领域技术发展的风向标,而今年的re:Invent全球大会即将启幕! 2012年,亚…

Java基础40 断点调试(Debug)

DebugDebug介绍一、debug的使用二、Debug的使用使用1使用2 数组越界异常使用3 追溯源码使用4 直接执行到下一个断点Debug介绍 在开发中,新手程序员在查找错误时,这时老程序员就会提示,可以使用断点调试,一步一步的看源码执行的过…

使用QT绘制一个多边形

目录 1. 概述2. 实现2.1. 代码2.2. 解析3. 结果 1. 概述 可以通过QT的重绘事件和鼠标事件来绘制多边形,最简单的办法就是在继承QWidget的窗体中重写paintEvent、mousePressEvent等事件处理函数。QT提供了图形绘制接口QPainter,通过该接口可以绘制多种图…

易基因|脂多糖诱导的仔猪肝脏损伤模型中m6A RNA甲基化介导了NOD1/NF-kB信号激活

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年9月30日,南京农业大学动物科技学院钟翔教授团队在《ANTIOXIDANTS-BASEL》杂志发表题为“m6A RNA Methylation Mediates NOD1/NF-kB Signaling Activation in the Liver…

AlmaLinux 9上安装Kubernetes 1.25集群

AlmaLinux 9上安装Kubernetes 1.25集群 0. 确认Linux版本 uname -a1. 禁用swap sudo swapoff -a2. 禁用防火墙 sudo systemctl stop firewalld sudo systemctl disable firewalld3. 将SELinux设置为permissive模式 sudo setenforce 0 sudo sed -i s/^SELINUXenforcing$/SE…

Postgres 史上最垃圾的高可用软件之 - CLup

1. Clup 简介 CLup最大的特色功能是高可用。目前已存在几个开源的高可用软件: keepalived: 是一个较简单的高可用软件,其最早是于用LVS负载均衡软件,现在也常常用于ngnix的高可用,也可以用于数据库领域,但需要自己定制切换脚本才…

Oracle 11g DataGuard 搭建笔记(Windows Server 2016)

0.目录 目录 0.目录 1.需求 2.开发环境 3.DataGuard主从库参数环境规划 4.网络环境 5.主库-DataGuard配置 5.1查询及启用强制记录日志 5.3查询及启用归档 5.4主库参数配置 5.4.1查看db_unique_name及修改 5.4.2修改参数log_archive_config 5.4.3修改参数log_archive_dest_1 5.4…

部署前端报错404 hash 以及history模式下面前端、后端如何配置

问题描述:前端 本地页面 正常展示 、部署后刷新浏览器如上: vue-router(前端路由)有两种模式,hash模式和history模式 原理的区别(原理) 1、hash ——即地址栏URL中的#符号。 hash 虽然出现URL…

Sealos 安装报错问题解决

sealos 是以 kubernetes 为内核的云操作系统发行版,看其他人通过sealos安装k8s集群十分丝滑,但自己实践的时候为什么报错频繁呢? 官网介绍: sealos.io1 先决条件 每个集群节点应该有不同的主机名。 主机名不要带下划线。所有节点的时间同步。在 Kubernetes 集群的第一个节点…

数组中出现次数超过一半的数字、替换空格、重建二叉树

1、数组中出现次数超过一半的数字 本题考点: 数组使用,简单算法的设计 牛客链接 题目描述: 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,…

企业如何利用 Serverless 快速扩展业务系统?

2022 年 9 月 24 日,阿里云用户组(AUG)第 12 期活动在厦门举办。活动现场,阿里云高级技术专家史明伟(花名:世如)向参会企业代表分享了《未来已来——从技术升级到降本提效》。本文根据演讲内容整…

引擎入门 | Unity UI简介–第1部分(8)

本期我们继续为大家进行Unity UI简介(第一部分)的后续教程 本篇内容 17.9-Slice缩放 18.准备按钮图像 19.设置按钮图像 20.为按钮设置自定义字体 文章末尾可免费获取教程源代码 本篇Unity UI简介(第一部分)篇幅较长&#x…