Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR
IronOCR zapewnia specjalizowaną metodę ReadHandwriting, która niezawodnie cyfryzuje tekst odręczny z obrazów, osiągając około 90% dokładności dla angielskiego pisma ręcznego, mimo wrodzonych wyzwań związanych z nieregularnym odstępowaniem i różnicami w kreskach.
Szybki start: Odczytywanie obrazów pisma ręcznego za pomocą IronOCR
- Zainstaluj IronOCR oraz pakiet IronOcr.Extensions.AdvancedScan
- Utwórz instancję
IronTesseract - Wczytaj obraz swojego pisma odręcznego przy użyciu
LoadImage() - Wywołaj metodę
ReadHandwriting() - Uzyskaj dostęp do wyodrębnionego tekstu z
OcrResult
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
using IronOcr; var ocrTesseract = new IronTesseract(); using var ocrInput = new OcrInput(); ocrInput.LoadImage("handwriting.png"); var ocrResult = ocrTesseract.ReadHandwriting(ocrInput); Console.WriteLine(ocrResult.Text); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
Automatyczne odczytywanie tekstu pisanego odręcznie z obrazów jest niezwykle trudne, ponieważ ludzie piszą w różny sposób. Ta ogromna niespójność sprawia, że OCR jest trudnym zadaniem. Kluczowe dokumenty, takie jak stare rejestry, formularze przyjęcia pacjentów i ankiety klientów, nadal wymagają ręcznego przetwarzania, co prowadzi do podatnych na błędy procesów, które zagrażają integralności danych.
IronOCR rozwiązuje ten problem, wprowadzając specjalistyczną metodę niezawodnego rozpoznawania i digitalizacji obrazów pisma ręcznego. Oparty na potężnym silniku Tesseract 5, IronOCR łączy zaawansowane przetwarzanie obrazu z uczeniem maszynowym, zapewniając wiodące w branży możliwości rozpoznawania pisma ręcznego.
Ten przewodnik krok po kroku przeprowadzi Cię przez proces wdrażania OCR pisma ręcznego w aplikacjach .NET. Niezależnie od tego, czy digitalizujesz dokumenty historyczne, przetwarzasz formularze medyczne, czy konwertujesz odręczne notatki, dowiesz się, jak osiągnąć wiarygodne wyniki dzięki IronOCR.
Rozpocznij pracę z IronOCR
Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR
- Pobierz bibliotekę C# do odczytu obrazów pisma ręcznego
- Utwórz instancję silnika OCR
- Załaduj obraz pisma ręcznego za pomocą
LoadImage - Użyj metody
ReadHandwriting,aby wyodrębnić dane z przykładowego obrazu pisma ręcznego - Użyj właściwości OcrResult, aby wyświetlić i przetwarzać wyodrębnione dane
Aby skorzystać z tej funkcji, należy najpierw zainstalować pakiet IronOcr.Extensions.AdvancedScan. Proszę zwrócić uwagę, że metoda ReadHandwriting obecnie obsługuje tylko język angielski. Dla OCR w wielu językach, użyj standardowej metody Read() z odpowiednimi pakietami językowymi.
Jak odczytywać obrazy pisma ręcznego za pomocą IronOCR?
Odczytanie obrazu pisma ręcznego za pomocą IronOCR jest proste. Najpierw zainicjuj silnik OCR, następnie wczytaj obraz za pomocą LoadImage, a na końcu użyj specjalizowanej metody ReadHandwriting zaprojektowanej do rozpoznawania pisma ręcznego. Wydrukuj wyodrębniony tekst, aby zweryfikować jego dokładność i treść.
Przed przetworzeniem warto rozważyć zastosowanie filtrów poprawiających jakość obrazu, aby zwiększyć czytelność. Filtry te mogą znacznie poprawić dokładność rozpoznawania, zwłaszcza w przypadku zeskanowanych dokumentów o słabym kontraście lub niskiej rozdzielczości.
Jakiego formatu pliku użyć?
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image.cs
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR on the handwriting image
OcrHandwritingResult result = ocr.ReadHandwriting(inputHandWriting);
// Output the recognized handwritten text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR on the handwriting image
Dim result As OcrHandwritingResult = ocr.ReadHandwriting(inputHandWriting)
' Output the recognized handwritten text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
Jakich rezultatów mogę się spodziewać?
Metoda ReadHandwriting osiągnęła 90,6% pewności, poprawnie identyfikując większość tekstu, w tym początkową frazę "My name is Erin Fish."
Ten doskonały wynik pokazuje możliwości IronOCR w zakresie trudnych tekstów pisanych odręcznie. Chociaż silnik miał trudności z odstępami i połączonymi literami, udało mu się wydobyć sedno przekazu. To pokazuje, że IronOCR skutecznie radzi sobie ze złożonymi, niestandardowymi tekstami.
Osoby, które dopiero zaczynają przygodę z OCR, powinny zapoznać się z naszym prostym samouczkiem dotyczącym OCR, aby zrozumieć podstawy przed przystąpieniem do rozpoznawania pisma ręcznego.
Jak korzystać z wersji asynchronicznej?
IronOCR obsługuje asynchroniczną wersję: ReadHandwritingAsync. Jest to przydatne w przypadku kodu asynchronicznego, który wymaga pobrania obrazów wejściowych przed przetworzeniem. Dokumentacja dotycząca obsługi asynchronicznej zawiera wyczerpujące wskazówki dotyczące wdrażania asynchronicznych operacji OCR.
Korzystając z tych samych danych wejściowych, oto jak użyć metody async:
:path=/static-assets/ocr/content-code-examples/how-to/read-handwritten-image-async.cs
using IronOcr;
using System;
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
#endregion
public class read_handwritten_image_async
{
public async Task codeAsync()
{
// Instantiate OCR engine
var ocr = new IronTesseract();
// Load handwriting image
var inputHandWriting = new OcrInput();
inputHandWriting.LoadImage("handwritten.png");
// Perform OCR using the async method with 'await'.
// The compiler automatically infers this top-level code block as an 'async Task Main()' method.
OcrHandwritingResult result = await ocr.ReadHandwritingAsync(inputHandWriting);
// Output the recognized handwriting text
Console.WriteLine(result.Text);
// Output the confidence score of the OCR result
Console.WriteLine(result.Confidence);
Imports IronOcr
Imports System
Imports System.Threading.Tasks
Public Class ReadHandwrittenImageAsync
Public Async Function CodeAsync() As Task
' Instantiate OCR engine
Dim ocr As New IronTesseract()
' Load handwriting image
Dim inputHandWriting As New OcrInput()
inputHandWriting.LoadImage("handwritten.png")
' Perform OCR using the async method with 'Await'.
' The compiler automatically infers this top-level code block as an 'async Task Main()' method.
Dim result As OcrHandwritingResult = Await ocr.ReadHandwritingAsync(inputHandWriting)
' Output the recognized handwriting text
Console.WriteLine(result.Text)
' Output the confidence score of the OCR result
Console.WriteLine(result.Confidence)
End Function
End Class
Możesz podać opcjonalny parametr timeoutMs, aby określić milisekundy przed automatycznym anulowaniem. Wartość domyślna to -1, co oznacza brak limitu czasowego—operacja trwa do zakończenia.
Zaawansowane techniki przetwarzania
W przypadku złożonych scenariuszy rozpoznawania pisma ręcznego warto rozważyć następujące zaawansowane techniki:
OCR dostosowane do regionu: Podczas pracy z formularzami lub dokumentami ustrukturyzowanymi należy używać OCR dostosowanego do regionu, aby skupić się na konkretnych obszarach zawierających tekst pisany odręcznie. Takie podejście poprawia dokładność poprzez ograniczenie obszaru przetwarzania:
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
using IronOcr;
using IronSoftware.Drawing;
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
// Define a specific region for signature area
var signatureRegion = new CropRectangle(x: 100, y: 500, width: 300, height: 100);
ocrInput.LoadImage("form-with-signature.png", signatureRegion);
var signatureResult = ocrTesseract.ReadHandwriting(ocrInput);
Console.WriteLine($"Signature text: {signatureResult.Text}");
Imports IronOcr
Imports IronSoftware.Drawing
Dim ocrTesseract As New IronTesseract()
Using ocrInput As New OcrInput()
' Define a specific region for signature area
Dim signatureRegion As New CropRectangle(x:=100, y:=500, width:=300, height:=100)
ocrInput.LoadImage("form-with-signature.png", signatureRegion)
Dim signatureResult = ocrTesseract.ReadHandwriting(ocrInput)
Console.WriteLine($"Signature text: {signatureResult.Text}")
End Using
Śledzenie postępów: W przypadku przetwarzania wsadowego wielu dokumentów pisanych odręcznie należy wdrożyć śledzenie postępów w celu monitorowania operacji OCR:
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += (sender, e) =>
{
Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += Sub(sender, e)
Console.WriteLine($"Processing: {e.ProgressPercent}% complete")
End Sub
O jakich wyzwaniach powinienem pamiętać?
Chociaż IronOCR osiąga wysoki poziom pewności w zachowaniu ogólnej struktury i tekstu, OCR nadal ma trudności z rozpoznawaniem pisma ręcznego, co prowadzi do lokalnych błędów. Typowe wyzwania wymagają weryfikacji wyodrębnionych wyników:
Nieregularne odstępy: Tekst drukowany ma jednolite odstępy między literami. Odstępy między pociągnięciami pióra i połączeniami liter w piśmie odręcznym są bardzo zróżnicowane. Powoduje to niewłaściwe segmentowanie znaków, jak pokazano, gdy ununiformed rozdziela się na pojedyncze znaki (u n u n i f o c m e d) zamiast jednego słowa.
Różnice w pismie: Każda osoba ma unikalne pismo, a poszczególne osoby piszą tę samą literę za każdym razem inaczej. Połączenia między literami i wzory pisma znacznie się różnią. Uniemożliwia to stosowanie modelu "jednego rozmiaru dla wszystkich", ponieważ silnik musi radzić sobie z dużą zmiennością nachylenia, nacisku i kształtu pociągnięć, co sprawia, że dopasowywanie wzorców jest mniej niezawodne niż w przypadku standardowych czcionek.
Niejasne kształty znaków: Pismo ręczne często używa uproszczonych lub pośpiesznych kresek, tworząc niejasne kształty. Szybko narysowane e może przypominać c, lub połączone l i i mogą być źle zidentyfikowane.
Problemy z jakością i rozdzielczością: Słaba jakość skanu, niska rozdzielczość lub wyblakły tusz mają znaczący wpływ na dokładność rozpoznawania. W przypadku napotkania takich problemów, zapoznaj się z naszym ogólnym przewodnikiem rozwiązywania problemów, aby znaleźć rozwiązania.
Korzystając z tej metody, sprawdź, czy wynik odpowiada zamierzonemu tekstowi źródłowemu, zwracając szczególną uwagę na słowa położone blisko siebie lub nieprawidłowo sformułowane. Rozważ wdrożenie logiki przetwarzania końcowego w celu obsługi typowych błędów rozpoznawania charakterystycznych dla Twojego przypadku użycia.
ReadHandwriting może osiągnąć jedynie niską dokładność wyodrębniania OCR, jeżeli chodzi o pisma kursywą. Często Zadawane Pytania
Jakiej dokładności mogę się spodziewać podczas wyodrębniania pisma odręcznego z obrazów?
Metoda ReadHandwriting w IronOCR osiąga około 90% dokładności dla rozpoznawania pisma odręcznego w języku angielskim, mimo wrodzonych wyzwań związanych z nieregularnym rozmieszczeniem i zmiennością pociągnięć, które czynią OCR pisma odręcznego szczególnie trudnym.
Jakie języki są obsługiwane dla rozpoznawania pisma odręcznego?
Metoda ReadHandwriting w IronOCR obecnie obsługuje tylko język angielski. Aby obsłużyć wiele języków, musisz użyć standardowej metody Read() z odpowiednimi pakietami językowymi zamiast specjalistycznej metody pisma odręcznego.
Jaki dodatkowy pakiet muszę zainstalować dla OCR pisma odręcznego?
Aby używać funkcji rozpoznawania pisma odręcznego w IronOCR, musisz zainstalować pakiet IronOcr.Extensions.AdvancedScan oprócz głównej biblioteki IronOCR.
Jak zaimplementować podstawowe rozpoznawanie pisma odręcznego w C#?
Utwórz instancję IronTesseract, załaduj swój obraz pisma odręcznego za pomocą LoadImage(), wywołaj metodę ReadHandwriting() i uzyskaj dostęp do wyodrębnionego tekstu z OcrResult. IronOCR automatycznie obsługuje złożone przetwarzanie obrazów oraz uczenie maszynowe.
Jakie rodzaje dokumentów pisanych odręcznie mogą być przetwarzane?
IronOCR może przetwarzać różnorodne dokumenty pisane odręcznie, w tym historyczne zapisy, formularze przyjęcia pacjentów, ankiety klienta oraz notatki odręczne. Biblioteka jest zaprojektowana tak, aby radzić sobie z niespójnościami w ludzkim piśmie odręcznym, które czynią ręczne przetwarzanie podatnym na błędy.
Jaka technologia napędza możliwości rozpoznawania pisma odręcznego?
Rozpoznawanie pisma odręcznego w IronOCR opiera się na potężnym silniku Tesseract 5, łącząc zaawansowane przetwarzanie obrazów z algorytmami uczenia maszynowego, żeby zapewnić wiodące w branży możliwości rozpoznawania pisma odręcznego.

