trOCR: Revoliucionuokite teksto atpažinimą su Transformeriais
Pasiekite žmogaus lygio tikslumą teksto išgavime iš spausdinto, rankraščio ir daugiakalbių turinių.
Kas yra trOCR API?
trOCR (Transformeriais pagrįstas optinis simbolių atpažinimas) yra Microsoft revolucinis OCR modelis, naudojantis transformerų architektūrų galią, kad pasiektų nepakartojamą teksto atpažinimo tikslumą. Skirtingai nuo tradicinių OCR sistemų, kurios remiasi tik konvoliuciniais tinklais, trOCR sujungia vaizdo transformerius (ViTs) su sekų modeliavimu, leisdamas suprasti kontekstą ir erdvinius ryšius tekste - net ir sudėtingiems įvesties duomenims, kaip rankraščio užrašai, žemos raiškos nuskaitymai ar sudėtingi scenarijai.
Pagrindiniai trOCR privalumai:
- Žmogaus lygio atpažinimas: Puikiai atpažįsta rašytinį ir iškraipytą tekstą
- Daugiakalbis palaikymas: Iš anksto apmokyti modeliai anglų, prancūzų, vokiečių ir kitoms kalboms
- Vientisas procesas: Sujungia teksto aptikimą ir atpažinimą
- Lengva integracija: Sukurtas ant Hugging Face Transformer bibliotekos
Kodėl rinktis trOCR?
- 15-20% tikslesnis nei CNN pagrįsti modeliai
- Daugiau nei 90% tikslumas rankraščio tekstui
- Minimalus išankstinis apdorojimas: Atsparus šriftų, orientacijos ir triukšmo pokyčiams
- Efektyvus apdorojimas: Optimizuotas GPU
Diegimas
trOCR reikalauja PyTorch arba TensorFlow ir Hugging Face Transformer bibliotekos:
Diegimas su PyTorch (rekomenduojama GPU)
pip install transformers torch torchvision
pip install datasets # Pasirinktinai tikslinimui
Pastaba: microsoft/trocr-base
modeliams reikia ~1.5GB disko vietos variantui (spausdintas/rankraštis). Įsitikinkite, kad turite pakankamai vietos ir RAM (8GB+ grupiniam apdorojimui).
Kodo pavyzdžiai
Rankraščio teksto atpažinimas
Rankraščio atpažinimas
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-handwritten")
image = Image.open("rankrastis.jpg").convert("RGB")
pixel_values = processor(image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(f"Išgautas tekstas: {text}")
Spausdinto teksto apdorojimas
Spausdinto teksto išgavimas
from transformers import pipeline
from PIL import Image
ocr = pipeline("image-to-text", model="microsoft/trocr-base-printed")
image = Image.open("dokumentas.png").convert("RGB")
results = ocr(image)
for item in results:
print(item['generated_text'])
Išplėstinės rekomendacijos
- Pagerinkite vaizdų kokybę su OpenCV prieš apdorojimą
- Pritaikykite modelį savo specifiniams poreikiams
Taikymo sritys
- Istorinių archyvų skaitmeninimas
- Sąskaitų ir teisinių dokumentų apdorojimas
- Prieinamumo technologijos