|
@@ -2,9 +2,9 @@
|
|
|
使用table_recognition_v2产线,关键参数use_wired_table_cells_trans_to_html:
|
|
使用table_recognition_v2产线,关键参数use_wired_table_cells_trans_to_html:
|
|
|
use_wired_table_cells_trans_to_html:启用有线表单元格直转HTML模式,启用时直接基于有线表单元格检测模型预测的各单元格位置排布与几何关系构建HTML结构。此模式在不同场景下效果不同,请根据实际情况选择。一般来说,建议在有线表单元格检测非常准确的场景下开启此模式,以获得更加准确的端到端表格识别结果。
|
|
use_wired_table_cells_trans_to_html:启用有线表单元格直转HTML模式,启用时直接基于有线表单元格检测模型预测的各单元格位置排布与几何关系构建HTML结构。此模式在不同场景下效果不同,请根据实际情况选择。一般来说,建议在有线表单元格检测非常准确的场景下开启此模式,以获得更加准确的端到端表格识别结果。
|
|
|
|
|
|
|
|
-不启用表格结构识别模块预测得到表格的HTML结构
|
|
|
|
|
|
|
+**不启用表格结构识别模块预测得到表格的HTML结构**
|
|
|
|
|
|
|
|
-去掉其他干扰模型
|
|
|
|
|
|
|
+**去掉其他干扰模型**
|
|
|
|
|
|
|
|
```python
|
|
```python
|
|
|
outputs = pipeline.predict(
|
|
outputs = pipeline.predict(
|
|
@@ -25,14 +25,14 @@ outputs = pipeline.predict(
|
|
|
## 折行文本被丢弃
|
|
## 折行文本被丢弃
|
|
|
正在收集工作区信息正在筛选到最相关的信息看起来不是“表格结构定位”问题,而是表格内容填充阶段把同一单元格里的折行文本做了“分段重识别/分裂”,只保留了其中一段(常见为最后一行“款”),导致“扫二维码付”被丢弃。
|
|
正在收集工作区信息正在筛选到最相关的信息看起来不是“表格结构定位”问题,而是表格内容填充阶段把同一单元格里的折行文本做了“分段重识别/分裂”,只保留了其中一段(常见为最后一行“款”),导致“扫二维码付”被丢弃。
|
|
|
|
|
|
|
|
-原因定位
|
|
|
|
|
-- 你走的是 table_recognition_v2,且传了 use_ocr_results_with_table_cells=True、use_wired_table_cells_trans_to_html=True。
|
|
|
|
|
|
|
+**原因定位**
|
|
|
|
|
+- 使用管线 table_recognition_v2,且传了 use_ocr_results_with_table_cells=True、use_wired_table_cells_trans_to_html=True。
|
|
|
- 在 v2 管线中,默认启用了“单元格内再切分并重识别”的策略,见函数:`_TableRecognitionPipelineV2.predict` 和单元格内容合成逻辑:`get_table_recognition_res`。
|
|
- 在 v2 管线中,默认启用了“单元格内再切分并重识别”的策略,见函数:`_TableRecognitionPipelineV2.predict` 和单元格内容合成逻辑:`get_table_recognition_res`。
|
|
|
- 该切分策略在遇到“纵向换行”的短词时,可能只选择到其中一个分段,从而丢字。
|
|
- 该切分策略在遇到“纵向换行”的短词时,可能只选择到其中一个分段,从而丢字。
|
|
|
|
|
|
|
|
关闭“单元格内拆分重识别”,直接对整格做一次OCR,再把同格内多行按阅读顺序拼接。为此给 table_recognition_v2 暴露一个开关 use_table_cells_split_ocr,并传到后处理。
|
|
关闭“单元格内拆分重识别”,直接对整格做一次OCR,再把同格内多行按阅读顺序拼接。为此给 table_recognition_v2 暴露一个开关 use_table_cells_split_ocr,并传到后处理。
|
|
|
|
|
|
|
|
-修改1:在管线里增加开关并传给后处理
|
|
|
|
|
|
|
+**修改1:在管线里增加开关并传给后处理**
|
|
|
|
|
|
|
|
````python
|
|
````python
|
|
|
# ...existing code...
|
|
# ...existing code...
|
|
@@ -94,11 +94,11 @@ class _TableRecognitionPipelineV2(BasePipeline):
|
|
|
# ...existing code...
|
|
# ...existing code...
|
|
|
````
|
|
````
|
|
|
|
|
|
|
|
-说明
|
|
|
|
|
|
|
+**说明**
|
|
|
- `get_table_recognition_res` 已有 use_table_cells_split_ocr 参数,传 True 时走“拆分重识别”,传 False 时用整格OCR结果,不会丢掉折行。
|
|
- `get_table_recognition_res` 已有 use_table_cells_split_ocr 参数,传 True 时走“拆分重识别”,传 False 时用整格OCR结果,不会丢掉折行。
|
|
|
- 以上改动保持默认行为不变(兼容老调用)。
|
|
- 以上改动保持默认行为不变(兼容老调用)。
|
|
|
|
|
|
|
|
-修改2:调用处传入开关(你的脚本)
|
|
|
|
|
|
|
+**修改2:调用处传入开关(你的脚本)**
|
|
|
|
|
|
|
|
````python
|
|
````python
|
|
|
# ...existing code...
|
|
# ...existing code...
|
|
@@ -115,3 +115,24 @@ class _TableRecognitionPipelineV2(BasePipeline):
|
|
|
)
|
|
)
|
|
|
# ...existing code...
|
|
# ...existing code...
|
|
|
````
|
|
````
|
|
|
|
|
+
|
|
|
|
|
+## 单元格内文字丢失
|
|
|
|
|
+上期发生额”ocr后的文字bbox是在表格检测单元框内,为什么没有显示出来
|
|
|
|
|
+**还需查找原因**
|
|
|
|
|
+
|
|
|
|
|
+## 执行脚本
|
|
|
|
|
+```bash
|
|
|
|
|
+# A用户_单元格扫描流水
|
|
|
|
|
+python table_recognition_v2_single_process.py \
|
|
|
|
|
+ --input_dir "/Users/zhch158/workspace/data/流水分析/A用户_单元格扫描流水.img" \
|
|
|
|
|
+ --output_dir "/Users/zhch158/workspace/data/流水分析/A用户_单元格扫描流水/table_recognition_v2_Results" \
|
|
|
|
|
+ --pipeline "./my_config/table_recognition_v2.yaml" \
|
|
|
|
|
+ --device "cpu"
|
|
|
|
|
+
|
|
|
|
|
+# 至远彩色印刷工业有限公司_2023年度报告母公司
|
|
|
|
|
+python table_recognition_v2_single_process.py \
|
|
|
|
|
+ --input_dir "/Users/zhch158/workspace/data/至远彩色印刷工业有限公司/2023年度报告母公司.img" \
|
|
|
|
|
+ --output_dir "/Users/zhch158/workspace/data/至远彩色印刷工业有限公司/table_recognition_v2_Results" \
|
|
|
|
|
+ --pipeline "./my_config/table_recognition_v2.yaml" \
|
|
|
|
|
+ --device "cpu"
|
|
|
|
|
+```
|