Docunmen AI 中图像高分辨率处理思路汇总
Docunmen AI 中图像高分辨率处理思路汇总
在AI领域,处理高分辨率图像一直是研究的重点和难点。本文总结了三种主要的处理方法:冗余内容处理、动态分辨率处理以及DC²方法。这些方法在不同的场景下都有其独特的优势,对于从事AI和计算机视觉领域的专业人士具有重要的参考价值。
1. 冗余内容处理办法
DocKylin提出了一种直接对横平竖直的图像进行冗余像素去除的方法。具体来说,通过将图片梯度转化为黑白图像,然后分别在水平和竖直方向上连接并去除"没有元素"的内容,从而实现对高分辨率图像的处理。
对于编码后的token,认为存在必要和非必要的token。通过聚类算法降低token维度,将其处理为两类(根据相似token的数量来确定哪些是必要的,哪些是非必要的)。然后通过计算这两类之间的余弦相似度,将非必要的token聚合到必要的token中。
聚类算法:
实际测试表明,通过裁剪图像和减少冗余token,可以有效提升处理效果。
2. 动态分辨率处理办法
AdaptVision提出了一种动态处理图像分辨率的方法。与LLaVa(224×224)和Monkey(896×1344)等固定分辨率的方法不同,AdaptVision采用动态调整的方式。
处理思路如下:提前创建一个1008×1008的"画布",然后将画布切割为3×3的网格,将图像放置在画布的左上角,根据其占用的区域范围,将其转换到指定大小。
类似的思路在论文1和论文2中也有体现。对于动态分辨率处理,方法如下:
因为都要将图片切片(分割成不同的小patch),区别之前做法可能是先将图片固定到一个尺寸,然后切割,上面两篇论文中动态分辨率处理思路就是:对于每个patch先提前设定一个大小(比如说每个patch都固定尺寸为448×448),然后在设定一个横纵比范围,然后将图片筛选出合适的横纵比。比如说上面图片:
- 输入:800×1300
- 挑选合适比例,因为每个patch都是448×448,因此:800/448 : 1300/448 ≈ 2:3,因此先将图片扩大到:448×2,448×3=896×1344,然后再去切割即可
3. DC²方法
DC²提出了一种处理高分辨率图像(4K/2K)的方法。论文指出,将图像固定到一个固定的分辨率会导致较大的信息损失,增加模型的不确定性,但是可以通过添加文本信息进行补偿(将文本和image进行融合)。
论文通过3步处理高分辨率图像:
- Divide:将图像切割为4部分(切割过多的patch会破坏目标完整性),然后计算每个部分之间的相似性,通过设定阈值来对形似部分通过分层聚合的方式进行合并。
- Conquer:对于切分(并且进行合并)的patch以及完整的patch都生成文字描述,并且通过对生成的描述再通过llm抽取出里面的实体。并且将内容加入到完整的图像中并且进行类似处理。
- Combine:通过对leaf node以及no-leaf node提取到的实体,对两部分实体计算交集
参考:
- DocKylin: A Large Multimodal Model for Visual Document Understanding with Efficient Visual Slimming
- AdaptVision: Dynamic Input Scaling in MLLMs for Versatile Scene Understanding
- How Far Are We to GPT-4V? Closing the Gap to Commercial Multimodal Models with Open-Source Suites
- LEO: Boosting Mixture of Vision Encoders for Multimodal Large Language Models