.NET版OCR緊隨PP-OCRv3重磅發布

.net版OCR地址PaddleOCRSharp:

?https://gitee.com/raoyutian/paddle-ocrsharp

PaddleOCRSharp是一個基于PaddleOCR的C++代碼修改并封裝的.NET的工具類庫。包含文本識別、文本檢測、基于文本檢測結果的統計分析的表格識別功能,同時針對小圖識別不準的情況下,做了優化,提高識別準確率。包含總模型僅8.6M的超輕量級中文OCR,單模型支持中英文數字組合識別、豎排文本識別、長文本識別。同時支持多種文本檢測。項目封裝極其簡化,實際調用僅幾行代碼,極大的方便了中下游開發者的使用和降低了PaddleOCR的使用入門級別,同時提供不同的.NET框架使用,方便各個行業應用開發與部署。Nuget包即裝即用,可以離線部署,不需要網絡就可以識別的高精度中英文OCR。

20000+Star超輕量OCR系統PP-OCRv3效果再提升5% - 11%

OCR方向的工程師,之前一定聽說過PaddleOCR這個項目。

  • 項目累計Star數量已超過20000+;

  • 頻頻登上GitHub Trending和Paperswithcode?日榜月榜第一;

  • 在Medium與Papers withCode 聯合評選的《Top Trending Libraries of 2021》,從百萬量級項目中脫穎而出,榮登Top10!

  • 在《2021中國開源年度報告》中被評為活躍度Top5!

本次PaddleOCR最新發版,帶來四大重磅升級,包括:

  • 發布超輕量OCR系統PP-OCRv3:中英文、純英文以及多語言場景精度再提升5% - 11%!

  • 發布半自動標注工具PPOCRLabelv2:新增表格文字圖像、圖像關鍵信息抽取任務和不規則文字圖像的標注功能。

  • 發布OCR產業落地工具集:打通22種訓練部署軟硬件環境與方式,覆蓋企業90%的訓練部署環境需求。

.NET使用示例

安裝:

PM> Install-Package?PaddleOCRSharp?-Version?2.0.0
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 = new  OCRParameter ();OCRResult ocrResult = new OCRResult();//建議程序全局初始化一次即可,不必每次識別都初始化,容易報錯。PaddleOCREngine engine = new PaddleOCREngine(config, oCRParameter);{ocrResult = engine.DetectText(bitmap );}if (ocrResult != null){MessageBox.Show(ocrResult.Text,"識別結果");}//不再用OCR時,請把PaddleOCREngine釋放

本項目目前支持以下NET框架:

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

PP-OCRv3優化策略解讀

PP-OCR是PaddleOCR團隊自研的超輕量OCR系統,面向OCR產業應用,權衡精度與速度。近期,PaddleOCR團隊針對PP-OCRv2的檢測模塊和識別模塊,進行共計9個方面的升級,打造出一款全新的、效果更優的超輕量OCR系統:PP-OCRv3。

從效果上看,速度可比情況下,多種場景精度均有大幅提升

  • 中文場景,相比PP-OCRv2,中文模型提升超5%;

  • 英文數字場景,相比PP-OCRv2,英文數字模型提升11%;

  • 多語言場景,優化80+語種識別效果,平均準確率提升超5%。

383bd660e088f3dba3eac3df909a6e43.png

全新升級的PP-OCRv3的整體框架圖(粉色框中為PP-OCRv3新增策略)如下圖。檢測模塊仍基于DB算法優化;而識別模塊不再采用CRNN,更新為IJCAI 2022最新收錄的文本識別算法SVTR (論文名稱:SVTR: Scene Text Recognition with a SingleVisual Model),并對其進行產業適配。

d18f271f9838faa23b592ef199407b57.png

具體的優化策略包括以下幾點:

1.檢測模塊

  • LK-PAN:大感受野的PAN結構

  • DML:教師模型互學習策略

  • RSE-FPN:殘差注意力機制的FPN結構

