type
status
date
slug
summary
tags
category
icon
password
注意:作者最新更新的仓库与paper中的方案不同,原因如下:
I want a multilingual model. I notice only use the bbox is only a little bit worse than bbox+text, so I want to train a model only use bbox, ignore the text.
文本的介绍已作者最新更新的仓库为主
问题定义
给定一张文档图像(可选)及其中全部词级 token 的文本(可选)和bounding box,输出一个排列后的 token 顺序,使其符合人类自然阅读顺序。
形式化:给定一组无序的box序列,,求解排列 使得 为正确阅读顺序。

Method
将Reading Order的问题转为序列分类的问题。下面对每一个部分进行具体说明。

模型输入
模型输入包含3个部分,boxes序列,input_ls, attention_mask

这里有2点需要注意:
- x, y会预先normalize到[0, 1000]
- 模型内部计算box embedding时会额外引入box的width和height
Embedding Module
主要包含4个embedding的相加, 分别是word embedding, box embedding, position embedding, token type embedding 。详细说明word embedding和box embedding。
- word embedding

- box embedding
对于single box,其embedding计算如下

全部box embedding:

输出
序列预测的logits,shape为(1xLxC),这个C是预设的最大box的数量。
对于当前的预测,box的数量是已知的,因此可以对logit进行预先截断为(1xLxc)。从输入数据的构建方式克制,[1: -1]是box的对应位置,因此最终的logits为
最后要做的就是将final logits转为reading order序列。直接用argmax有时会出现多个box预测为同一个reading order的情形,需要对其进行特别处理:reading order相同的box,将置信度最大的box作为当前位置的box,其他box重新分配置信度第二大处的位置,依此类推,直至所有box分配到独一无二的位置。
(其实可以用匈牙利匹配的方式来进行分配)
Quick Start
- 作者:莫叶何竹🍀
- 链接:http://www.myhz0606.com/article/layoutreader
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。