LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【強(qiáng)烈推薦】C#.NET開源的OCR文字識別工具

admin
2023年9月4日 11:53 本文熱度 2927

導(dǎo)讀

現(xiàn)如今,大家對OCR的需求與日俱增,但是對我們.NET開發(fā)人員來說,卻基本并沒有什么趁手的工具,大部分都是基于Python去調(diào)用的,習(xí)慣了.NET優(yōu)秀的語法,如果不是必要,其實(shí)是很不想去適應(yīng)其他語言的。

這套源碼我是從去年開始接觸的,不過到最后因?yàn)闆]有實(shí)際應(yīng)用,所以最近沒有太多的關(guān)注,但是作者還是在不停的更新中,交流群也是非常活躍。














項(xiàng)目描述


PaddleOCRSharp 是一個基于百度飛槳PaddleOCR的.NET版本OCR工具類庫。項(xiàng)目核心組件PaddleOCR.dll,由C++編寫,根據(jù)百度飛槳PaddleOCR的C++代碼修改并優(yōu)化而成。目前已經(jīng)支持C++、.NET、Python、Golang、Rust等開發(fā)語言的直接API接口調(diào)用。項(xiàng)目包含文本識別、文本檢測、表格識別功能。本項(xiàng)目針對小圖識別不準(zhǔn)的情況下做了優(yōu)化,比飛槳原代碼識別準(zhǔn)確率有所提高。包含總模型僅8.6M的超輕量級中文OCR,單模型支持中英文數(shù)字組合識別、豎排文本識別、長文本識別。同時(shí)支持中英文、純英文以及多種語言文本檢測識別。

PaddleOCRSharp封裝極其簡化,實(shí)際調(diào)用僅幾行代碼,極大的方便了中下游開發(fā)者的使用和降低了PaddleOCR的使用入門級別,同時(shí)提供不同的.NET框架使用,方便各個行業(yè)應(yīng)用開發(fā)與部署。Nuget包即裝即用,可以離線部署,不需要網(wǎng)絡(luò)就可以識別的高精度中英文OCR。

本項(xiàng)目支持官方所有公開的通用OCR模型,PPOCRV2、PPOCRV3、PPOCRV4。如果使用v2模型,請?jiān)O(shè)置OCR識別參數(shù)OCRParameter對象的屬性rec_img_h=32,本項(xiàng)目默認(rèn)使用V3模型,默認(rèn)rec_img_h=48:

本項(xiàng)目只能在X64的CPU上編譯和使用,只能在avx指令集上的CPU上使用。

本項(xiàng)目目前支持以下.NET框架:

net35;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481; netstandard2.0;netcoreapp3.1; net5.0;net6.0;net7.0;net8.0

本項(xiàng)目提供了兩個SDK,一個是C++版本,一個是.net版本,.net版本是對C++版本的二次封裝,其他語言開發(fā)亦是調(diào)用C++版本。同時(shí)也提供了Go、Python、C++的調(diào)用示例代碼

 

 

支持的模型

 

OCR識別模型庫支持官方所有的模型,也支持自己訓(xùn)練的模型。完全按照飛槳OCR接口搭橋。本項(xiàng)目部署自帶的一種輕量版8.6M模型庫、服務(wù)器版模型庫(更準(zhǔn)確,需要自行下載),可以自行更改模型庫適用實(shí)際需求。

模型名稱

模型大小

下載地址

備注

ch_PP-OCRv2

10M

中英文輕量v2


en_PP-OCRv2

4M

英文數(shù)字v2


ch_PP-OCRv3

12M

中英文輕量v3


en_PP-OCRv3

10M

英文數(shù)字v3


ch_PP-OCRv4

14M

中英文輕量v4


en_PP-OCRv4

12M

英文數(shù)字v4



代碼預(yù)覽

 


 

效果預(yù)覽

 


PaddleOCRSharp的github:

