丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給skura
發(fā)送

0

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

本文作者: skura 2019-12-25 14:20
導(dǎo)語(yǔ):通過(guò)本文全面了解光學(xué)字符識(shí)別中涉及的各個(gè)步驟,并實(shí)現(xiàn)自己的 OCR 程序

在本文中,你將學(xué)習(xí)如何在深度學(xué)習(xí)的幫助下制作自己自定義的 OCR 來(lái)讀取圖像中的文字內(nèi)容。我將通過(guò) PAN-Card 圖像的示例,帶你學(xué)習(xí)如何進(jìn)行文本檢測(cè)和文本識(shí)別。但首先,讓我們熟悉一下光學(xué)字符識(shí)別的過(guò)程。

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

什么是 OCR?

OCR 指的是光學(xué)字符識(shí)別。它用于從掃描的文檔或圖片中讀取文本。這項(xiàng)技術(shù)被用來(lái)將幾乎任何一種包含書(shū)面文本(手寫(xiě)或者機(jī)器寫(xiě)的字)的圖像轉(zhuǎn)換成機(jī)器可讀的文本數(shù)據(jù)。

在這里,我們將構(gòu)建一個(gè) OCR,它只讀取您你望它從給定文檔中讀取的信息。

OCR 有兩個(gè)主要模塊:

  • 文本檢測(cè)

  • 文本識(shí)別

文本檢測(cè)

我們的第一個(gè)任務(wù)是從圖像/文檔中檢測(cè)所需的文本。通常,根據(jù)需要,你不想閱讀整個(gè)文檔,而只想閱讀一條信息,如信用卡號(hào)、Aadhaar/PAN 卡號(hào)、姓名、賬單金額和日期等。檢測(cè)所需文本是一項(xiàng)艱巨的任務(wù),但由于深度學(xué)習(xí),我們將能夠有選擇地從圖像中讀取文本。

文本檢測(cè)或一般的目標(biāo)檢測(cè)是隨著深度學(xué)習(xí)而加速的一個(gè)密集研究領(lǐng)域。今天,文本檢測(cè)可以通過(guò)兩種方法來(lái)實(shí)現(xiàn)。

  • 基于區(qū)域的檢測(cè)器

  • 單點(diǎn)檢測(cè)器

在基于區(qū)域的方法中,第一個(gè)目標(biāo)是找到所有有對(duì)象的區(qū)域,然后將這些區(qū)域傳遞給分類(lèi)器,分類(lèi)器為我們提供所需對(duì)象的位置。所以,這是個(gè)過(guò)程分為 2 步。

首先,它找到邊界框,然后找到它的類(lèi)。這種方法更準(zhǔn)確,但與單點(diǎn)檢測(cè)方法相比速度相對(duì)較慢。Faster R-CNN 和 R-FCN 等算法采用這種方法。

然而,單點(diǎn)檢測(cè)器同時(shí)預(yù)測(cè)邊界盒和類(lèi)。作為一個(gè)單步過(guò)程,它要快得多。然而,必須注意的是,單點(diǎn)檢測(cè)器在檢測(cè)較小物體時(shí)表現(xiàn)不佳。SSD 和 YOLO 就是單點(diǎn)檢測(cè)器。

在選擇目標(biāo)檢測(cè)器時(shí),通常會(huì)在速度和精度之間進(jìn)行權(quán)衡。例如,速度更快的 R-CNN 具有最高的準(zhǔn)確性,而 YOLO 則是最快的。這是一篇很好的文章,它比較了不同的檢測(cè)器,并對(duì)它們的工作原理提供了全面的見(jiàn)解。

決定使用哪一個(gè),完全取決于你的訴求。在這里,我們使用 YOLOv3 主要是因?yàn)椋?br/>

  • 在速度方面誰(shuí)也比不上它

  • 對(duì)我們的應(yīng)用來(lái)說(shuō)有足夠的準(zhǔn)確性

  • YOLOv3 具有特征金字塔網(wǎng)絡(luò)(FPN)以更好地檢測(cè)小目標(biāo)

說(shuō)得夠多了,讓我們深入了解 YOLO。

使用 YOLO 進(jìn)行文本檢測(cè)

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

YOLO 是一個(gè)最先進(jìn)的實(shí)時(shí)目標(biāo)檢測(cè)網(wǎng)絡(luò),有很多版本,YOLOv3 是最新、最快的版本。

YOLOv3 使用 Darknet-53 作為特征提取程序。它總共有 53 個(gè)卷積層,因此被命名為「Darknet-53」。它有連續(xù)的 3×3 和 1×1 卷積層,并有一些短連接。

