Closed shiyutang closed 5 months ago
范例: 需求描述:支持文本识别单字位置分割;支持更多小语种模型;训练语种分类模型;文本识别返回单字置信度等 需求场景(这个需求可以解决哪些应用场景的问题): 覆盖小语种的分类场景 潜在解决方案(问题分解):调取小语种数据集进行训练。
example: Description of feature request: Requirement scenarios (what application scenarios can this feature request solve): Potential solutions (problem breakdown):
需求描述: 版面恢复里的功能(恢复为docx或者excel)c++版。 需求场景: c++版本可以部署到端侧,实现本地本地化的办公文档扫描。 潜在解决方案: 版面分析后,使用minidocx创建docx文档,libxlsxwriter生成excel。
需求描述: 返回单字符坐标。 需求场景: 文档比对。
需求描述: 拍照图片矫正模型。 需求场景: 办公文档扫描时,对倾斜等图片进行类似边缘检测,透视变换等的矫正功能。
需求描述: 返回单字符坐标。 需求场景: ocr 之后 NLP场景需要对应到原图上的文字位置
需求描述:一个支持简繁英日的东亚模型 需求场景:多语言并存场景下的识别 潜在解决方案(问题分解):
需求描述:表格结构提取 场景:各种业务场景下的表格,其中包括有线、无线表格 潜在解决方案(问题分解):
需求描述:古籍识别 需求场景:繁体字识别来一下?
范例: 需求描述:版面矫正网络论文复现:DocTr++: Deep Unrestricted Document Image Rectification 需求场景(这个需求可以解决哪些应用场景的问题):大量文档进行版面分析之前需要进行光照、扭曲等矫正 说明:
Scene Text Recognition with Permuted Autoregressive Sequence Models,即parseq 文本识别算法效果不错,有没有在paddleOCR上实现。
需求描述:PaddleOCR与PaddleDetection与Pillow新版本10.x不兼容。目前PaddleOCR采用的临时解决方案是在依赖列表中限制只能使用旧版本Pillow(参见 https://github.com/PaddlePaddle/PaddleOCR/pull/10344 ),而PaddleDetection未采取任何措施(按照文档安装后,使用deploy/python/visualize.py
等部分功能时会直接报错)。出于套件可持续建设的考虑,希望能够适配最新版本的Pillow。
需求场景: 目前已发现涉及使用字体的相关场景存在此问题。
潜在解决方案:
FreeTypeFont.getsize
),替换为等效的API调用;requirements.txt
中Pillow版本的限制。需求描述: 当前ppocrv3模型存在以下问题: 1 字典不全,没有覆盖《通用规范汉字表》 2 对于字典中存在的生僻字,可能因为训练语料不平衡问题,识别效果很差 希望: 1 扩充中文字典,覆盖《通用规范汉字表》 2 增加平衡语料,重新训练 需求场景: 姓名,古文识别等场景
需求描述:
ocr det 之前增加文档方向检测和矫正过程,支持0,90,180,度的文档,
可以作为ppocr命令行参数
需求场景:
手机拍照,文档材料数字化自动化场景
Scene Text Recognition with Permuted Autoregressive Sequence Models,即parseq 文本识别算法效果不错,有没有在paddleOCR上实现。
@printfxs 我们有集成目前最优的识别模型SVTR @printfxs 我们打算将其作为任务发布了,不知道有没有想法来参与论文复现任务呢,完成任务可以获得小奖品,还可以我们持续交流,解决问题,互相学习哦。
@BeyondYourself 请看PP-structure中现有功能能否支持:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/ppstructure/README_ch.md#2-%E7%89%B9%E6%80%A7 https://github.com/PaddlePaddle/PaddleOCR/blob/fac03876f39bc67acc8eef6d7facb9a2206eeecd/ppstructure/table/predict_table.py#L58
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/ppstructure/table/README_ch.md
你好,我基于paddleocr转换了模型,重构了推理代码,可脱离paddlepaddle训练框架,在精度不变的情况下效率和推理速度都提高了:https://github.com/jingsongliujing/OnnxOCR
你好,这个可以提交PR到我们的repo中吗?@jingsongliujing
你好,这个可以提交PR到我们的repo中吗?@jingsongliujing
后续是这样,但是不知道提交到那个repo
来源:Issue #10404 需求描述:支持更长文本输入(>512 tokens)的KIE模型 需求场景:许多进行KIE的文档都存在大于512 tokens的情况 潜在解决方案(问题分解):现有的KIE模型大多基于MVLM(Masked Visual language Model),与Bert(MLM,Masked language Model)的网络架构相似,可以参考现有的利用Bert进行处理长文本的方法,比如sliding window approach
当前 https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/quickstart.md 介绍文档过于简单,建议增加使用介绍。
• 1:增加api使用介绍 • 2:增加命令行使用介绍 • 3:适当增加使用demo
找到了部分: https://gitee.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/whl.md
这个文件名起的很简略,我给忽略没看到。。。。。。
paddleocr.py介绍太简单,有点不会用
这个确实存在相关问题,关于PPOCR的参数在下面的文档中:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/inference_args.md
需求描述:为PaddleOCR增加训练时周期性验证的开关;为PaddleOCR增加eval_epoch_step
参数。
需求场景:与PaddleCV的其它基础套件PaddleSeg、PaddleDetection、PaddleClas、Paddle3D等不同,PaddleOCR不支持上述功能,这导致包括但不限于如下问题:
eval_batch_step
数值来实现。eval_batch_step
配置,以使得eval频率合适。epoch_num
而不是num_iters
,但eval_batch_step
却是iters粒度的控制,存在风格不契合的问题。潜在解决方案:
考虑后向兼容的解决方案:
do_eval
配置项,可用于关闭训练时周期性验证。默认启用验证,基本维持PaddleOCR现有行为,但希望在训练结束时,即使没有到达eval_step,也进行一次验证(因为有时候eval_step设置不合适,可能会出现指定了do_eval
却没有验证的情况,不符合直觉)。eval_batch_step
的情况下,增加eval_epoch_step
配置项。关于eval_batch_step
与eval_epoch_step
之间的关系如何,例如二者互斥或其中一个的优先级更高,我还没有想好,建议开发者从用户使用便利性的角度考虑如何设计。eval_batch_step
应当被添加为可选功能,套件的默认行为保持不变。需求描述:复现论文pidnet 需求场景(这个需求可以解决哪些应用场景的问题): 该模型为轻量化分割方向的前沿模型,超过自研模型ppliteseg精度和速度平衡,进度直逼高精度OCRNet。 潜在解决方案(问题分解): 数据和模型、代码均已经开源,可以基于论文复现指南复现上述论文,代码链接:https://github.com/XuJiacong/PIDNet
需求描述:根据原作者提出的建议,复现论文MobileSAM 需求场景(这个需求可以解决哪些应用场景的问题): 该模型为火爆的SAM模型的加速版本,大大提升了SAM的使用体验,该模型目前已经有2.9k star。 潜在解决方案(问题分解): 模型、代码已经开源,只需进行前向对齐即可,可以基于论文复现指南复现上述论文,代码链接:https://github.com/ChaoningZhang/MobileSAM
需求描述:根据 @printfxs 的建议,复现论文Parseq 需求场景(这个需求可以解决哪些应用场景的问题): 该模型将视觉和语义信息结合,实现精度和速度的双重提升,对比前沿模型SVTR有进一步优势。 潜在解决方案(问题分解): 模型、代码、数据集已经开源,可以基于论文复现指南复现上述论文,代码链接:https://github.com/baudm/parseq
需求描述: 识别文档中的数学公式(LaTex)
需求场景: 科技技术类的PDF文件往往有很多计算公式,目前没法有效识别,例如下角标等
需求描述: 支持小语种-藏文
需求场景: 对藏文的书籍、文稿进行文字提取
需求描述:给 fastdeploy服务化部署 的方式提供修改参数的地方,文档没教我也没找到能修改生效的地方。 需求场景:我需要限制生成的文本框数量,这个参数max_candidates符合,但是我找不到办法把这参数应用在fastdeploy服务化部署里面。目前我只能对识别结果取限制的数量,有点治标不治本。
需求描述:返回字符旋转角度。 需求场景:扫描件文件识别以及自动转正。
需求描述: fastdeploy ios版本编译。 需求场景: 统一化使用fastdeploy部署符合项目发展趋势,也便于项目的推广。
@HackerWand 我们准备复现doctr++的文档矫正功能,即可实现你的需求。
@zhouyiminga FastDeploy支持部分参数的修改,后续将有开发者在Issue #10562 中分享具体的做法
需求描述: 实时手写汉字识别。 需求场景: 教育场景应用。
需求描述: 实时手写汉字识别。 需求场景: 教育场景应用。
从哪里收流?
需求描述: 针对关键信息提取,可以分为三个阶段,分别为检测识别kie, 每个阶段都相应的评价指标。但是没有一个指标来衡量整个pipeline的效果,值得开发出相关指标用来衡量。 需求场景: 卡证识别
希望官方能够更详细的测试fastdeploy serving的方式启动的服务到底推理速度如何。 根据我在多种英伟达GPU平台测试的结果,使用triton的部署方式是比纯api调用的响应时间慢至少8到10倍(无并发,单次推理)。我觉得有以下几方面原因
希望KIE任务可以添加置信度,目前只有pred_id;另外能否明确一下KIE如何部署到fastapi这种api框架?
需求描述: 支持paddleOCR和其他模型一起使用的时候的多进程使用 需求场景: 不同模型(pytorch,paddle,tensorflow模型)之间的并行使用
表格恢复模型 需求描述: 目前SLANet模型效果比较差,尤其是无线框表格和存在跨行的表格 需求场景: 表格恢复,excel表格恢复等
@dengbuqi 可能需要再细化一下需求描述? 请问不同模型并行使用的场景是什么样的,现有模型并行使用会存在什么问题呢?
@wxzwxz131 目前我们有两种表格识别的算法,table master和SLANet,请问是否这两种算法在官方训练的数据上对无框和跨行情况都表现很糟糕?如果是,是否有效果更好的表格回复算法推荐呢?
希望可以将现有的问题记录在一个新建issue中,方便我们跟进
@HackerWand 我们准备复现doctr++的文档矫正功能,即可实现你的需求。
@shiyutang 应该如何做呢?
@HackerWand 我们的开源社区正在在进行doctr++的复现,其可以实现这个功能:https://github.com/PaddlePaddle/PaddleOCR/issues/10379
标注工具ppocrlabel,能不能让我们自己选择文字检测或者文本识别的模型;还有,能不能只检测文字区域,或者只识别文字
建议增加新增字符的功能,因为有很多场景会有一些特殊字符或者语言,这样可以提高ppocr的可用性
需求描述:提供参数接口,传入仅需识别的部分字符(比如仅数字、仅个别英文字母等),避免识别为其他相似字符(比如数字1和i,数字0和字母O……) 需求场景: 在特定范围识别时,准确性低(比如生产手写数字数据识别不准) 潜在解决方案:个人通过修改后处理过程已经实现了相关功能,但使用不方便: 修改rec_postprocess.py文件中的class CTCLabelDecode(BaseRecLabelDecode): 思路:在所有字符概率中,挑选出我们关心的字符概率,在挑选之后看哪个概率最大……
def __call__(self, preds, label=None, *args, **kwargs):
if isinstance(preds, tuple) or isinstance(preds, list):
preds = preds[-1]
if isinstance(preds, paddle.Tensor):
preds = preds.numpy()
'''
limit_char_list = list("0123456789") # 这里仅识别阿拉伯数字,根据情况增加小数点或其他字符
limit_char_list.append("blank") # 必须增加空值【此项是self.character中的第一项,必须加上!!】
# limit_char_list.append(" ") # 这行应该没有太大影响
# 获取要识别的字符(比如0-9)在整个字符集self.character中的位置Index
char_ind = [self.character.index(char) for char in limit_char_list]
# [26, 93, 25, 94, 632, 631, 933, 29, 27, 1109, 0] 不连续的,和chinese_dict.txt中的次序不一样!
# 从preds结果中筛选出我们需要识别字符的概率数据
my_preds=preds[:,:,char_ind]
# 获取my_preds中的最大概率和对应索引及概率值
my_preds_idx = my_preds.argmax(axis=2) # 注意返回的最大概率序号是mypreds中的序号,也是limit_char_list中的序号,不是preds中的序号
preds_prob = my_preds.max(axis=2)
# 将序号列表中自定义字符中的次序修改为self.character中的次序
preds_idx = np.empty(shape=preds_prob.shape)
for i,row in enumerate(my_preds_idx):
preds_idx[i,:] = [ char_ind[j] for j in row ]
preds_idx = preds_idx.astype(int)
'''
preds_idx = preds.argmax(axis=2) #若仅识别特定字符,将上面的块注释去掉,并注释掉这行
preds_prob = preds.max(axis=2) #若仅识别特定字符,将上面的块注释去掉,并注释掉这行
建议增加新增字符的功能,因为有很多场景会有一些特殊字符或者语言,这样可以提高ppocr的可用性
你好,新增字符的方式需要重新加入新的字典和数据,并对模型进行finetune。
我们将这个Issue 保持开放状态,以收集用户的功能请求并听取您的声音。我们的发布计划将在不同的问题上进行更新。
在这个Issue中,您可以:
We keep this issue open to collect feature requests from users and hear your voice. Our release plan will be updated on different issues.
In this issue, you can either: