LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# Sdcb.PaddleOCR 字符识别库

admin
2025年5月5日 23:20 本文热度 199

Sdcb.PaddleOCR 是一个基于 PaddlePaddle 的 OCR(光学字符识别)库,旨在提供高效的文本检测和识别功能。它支持多种语言,并提供本地和在线模型供用户选择。该库的设计使得在不同平台(如 Windows 和 Linux)上都能方便地进行文本识别。这个比Tesseract OCR 好多了,不过要get的库比较多。

NuGet 包

Sdcb.PaddleOCR 提供了多个 NuGet 包,用户可以根据需要选择合适的版本:

  • Sdcb.PaddleOCR
    : 主要的 PaddleOCR 库,基于 Sdcb.PaddleInference。
  • Sdcb.PaddleOCR.Models.LocalV3
    : 包含完整的本地 V3 模型,支持多种语言(约 105MB)。
  • Sdcb.PaddleOCR.Models.LocalV4
    : 包含完整的本地 V4 模型,支持多种语言(约 111MB)。

有关语言支持的详细信息,请参考 PaddleOCR 模型列表。

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.5/doc/doc_en/models_list_en.md

使用方法

using OpenCvSharp;
using Sdcb.PaddleInference;
using Sdcb.PaddleInference.Native;
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Models.Local;
using Sdcb.PaddleOCR.Models;

namespace AppPaddlePaddle
{
    internal class Program
    {

        static void Main(string[] args)
        
{
            FullOcrModel model = LocalFullModels.ChineseV3;

            using (PaddleOcrAll all = new PaddleOcrAll(model, PaddleDevice.Mkldnn())
            {
                AllowRotateDetection = true/* 允许识别有角度的文字 */
                Enable180Classification = false/* 允许识别旋转角度大于90度的文字 */
            })
            {
                using (Mat src = Cv2.ImRead(@"temp_plate.png"))
                {
                    PaddleOcrResult result = all.Run(src);
                    Console.WriteLine("Detected all texts: \n" + result.Text);
                    foreach (PaddleOcrResultRegion region in result.Regions)
                    {
                        Console.WriteLine($"Text: {region.Text}, Score: {region.Score}, RectCenter: {region.Rect.Center}, RectSize:    {region.Rect.Size}, Angle: {region.Rect.Angle}");
                    }
                }
            }
            Console.ReadKey();
        }
    }
}

性能优化

  • PaddleConfig.MkldnnCacheCapacity
    默认值为 1,可以根据内存使用情况进行调整。
  • PaddleOcrAll.Enable180Classification
    默认值为 false,可以提高处理速度。
  • PaddleOcrAll.AllowRotateDetection
    默认值为 true,如果只处理水平文本,可以设置为 false 以提高准确性和性能。

结论

Sdcb.PaddleOCR 是一个强大的 OCR 解决方案,适用于多种平台和语言。通过合理的配置和优化,用户可以实现高效的文本识别,满足不同场景的需求。


阅读原文:原文链接


该文章在 2025/5/6 12:04:46 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved