PaddleSharp的入门级使用记录【在WebApi里使用】(转)
PaddleSharp的入门级使用记录【在WebApi里使用】
1、下载源码
下载地址为:https://github.com/sdcb/PaddleSharp
2、打开项目
使用vs2020打开,打开后效果如下:

3、新建WebApi项目
新建.net 5.0的项目,如下图:


建完后的效果如下图:

4、添加引用
(1)、添加项目“Sdcb.PaddleOCR”的引用
(2)、添加项目“Sdcb.PaddleOCR.KnownModels”的引用
(3)、添加项目“Sdcb.PaddleInference”的引用
(4)、nuget添加“Sdcb.PaddleInference.runtime.win64.mkl”
(5)、nuget添加“OpenCvSharp4”
(6)、nuget添加“OpenCvSharp4.runtime.win”
效果图如下:

5、调试代码
新建名为:OcrController的Controller,建完后效果如下:

根据官方的例子,修改Controller的内容如下:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using OpenCvSharp;
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.KnownModels;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
namespace OcrServerAPI.Controllers
{
[ApiController]
[Route("[controller]")]
public class OcrController : ControllerBase
{
private readonly ILogger<OcrController> _logger;
public OcrController(ILogger<OcrController> logger)
{
_logger = logger;
}
[HttpGet]
public string Get()
{
var ocrResult = DoOcr().Result;
return ocrResult;
}
private async Task<string> DoOcr()
{
var strResult = string.Empty;
OCRModel model = KnownOCRModel.PPOcrV2;
await model.EnsureAll();
byte[] sampleImageData;
string sampleImageUrl = @"https://www.tp-link.com.cn/content/images/detail/2164/TL-XDR5450易展Turbo版-3840px_03.jpg";
using (HttpClient http = new HttpClient())
{
Console.WriteLine("Download sample image from: " + sampleImageUrl);
sampleImageData = await http.GetByteArrayAsync(sampleImageUrl);
}
using (PaddleOcrAll all = new PaddleOcrAll(model.RootDirectory, model.KeyPath)
{
AllowRotateDetection = true, /* 允许识别有角度的文字 */
Enable180Classification = false, /* 允许识别旋转角度大于90度的文字 */
})
{
// Load local file by following code:
// using (Mat src2 = Cv2.ImRead(@"C:\test.jpg"))
using (Mat src = Cv2.ImDecode(sampleImageData, ImreadModes.Color))
{
PaddleOcrResult result = all.Run(src);
Console.WriteLine("Detected all texts: \n" + result.Text);
strResult = 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}");
}
}
}
return strResult;
}
}
}
直接执行会报错误如下:

解决:
找到原因:根据上面提示的路径:C:\Users\wjx\AppData\Roaming\paddleocr-models\ppocr-v2\key.txt文件缺失。
下载文件:文件路径如下:https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.4/ppocr/utils/ppocr_keys_v1.txt
复制文件:把上一步下载下来的文件改名为:key.txt,然后放到C:\Users\wjx\AppData\Roaming\paddleocr-models\ppocr-v2 目录下,如下图:

6、过行效果

输入地址如下:localhost:6409/ocr,显示效果如下图:

上面demo的源码:https://download.csdn.net/download/jiancaixing/82371328


浙公网安备 33010602011771号