IronOCR로 필기체 이미지를 읽는 방법

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR는 손글씨 텍스트를 이미지에서 신뢰성 있게 디지털화하는 특수 ReadHandwriting 메서드를 제공하며, 불규칙한 간격이나 획 변형의 내재된 문제에도 불구하고 영어 손글씨에 대해 약 90%의 정확성을 달성합니다.

빠른 시작: IronOCR로 필기체 이미지 읽기

  1. IronOCR 및 IronOcr.Extensions.AdvancedScan 패키지를 설치합니다.
  2. IronTesseract 인스턴스 생성
  3. LoadImage()을 사용하여 손글씨 이미지를 로드
  4. ReadHandwriting() 메서드 호출
  5. OcrResult에서 추출된 텍스트 접근
  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronOcr 설치하기

    PM > Install-Package IronOcr
  2. 다음 코드 조각을 복사하여 실행하세요.

    using IronOcr;
    
    var ocrTesseract = new IronTesseract();
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage("handwriting.png");
    var ocrResult = ocrTesseract.ReadHandwriting(ocrInput);
    Console.WriteLine(ocrResult.Text);
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronOCR 사용 시작하기

    arrow pointer

사람마다 글씨체가 다르기 때문에 이미지에서 손글씨를 자동으로 읽어내는 것은 매우 어렵습니다. 이러한 심각한 불일치 때문에 OCR 작업이 어렵습니다. 오래된 기록, 환자 접수 양식, 고객 설문 조사와 같은 중요한 문서는 여전히 수동 처리가 필요하며, 이로 인해 오류 발생 가능성이 높은 작업 흐름이 발생하여 데이터 무결성이 손상됩니다.

IronOCR은 필기체 이미지를 안정적으로 이해하고 디지털화하는 특수 방법을 도입하여 이 문제를 해결합니다. 강력한 Tesseract 5 엔진을 기반으로 구축된 IronOCR은 고급 이미지 처리와 머신 러닝을 결합하여 업계 최고 수준의 필기 인식 기능을 제공합니다.

이 가이드는 .NET 애플리케이션에서 필기 OCR을 구현하는 방법을 단계별로 안내합니다. 역사 문서를 디지털화하거나, 의료 양식을 처리하거나, 손으로 쓴 메모를 변환하는 등 어떤 작업을 하든 IronOCR을 사용하여 신뢰할 수 있는 결과를 얻는 방법을 배우게 됩니다.

IronOCR 시작하기


이 기능을 사용하려면 먼저 IronOcr.Extensions.AdvancedScan 패키지를 설치해야 합니다. 현재 ReadHandwriting 메서드는 영어만 지원합니다. 다국어 OCR의 경우, 적절한 언어 팩과 함께 표준 Read() 메서드를 사용하십시오.

IronOCR로 필기체 이미지를 읽는 방법은 무엇인가요?

IronOCR을 이용한 필기체 이미지 판독은 간단합니다. 먼저 OCR 엔진을 인스턴스화한 다음 LoadImage으로 이미지를 로드하고, 마침내 손글씨 인식을 위해 설계된 특수 ReadHandwriting 메서드를 사용하십시오. 추출된 텍스트를 출력하여 정확성과 내용을 확인하십시오.

처리하기 전에 가독성을 높이기 위해 이미지 품질 보정 필터를 적용하는 것을 고려해 보세요. 이러한 필터는 특히 대비나 해상도가 낮은 스캔 문서의 경우 인식 정확도를 크게 향상시킬 수 있습니다.

어떤 입력 형식을 사용해야 하나요?

OCR 처리를 위한 필기체 입력 샘플 이미지입니다.
: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);
$vbLabelText   $csharpLabel

어떤 결과를 기대할 수 있을까요?

OCR 출력 결과는 추출된 손글씨 텍스트와 신뢰도 점수를 보여줍니다.

ReadHandwriting 메서드는 "My name is Erin Fish."라는 첫 문구를 포함하여 텍스트의 대다수를 올바르게 식별하며 90.6%의 신뢰 점수를 기록했습니다.

이번 뛰어난 결과는 IronOCR이 까다로운 필기체도 정확하게 인식할 수 있는 능력을 입증합니다. 엔진은 띄어쓰기와 연결된 글자 처리에는 어려움을 겪었지만, 핵심 메시지는 성공적으로 추출했습니다. 이는 IronOCR이 복잡하고 비표준적인 텍스트를 효과적으로 처리한다는 것을 보여줍니다.

OCR을 처음 접하는 분들은 필기 인식에 도전하기 전에 기본 사항을 이해하기 위해 간단한 OCR 튜토리얼 부터 시작하세요.

비동기 버전을 어떻게 사용하나요?

IronOCR는 비동기 버전을 지원합니다: ReadHandwritingAsync. 이는 처리 전에 입력 이미지를 가져와야 하는 비동기 코드를 다룰 때 유용합니다. 비동기 지원 문서에서는 비동기 OCR 작업 구현에 대한 포괄적인 지침을 제공합니다.

동일한 입력값을 사용하여 비동기 메서드를 사용하는 방법은 다음과 같습니다.

: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);
    
$vbLabelText   $csharpLabel

자동 취소 이전에 밀리초를 지정하기 위해 timeoutMs 매개변수를 선택적으로 제공할 수 있습니다. 기본값은 -1이며, 이는 시간 제한이 없다는 것을 의미하며 작업이 완료될 때까지 실행됩니다.

