成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給skura
    發送

    0

    如何用YOLO+Tesseract實現定制OCR系統?

    本文作者: skura 2019-12-25 14:20
    導語:通過本文全面了解光學字符識別中涉及的各個步驟,并實現自己的 OCR 程序

    在本文中,你將學習如何在深度學習的幫助下制作自己自定義的 OCR 來讀取圖像中的文字內容。我將通過 PAN-Card 圖像的示例,帶你學習如何進行文本檢測和文本識別。但首先,讓我們熟悉一下光學字符識別的過程。

    如何用YOLO+Tesseract實現定制OCR系統?

    什么是 OCR?

    OCR 指的是光學字符識別。它用于從掃描的文檔或圖片中讀取文本。這項技術被用來將幾乎任何一種包含書面文本(手寫或者機器寫的字)的圖像轉換成機器可讀的文本數據。

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

    OCR 有兩個主要模塊:

    • 文本檢測

    • 文本識別

    文本檢測

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

    文本檢測或一般的目標檢測是隨著深度學習而加速的一個密集研究領域。今天,文本檢測可以通過兩種方法來實現。

    • 基于區域的檢測器

    • 單點檢測器

    在基于區域的方法中,第一個目標是找到所有有對象的區域,然后將這些區域傳遞給分類器,分類器為我們提供所需對象的位置。所以,這是個過程分為 2 步。

    首先,它找到邊界框,然后找到它的類。這種方法更準確,但與單點檢測方法相比速度相對較慢。Faster R-CNN 和 R-FCN 等算法采用這種方法。

    然而,單點檢測器同時預測邊界盒和類。作為一個單步過程,它要快得多。然而,必須注意的是,單點檢測器在檢測較小物體時表現不佳。SSD 和 YOLO 就是單點檢測器。

    在選擇目標檢測器時,通常會在速度和精度之間進行權衡。例如,速度更快的 R-CNN 具有最高的準確性,而 YOLO 則是最快的。這是一篇很好的文章,它比較了不同的檢測器,并對它們的工作原理提供了全面的見解。

    決定使用哪一個,完全取決于你的訴求。在這里,我們使用 YOLOv3 主要是因為:

    • 在速度方面誰也比不上它

    • 對我們的應用來說有足夠的準確性

    • YOLOv3 具有特征金字塔網絡(FPN)以更好地檢測小目標

    說得夠多了,讓我們深入了解 YOLO。

    使用 YOLO 進行文本檢測

    如何用YOLO+Tesseract實現定制OCR系統?

    YOLO 是一個最先進的實時目標檢測網絡,有很多版本,YOLOv3 是最新、最快的版本。

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

    為了分類,獨立的邏輯分類器與二元交叉熵損失函數一起使用。

    使用 Darknet 框架訓練 YOLO

    我們將使用 Darknet 神經網絡框架進行訓練和測試。該框架采用多尺度訓練、大量數據擴充和批量規范化。它是一個用 C 和 CUDA 編寫的開源神經網絡框架。它速度快,易于安裝,支持 CPU 和 GPU 計算。

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

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

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

    我們開始吧~

    首先獲取數據

    在任何基于機器學習的項目中,數據都是第一步也是最重要的。所以,無論你的應用程序是什么,確保你有大約 100 個圖像。如果你的圖像數量較少,則使用圖像增強來增加數據的大小。在圖像增強中,我們主要通過改變圖像的大小、方向、光線、顏色等來改變圖像。

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

    我收集了 50 互聯網上的 PAN 卡圖像,利用圖像增強技術,創建了一個包含 100 張 PAN 卡圖像的數據集。

    數據標注

    一旦我們收集了數據,我們就進入下一步,即標記它。有許多可用的免費數據注釋工具。我使用 VoTT v1 ,因為它是一個簡單的工具,工作起來很方便。按照此鏈接,了解數據標注的過程。

    請注意,標記要從圖像數據中讀取的所有文本字段非常重要。它還生成訓練期間所需的數據文件夾。

    標記后,請確保將導出格式設置為 YOLO。標注后,將所有生成的文件復制到存儲庫的數據文件夾中。

    訓練

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

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

    我們將開始訓練,預先訓練 darknet-53,這將有助于我們的模型早日收斂。

    用這個命令開始訓練:

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

    最好的是它有多個 GPU 支持。當你看到平均損失'0.xxxxxx avg'在一定次數的迭代后不再減少時,你應該停止訓練。正如你在下面的圖表中看到的,當損失變為常數時,我停止了 14200 次迭代。

    如何用YOLO+Tesseract實現定制OCR系統?

    損失曲線

    從上一個權重文件中獲得最佳結果并不總是這樣。我在第 8000 次迭代中得到了最好的結果。你需要根據 mAP(平均精度)得分對它們進行評估。選擇具有最高分數的權重文件。所以現在,當你在一個樣本圖像上運行這個檢測器時,你將得到檢測到的文本字段的邊界框,從中你可以很容易地裁剪該區域。

    如何用YOLO+Tesseract實現定制OCR系統?

    虛擬 PAN 卡上的文本檢測

    文本識別

    現在我們已經實現了用于文本檢測的自定義文本檢測器,接下來我們將繼續進行文本識別。你可以構建自己的文本識別器,也可以使用開源的文本識別器。

    雖然,實現自己的文本識別器是一個很好的實踐,但是獲取標簽數據是一個挑戰。但是,如果你已經有很多標簽數據來創建自定義文本識別器,那么它的準確性可能會提高。

    然而,在本文中,我們將使用 Tesseract OCR 引擎進行文本識別。只要稍加調整,Tesseract OCR 引擎就可以為我們的應用程序創造奇跡。我們將使用 Tesseract 4,這是最新版本。謝天謝地,它還支持多種語言。

    安裝 Tesseract OCR 引擎

    他支持 Ubuntu 14.04、16.04、17.04、17.10 版本,對于 Ubuntu 18.04 版本,跳過前兩個命令。

    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

    組合在一起

    一旦我們實現了文本檢測和文本識別的過程,就應該將它們結合起來,以實現以下流程:

    • 從圖像中檢測請求的區域

    • 把檢測到的區域傳給 Tesseract

    • 將 Tesseract 的結果存儲為所需的格式

    如何用YOLO+Tesseract實現定制OCR系統?

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

    現在,你可以選擇任何形式的來表示結果。在這里,我使用 excel 表格來顯示結果。

    我已經開放了整個管道。復制存儲庫并將數據文件夾和訓練后生成的權重文件移動到此存儲庫目錄。你需要通過以下命令在此處安裝 darknet。

    bash ./darknet.sh

    現在用這個命令運行你的 OCR:

    pan.py -d -t

    祝賀你!現在你可以在輸出文件夾中以 CSV 文件的形式看到 OCR 結果。檢測自定義 OCR 時,可能需要更改圖像的大小。為此,請調整 locate_asset.py 文件中的 basewidth 參數。

    資源

    通過本文,我希望你能夠全面了解光學字符識別中涉及的各個步驟,并在閱讀本文的同時實現自己的 OCR 程序。我鼓勵你在不同的圖像集上嘗試這種方法,并為你的應用程序使用不同的檢測器,看看什么樣的方法最有效。

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

    雷鋒網雷鋒網雷鋒網

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。

    如何用YOLO+Tesseract實現定制OCR系統?

    分享:
    相關文章
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說