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号
浙公网安备 33010602011771号