有没有AI缩小图片的软件?

AI放大图片,也就是超分辨率,现在软件蛮多的。
但是有没有AI缩小图片的软件啊?
图片在降低分辨率的时候,必然发生信息损失。最典型的问题是像附图一样,这种原本纤细的线条,就会变成虚线。
所以有没有AI能够处理缩小图片的任务啊?比如判断如果线条缩小时会断开,就在线条边缘加粗让他不断开
image

这种属于反锯齿问题,有成熟的算法,只是多一点计算量,对于现在的cpu不是问题了

2 Likes

抗锯齿的策略还不够激进,在缩小后可能可以解决线条断开的问题,但是无法让图片像原生小尺寸图像一样有非常sharp的线条。
当然,即使这样,有没有能方便选择抗锯齿算法的压缩图片尺寸的软件呢?

我这里有个压缩的,但是似乎不完全符合你的需求?

你可能在找这样的东西:https://pub.towardsai.net/stable-diffusion-based-image-compresssion-6f1f0a399202

主楼这个例子有两个主要问题,一个是下采样的时候没有执行aa(或者说强度很低),
但是常规的aa强度上去了自然导致额外的问题就是blur,blur一样会导致纹理细节丢失

一般的图片查看器在缩放的时候已经自带aa了,不然你很容易在高分源ds的时候看到满屏锯齿。

另一个就是原则性问题。
(题外话,compression 不是主楼说的 downscaling)
ds的信息丢失是不可逆的。
你想想嘛,假设9个原始像素是不同的rgb数值来丰富某个区块的“信息”,然后ds之后变成了单个像素,这要拿头去实现一致的“信息”嘛 。

另外你说的加粗的思路是存在的,但一般是在ds之前预处理。

一般是写软件时就选择好了,使用软件时不能换。。。。除非换个软件

我写批量缩略工具时,标准的缩小算法经常出现毛刺、色斑,改用cximage里的一个算法就柔和多了

实际上我的这个例图的现象是缩放倍率过高造成的,如果目标是缩小到25%,采用两次50%的策略,一定程度可以抑制断线,但是由于第一次产生了blur,第二次会再次产生blur,结果就是比较模糊.
这个策略可以非常简单地实现,虽然聊胜于无但是似乎也没有软件作为选项提供给用户?

我非常理解降采样过程产生的信息丢失,甚至自己也练习写过那几种经典缩放算法.其实这个问题更类似于文字缩放, 一个字体用12号可以显示很清晰,用8号也可以显示很清晰,并且看上去可能除了尺寸没什么区别,但是当把12号字体截图缩小到8号那么大的时候,模糊产生了.因为12和8在字体内可能是不同的资源.我的想法是,8号字体的尺寸上既然可以显示清楚,那么应该可以有算法或者ai能实现这个12到8缩小的过程.以此类推,其他有细线条的图像也应该能做到——只是目前有没有什么软件在做这个?

第一段,没有,面向普通人的逻辑自然是越简单粗暴越好。不是一般人的能想到了,也自然自己都知道怎么操作(

第二段,字体的渲染,相当于在固定的分辨率上用不同像素宽度的宽度笔刷绘图,不管几号字都会留有至少1像素宽度保证笔画不断的,但是你用12号截图缩小那就不一样了,本身笔画宽度低的地方ds的时候很容易被取舍掉。
ds没见过专门练的。而且做参考训练的源也感觉很难获取,毕竟谁做图会在原生低分辨率下开始创作。。。

字库大小,又是另一个问题了。
以前的24点阵、16点阵的字库,是人为制造的2套。如果想从24自动缩略为16,好处是避免专门制造、存储16点阵的字库,但效果差了很多。
特别常用字体的12、10点阵,估计都是预先存储的。
矢量字库,才都是自动计算的,但它每次显示需要的计算量大很多,而且也只适合较大的点阵时。

好的图像缩略算法,会通盘分析(计算)原来的nXn像素,尽量保证新的mXm像素在总体效果上最接近原来的nXn像素。有些甚至还分析了临近的像素。。。。这种就接近套“模板”,也可以说原始的人工智能了

我也想找这样的软件。像素图只要缩小直接就崩了。老哥有找到这类软件吗?

对于像素图,先看它单个格点实际多少像素,例如6*6,那么缩小时算法选保留硬边缘,倍数只能选6、3、2

有很多图片实际是简单放大出来的,可能楼主还需要判断图片原始分辨率的工具:https://github.com/Infiziert90/getnative

只有原本就不是像素和色块1:1对应的像素图才能够被相对完好的被缩小。