C# 使用 PaddleOCR 进行图片文字识别
|
admin
2024年12月29日 19:1
本文热度 276
|
概述
PaddleOCR 是由百度飞桨(PaddlePaddle)深度学习平台开发的多语言 OCR 工具库,支持80多种语言的文本识别,并提供数据标注、文本图像矫正、版面区域检测、表格识别等功能。本文将详细介绍如何在 C# 项目中使用 PaddleOCR 进行图片文字识别,并附上示例代码。
环境配置
1. 准备开发环境
- 操作系统:Windows 或 Linux(如 Ubuntu、CentOS)
- 开发工具:Visual Studio 2022 或 Rider
2. 安装 PaddleOCRSharp
在你的项目中,使用以下命令安装 PaddleOCRSharp NuGet 包:
dotnet add package PaddleOCRSharp
或者通过 Visual Studio 的 NuGet 管理器搜索 PaddleOCRSharp
并安装。
3. 下载模型文件
PaddleOCR 需要预训练模型文件来完成 OCR 任务。可以通过以下步骤获取:
- 访问 PaddleOCR 的官方 GitHub 仓库:PaddleOCR GitHub。
- 下载适合自己需求的模型文件(如
ch_PP-OCRv3
用于中文简体 OCR)。 - 将模型文件存放到项目目录中,例如
models/ocr_det_infer
和 models/ocr_rec_infer
。
代码实现
1. 创建 OCR 实例
PaddleOCRSharp 的核心类是 PaddleOCREngine
,它需要模型路径和运行配置。
using PaddleOCRSharp;
public class OCRDemo
{
private PaddleOCREngine _ocrEngine;
public OCRDemo()
{
// 设置模型路径
string detModelPath = @"models/ocr_det_infer";
string recModelPath = @"models/ocr_rec_infer";
string keysPath = @"models/ppocr_keys.txt";
// 初始化 OCR 引擎
_ocrEngine = new PaddleOCREngine(
detModelPath: detModelPath,
recModelPath: recModelPath,
keysPath: keysPath,
useGpu: false // 是否使用 GPU
);
}
}
2. 进行 OCR 识别
PaddleOCREngine
提供了 DetectAndRecognize
方法,可以对图像文件中的文本进行检测和识别。
using System;
using System.Drawing;
public class OCRDemo
{
private PaddleOCREngine _ocrEngine;
public OCRDemo()
{
string detModelPath = @"models/ocr_det_infer";
string recModelPath = @"models/ocr_rec_infer";
string keysPath = @"models/ppocr_keys.txt";
_ocrEngine = new PaddleOCREngine(detModelPath, recModelPath, keysPath, useGpu: false);
}
public void RecognizeText(string imagePath)
{
using (Bitmap bitmap = new Bitmap(imagePath))
{
// 调用 OCR 引擎进行识别
var results = _ocrEngine.DetectAndRecognize(bitmap);
// 输出识别结果
foreach (var result in results)
{
Console.WriteLine($"Text: {result.Text}, Confidence: {result.Score}");
}
}
}
}
3. 主程序调用
创建一个简单的控制台应用程序调用以上代码:
class Program
{
static void Main(string[] args)
{
var ocrDemo = new OCRDemo();
Console.WriteLine("请输入待识别图像的路径:");
string imagePath = Console.ReadLine();
ocrDemo.RecognizeText(imagePath);
}
}
结论
通过上述步骤,我们可以在 C# 项目中轻松集成 PaddleOCR,实现对图片中文字的识别。PaddleOCRSharp 提供了一种简便的方法来利用 PaddlePaddle 的强大功能,使得开发者能够快速地在 C# 环境中应用深度学习进行文字识别。
阅读原文:原文链接
该文章在 2024/12/30 14:34:10 编辑过