龙空技术网

你的二次元老婆,被AI变成了暗黑系

量子位 1404

前言:

此时大家对“knapsack算法”可能比较关心,我们都需要知道一些“knapsack算法”的相关内容。那么小编在网摘上汇集了一些对于“knapsack算法””的相关文章,希望咱们能喜欢,我们一起来学习一下吧!

鱼羊 萧箫 发自 凹非寺

量子位 报道 | 公众号 QbitAI

现在,AI对光影的理解越来越深入了。

不仅能自动给二次元萌妹的线稿上色,绘制出合理的光影变化。

反向操作,提取图片中的纹理和光影也不在话下。

大师级作品、或是摄影海报,只需要拿过来「扫描」一下,就能分解出纯色层、阴影层和反射层。

这下,想要调整图片的纹理和光影,再也不用苦恼没有psd、图层被合并了。

这只全新AI的一作,还是那位打造了火遍二次元圈的自动线稿上色AI Style2Paints 的Lvmin Zhang小哥。

论文已经中了ECCV 2020 Spotlight。

抠掉多余的像素

分解图像最需要解决的问题,就是图像平滑,它能让图像变得更模糊,但与此同时,调节光影、纹理也变得更容易。

而图像平滑的核心问题,可以被理解成估计图像中的像素是否被需要。

图像平滑

换种说法,图像平滑要解决的最大问题,是在图像去噪和外观保留这两者之间,找一个平衡点。

也就是说,与锐化相反,平滑既要最大程度上保留图像的本质,又希望能消除图像的噪音。

下图就是经过平滑处理的一张图像。可以看见,即使平滑处理后的图像变得模糊不清,我们依稀能辨认出这是一片海。

那么,平滑图像究竟有什么用?

看,调节色温方便多了,让图中的天和海从蓝变绿再变紫,看起来都不是问题。

此外,图像平滑也是图像处理中纹理去除、材料处理、重新着色、层提取等操作的基本处理步骤。

那么,如何让一个AI实现图像平滑呢?

研究者发现,对图像中物体的部分外观进行「擦除」(手动消除部分噪声),似乎能给图像平滑带来更好的效果。

如果你是一个PS大神,那么,选择图像中该擦除的部位肯定不是难事。

然而,AI它并不会PS…这就需要人为制定一些「规则」,告诉AI,哪些像素应该被擦除。

这里又回到了开头提到的,图像平滑的本质:在图像去噪和外观保留二者之间,找寻一个平衡点。

说白了,就是估计图像中哪些像素是需要的,哪些是可以被「擦除」的。

作者将这一步骤称之为擦除外观保留(Erasing Appearance Preservation ,EAP)。

这里就涉及到一个像素选择的算法,作者制作了一个0-1背包,将它解决了。

0-1背包问题

这个问题在像素中的场景描述如下:如何选择这个位置的像素值,使图像平滑效果最好?

把这个位置比作一个背包(knapsack),像素值就是填入背包中的选项。而最好的像素值,就是能刚好填满背包的最优解。

如下图,用最快的速度,计算哪些部分的像素是必需保留的,能最大程度上还原图像特征。

但如果让计算机用穷举法列举出算法,效率就会很慢。

0-1背包问题,旨在用最少的步骤,列出每一步的最优解,并不断与新结果进行对比。

这个算法的核心思想在于,子问题的最优解,同样可以用于解决母问题。

这样,既能保留图像的纹理结构,又能让图像最大程度上模糊化。

归根结底,0-1背包的思想在于,一个像素值的最优解,同样可以被用于解决像素块最优解的问题。

这个算法,比暴力堆叠算力,穷举像素最优解的方法快多了。

如果用伪代码简单呈现的话,算法的步骤是这样的:

这一算法基于Matlab实现。作者表示,由于Python的稀疏优化比较捉急,目前没能把EAP迁移到Python中。

与人类水平相当

研究人员将L0和L1两种平滑方式的结果,与专业人士的处理结果进行了比较。

结果显示,在擦除位置的选择上,AI的操作与专家的选择相似,并且平滑结果与专家的处理结果表现相当。

而消融实验的结果显示:

(1)在原来的L1平滑中使用极端lambda(10.0),不使用EAP,这会导致图像结构被破坏。

(2)重复原L1平滑多次(10次,与EAP配置相同),不使用EAP,这会导致低饱和度和低对比度伪影出现。

(3)在EAP方案中,不使用背包权重wp,而是给背包的值设定一个固定的阈值(0.1),所有高于这个阈值的像素都会被视作擦除位置。这会导致图像被压缩成少数几种颜色。

(4)在EAP方案中,用常数(1.0)代替所有背包权重wp。这将导致所有不想要的图案仍在最终结果中被保留。

(5)在EAP方案中,不使用knapsak值vp,而是给背包的权重设定一个固定的阈值(0.1),所有低于这个阈值的像素都会被视作擦除位置。这会导致图像中所有明显的构件都被消除。

(6)在EAP方案中,用常数(1.0)代替所有背包值vp。这使得突出的构件得以保留,但原有的结构会被破坏。

(7)本文中提出的解决方案,能够在不造成其他伪影的情况下,使图像充分平滑。

另外,使用PSNR(峰值信噪比)指标,对几种不同的平滑方法进行对比。结果表明,基于EAP的方法PSNR值明显高于其他方法,也就是说,实现了更彻底的纹理分解。

应用场景

看到这样的AI能力,你想到要在哪些场景中应用它了吗?

作者也举了几个例子。

比如,轻松实现纹理替换。

比如,给图片调光影、调颜色。

或者……让老婆变暗黑(雾)。

就有网友表示:这不就是我一直想要的那种AI嘛!

也有网友联想到了火爆二次元圈的那只上色AI Style2Paints。

鹅妹子嘤,所以这项技术会用到Style2Paints V5中吗?

目前,这项研究的代码已经开源,如果感兴趣,就戳进文末链接试一试吧~

传送门

GitHub地址:

项目地址:

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

标签: #knapsack算法