PaddleOCR PP-StructureV3 推理中的 Segmentation Fault 问题分析与解决
【免费下载链接】PaddleOCR 飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
项目地址: https://gitcode.com/paddlepaddle/PaddleOCR
在使用 PaddleOCR 的 PP-StructureV3 进行文档分析推理时,部分用户遇到了 Segmentation Fault 错误。这个问题主要出现在使用 PP-OCRv5_server_det 文本检测模型,并且在 CPU 环境下处理较大尺寸输入图像时发生。
经过技术分析,该问题源于 PaddlePaddle 框架底层的一个兼容性问题。具体来说,当输入图像尺寸较大时,模型推理过程中的卷积运算会触发一个内存访问异常,导致程序崩溃。
针对这个问题,目前有两种有效的临时解决方案:
第一种方案是更换文本检测模型。用户可以选择使用更轻量级的 PP-OCRv5_mobile_det 模型来代替默认的 server 版本模型。虽然 mobile 版本模型在精度上略有降低,但在大多数场景下仍能提供可接受的效果。
第二种方案是调整输入图像的尺寸。通过设置 text_det_limit_side_len 参数为 960,并将 text_det_limit_type 参数设置为 max,可以确保输入图像的长边不超过 960 像素,从而避免触发底层的内存访问异常。
需要特别注意的是,如果错误地将 text_det_limit_type 设置为 min,反而会导致短边至少为 960 像素,这可能使输入尺寸变得更大,从而无法解决问题甚至加剧问题。
对于使用多页 PDF 文档处理的用户,建议在初始化 PPStructureV3 管道时显式设置这些参数。同时,开发团队已经在后续版本中修复了这个问题,建议用户升级到 PaddleOCR 3.0.3 及更高版本,以获得更稳定的体验。
这个问题的出现和解决过程体现了深度学习模型部署中硬件和软件环境复杂性的挑战,也为用户提供了处理类似问题的思路:通过模型选择或输入预处理来规避框架层的特定问题。
【免费下载链接】PaddleOCR 飞桨多语言OCR工具包(实用超轻量OCR系统,支持80+种语言识别,提供数据标注与合成工具,支持服务器、移动端、嵌入式及IoT设备端的训练与部署) Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
项目地址: https://gitcode.com/paddlepaddle/PaddleOCR
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考