PaddleOCR-v3-onnxrun-cpp-py icon indicating copy to clipboard operation
PaddleOCR-v3-onnxrun-cpp-py copied to clipboard

我发现代码存在问题,且识别效果很差

Open lasifea opened this issue 1 year ago • 13 comments

    最近闲来无事,把PaddleOCR官方代码和博主的代码都看了一遍(不得不吐槽下官方代码有些地方就是不想让你看懂,一些关键步骤都藏起来),自己把onnx推理代码完全重写一遍,相比官方代码的推理速度提升30%以上,内存占用缩小30%以上,效果显著!
    博主代码中最主要的问题是,**文字识别步骤中图片预处理方式**不对,比如我一张600*24尺寸的图片,经过上述方式就变成320*48尺寸了,图片完全变形,导致识别不出来。所以改掉这一步,识别效果能好很多,还有些其它来自官方代码的问题就不多说了。

lasifea avatar Jan 29 '24 09:01 lasifea

对的,resize需要是动态高宽的,因为有的文字很长,而有的文字有的很短,如果resize固定高宽的,那在输入长段文字时,会出现末尾的文字无法识别出来的。文字检测模块和文字识别模块都要使用保持高宽比的resize,而且文字检测模块resize之后的高宽需要是32的倍数,这样的效果才会更好。此外,这套代码已经挺旧了,可以更换到PaddleOCR-v4

---原始邮件--- 发件人: @.> 发送时间: 2024年1月29日(周一) 下午5:27 收件人: @.>; 抄送: @.***>; 主题: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11)

 最近闲来无事,把PaddleOCR官方代码和博主的代码都看了一遍(不得不吐槽下官方代码有些地方就是不想让你看懂,一些关键步骤都藏起来),自己把onnx推理代码完全重写一遍,相比官方代码的推理速度提升30%以上,内存占用缩小30%以上,效果显著!     博主代码中最主要的问题是,**文字识别步骤中图片预处理方式**不对,比如我一张600*24尺寸的图片,经过上述方式就变成320*48尺寸了,图片完全变形,导致识别不出来。所以改掉这一步,识别效果能好很多,还有些其它来自官方代码的问题就不多说了。  

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

hpc203 avatar Jan 30 '24 12:01 hpc203

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

leilaShen avatar May 11 '24 02:05 leilaShen

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

lasifea avatar May 11 '24 05:05 lasifea

从paddleocr官方仓库下载模型,执行pdaddle2onnx转换生成onnx文件,然后现在的程序里加载v4的onnx文件就可以的呀,代码不用改的,可能图像预处理函数要修改一下

---原始邮件--- 发件人: @.> 发送时间: 2024年5月11日(周六) 中午1:40 收件人: @.>; 抄送: @.@.>; 主题: Re: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11)

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

hpc203 avatar May 11 '24 06:05 hpc203

嗯嗯 是的 预处理还比较复杂 v4的检测给出的是4个点的的识别结果 然后做了一遍透视变换 然后到了检测这边还做了一次resize 总之还比较复杂 需要根据python源代码来改写c++

从paddleocr官方仓库下载模型,执行pdaddle2onnx转换生成onnx文件,然后现在的程序里加载v4的onnx文件就可以的呀,代码不用改的,可能图像预处理函数要修改一下 ---原始邮件--- 发件人: @.> 发送时间: 2024年5月11日(周六) 中午1:40 收件人: @.>; 抄送: @.@.>; 主题: Re: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11) 亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢! 我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***&gt

leilaShen avatar May 12 '24 05:05 leilaShen

图片预处理,要写成动态分辨率保持高宽比的的这种形式的,宽度是动态的。因为一行文字有长又短的情况,如果是固定分辨率的,那么在输入一行很长的文字图片的时候,文字图片的宽度大于输入宽度,那么识别文字就会有遗漏的,这个特别要注意

---原始邮件--- 发件人: @.> 发送时间: 2024年5月12日(周日) 中午1:26 收件人: @.>; 抄送: @.@.>; 主题: Re: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11)

嗯嗯 是的 预处理还比较复杂 v4的检测给出的是4个点的的识别结果 然后做了一遍透视变换 然后到了检测这边还做了一次resize 总之还比较复杂 需要根据python源代码来改写c++

