Kaip pagerinti OCR tikslumą žemos kokybės nuotraukose su Aspose.OCR
Daugelis verslo kritinių vaizdų yra žemos kokybės – blurry skenavimas, išmaniųjų telefonų nuotraukos, sklandūs įrašai ar triukšmo faksai. Šie iššūkiai sumažina OCR tikslumą. Aspose.OCR .NET siūlo įterptus įrankius ir geriausias praktikas, kad būtų galima gauti geriausią įmanomą tekstą iš net sudėtingų paveikslų.
Realaus pasaulio problemos
Kai skenavimas yra blurry, tamsus, mažas kontrastas, arba turi foninį triukšmą, standartinis OCR gali praleisti žodžius ar klaidingai atpažinti simbolius.
Sprendimo apžvalga
Taikydami išankstinį apdorojimą (deskew, denoise, kontrasto koregavimas) ir Aspose.OCR nustatymus, galite dramatiškai pagerinti teksto ekstrakciją – net iš subparų vaizdų.
Prerequisites
- „Visual Studio 2019“ arba vėliau
- .NET 6.0 arba naujesnė (arba .Net Framework 4.6.2+)
- ASPOSE.OCR už .NET iš NuGet
- Pagrindiniai C# įgūdžiai
PM> Install-Package Aspose.OCR
Žingsnis po žingsnio įgyvendinimas
1 žingsnis: Įdiegti ir konfigūruoti Aspose.OCR
using Aspose.OCR;
2 žingsnis: įvertinkite vaizdo kokybę
Patikrinkite už:
- Blurriness
- Rotacija / Rotation
- foninis triukšmas
- Mažas kontrastas
- Mažas apšvietimas / šešėlis
3 žingsnis: Taikyti vaizdo perdirbimą ir tobulinimą
Aspose.OCR turi filtrus, skirtus atmesti, iškrauti, binarizuoti, kontrastuoti ir daugiau:
RecognitionSettings settings = new RecognitionSettings();
settings.AutoContrast = true; // Improve contrast automatically
settings.Denoising = true; // Remove background noise
settings.Deskew = true; // Correct rotated images
settings.Binarization = true; // Convert to black/white for clarity
4 žingsnis: Įdiegti atpažinimo nustatymus sunkioms nuotraukoms
Galite gauti geresnius rezultatus tuning:
Language
nuosavybė (rinkitės artimiausią rungtynes)DetectAreasMode
(Nukreipta iš puslapio Auto vs. Photo)
settings.Language = Language.English;
settings.DetectAreasMode = DetectAreasMode.PHOTO; // If image is a photo
5 žingsnis: Išimti tekstą ir patvirtinti
OcrInput input = new OcrInput(InputType.SingleImage);
input.Add("blurry_invoice.jpg");
AsposeOcr ocr = new AsposeOcr();
List<RecognitionResult> results = ocr.Recognize(input, settings);
foreach (RecognitionResult result in results)
{
Console.WriteLine(result.RecognitionText);
}
6 žingsnis: Iterate ir testas su skirtingais nustatimais
Išbandykite keletą iš anksto apdorojamų filtrų ir nustatymų derinių, tada peržiūrėkite išleidimą, kad gautumėte geriausią tikslumą.
7 žingsnis: Automatiškai perdirbti daugiafunkcinių darbo vietų
Apdoroti visus vaizdus viename direktoriuje su optimaliais nustatimais:
foreach (string file in Directory.GetFiles("./problem_images", "*.png"))
{
input.Add(file);
}
8 žingsnis: pilnas pavyzdys
using Aspose.OCR;
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
static void Main(string[] args)
{
try
{
OcrInput input = new OcrInput(InputType.SingleImage);
input.Add("blurry_invoice.jpg");
RecognitionSettings settings = new RecognitionSettings();
settings.AutoContrast = true;
settings.Denoising = true;
settings.Deskew = true;
settings.Binarization = true;
settings.Language = Language.English;
settings.DetectAreasMode = DetectAreasMode.PHOTO;
AsposeOcr ocr = new AsposeOcr();
List<RecognitionResult> results = ocr.Recognize(input, settings);
foreach (RecognitionResult result in results)
{
Console.WriteLine(result.RecognitionText);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
Naudokite atvejus ir paraiškas
Skaitmeniniai priėmimai ir faksai
Duomenys ištraukiami iš pavogtų, faksuotų ar sugadintų gautų ir sąskaitų.
Automatizuokite sąskaitas, kurios gali būti mokamos su prastomis skenavimais
Sumažinkite perdirbimą ir pagreitinkite AP apdorojimą net ir iš blogų šaltinių.
Archyvas paveldėjimo popierius
Išsaugokite naudingą tekstą iš senų, degraduotų archyvų ir rankiniu būdu parašytų įrašų.
Bendrieji iššūkiai ir sprendimai
1 iššūkis: vaizdai išlieka neskaitomi
Išsprendimas: Prašykite ištaisymo arba naudokite pažangius tobulinimo įrankius, jei reikia.
Iššūkis 2: Batch apdorojimo buteliukai
Išsprendimas: Automatiškas išankstinis apdorojimas ir darbo dienų tvarkaraštis.
3 iššūkis: labai kintantys įėjimai
Išsprendimas: Išsaugokite geriausius nustatymus pagal dokumentų tipą; reguliariai patvirtinkite.
Veiksmingumo apžvalgos
- Preprocesavimas prideda CPU laiką, bet gali padvigubinti OCR tikslumą
- Bandymo batų dydis jūsų aparatūrai
- OCR objektų naudojimas po bėgimo
Geriausios praktikos
- Išsaugoti originalias nuotraukas auditui
- Išleidimas prieš integraciją
- Naudokite kokybės kontrolės patikrinimus kritiniams darbo srautams
- Reguliariai atnaujinti Aspose.OCR patobulinimams
Išplėstiniai scenarijai
1 scenarijus: perdirbimas naudojant išorinius įrankius (pasirenkamas)
Pagerinkite vaizdus su tokiu įrankiu kaip ImageMagick arba OpenCV prieš OCR ekstremaliems atvejams.
2 scenarijus: pritaikytas filtravimas pagal dokumentų tipą
Išsaugoti ir pakartotinai naudoti nustatymus pagal šaltinį arba darbo srautą, kad būtų užtikrintas didžiausias tikslumas.
Conclusion
Naudodamas tinkamą išankstinį apdorojimą ir nustatymus, Aspose.OCR .NET gali išsaugoti vertingus duomenis net ir nuo blogos kokybės vaizdų, didinti automatiką ir atitikties.
Dėl pažangių patarimų ir naujausių filtrų, patikrinkite ASPOSE.OCR už .NET API nuorodą .