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