从paddleocr官方仓库下载模型,执行pdaddle2onnx转换生成onnx文件,然后现在的程序里加载v4的onnx文件就可以的呀,代码不用改的,可能图像预处理函数要修改一下 … ---原始邮件--- 发件人: @.> 发送时间: 2024年5月11日(周六) 中午1:40 收件人: @.>; 抄送: @.@.>; 主题: Re: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11) 亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢! 我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***&gt

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

hpc203 avatar May 12 '24 06:05 hpc203

对的,resize需要是动态高宽的,因为有的文字很长,而有的文字有的很短,如果resize固定高宽的,那在输入长段文字时,会出现末尾的文字无法识别出来的。文字检测模块和文字识别模块都要使用保持高宽比的resize,而且文字检测模块resize之后的高宽需要是32的倍数,这样的效果才会更好。此外,这套代码已经挺旧了,可以更换到PaddleOCR-v4 ---原始邮件--- 发件人: @.> 发送时间: 2024年1月29日(周一) 下午5:27 收件人: @.>; 抄送: @.>; 主题: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11) 最近闲来无事,把PaddleOCR官方代码和博主的代码都看了一遍(不得不吐槽下官方代码有些地方就是不想让你看懂,一些关键步骤都藏起来),自己把onnx推理代码完全重写一遍,相比官方代码的推理速度提升30%以上,内存占用缩小30%以上,效果显著! 博主代码中最主要的问题是,文字识别步骤中图片预处理方式不对,比如我一张60024尺寸的图片,经过上述方式就变成32048尺寸了,图片完全变形,导致识别不出来。所以改掉这一步,识别效果能好很多,还有些其它来自官方代码的问题就不多说了。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.**>

嗯嗯 非常感谢!!

leilaShen avatar May 15 '24 01:05 leilaShen

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

您好,可否参考下python代码,邮箱[email protected],感谢!

anisehu avatar Aug 13 '24 01:08 anisehu

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

您好,可否参考下python代码,邮箱[email protected],感谢!

稍等,我准备将改写的代码添加上注释发布到我自己的GitHub仓库中,预计这几天完成,完成后我发个仓库地址给你。

lasifea avatar Aug 13 '24 06:08 lasifea

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

您好,可否参考下python代码,邮箱[email protected],感谢!

我已经将代码放到我的GitHub仓库里了,仓库地址----> https://github.com/lasifea/simple-vision-tasks

lasifea avatar Aug 14 '24 00:08 lasifea

嗯嗯 是的 预处理还比较复杂 v4的检测给出的是4个点的的识别结果 然后做了一遍透视变换 然后到了检测这边还做了一次resize 总之还比较复杂 需要根据python源代码来改写c++

从paddleocr官方仓库下载模型,执行pdaddle2onnx转换生成onnx文件,然后现在的程序里加载v4的onnx文件就可以的呀,代码不用改的,可能图像预处理函数要修改一下 ---原始邮件--- 发件人: @.> 发送时间: 2024年5月11日(周六) 中午1:40 收件人: _@**._>; 抄送: _@.@._>; 主题: Re: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11) 亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢! 我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: _@_.*&gt

抱歉,之前我没有注意到你这条消息,我现在把代码放到我的GitHub仓库里了,仓库地址----> https://github.com/lasifea/simple-vision-tasks

lasifea avatar Aug 14 '24 00:08 lasifea

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

您好,可否参考下python代码,邮箱[email protected],感谢!

我已经将代码放到我的GitHub仓库里了,仓库地址----> https://github.com/lasifea/simple-vision-tasks

非常感谢!

anisehu avatar Aug 14 '24 01:08 anisehu

是的,文字检测和文字识别模块,输入分辨率要是动态的,并且在检测模块,输入的高宽是32的倍数,这样才会取得好的效果

---原始邮件--- 发件人: @.> 发送时间: 2024年8月14日(周三) 上午9:23 收件人: @.>; 抄送: @.@.>; 主题: Re: [hpc203/PaddleOCR-v3-onnxrun-cpp-py] 我发现代码存在问题,且识别效果很差 (Issue #11)

亲 可以针对paddleocr v4开个onnxruntime cpp reference的源代码不 感谢感谢!

我是用的python代码改写,自己也不擅长C++,所以并没有C++实现的代码,如果你需要python实现的代码,我可以发你一份和相关模型,再根据我的代码思路用C++实现。

@.***,感谢!

我已经将代码放到我的GitHub仓库里了,仓库地址----> https://github.com/lasifea/simple-vision-tasks

非常感谢!

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

hpc203 avatar Aug 14 '24 15:08 hpc203