PaddleOCR: Çok Dilli Metin Çıkarma için Endüstriyel OCR
Yüksek hassasiyet ve hızla görsellerden ve belgelerden metin tespit edin ve tanıyın.
PaddleOCR API Nedir?
PaddleOCR Python API, geliştiricilerin görsellerden yüksek doğrulukla metin çıkarmasına ve analiz etmesine yardımcı olmak için tasarlanmış, güçlü ve kullanımı kolay bir optik karakter tanıma (OCR) araç setidir. PaddlePaddle derin öğrenme çerçevesi üzerine inşa edilen PaddleOCR, geniş bir dil yelpazesini destekler ve metin tespiti, tanıma ve düzen analizi için önceden eğitilmiş modeller sunar. Sezgisel Python arayüzü sayesinde kullanıcılar, belge dijitalleştirme, fotoğraflardan metin çıkarma veya otomatik veri işleme gibi uygulamalarına hızla OCR yetenekleri ekleyebilir. PaddleOCR Python API, minimum kurulum ve maksimum esneklikle sağlam OCR çözümleri uygulamak isteyen herkes için idealdir.
PaddleOCR'ın temel avantajları:
- Çok dilli destek: 100+ dil için önceden eğitilmiş modeller (Çince, İngilizce, Arapça vb.).
- Yüksek doğruluk: PP-OCR serisi modeller, ICDAR veri setlerinde en iyi performansı gösterir.
- Uçtan uca iş akışı: Metin tespitinden tanımaya ve düzen analizine kadar.
- Hafif modeller: Mobil ve uç cihazlar için optimize edilmiştir (örn. PP-OCRv3).
Taranmış belgelerden sokak tabelalarına kadar PaddleOCR, endüstri lideri doğrulukla metin çıkarır.
Neden PaddleOCR?
- Açık kaynak mükemmelliği: 30.000+ GitHub yıldızı ve aktif topluluk katkıları.
- Çok yönlü dağıtım: Python, C++ ve mobil platformlar (Android/iOS) desteği.
- Düzen analizi: Karmaşık belgelerde metin bölgelerini, tabloları ve şekilleri tanımlar.
- Sürekli güncellemeler: Düzenli model sürümleri (örn. PP-OCRv4).
- Ticari kullanıma uygun: Kurumsal kullanım için Apache 2.0 lisansı.
Kurulum
PaddleOCR, Python 3.7+ gerektirir ve pip ile kurulabilir. GPU desteği için CUDA/cuDNN gerekir.
Temel Kurulum
pip install paddleocr paddlepaddle #CPU sürümü
GPU hızlandırma için:
GPU Desteği
pip install paddleocr paddlepaddle-gpu #CUDA 10.2+ gerekir
Not: Önceden eğitilmiş modeller ilk kullanımda otomatik olarak indirilir veya paddleocr --lang en
ile manuel olarak indirilebilir.
Kod Örnekleri
PaddleOCR'ın yeteneklerini bu örneklerle keşfedin. Tüm örnekler İngilizce modelinin kurulu olduğunu varsayar.
Örnek 1: Temel OCR
PaddleOCR ile varsayılan modelleri kullanarak bir görselden metin çıkarmak için, İngilizce desteği ve doğruluğu artırmak için açı sınıflandırması içeren standart yapılandırmayla OCR motorunu başlatmanız yeterlidir. PaddleOCR, giriş görselindeki metni tanımlamak ve yorumlamak için önceden eğitilmiş tespit, tanıma ve sınıflandırma modellerini kullanır. Görsel işlendikten sonra, OCR motoru her sonuç için tespit edilen metni, konumunu ve bir güven puanını döndürür. Bu kurulum, özel model eğitimi veya karmaşık yapılandırma gerektirmeden görsellerden metin içeriği çıkarmanın hızlı ve verimli bir yolunu sunar.
Görsel OCR
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='en') # Başlat
result = ocr.ocr('image.jpg', cls=True) # Görseli işle
# Tanınan metni yazdır
for line in result:
print(line[-1][0]) # Metin içeriği
Çıktı şunları içerir:
- Metin içeriği ve güven puanları
- Sınırlayıcı kutu koordinatları
Örnek 2: Toplu İşleme
PaddleOCR kullanarak birden fazla görseli verimli bir şekilde işlemek için, gereksiz başlatmaları en aza indiren ve performansı optimize eden toplu işleme tekniklerinden yararlanabilirsiniz. OCR motorunu her görsel için başlatmak yerine, OCR modelinin tek bir örneğini oluşturup tüm görsel girişlerinde yeniden kullanmanız önerilir. Bu yaklaşım, işleme süresini ve kaynak kullanımını önemli ölçüde azaltır. OCR motoruna bir döngü içinde veya uygun olduğunda paralel işlemeyle birden fazla görsel yolu besleyerek, belge grupları, taranmış arşivler veya toplu görsel analizi içeren iş akışları için ideal olan büyük görsel kümelerinden hızlı ve etkili bir şekilde metin çıkarabilirsiniz.
Toplu OCR
image_paths = ['doc1.jpg', 'doc2.png']
results = ocr.ocr(image_paths, batch_size=4) # Paralel işleme
Örnek 3: Düzen Analizi
PaddleOCR yalnızca metin tanımak için değil, aynı zamanda belirli metin bölgelerini tanımlamak ve bir görsel içindeki tablolar gibi yapılandırılmış öğeleri tespit etmek için de kullanılabilir. Sistem önce metin alanlarını, her metin bölgesini sınırlayıcı kutularla çizen tespit modeli aracılığıyla konumlandırır, böylece kullanıcılar görsel içindeki metnin konumunu anlayabilir. Formlar veya tablo içeren belgeler gibi daha karmaşık düzenler için PaddleOCR, düzen analizi ve tablo yapısı tanımayı destekler. Bu, satırların, sütunların ve hücre sınırlarının tespit edilmesini sağlar ve tablo verilerinin düzenli bir biçimde çıkarılmasını mümkün kılar. Bu tür yetenekler, hem serbest metin hem de tablo verilerinin bir arada bulunduğu taranmış belgeler, faturalar veya elektronik tabloların dijitalleştirilmesi için özellikle kullanışlıdır.
Düzen Tespiti
from paddleocr import PPStructure
structure_engine = PPStructure(table=False, ocr=False)
layout_result = structure_engine('document.pdf')
Gelişmiş Özellikler
PaddleOCR karmaşık iş akışlarını destekler:
- Özel eğitim: Modelleri kendi verilerinizle ince ayar yapın:
Model Eğitimi
python tools/train.py -c configs/det/det_mv3_db.yml
- Çok dilli karışım: Çok dilli belgeleri işleyin:
Çok Dilli OCR
ocr = PaddleOCR(lang='chinese+english')
- PDF desteği: PDF'lerden doğrudan metin çıkarın:
PDF İşleme
result = ocr.ocr('document.pdf', type='pdf')
Sonuç
PaddleOCR, benzersiz çok dilli destek ve ölçeklenebilirlikle üretime hazır OCR sunar. Şunlar için idealdir:
- Belge dijitalleştirme: Taranmış PDF'ler, faturalar, fişler
- Çok dilli uygulamalar: Pasaport tanıma, çok dilli kitaplar
- Uç dağıtım: Cihaz üzerinde OCR içeren mobil uygulamalar
PaddlePaddle'ın derin öğrenme ekosisteminin desteğiyle PaddleOCR, OCR doğruluğu ve verimliliğinde yeni standartlar belirlemeye devam ediyor.