Tutorial Surya OCR: Document AI untuk Text Detection, OCR, dan Layout Analysis

# Tutorial Surya OCR: Document AI untuk Text Detection, OCR, dan Layout Analysis Surya adalah library Document AI open-source yang powerful untuk melakukan OCR (Optical Character Recognition), text d...

By Ruby Abdullah · · tutorial
SuryaOCRDocument AIComputer VisionPython

Tutorial Surya OCR: Document AI untuk Text Detection, OCR, dan Layout Analysis

Surya adalah library Document AI open-source yang powerful untuk melakukan OCR (Optical Character Recognition), text detection, layout analysis, reading order detection, dan table recognition. Dikembangkan oleh Vik Paruchuri (creator Marker), Surya mendukung lebih dari 90 bahasa dan memberikan akurasi yang sangat kompetitif dibandingkan solusi komersial seperti Google Cloud Vision.

Dalam tutorial ini, kita akan mempelajari cara menggunakan Surya untuk berbagai task document AI, mulai dari instalasi hingga penggunaan lanjutan untuk memproses dokumen kompleks.

Mengapa Surya?

Sebelum kita mulai, berikut beberapa alasan mengapa Surya layak dipertimbangkan:

  • Multi-bahasa: Mendukung 90+ bahasa termasuk Bahasa Indonesia, CJK, Arabic, dan lainnya
  • Akurasi tinggi: Benchmark menunjukkan akurasi setara atau lebih baik dari Google Cloud Vision pada banyak bahasa
  • Open-source: Lisensi GPL-3.0, gratis untuk penggunaan non-komersial
  • Fitur lengkap: OCR, text detection, layout analysis, table recognition, dan reading order detection dalam satu package
  • GPU acceleration: Mendukung CUDA untuk pemrosesan yang lebih cepat
  • Mudah digunakan: API yang sederhana dan intuitif

Instalasi

Persyaratan Sistem

  • Python 3.9 atau lebih baru
  • PyTorch (akan diinstal otomatis)
  • GPU NVIDIA dengan CUDA (opsional, tapi sangat direkomendasikan untuk performa)

Instalasi via pip

pip install surya-ocr

Instalasi dari Source (untuk development)

git clone https://github.com/VikParuchuri/surya.git

cd surya

pip install -e .

Verifikasi Instalasi

import surya

print(surya.version)

Instalasi Dependensi Tambahan

Untuk memproses file PDF, instal juga:

pip install pypdfium2

Basic Usage

1. Text Detection

Text detection adalah langkah pertama dalam pipeline OCR. Surya mendeteksi area di mana teks berada dalam gambar.

from surya.detection import DetectionPredictor

from PIL import Image

Load image

image = Image.open("dokumen.png")

Inisialisasi detector

detector = DetectionPredictor()

Deteksi teks

predictions = detector([image])

Lihat hasil deteksi

for prediction in predictions:

for bbox in prediction.bboxes:

print(f"Bounding box: {bbox.bbox}")

print(f"Confidence: {bbox.confidence:.4f}")

print(f"Polygon: {bbox.polygon}")

print()

2. OCR (Optical Character Recognition)

Setelah mendeteksi area teks, kita bisa melakukan OCR untuk mengekstrak teks dari gambar.

from surya.recognition import RecognitionPredictor

from surya.detection import DetectionPredictor

from surya.ocr import OCRPredictor

from PIL import Image

Load image

image = Image.open("dokumen.png")

Inisialisasi predictor

detpredictor = DetectionPredictor()

recpredictor = RecognitionPredictor()

ocrpredictor = OCRPredictor(detpredictor, recpredictor)

Jalankan OCR

predictions = ocrpredictor([image])

Tampilkan hasil

for prediction in predictions:

for textline in prediction.textlines:

print(f"Text: {textline.text}")

print(f"Confidence: {textline.confidence:.4f}")

print(f"BBox: {textline.bbox}")

print()

3. Menentukan Bahasa

Surya bisa mendeteksi bahasa secara otomatis, tapi kamu juga bisa menentukan bahasa secara eksplisit untuk hasil yang lebih akurat:

from surya.recognition import RecognitionPredictor

from surya.detection import DetectionPredictor

from surya.ocr import OCRPredictor

from PIL import Image

image = Image.open("dokumenindonesia.png")

detpredictor = DetectionPredictor()

recpredictor = RecognitionPredictor()

ocrpredictor = OCRPredictor(detpredictor, recpredictor)

Tentukan bahasa: Indonesian

predictions = ocrpredictor([image], langs=[["id"]])

Artikel Terkait

Florence-2: Model Vision Multi-Task dari Microsoft

Florence-2: Model Vision Multi-Task dari Microsoft Daftar Isi Pendahuluan Prasyarat Instalasi Memuat Model Florence-2

Supervision: Toolkit Computer Vision dari Roboflow

Supervision: Toolkit Computer Vision dari Roboflow Dalam proyek computer vision, setelah model mendeteksi objek, Anda ma...

Tutorial OpenCV + Deep Learning: Image Processing Modern dengan Python

OpenCV + Deep Learning: Tutorial Komprehensif Daftar Isi Pendahuluan Prasyarat Dasar-Dasar Preprocessing Gambar [T...

Tutorial Lengkap Label Studio: Data Labeling untuk Machine Learning

Tutorial Lengkap Label Studio: Data Labeling untuk Machine Learning Label Studio adalah platform data labeling open-sour...