為了分類(lèi),獨(dú)立的邏輯分類(lèi)器與二元交叉熵?fù)p失函數(shù)一起使用。

使用 Darknet 框架訓(xùn)練 YOLO

我們將使用 Darknet 神經(jīng)網(wǎng)絡(luò)框架進(jìn)行訓(xùn)練和測(cè)試。該框架采用多尺度訓(xùn)練、大量數(shù)據(jù)擴(kuò)充和批量規(guī)范化。它是一個(gè)用 C 和 CUDA 編寫(xiě)的開(kāi)源神經(jīng)網(wǎng)絡(luò)框架。它速度快,易于安裝,支持 CPU 和 GPU 計(jì)算。

你可以在 GitHub 上找到源代碼:https://github.com/pjreddie/darknet 

下面是安裝 Darknet 框架的簡(jiǎn)單方法。只有 3 行?。ㄈ绻褂?GPU,請(qǐng)?jiān)?makefile 中更新 GPU=1 和 CUDNN=1。)

git clone https://github.com/pjreddie/darknet.git
cd darknet
make

我們開(kāi)始吧~

首先獲取數(shù)據(jù)

在任何基于機(jī)器學(xué)習(xí)的項(xiàng)目中,數(shù)據(jù)都是第一步也是最重要的。所以,無(wú)論你的應(yīng)用程序是什么,確保你有大約 100 個(gè)圖像。如果你的圖像數(shù)量較少,則使用圖像增強(qiáng)來(lái)增加數(shù)據(jù)的大小。在圖像增強(qiáng)中,我們主要通過(guò)改變圖像的大小、方向、光線(xiàn)、顏色等來(lái)改變圖像。

有許多方法可用于增強(qiáng),你可以很容易地選擇任何你喜歡的方法。我想提到一個(gè)名為 Albumentations 的圖像增強(qiáng)庫(kù),它是由 Kaggle Masters 和 Grandmaster 構(gòu)建的。

我收集了 50 互聯(lián)網(wǎng)上的 PAN 卡圖像,利用圖像增強(qiáng)技術(shù),創(chuàng)建了一個(gè)包含 100 張 PAN 卡圖像的數(shù)據(jù)集。

數(shù)據(jù)標(biāo)注

一旦我們收集了數(shù)據(jù),我們就進(jìn)入下一步,即標(biāo)記它。有許多可用的免費(fèi)數(shù)據(jù)注釋工具。我使用 VoTT v1 ,因?yàn)樗且粋€(gè)簡(jiǎn)單的工具,工作起來(lái)很方便。按照此鏈接,了解數(shù)據(jù)標(biāo)注的過(guò)程。

請(qǐng)注意,標(biāo)記要從圖像數(shù)據(jù)中讀取的所有文本字段非常重要。它還生成訓(xùn)練期間所需的數(shù)據(jù)文件夾。

標(biāo)記后,請(qǐng)確保將導(dǎo)出格式設(shè)置為 YOLO。標(biāo)注后,將所有生成的文件復(fù)制到存儲(chǔ)庫(kù)的數(shù)據(jù)文件夾中。

訓(xùn)練

為了消除所有的困惑,Darknet 有兩個(gè)存儲(chǔ)庫(kù),一個(gè)是原作者的,另一個(gè)是分支。我們使用分支存儲(chǔ)庫(kù),它的文檔很好。

要開(kāi)始訓(xùn)練 OCR,首先需要修改配置文件。你將在名為「yolov3.cfg」的「cfg」文件夾中獲得所需的配置文件。在這里,你需要更改批大小、細(xì)分、類(lèi)數(shù)和篩選器參數(shù)。按照文檔中給出的配置文件中所需的更改進(jìn)行操作。

我們將開(kāi)始訓(xùn)練,預(yù)先訓(xùn)練 darknet-53,這將有助于我們的模型早日收斂。

用這個(gè)命令開(kāi)始訓(xùn)練:

./darknet detector train data/obj.data yolo-obj.cfg darknet53.conv.74

最好的是它有多個(gè) GPU 支持。當(dāng)你看到平均損失'0.xxxxxx avg'在一定次數(shù)的迭代后不再減少時(shí),你應(yīng)該停止訓(xùn)練。正如你在下面的圖表中看到的,當(dāng)損失變?yōu)槌?shù)時(shí),我停止了 14200 次迭代。

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

損失曲線(xiàn)

