OpenVINO.NET [](http://qm.qq.com/cgi-bin/qm/qr?wv=1027&k=mma4msRKd372Z6dWpmBp4JZ9RL4Jrf8X&authKey=gccTx0h0RaH5b8B8jtuPJocU7MgFRUznqbV%2FLgsKdsK8RqZE%2BOhnETQ7nYVTp1W0&noverify=0&groupcode=495782587)

June 12, 2026 · View on GitHub

High quality .NET wrapper for OpenVINO™ toolkit.

Please check my cnblogs blog for more details:

Packages

Main packages

PackageVersionDescription
Sdcb.OpenVINO0.7.1.NET PInvoke interface
Sdcb.OpenVINO.Extensions.OpenCvSharp40.7.0OpenVINO OpenCvSharp4 extensions
Sdcb.OpenVINO.PaddleOCR0.8.0OpenVINO Paddle OCR Toolkit
Sdcb.OpenVINO.PaddleOCR.Models.Online0.8.0Online Models for OpenVINO Paddle OCR

Platform shared runtime packages

Current Sdcb.OpenVINO native runtime packages target OpenVINO 2026.2.0 only. On Linux/macOS, the loader only resolves the 2620 native library suffix, such as libopenvino_c.so.2620 and libopenvino_c.2620.dylib.

PackageVersionDescription
Sdcb.OpenVINO.runtime.android-x642026.2.0Runtime for Android x64
Sdcb.OpenVINO.runtime.centos.8-x642026.2.0Runtime for CentOS 8 x64
Sdcb.OpenVINO.runtime.linux-arm2026.2.0Runtime for Debian 9+ ARM
Sdcb.OpenVINO.runtime.osx.12.6-arm642026.2.0Runtime for macOS 12.6 ARM64
Sdcb.OpenVINO.runtime.rhel.8-x642026.2.0Runtime for RHEL 8 x64
Sdcb.OpenVINO.runtime.ubuntu.22.04-arm642026.2.0Runtime for Ubuntu 22.04 ARM64
Sdcb.OpenVINO.runtime.ubuntu.22.04-x642026.2.0Runtime for Ubuntu 22.04 x64
Sdcb.OpenVINO.runtime.ubuntu.24.04-x642026.2.0Runtime for Ubuntu 24.04 x64
Sdcb.OpenVINO.runtime.win-mt-x642026.2.0Runtime for Windows x64 with VC MT runtime
Sdcb.OpenVINO.runtime.win-x642026.2.0Runtime for Windows x64

Infer examples:

Install packages:

  • Sdcb.OpenVINO
  • A matching Sdcb.OpenVINO.runtime.* package from the table above
  • Optional: Sdcb.OpenVINO.Extensions.OpenCvSharp4, OpenCvSharp4, and a matching OpenCvSharp4 runtime package if you need OpenCvSharp integration

For Windows x64, install either Sdcb.OpenVINO.runtime.win-x64 or Sdcb.OpenVINO.runtime.win-mt-x64.

Yolov8 models inference example:

Face detection example:

Please refer to this project

PaddleOCR example:

Please refer to this project

Projects

Sdcb.OpenVINO.PaddleOCR

Packages

PackageVersionDescription
Sdcb.OpenVINO.PaddleOCR0.8.0OpenVINO Paddle OCR Toolkit
Sdcb.OpenVINO.PaddleOCR.Models.Online0.8.0Online Models for OpenVINO Paddle OCR

Usage

You can refer to this github for mini-openvino-paddleocr demo: https://github.com/sdcb/mini-openvino-paddleocr

Actually it's very similar to my another project PaddleSharp

PP-OCRv6 ONNX online models

Sdcb.OpenVINO.PaddleOCR.Models.Online provides PP-OCRv6 Chinese ONNX model presets:

ModelDetectionRecognitionText line 180-degree classifierDocument orientation classifier
OnlineFullModels.ChineseV6MediumPP-OCRv6_medium_det_onnx_inferPP-OCRv6_medium_rec_onnx_inferPP-LCNet_x1_0_textline_ori_onnx_inferPP-LCNet_x1_0_doc_ori_onnx_infer
OnlineFullModels.ChineseV6SmallPP-OCRv6_small_det_onnx_inferPP-OCRv6_small_rec_onnx_inferPP-LCNet_x0_25_textline_ori_onnx_inferPP-LCNet_x1_0_doc_ori_onnx_infer
OnlineFullModels.ChineseV6TinyPP-OCRv6_tiny_det_onnx_inferPP-OCRv6_tiny_rec_onnx_inferPP-LCNet_x0_25_textline_ori_onnx_inferPP-LCNet_x1_0_doc_ori_onnx_infer
using OpenCvSharp;
using Sdcb.OpenVINO;
using Sdcb.OpenVINO.PaddleOCR;
using Sdcb.OpenVINO.PaddleOCR.Models;
using Sdcb.OpenVINO.PaddleOCR.Models.Online;

FullOcrModel model = await OnlineFullModels.ChineseV6Small.DownloadAsync();

using PaddleOcrAll ocr = new(model, new PaddleOcrOptions(new DeviceOptions("CPU")))
{
    AllowRotateDetection = true,
    Enable180Classification = true,

    // Disabled by default. Enable it only when the input may be a full page
    // rotated by 0, 90, 180 or 270 degrees.
    EnableDocumentOrientationClassification = true,
};

using Mat src = Cv2.ImRead("test.jpg");
PaddleOcrResult result = ocr.Run(src);
Console.WriteLine(result.Text);

Notes:

  • PP-OCRv6 recognition labels are loaded from the downloaded model inference.yml.
  • PP-OCRv6 detection uses the official DB postprocess defaults: BoxThreshold = 0.2, BoxScoreThreahold = 0.45, UnclipRatio = 1.4. These properties can still be overwritten after constructing PaddleOcrDetector.
  • Full-document orientation classification is not enabled by default, even when the selected OnlineFullModels preset includes the document orientation model.

The detector, text line classifier, recognizer, and document orientation classifier can also be used independently:

using OpenCvSharp;
using Sdcb.OpenVINO;
using Sdcb.OpenVINO.PaddleOCR;
using Sdcb.OpenVINO.PaddleOCR.Models.Online;

using Mat src = Cv2.ImRead("document.jpg");

using PaddleOcrDocumentOrientationClassifier docOrientation = new(
    await OnlineDocumentOrientationClassificationModel.PPDocOrientationX10.DownloadAsync(),
    new DeviceOptions("CPU"));
PaddleOcrDocumentOrientationResult orientation = docOrientation.Run(src);
using Mat upright = orientation.RotateToUpright(src);

using PaddleOcrClassifier textLineOrientation = new(
    await OnlineOnnxClassificationModel.TextLineOrientationX025.DownloadAsync(),
    new DeviceOptions("CPU"));
Ocr180DegreeClsResult lineResult = textLineOrientation.ShouldRotate180(upright);

LICENSE

Apache