raoyutian/PaddleOCRSharp: This project is modified and encapsulated by C++ code based on Baidu PaddlePaddle OCR. Net class library. It includes the table recognition function of text recognition, text detection and statistical analysis based on text detection results. At the same time, it is optimized to improve the recognition accuracy in the case of inaccurate small image recognition. The project encapsulation is extremely simplified, and the actual call is only one line of code, which greatly facilitates the use of middle and downstream developers and reduces the entry level of paddleocr. At the same time, different functions are provided Net framework to facilitate application development and deployment in various industries. (github.com)https://github.com/raoyutian/PaddleOCRSharp/tree/main


該文章在 2023/9/4 12:27:21 編輯過

全部評論2

admin
2023年9月4日 12:28

該項(xiàng)目只支持x64cpu編譯

一、準(zhǔn)備環(huán)境

1、先創(chuàng)建一個窗體項(xiàng)目,添加一個按鈕(我的是VS2017)

2、項(xiàng)目-屬性-生成。配置和圖中一樣即可

        

二、nuget包安裝:

 三、代碼如下

  1. using PaddleOCRSharp;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. namespace PaddleOCRSharp1._0
  13. {
  14. public partial class Form1 : Form
  15. {
  16. //程序全局初始化一次即可,不必每次識別都初始化,容易報(bào)錯。
  17. // 初始化OCR模型配置,默認(rèn)中英文V3模型
  18. OCRModelConfig config = null;
  19. // 初始化OCR參數(shù)
  20. OCRParameter oCRParameter = new OCRParameter();
  21. // 創(chuàng)建一個OCR識別結(jié)果對象
  22. OCRResult ocrResult = new OCRResult();
  23. public Form1()
  24. {
  25. InitializeComponent();
  26. }
  27. private void button1_Click(object sender, EventArgs e)
  28. {
  29. // 創(chuàng)建對象,設(shè)置文件過濾器
  30. OpenFileDialog ofd = new OpenFileDialog();
  31. ofd.Filter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
  32. // 顯示文件選擇對話框,選擇要識別文字的圖像文件
  33. if (ofd.ShowDialog() != DialogResult.OK)
  34. {
  35. return;
  36. }
  37. // 讀取選擇的圖像文件的所有字節(jié)數(shù)據(jù)
  38. var imagebyte = File.ReadAllBytes(ofd.FileName);
  39. // 將字節(jié)數(shù)據(jù)轉(zhuǎn)換成Bitmap圖像對象
  40. Bitmap bitmap = new Bitmap(new MemoryStream(imagebyte));
  41. // 創(chuàng)建PaddleOCR引擎,使用之前初始化的配置和參數(shù)
  42. PaddleOCREngine engine = new PaddleOCREngine(config, oCRParameter);
  43. // 使用PaddleOCR引擎對圖像進(jìn)行文字識別
  44. // OCR識別結(jié)果會保存在ocrResult對象中
  45. ocrResult = engine.DetectText(bitmap);
  46. // 如果識別結(jié)果不為空,顯示識別出的文字內(nèi)容
  47. if (ocrResult != null)
  48. {
  49. // 彈出一個消息框,顯示識別出的文字內(nèi)容
  50. MessageBox.Show(ocrResult.Text, "識別結(jié)果");
  51. }
  52. }
  53. }
  54. }

該評論在 2023/9/4 12:28:03 編輯過
admin
2023年9月4日 12:29

.NET示例代碼

OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
            if (ofd.ShowDialog() != DialogResult.OK) return;
            var imagebyte = File.ReadAllBytes(ofd.FileName);
            Bitmap bitmap = new Bitmap(new MemoryStream(imagebyte));

            OCRModelConfig config = null;
            OCRParameter oCRParameter = null;
            OCRResult ocrResult = new OCRResult();
            using (PaddleOCREngine engine = new PaddleOCREngine(config, oCRParameter))
            {
                ocrResult = engine.DetectText(bmp);
            }
            if (ocrResult != null)
            {
                MessageBox.Show(ocrResult.Text,"識別結(jié)果");
            }

關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
尤物92午夜福利视频 | 在线观看精品综合一区 | 亚洲成a人片在线观看网 | 亚洲国产91在线 | 亚洲无中文字幕 | 欧美精品中文字幕第九在线 |