從上一個(gè)權(quán)重文件中獲得最佳結(jié)果并不總是這樣。我在第 8000 次迭代中得到了最好的結(jié)果。你需要根據(jù) mAP(平均精度)得分對(duì)它們進(jìn)行評(píng)估。選擇具有最高分?jǐn)?shù)的權(quán)重文件。所以現(xiàn)在,當(dāng)你在一個(gè)樣本圖像上運(yùn)行這個(gè)檢測(cè)器時(shí),你將得到檢測(cè)到的文本字段的邊界框,從中你可以很容易地裁剪該區(qū)域。

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

虛擬 PAN 卡上的文本檢測(cè)

文本識(shí)別

現(xiàn)在我們已經(jīng)實(shí)現(xiàn)了用于文本檢測(cè)的自定義文本檢測(cè)器,接下來(lái)我們將繼續(xù)進(jìn)行文本識(shí)別。你可以構(gòu)建自己的文本識(shí)別器,也可以使用開(kāi)源的文本識(shí)別器。

雖然,實(shí)現(xiàn)自己的文本識(shí)別器是一個(gè)很好的實(shí)踐,但是獲取標(biāo)簽數(shù)據(jù)是一個(gè)挑戰(zhàn)。但是,如果你已經(jīng)有很多標(biāo)簽數(shù)據(jù)來(lái)創(chuàng)建自定義文本識(shí)別器,那么它的準(zhǔn)確性可能會(huì)提高。

然而,在本文中,我們將使用 Tesseract OCR 引擎進(jìn)行文本識(shí)別。只要稍加調(diào)整,Tesseract OCR 引擎就可以為我們的應(yīng)用程序創(chuàng)造奇跡。我們將使用 Tesseract 4,這是最新版本。謝天謝地,它還支持多種語(yǔ)言。

安裝 Tesseract OCR 引擎

他支持 Ubuntu 14.04、16.04、17.04、17.10 版本,對(duì)于 Ubuntu 18.04 版本,跳過(guò)前兩個(gè)命令。

sudo add-apt-repository ppa:alex-p/tesseract-ocr
sudo apt-get update
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo pip install pytesseract

組合在一起

一旦我們實(shí)現(xiàn)了文本檢測(cè)和文本識(shí)別的過(guò)程,就應(yīng)該將它們結(jié)合起來(lái),以實(shí)現(xiàn)以下流程:

  • 從圖像中檢測(cè)請(qǐng)求的區(qū)域

  • 把檢測(cè)到的區(qū)域傳給 Tesseract

  • 將 Tesseract 的結(jié)果存儲(chǔ)為所需的格式

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

從上面的圖中,你可以了解到,首先 PAN 卡的圖像被傳遞到 YOLO 中。然后,YOLO 檢測(cè)到所需的文本區(qū)域并從圖像中裁剪出來(lái)。稍后,我們將這些區(qū)域逐一傳遞給 Tesseract。Tesseract 讀取它們之后,我們存儲(chǔ)這些信息。

現(xiàn)在,你可以選擇任何形式的來(lái)表示結(jié)果。在這里,我使用 excel 表格來(lái)顯示結(jié)果。

我已經(jīng)開(kāi)放了整個(gè)管道。復(fù)制存儲(chǔ)庫(kù)并將數(shù)據(jù)文件夾和訓(xùn)練后生成的權(quán)重文件移動(dòng)到此存儲(chǔ)庫(kù)目錄。你需要通過(guò)以下命令在此處安裝 darknet。

bash ./darknet.sh

現(xiàn)在用這個(gè)命令運(yùn)行你的 OCR:

pan.py -d -t

祝賀你!現(xiàn)在你可以在輸出文件夾中以 CSV 文件的形式看到 OCR 結(jié)果。檢測(cè)自定義 OCR 時(shí),可能需要更改圖像的大小。為此,請(qǐng)調(diào)整 locate_asset.py 文件中的 basewidth 參數(shù)。

資源

通過(guò)本文,我希望你能夠全面了解光學(xué)字符識(shí)別中涉及的各個(gè)步驟,并在閱讀本文的同時(shí)實(shí)現(xiàn)自己的 OCR 程序。我鼓勵(lì)你在不同的圖像集上嘗試這種方法,并為你的應(yīng)用程序使用不同的檢測(cè)器,看看什么樣的方法最有效。

via:https://medium.com/saarthi-ai/how-to-build-your-own-ocr-a5bb91b622ba

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

如何用YOLO+Tesseract實(shí)現(xiàn)定制OCR系統(tǒng)?

分享:
相關(guān)文章
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)