ddddocr基本使用和介紹

还没想好叫什么發表於2024-04-19

ddddocr基本使用和介紹

在使用爬蟲登入網站的時候,經常輸入使用者名稱和密碼後會遇到驗證碼,這時候就需要用到今天給大家介紹的python第三方庫ddddocr,ddddocr是一款強大的通用開源ocr識別庫,具有高效、準確、易用的特點,廣泛應用於影像處理和文字識別任務。本文將為大家介紹ddddocr的基本使用方法,以及示例程式碼。

一、背景介紹

在計算機視覺和影像處理領域,數字識別是一個常見的任務,用於從影像中提取數字並進行識別。通常,傳統的數字識別演算法在單個數字或多位數字的識別上表現良好,但對於雙重數字(兩位數字)的準確識別卻面臨一些挑戰。這是因為雙位數字在視覺上具有相對較高的相似性和重疊特徵,使得傳統方法的準確率有所下降。

為了解決雙重數字識別的問題,ddddocr專案應運而生。該專案透過使用深度學習的方法,結合卷積神經網路(CNN)和迴圈神經網路(RNN),對雙重數字進行高效準確的識別。透過訓練模型並進行預測,ddddocr能夠識別影像中的雙位數字,並輸出其具體數值。

該專案具有以下特點和優勢:

深度學習:ddddocr利用深度學習技術,特別是卷積神經網路和迴圈神經網路,對雙重數字進行準確的識別。

開源專案:ddddocr是一個開源專案,允許使用者免費使用、修改和分發程式碼。這使得更多的開發者可以參與其中,貢獻自己的想法和改進。

高準確率:透過深度學習的方法,ddddocr在雙重數字識別任務上能夠取得較高的準確率,有效克服了傳統方法在此任務上的困難。

靈活性:ddddocr提供了訓練和預測的功能,使用者可以根據自己的需求自定義模型並進行訓練,以適應不同的雙重數字識別任務。

ddddocr的目標是提供一個簡單而有效的工具,幫助開發者和研究者在雙重數字識別任務上取得更好的結果。透過使用該庫,使用者可以輕鬆地整合雙重數字識別功能到自己的應用程式或專案中,實現更準確和可靠的數字識別功能。

二、安裝

直接使用pip安裝即可

pip install ddddocr

安裝完成後就可以在python程式碼中引入ddddocr庫了

import ddddocr
三、使用示例
  1. 識別英文數字驗證碼

    image-20240419104057752

    image-20240419104103577

    程式碼示例

    # test.py
    import ddddocr
    
    ocr = ddddocr.DdddOcr(show_ad=False)  # show_ad=False關閉廣告
    with open("./img/1.jpg", "rb") as f1:
        im = f1.read()
        yzm1 = ocr.classification(im)
    with open("./img/2.jpg", "rb") as f2:
        im = f2.read()
        yzm2 = ocr.classification(im)
    print(yzm1, yzm2)
    

    執行結果

    image-20240419104252905

  2. 識別滑塊驗證碼

    image-20240419135651751

    image-20240419135707467

    程式碼示例

    # test.py
    import ddddocr
    
    det = ddddocr.DdddOcr(det=False, ocr=False, show_ad=False)  # show_ad=False關閉廣告
    with open('img/target.png', 'rb') as f:
        target_bytes = f.read()
    with open('img/background.jpg', 'rb') as f:
        background_bytes = f.read()
    res = det.slide_match(target_bytes, background_bytes, simple_target=True)
    print(res)
    

    執行結果

    image-20240419135848413

    一般只會用到res['target'][0],這個就是滑塊需要滑動的距離。在實際應用中每個網站可能會有偏差,所以要對滑塊軌跡進行微調,可以根據網站的滑塊和背景圖的大小對res['target'][0]進行加減

  3. 識別中文點選驗證碼

    image-20240419141930963

    程式碼示例

    # test.py
    import ddddocr
    import cv2
    
    det = ddddocr.DdddOcr(det=True, show_ad=False)  # show_ad=False關閉廣告
    with open("./img/dianxuan.jpg", 'rb') as f:
        image = f.read()
    poses = det.detection(image)
    print(poses)
    im = cv2.imread("./img/dianxuan.jpg")
    for box in poses:
        x1, y1, x2, y2 = box
        im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
    cv2.imwrite("./img/result.jpg", im)
    

    執行結果

    image-20240419142007836

四、總結

本文介紹了使用ddddocr識別英文數字驗證碼、滑塊驗證碼和中文點選驗證碼的過程,ddddocr在對圖片不進行任何處理的情況下識別效率已經非常高了,我們在實際應用場景中還可以根據自身需求對圖片進行進一步的處理提高識別率。在遇到一些複雜難以識別的驗證碼時我們可以對其進行深度學習訓練,具體實現流程可以參考我前面的部落格。此外,ddddocr裡面還很多值得學習的東西,有興趣的小夥伴可以自行研究。

相關文章