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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章