NET环境使用PaddleSharp的入门Demo-控制台

目录

1、背景说明

OCR识别在实际工作中的经常使用,PaddleSharp,是对PaddlePaddle的NET封装。使用起来非常简单。

2、代码实现

2.1 文件准备

提前准备的图片,里面的内容非常简单

2.2 代码实现

csharp 复制代码
using OpenCvSharp;
using Sdcb.PaddleInference;
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Models;
using Sdcb.PaddleOCR.Models.Local;

// 1. 更换为自己的文件路径及名称
string imagePath = @"D:\BaiduNetdisk\test.jpg";

// 1. 加载中文OCR模型--根据不同的版本,版本会不同
FullOcrModel model = LocalFullModels.ChineseV5;

// 2. 初始化OCR引擎
using var ocrEngine = new PaddleOcrAll(model, PaddleDevice.Mkldnn())
{
    AllowRotateDetection = true,  // 允许识别旋转的文字
    Enable180Classification = true // 允许判断180度倒置的图片
};

// 3. 读取图片
using var image = Cv2.ImRead(imagePath);
if (image == null || image.Empty())
{
    Console.WriteLine("❌ 图片读取失败,请检查路径是否正确!");
    Console.ReadLine();
    return;
}

// 4. 执行OCR识别
PaddleOcrResult ocrResult = ocrEngine.Run(image);

// 5. 输出识别结果
Console.WriteLine("✅ 识别到的全部文本:");
Console.WriteLine(ocrResult.Text);

Console.WriteLine("\n📋 详细识别信息:");
foreach (PaddleOcrResultRegion region in ocrResult.Regions)
{
    Console.WriteLine($"文本: {region.Text,-15} | " +
                      $"置信度: {region.Score:P2} | " +
                      $"位置: ({region.Rect.Center.X:F0}, {region.Rect.Center.Y:F0}) | " +
                      $"角度: {region.Rect.Angle:F1}°");
}

Console.ReadLine();

2.3 效果如下

3、注意事项

这里面非常重要是的package的版本。经测试如下的三个package版本均OK。本文中使用的是第三个截图的版本

版本1:

版本2:

版本3: