/PaddleSharp

Primary LanguageC#Apache License 2.0Apache-2.0

PaddleSharp

.NET Wrapper for PaddleInference C API, include PaddleOCR

NuGet Packages

NuGet Package Version Description
Sdcb.PaddleInference.runtime.win64.mkl NuGet Paddle Inference C API Windows x64(mkl-dnn) Native binding
Sdcb.PaddleInference NuGet Paddle Inference C API .NET binding
Sdcb.PaddleOCR NuGet PaddleOCR library(based on Sdcb.PaddleInference)
Sdcb.PaddleOCR.KnownModels NuGet Helper to download PaddleOCR models

Usage

Detection and Recognition(All)

  1. Install NuGet Packages:
dotnet add package Sdcb.PaddleInference
dotnet add package Sdcb.PaddleInference.runtime.win64.mkl
dotnet add package Sdcb.PaddleOCR
dotnet add package Sdcb.PaddleOCR.KnownModels
dotnet add package OpenCvSharp4
dotnet add package OpenCvSharp4.runtime.win
  1. write following C# code to get result:
OCRModel model = KnownOCRModel.PPOcrV2;
await model.EnsureAll();
using (PaddleOcrAll all = new PaddleOcrAll(model.RootDirectory, model.KeyPath))
using (Mat src = Cv2.ImRead(@"C:\Users\ZhouJie\Pictures\xdr5480.jpg"))
{
    Console.WriteLine(all.Run(src).Text);
}

Detection Only

// Install following packages:
// Sdcb.PaddleInference
// Sdcb.PaddleInference.runtime.win64.mkl
// Sdcb.PaddleOCR
// Sdcb.PaddleOCR.KnownModels
// OpenCvSharp4
// OpenCvSharp4.runtime.win
string inputFile = @"C:\Users\ZhouJie\Pictures\xdr5480.jpg";
OCRModel model = KnownOCRModel.PPOcrV2;
await model.EnsureAll();
using (PaddleOcrDetector detector = new PaddleOcrDetector(model.DetectionDirectory))
using (Mat src = Cv2.ImRead(inputFile))
{
    Rect[] rects = detector.Run(src);
    using (Mat clone = src.Clone())
    {
        foreach (Rect rect in rects)
        {
            clone.Rectangle(rect, Scalar.Red, thickness: 2);
        }
        string outputFile = Path.Combine(Path.GetDirectoryName(inputFile), "output.jpg");
        clone.ImWrite(outputFile);
    }
}