2.識別模塊

  • SVTR_LCNet:輕量級文本識別網絡

  • GTC:Attention指導CTC訓練策略

  • TextConAug:挖掘文字上下文信息的數據增廣策略

  • TextRotNet:自監督的預訓練模型

  • UDML:聯合互學習策略

  • UIM:無標注數據挖掘方案

PaddleOCRSharp項目地址:

GitHub:https://github.com/raoyutian/PaddleOCRSharp

Gitee:https://gitee.com/raoyutian/paddle-ocrsharp

PaddleOCRSharp最新版本v2.0.0是基于PaddleOCR的最新版V2.5的C++代碼修改而成,并適配PP-OCRv3。

關注【明月心技術學堂】公眾號

獲取更多技術內容~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287642.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287642.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287642.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql導出二進制日志_使用mysqlbinlog提取二進制日志

MySQL binlog日志記錄了MySQL數據庫從啟用日志以來所有對當前數據庫的變更。binlog日志屬于二進制文件,我們可以從binlog提取出來生成可閱讀的SQL語句來重建當前數據庫以及根據需要實現時點恢復或不完全恢復。本文主要描述了如果提取binlog日志,并給出相…

《零基礎看得懂的C++入門教程 》——(5) 容我套個娃 循環

一、學習目標 了解循環的使用方法 目錄 預備第一篇,使用軟件介紹在這一篇,C與C使用的軟件是一樣的,查看這篇即可:《軟件介紹》 想了解編譯原理和學習方法點這篇,學習方法和一些原理C與C都是相同的《脫離學習誤區》 …

Android之把app作為獨立的module導入其他項目遇到的坑

1 問題 把app作為獨立的module導入其他項目 2 步驟 1)在app的里面的build.gradle里面把 apply plugin: com.android.application 替換成如下 apply plugin: com.android.library 2)注視掉build.gradle文件里面的applicationId 3)app的AndroidManifest文件中MainActiv…

【ArcGIS風暴】ArcGIS解決數字化之前創建圖層時未定義坐標系而導致數據跑偏的問題

數字化時,第一步需要創建點線面圖層,創建圖層需要指定一個地理坐標系,但如果忽略了這一步,我們數字化的適量數據時沒有坐標系的,后果很嚴重,如果數字化工作只做了一點點,可以卷土重來;如果是大量工作的話,可以采取以下補救措施,建議收藏。 注: (1)如果底圖為無任…

Android兩個注意事項.深入了解Intent和IntentFilter(兩)

深入理解Intent和IntentFiler(二)轉載請表明出處:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 在上一篇文章中,我們比較具體學習了"Intent"的相關知識,如今將學習怎樣設置Intent對象的這些屬性以及怎樣使用他們來啟動組件。…

Oracle常用sql語句(一)

Sql的分類DDL操作數據庫表列等表基本的操作主鍵索引視圖 常用數據類型字符串類型數字類型日期類型LOB類型LONG類型 數據轉換character datenumbercharacter通用函數條件表達式Sql的分類 DDL (Data Definition Language):數據定義語言&#xf…

ASP.NET Web API 實現客戶端Basic(基本)認證 之簡單實現

優點是邏輯簡單明了、設置簡單。 缺點顯而易見,即使是BASE64后也是可見的明文,很容易被破解、非法利用,使用HTTPS是一個解決方案。 還有就是HTTP是無狀態的,同一客戶端每次都需要驗證。 實現: 客戶端在用戶輸入用戶名及…

WPF|分享一個登錄界面設計

分享一個登錄界面,先看效果圖:準備文中使用到了一些圖標:我們可以從 iconfont[1]免費下載:代碼簡單說明請隨手創建一個WPF項目(.NET Framework、.NET 5\6\7皆可),使用tree /f命令看看最終的文件…

《零基礎看得懂的C++入門教程 》——(6)自己動手寫個函數

一、學習目標 了解C語言的自定義函數的使用方法了解C語言自定義函數的傳參了解C語言自定義函數的返回值 目錄 預備第一篇,使用軟件介紹在這一篇,C與C使用的軟件是一樣的,查看這篇即可:《軟件介紹》 想了解編譯原理和學習方法點…

k8s mysql數據同步_K8s——MySQL實現數據持久化

1、搭建nfs存儲[rootdocker-k8s01 ~]# yum -y install nfs-utils[rootdocker-k8s01 ~]# mkdir /nfsdata/mysql -p[rootdocker-k8s01 ~]# cat /etc/exports/nfsdata *(rw,sync,no_root_squash)[rootdocker-k8s01 ~]# systemctl restart nfs-server[rootdocker-k8s01 ~]# systemc…

【計算機圖形學】實驗:C#語言采用GDI+定義筆刷并填充圖形完整實驗操作流程

一、實驗目的: 熟練掌握在.net環境下對筆刷的定義,并可用定義好的筆刷填充多邊形。 二、實驗準備: 學習在.net環境下GDI+所提供的5種筆刷類型,掌握定義筆刷的方法和填充圖形的函數,如FillRectange ( )、FillEllipse ( )等。 三、實驗內容: 在.net環境中設計一個窗體…

Android之提示Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed

1 問題 02-28 22:44:33.031 7379 7379 E AndroidRuntime: java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed 02-28 22:44:33.031 7379 7379 E AndroidRuntime: at android.graphics.Canvas.checkValidClipOp(C…

使用Java API的5個技巧

本文介紹了一些關于Java API安全和性能方面的簡單易用的技巧,其中包括保證API Key安全和開發Web Service方面中在框架方面選擇的一些建議。 程序員都喜歡使用API!例如為app應用構建API或作為微服務架構體系的一部分。當然,使用API的前提是能讓…

管道模式 pipe

先放一個圖,預則立嘛 PipelinePattern.rar 這里是 不完整的碼轉載于:https://www.cnblogs.com/ganmk--jy/p/5525897.html

《零基礎看得懂的C++入門教程 》——(7)小數組玩起來

一、學習目標 了解數組的使用方法了解一維數組的使用方法了解一維數組與循環的使用方法 目錄 預備第一篇,使用軟件介紹在這一篇,C與C使用的軟件是一樣的,查看這篇即可:《軟件介紹》 想了解編譯原理和學習方法點這篇&#xff0c…

SSO 方案演進

1背景介紹 隨著業務與技術的發展,現今比以往任何時候都更需要單點登錄 SSO 身份驗證。現在幾乎每個網站都需要某種形式的身份驗證才能訪問其功能和內容。隨著網站和服務數量的增加,集中登錄系統已成為一種必要。在本文中,我們將討論下 …

【計算機圖形學】實驗:VB.net環境下的圖形裁剪完整實驗操作流程

一、實驗目的: 熟練掌握在.net環境下對圖形的裁剪。 二、實驗準備: 學習圖形裁剪的基本算法,以及在.net環境下裁剪圖形的基本方法。 三、實驗內容: 在.net環境中利用裁剪圖形的基本方法對任意圖形進行裁剪。

UI之常用通過顏色值和透明度怎么得到最后的顏色值

1 、問題 UI給了顏色#000000,透明度是75%,我需要最終的顏色值。 2 、透明度色值表 00%FF(不透明) 5%F2 10%E5 15%D8 20%CC 25%BF 30%B2 35%A5 40%99 45%8c 50%7F 55%72 60%66 65%59 70%4c 75%3F 80%33 85%21 90%19 95%0c 100%00…

《零基礎看得懂的C++入門教程 》——(8)搞定二維數組與循環嵌套

一、學習目標 了解二維數組的使用方法了解循環嵌套的使用方法 目錄 預備第一篇,使用軟件介紹在這一篇,C與C使用的軟件是一樣的,查看這篇即可:《軟件介紹》 想了解編譯原理和學習方法點這篇,學習方法和一些原理C與C都…

mybatis模糊查詢不同寫法

工作中用到,寫三種用法吧,第四種為大小寫匹配查詢 1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT(%, #{text}), %); 2. 使用 ${...} 代替 #{...} SELECT * FROM tableName WHERE name LIKE %${text}%; 3. 程序中拼接 Java …