日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

我做的百度飞桨PaddleOCR .NET调用库

發(fā)布時(shí)間:2023/12/4 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我做的百度飞桨PaddleOCR .NET调用库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? .NET Conf 2021中國我做了一次《.NET玩轉(zhuǎn)計(jì)算機(jī)視覺OpenCV》的分享,其中提到了一個(gè)效果特別好的OCR識別引擎——百度飛槳PaddleOCR,后來我逐步把它封裝了一下,代碼全部開源(可點(diǎn)擊查看原文跳轉(zhuǎn)到Github):https://github.com/sdcb/paddlesharp,可以直接安裝NuGet包使用,支持.NET Framework/.NET Core、支持Linux、支持GPU調(diào)用,支持14種語言模型的自動下載:

這里有使用方法和示例代碼:

運(yùn)行效果:

促使我給PaddleOCR做.NET封裝的原因,是PaddleOCR令人驚訝的識別精度。我之前用過TesseractOCR,看到有人說是“世界上唯一”免費(fèi)且好用的OCR引擎,但我發(fā)現(xiàn)它不好用,它的精度一直介于“可用”與“不可用”之間,處于勉強(qiáng)可用的狀態(tài)——即使是我使用了Best的TesseractOCR模型也是如此(而且性能也不快)。

比如你看這個(gè)例子,用TesseractOCR跑的,耗時(shí)48秒,英語和數(shù)字識別還是可圈可點(diǎn)的,但中文……里面有空格不說,而且大量識別錯誤,非常不通順,詮釋了什么叫“介于可用與不可用之間”。

但PaddleOCR不同,去看看官網(wǎng)示例,全部都是效果爆炸的感覺,最令人我驚訝的是它的精度,尤其是文字在旋轉(zhuǎn)的狀態(tài)下的精度:

上文中同樣的例子,在PaddleOCR中的執(zhí)行結(jié)果:

可見精度好得多,耗時(shí)也只要9秒。

我是怎么封裝的?

我發(fā)現(xiàn)市場上有人封裝過,但他們都是基于C++ API,然后自己寫了一層C++,然后包裝成C API進(jìn)行封裝。這樣的好處是暴露出來的C API比較簡單,調(diào)用起來很方便,但缺點(diǎn)是不方便擴(kuò)展,使用起來笨重得多,跨平臺也很難。

