軟體介紹
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 的強大功能使其適用於處理各種型別的文件,其中包括文字辨識、文本行檢測、排版分析和內容閱讀順序檢測。