當前位置: 妍妍網 > 碼農

8.5K 強強強!!!支持90多種語言的強大OCR

2024-06-07碼農

軟體介紹

Surya 是一個文件OCR工具包,提供強大的OCR(光學字元辨識)和線條檢測功能,支持90多種語言。

近期熱文:




  • OCR: 支持90多種語言的OCR,優於雲服務的基準測試;

  • 文本行檢測: 可以在任何語言中進行行級文本檢測;

  • 排版分析: 包括表格、影像、頁首等的檢測;

  • 閱讀順序檢測: 有助於文件內容的閱讀順序。

  • 效能對比

    surya和tesseract光學字元辨識效能對比

    surya和tesseract文本行檢測效能對比

    快速入門

  • 1. 安裝: 安裝 surya-ocr 需要 Python 3.9+ 和 PyTorch。首次執行會自動下載模型權重。

  • pip install surya-ocr

  • 2. 文本辨識(OCR): 根據範例程式碼執行OCR,辨識圖片中的文本資訊;

  • from PIL import Image
    from surya.ocr import run_ocr
    from surya.model.detection import segformer
    from surya.model.recognition.model import load_model
    from surya.model.recognition.processor import load_processor
    # 讀取影像
    image = Image.open(IMAGE_PATH)
    langs = ["en"] # 替換為具體語言
    det_processor, det_model = segformer.load_processor(), segformer.load_model()
    rec_model, rec_processor = load_model(), load_processor()
    # 執行 OCR
    predictions = run_ocr([image], [langs], det_model, det_processor, rec_model, rec_processor)

  • 3. 文本行檢測: 使用相應的模型進行文本行檢測;

  • from PIL import Image
    from surya.detection import batch_text_detection
    from surya.model.detection.segformer import load_model, load_processor
    # 讀取影像
    image = Image.open(IMAGE_PATH)
    model, processor = load_model(), load_processor()
    # 進行文本行檢測
    predictions = batch_text_detection([image], model, processor)

  • 4. 排版分析: 使用提供的模型和處理器進行文件的排版分析;

  • from PIL import Image
    from surya.detection import batch_text_detection
    from surya.layout import batch_layout_detection
    from surya.model.detection.segformer import load_model, load_processor
    from surya.settings import settings
    # 讀取影像
    image = Image.open(IMAGE_PATH)
    model = load_model(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
    processor = load_processor(checkpoint=settings.LAYOUT_MODEL_CHECKPOINT)
    det_model = load_model()
    det_processor = load_processor()
    # 進行排版分析
    line_predictions = batch_text_detection([image], det_model, det_processor)
    layout_predictions = batch_layout_detection([image], model, processor, line_predictions)

  • 5. 閱讀順序檢測: 進行文件內容的閱讀順序檢測。

  • from PIL import Image
    from surya.ordering import batch_ordering
    from surya.model.ordering.processor import load_processor
    from surya.model.ordering.model import load_model
    image = Image.open(IMAGE_PATH)
    # bboxes應該是一個包含[x1,y1,x2,y2]格式的影像布局框的列表
    # 例如,可以從layout_model獲取此資訊,參見上面的用法範例
    bboxes = [bbox1, bbox2, ...]
    model = load_model()
    processor = load_processor()
    # 進行閱讀順序檢測
    order_predictions = batch_ordering([image], [bboxes], model, processor)

    Surya 的強大功能使其適用於處理各種型別的文件,其中包括文字辨識、文本行檢測、排版分析和內容閱讀順序檢測。