고급 처리 기술

복잡한 필기체 인식 시나리오의 경우 다음과 같은 고급 기술을 고려해 보세요.

영역별 OCR : 양식이나 구조화된 문서를 다룰 때, 손글씨가 포함된 특정 영역에 집중하려면 영역 기반 OCR을 사용하세요. 이 접근 방식은 처리 영역을 제한함으로써 정확도를 향상시킵니다.

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}");
$vbLabelText   $csharpLabel

진행 상황 추적 : 여러 필기 문서를 일괄 처리할 때 OCR 작업 진행 상황을 모니터링하기 위해 진행 상황 추적 기능을 구현하십시오.

ocrTesseract.OcrProgress += (sender, e) => 
{
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
ocrTesseract.OcrProgress += (sender, e) => 
{
    Console.WriteLine($"Processing: {e.ProgressPercent}% complete");
};
$vbLabelText   $csharpLabel

주의해야 할 어려움은 무엇인가요?

IronOCR은 전체적인 구조와 텍스트를 유지하는 데 높은 신뢰도를 보이지만, 필기체 인식에는 여전히 어려움을 겪어 부분적인 오류가 발생합니다. 일반적인 문제점은 추출된 출력물의 검증이 필요하다는 것입니다.

불규칙한 간격 : 인쇄된 텍스트는 글자 사이의 간격이 균일합니다. 필기체의 획 사이 간격과 글자 연결 간격은 사람마다 매우 다릅니다. 이로 인해 잘못된 문자 분리가 발생하여 ununiformed이 개별 문자(u n u n i f o c m e d)로 분리되어 단어가 아닌 경우를 보여줍니다.

필체 변화 : 사람마다 필체가 다르고, 같은 글자라도 쓸 때마다 다르게 씁니다. 글자 연결 방식과 패턴도 매우 다양합니다. 이는 엔진이 스트로크 경사, 압력 및 형태의 높은 변동성을 처리해야 하므로 "일률적인" 모델을 방지하며, 표준화된 글꼴을 사용할 때보다 패턴 일치의 신뢰성이 떨어지게 합니다.

애매한 문자 모양: 손글씨는 종종 간소화되거나 서둘러 쓴 획을 사용하여 애매한 모양을 만듭니다. 빠르게 쓴 ec처럼 보일 수 있으며, 연결된 li가 잘못 식별될 수 있습니다.

품질 및 해상도 문제 : 스캔 품질이 낮거나 해상도가 떨어지거나 잉크가 흐릿하면 인식 정확도가 크게 저하됩니다. 이러한 문제가 발생할 경우, 일반 문제 해결 가이드를 참조하여 해결 방법을 확인하십시오.

이 방법을 사용할 때는 출력 결과가 의도한 입력 결과와 일치하는지 확인하고, 특히 단어 간 간격이 좁거나 형태가 잘못된 단어에 주의를 기울이십시오. 사용 사례에 특정한 일반적인 오인식을 처리하기 위해 후처리 로직을 구현하는 것을 고려해 보세요.

경고 ReadHandwriting 메서드는 필기체에 있어 낮은 정확도의 OCR 추출만 달성할 수 있습니다.

자주 묻는 질문

이미지에서 손글씨를 추출할 때 어느 정도의 정확도를 기대할 수 있을까요?

IronOCR의 ReadHandwriting 방식은 불규칙한 간격과 획의 변화 등 필기체 OCR을 특히 어렵게 만드는 고유한 문제에도 불구하고 영어 필기체 인식에서 약 90%의 정확도를 달성합니다.

필기 인식에서 지원하는 언어는 무엇입니까?

IronOCR의 ReadHandwriting 메서드는 현재 영어만 지원합니다. 여러 언어를 지원하는 OCR을 사용하려면 특수 필기체 인식 메서드 대신 해당 언어 팩과 함께 표준 Read() 메서드를 사용해야 합니다.

필기 OCR 기능을 사용하려면 어떤 추가 패키지를 설치해야 하나요?

IronOCR에서 필기 인식 기능을 사용하려면 IronOCR 메인 라이브러리 외에 IronOcr.Extensions.AdvancedScan 패키지를 설치해야 합니다.

C#에서 기본적인 필기 인식 기능을 어떻게 구현하나요?

IronTesseract 인스턴스를 생성하고, LoadImage() 메서드를 사용하여 필기체 이미지를 불러온 다음, ReadHandwriting() 메서드를 호출하고, OcrResult에서 추출된 텍스트에 접근하세요. IronOCR은 복잡한 이미지 처리와 머신 러닝을 자동으로 수행합니다.

어떤 종류의 필기 문서를 처리할 수 있나요?

IronOCR은 역사 기록, 환자 접수 양식, 고객 설문 조사, 손글씨 메모 등 다양한 필기 문서를 처리할 수 있습니다. 이 라이브러리는 수동 처리 시 발생하기 쉬운 사람 필기체의 불규칙성을 해결하도록 설계되었습니다.

필기 인식 기능은 어떤 기술로 구현되었습니까?

IronOCR의 필기 인식 기능은 강력한 Tesseract 5 엔진을 기반으로 구축되었으며, 고급 이미지 처리와 머신 러닝 알고리즘을 결합하여 업계 최고 수준의 필기 인식 기능을 제공합니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 5,525,971 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronOcr
샘플을 실행하세요 이미지가 검색 가능한 텍스트로 바뀌는 것을 확인해 보세요.