基于C API使用起來不方便,但上層不是有咱們.NET/C#嘛,我相信再不方便的API,只要用上了C#/.NET去封裝它,都能做得很方便地去調(diào)用,于是我做出了這樣的一個(gè)架構(gòu)(這個(gè)架構(gòu)本質(zhì)是模仿了OpenCvSharp4)

  • 最低層是C API的NuGet封裝包,這個(gè)用PInvoke來封裝C API,它的NuGet包名字是:Sdcb.PaddleInference

  • 與低層配套的包叫native binding包,我提供了兩個(gè),一個(gè)是基于CPU的Sdcb.PaddleInference.runtime.win64.mkl,一個(gè)是基于GPU的Sdcb.PaddleInference.runtime.win64.cuda11_cudnn8_tr7。

    值得注意的是,native binding包與低層包沒有任何依賴關(guān)系。

  • 再往上層是應(yīng)用包,應(yīng)用包依賴于低層的推理庫包Sdcb.PaddleInference,文字識別OCR就是Paddle推理庫Inference的一個(gè)應(yīng)用,因此提供了一個(gè)Sdcb.PaddleOCR,封裝了PaddleDetector、PaddleClassificator、PaddleRecognizor以及PaddleOcrAll用來做串聯(lián)

  • 最往上層走就是擴(kuò)展包,我提供了一個(gè)用于幫助用戶自動下載OCR模型的Sdcb.PaddleOCR.KnownModels,注意這個(gè)擴(kuò)展包與上述包沒有任何引用關(guān)系。

  • 有了這些包,我做出來的這個(gè)封裝就比其它封裝更有競爭力,比如能支持GPU或者不支持GPU,比如支持Linux平臺,比如更換不同的模型,比如支持設(shè)置不同的參數(shù)——用戶甚至可以不基于我提供的應(yīng)用包,自己去使用自己的邏輯封裝PaddleOCR或者其它應(yīng)用。

    這幾天我參與了百度飛槳的一個(gè)車牌號識別的3天訓(xùn)練營,我發(fā)現(xiàn)可以從百度的BML平臺下載模型之后,只需簡短的改動就能將我的PaddleSharp改成支持車牌號識別:

    我發(fā)現(xiàn)通過這些綿薄之力,能為.NET社區(qū)帶來一些方便。比如有客戶已經(jīng)用上我的包,做了一個(gè)Word插件,是付費(fèi)產(chǎn)品,效果很不錯:

    這些內(nèi)容都是開源的:https://github.com/sdcb/paddlesharp,各位可以點(diǎn)擊閱讀原文跳轉(zhuǎn)到Github,喜歡的朋友請給我一個(gè)star哦。

    另外我還創(chuàng)建了一個(gè)QQ群,C#/.NET計(jì)算機(jī)視覺技術(shù)交流,里面也包括有關(guān)這個(gè)PaddleSharp的使用、部署答疑和技術(shù)討論,歡迎有興趣的同行一起參與!

    總結(jié)

    以上是生活随笔為你收集整理的我做的百度飞桨PaddleOCR .NET调用库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 98超碰在线 | 一区二区三区四区久久 | 好色先生tv官网 | 亚洲一区二区视频 | 激情婷婷六月 | 黄色福利网 | 在线观看的黄色网址 | 国产女教师bbwbbwbbw | 自拍偷拍在线视频 | 在线免费黄网 | 天天舔天天射天天干 | 美女100%视频免费观看 | 91黄色小网站 | 亚洲永久av| 欧美区在线观看 | 欧美一性一乱一交一视频 | 人妻少妇被猛烈进入中文字幕 | 韩国特级毛片 | 色婷婷综合久久久久中文字幕 | 日少妇视频| 91在线综合 | 日韩一级视频 | 亚洲三区在线播放 | 精品无码久久久久久久久成人 | 丝袜人妻一区二区三区 | 自拍偷拍免费 | 天天综合中文字幕 | 亚洲最色网站 | 青青视频免费在线观看 | 日本激情一区二区 | a级网站在线观看 | 亚洲国产精品成人综合 | 蜜桃臀av一区二区三区 | 日韩乱论 | 韩国伦理片观看 | 五月天激情国产综合婷婷婷 | 日韩免费看 | av男人的天堂在线 | 又污又黄又爽的网站 | 网址av | 欧美色视频在线 | 欧美一级录像 | fc2ppv在线观看 | 成人一级大片 | 久久这里只有 | av女优一区| www.激情| 一区二区三区在线免费观看 | 精品国产乱码久久久久久蜜臀 | 中文字幕一区二区精品 | 强制憋尿play黄文尿奴 | 亚洲成人中文字幕 | 中文日韩 | 麻豆精品在线看 | 免费一区二区视频 | 日韩免费视频一区二区 | 超碰资源在线 | av中文资源 | www网站在线观看 | 蜜臀av免费一区二区三区水牛 | 一区小视频 | melody在线高清免费观看 | 无码人妻精品一区二区三 | 国产精品国产三级国产专播精品人 | 黑人性视频 | 探花精品 | 色网导航站 | 亚洲视频国产 | 日本一区二区三区在线视频 | 国产aaa视频 | 好吊视频在线观看 | 成人污在线观看 | 俺也去婷婷 | 激情久久五月天 | youjizz.com在线观看 | 日韩一级视频 | 日韩精品一二区 | 老司机久久精品视频 | 99久久精品免费看国产四区 | 毛片大全免费 | www..com黄色| 日本免费一区视频 | 荔枝视频污| 欧美性日韩 | 亚洲四虎av | 交做爰xxxⅹ性爽 | 精品一区二区三区免费看 | 痴汉电车在线播放 | 色翁荡息又大又硬又粗又爽 | 日本黄网在线观看 | 国产亚洲精品精品精品 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 亚洲精品av中文字幕在线在线 | 毛片日韩 | 亚洲免费国产 | 抱着老师的嫩臀猛然挺进视频 | 这里精品 | 亚洲图片偷拍区 | 中国免费黄色 |