-
-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
版面分析模型doclayout 输入shape是固定的1024x1024问题 #3
Comments
我来看看,欢迎提PR哈
|
我发现是onnx跟原始模型有差别,
另外我有问题的图上面空隙也比较小,都出现没有框到表格第1行。这个我试试padding
…---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:34
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
我来看看,欢迎提PR哈
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月29日 13:44 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
确实存在此问题,按照官方处理的预测精度更高
https://github.com/opendatalab/DocLayout-YOLO/blob/119996a102e383c15a9fb0897ff038215ccfaf22/doclayout_yolo/data/augment.py#L684
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
嗯呢,我想确定的是精度问题是因为我这里前后处理没对齐,还是说模型转换有误差导致的。
如果是前者,那么可以修复一下,后者暂时无能为力。
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月30日 07:40 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
我发现是onnx跟原始模型有差别,
另外我有问题的图上面空隙也比较小,都出现没有框到表格第1行。这个我试试padding
---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:34
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
我来看看,欢迎提PR哈
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月29日 13:44 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
确实存在此问题,按照官方处理的预测精度更高
https://github.com/opendatalab/DocLayout-YOLO/blob/119996a102e383c15a9fb0897ff038215ccfaf22/doclayout_yolo/data/augment.py#L684
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
我同一张图,直接用官方脚本测的,分别用onnx模型和它原始模型,结果不一样,原始模型的结果框非常的精准,所以应该是后者。
…---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:43
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
嗯呢,我想确定的是精度问题是因为我这里前后处理没对齐,还是说模型转换有误差导致的。
如果是前者,那么可以修复一下,后者暂时无能为力。
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月30日 07:40 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
我发现是onnx跟原始模型有差别,
另外我有问题的图上面空隙也比较小,都出现没有框到表格第1行。这个我试试padding
---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:34
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
我来看看,欢迎提PR哈
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月29日 13:44 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
确实存在此问题,按照官方处理的预测精度更高
https://github.com/opendatalab/DocLayout-YOLO/blob/119996a102e383c15a9fb0897ff038215ccfaf22/doclayout_yolo/data/augment.py#L684
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
官方脚本支持onnx测试了?那如果这样,的确是转换精度问题了。我理解torch转换做的比较好了,还会有精度误差。
看来你这case巧了
|
我直接官方demo.py 指定的onnx模型路径 可以跑 会自动下载安装onnx包 具体代码细节没看。
用torch转onnx 是不是也要考虑一下onnx的算子版本
|
是的,需要考虑不同版本,一般能转换过去,正常推理,就不会细究。不过有可能是这原因。需要做一些消融实验验证一下。
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月30日 08:00 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
我直接官方demo.py 指定的onnx模型路径 可以跑 会自动下载安装onnx包 具体代码细节没看。
用torch转onnx 是不是也要考虑一下onnx的算子版本
---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:53
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
官方脚本支持onnx测试了?那如果这样,的确是转换精度问题了。我理解torch转换做的w比较好了,还会有精度误差。
看来你这case巧了
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月30日 07:50 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
我同一张图,直接用官方脚本测的,分别用onnx模型和它原始模型,结果不一样,原始模型的结果框非常的精准,所以应该是后者。
---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:43
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
嗯呢,我想确定的是精度问题是因为我这里前后处理没对齐,还是说模型转换有误差导致的。
如果是前者,那么可以修复一下,后者暂时无能为力。
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月30日 07:40 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
我发现是onnx跟原始模型有差别,
另外我有问题的图上面空隙也比较小,都出现没有框到表格第1行。这个我试试padding
---原始邮件---
发件人: ***@***.***>
发送时间: 2024年11月30日(周六) 上午7:34
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
我来看看,欢迎提PR哈
---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 发送日期 | 2024年11月29日 13:44 |
| 收件人 | RapidAI/RapidLayout ***@***.***> |
| 抄送人 | SWHL ***@***.***>,
Author ***@***.***> |
| 主题 | Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3) |
确实存在此问题,按照官方处理的预测精度更高
https://github.com/opendatalab/DocLayout-YOLO/blob/119996a102e383c15a9fb0897ff038215ccfaf22/doclayout_yolo/data/augment.py#L684
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
一、 基于您的onnx模型,我对图片增加padding预处理可以解决框的精度问题 |
这个是在导出后,把类别填进去了。
|
参考下面代码,把类别添加进去就可以用了。欢迎提一个PR,助力更新该项目模型。 from pathlib import Path
from typing import List, Union
import onnx
import onnxruntime as ort
from onnx import ModelProto
class ONNXMetaOp:
@classmethod
def add_meta(
cls,
model_path: Union[str, Path],
key: str,
value: List[str],
delimiter: str = "\n",
) -> ModelProto:
model = onnx.load_model(model_path)
meta = model.metadata_props.add()
meta.key = key
meta.value = delimiter.join(value)
return model
@classmethod
def get_meta(
cls, model_path: Union[str, Path], key: str, split_sym: str = "\n"
) -> List[str]:
sess = ort.InferenceSession(model_path)
meta_map = sess.get_modelmeta().custom_metadata_map
key_content = meta_map.get(key)
key_list = key_content.split(split_sym)
return key_list
@classmethod
def del_meta(cls, model_path: Union[str, Path]) -> ModelProto:
model = onnx.load_model(model_path)
del model.metadata_props[:]
return model
@classmethod
def save_model(cls, save_path: Union[str, Path], model: ModelProto):
onnx.save_model(model, save_path)
paper_label = [
"Text",
"Title",
"Figure",
"Figure caption",
"Table",
"Table caption",
"Header",
"Footer",
"Reference",
"Equation",
]
model_path = "models/paper-8n.onnx"
model = ONNXMetaOp.add_meta(model_path, key="character", value=paper_label)
new_model_path = "models/with_meta_onnx/1.onnx"
ONNXMetaOp.save_model(new_model_path, model)
t = ONNXMetaOp.get_meta(new_model_path, key="character")
print(t) |
好的 感谢
…------------------ 原始邮件 ------------------
发件人: "RapidAI/RapidLayout" ***@***.***>;
发送时间: 2024年12月3日(星期二) 下午2:03
***@***.***>;
***@***.******@***.***>;
主题: Re: [RapidAI/RapidLayout] 版面分析模型doclayout 输入shape是固定的1024x1024问题 (Issue #3)
参考下面代码,把类别添加进去就可以用了。欢迎提一个PR,助力更新该项目模型。
from pathlib import Path from typing import List, Union import onnx import onnxruntime as ort from onnx import ModelProto class ONNXMetaOp: @classmethod def add_meta( cls, model_path: Union[str, Path], key: str, value: List[str], delimiter: str = "\n", ) -> ModelProto: model = onnx.load_model(model_path) meta = model.metadata_props.add() meta.key = key meta.value = delimiter.join(value) return model @classmethod def get_meta( cls, model_path: Union[str, Path], key: str, split_sym: str = "\n" ) -> List[str]: sess = ort.InferenceSession(model_path) meta_map = sess.get_modelmeta().custom_metadata_map key_content = meta_map.get(key) key_list = key_content.split(split_sym) return key_list @classmethod def del_meta(cls, model_path: Union[str, Path]) -> ModelProto: model = onnx.load_model(model_path) del model.metadata_props[:] return model @classmethod def save_model(cls, save_path: Union[str, Path], model: ModelProto): onnx.save_model(model, save_path) paper_label = [ "Text", "Title", "Figure", "Figure caption", "Table", "Table caption", "Header", "Footer", "Reference", "Equation", ] model_path = "models/paper-8n.onnx" model = ONNXMetaOp.add_meta(model_path, key="class_names", value=paper_label) new_model_path = "models/with_meta_onnx/1.onnx" ONNXMetaOp.save_model(new_model_path, model) t = ONNXMetaOp.get_meta(new_model_path, key="class_names") print(t)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
新建的版面分析模型doclayout 输入shape是固定的1024x1024, 这样会有两个问题:
1、有的图片会因非等比例缩放, 导致结果不准
2、增加计算量
建议, 将onnx模型的输入shape转成dynamic, 图像使用letterBox预处理后送入模型
Originally posted by @jesse01 in RapidAI/RapidOCR#246 (comment)
The text was updated successfully, but these errors were encountered: