這幾年的AI的發展,使得文字識別難度大大降低、精度大大的提高。百度飛漿就是一個非常好的AI框架,而且是開源的。
我們利用百度飛漿就能快速簡單的實現文字識別功能,幾行代碼就可以集成。
其中百度飛漿的PaddleOCR,就是專門針對文本識別的開發套件,包含的功能有:文本失敗、文本檢測、表格識別,支持中英文數字組合的識別、豎排、長文本識別,而且還針對小圖做了優化,大大提升準確率。
下面我們一起來看看,如何使用百度飛漿實現文字識別:
一、新建項目
新建一個控制臺項目。
二、安裝依賴包
通過NuGet,安裝依賴包:PaddleOCRSharp。
PaddleOCRSharp是Github的開源項目,是基于百度飛漿C++代碼封裝的.Net類庫,其中支持PaddleOCR版本是**release2.5。**如果大家需要最新版本,或者其他模型,也可以自行封裝。
項目地址:https://github.com/raoyutian/PaddleOCRSharp
安裝依賴后,我們就可以看到很多dll庫。
三、編寫識別代碼
識別圖片的文字,并打印,代碼如下:
using PaddleOCRSharp;PaddleOCREngine engine;//中英文模型V3模型
OCRModelConfig config = null;//OCR參數
OCRParameter oCRParameter = new OCRParameter();
oCRParameter.cpu_math_library_num_threads = 6;//預測并發線程數
oCRParameter.enable_mkldnn = true;//是否使用mkldnn模型
oCRParameter.cls = false; //是否執行文字方向分類
oCRParameter.use_angle_cls = false;//是否開啟方向檢測
oCRParameter.det_db_score_mode = true;//是否使用多段線,即文字區域是用多段線還是用矩形,
oCRParameter.det_db_unclip_ratio = 1.6f;
oCRParameter.max_side_len = 2000;//初始化OCR引擎
engine = new PaddleOCREngine(config, oCRParameter);var imagebyte = File.ReadAllBytes("1.png");
OCRResult ocrResult = engine.DetectText(imagebyte);
Console.WriteLine(ocrResult.Text);
四、執行效果如下
識別速度、效果還是非常好的。
- End -
推薦閱讀
推薦一個支持低代碼開發的OA開源系統
一個基于.Net Core+Vue+Element Ui開發的OA系統
一個基于NetCore模塊化、多租戶CMS系統
一個基于EntityFrameworkCore+Lucene實現的全文搜索引擎庫
盤點6個.NetCore+Vue前后端分離的開源項目