IronOCR를 사용하여 Azure OCR 서비스를 구축하는 방법

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

Iron Software는 Azure OCR 통합에서 상호운용성 문제를 제거하는 OCR(광학 문자 인식) 라이브러리를 만들었습니다. Azure에서 OCR 라이브러리를 사용하는 것은 항상 개발자에게 조금 고통스러운 일이었습니다. 이와 같은 많은 OCR 문제에 대한 해결책은 IronOCR입니다.

Microsoft Azure를 위한 IronOCR 기능

IronOCR는 Microsoft Azure에서 OCR 서비스를 구축하기 위한 다음 기능을 포함합니다:

  • PDF를 텍스트를 쉽게 추출할 수 있도록 검색 가능한 문서로 변환합니다
  • 이미지를 검색 가능한 문서로 변환하여 이미지에서 텍스트를 추출합니다
  • 바코드와 QR 코드를 읽습니다
  • 뛰어난 정확성
  • 현지에서 작동하며 SaaS(서비스로서의 소프트웨어)가 필요 없습니다. SaaS는 Microsoft Azure와 같은 클라우드 제공업체가 다양한 애플리케이션을 호스팅하고 이를 최종 사용자에게 제공하는 소프트웨어 배포 모델입니다.
  • 번개 같은 속도

최고의 OCR 엔진인 Iron Software의 IronOCR가 개발자가 어떤 입력 문서에서도 텍스트를 쉽게 추출할 수 있도록 만드는 방법을 살펴보겠습니다.

Azure OCR 서비스 시작하기

샘플을 시작하려면 먼저 IronOCR를 설치해야 합니다.

  1. C#으로 새로운 Console 애플리케이션을 만듭니다.
  2. NuGet 통해 IronOCR 설치하려면 다음 명령어를 입력하거나 NuGet 패키지 관리를 선택하여 IronOCR 검색하세요. 이는 아래에 표시됩니다.
  3. Program.cs 파일을 다음과 같이 수정하세요.

    • IronOcr 네임스페이스를 가져와 PDF 파일의 내용을 읽고 추출하는 OCR 기능을 사용합니다.
    • 이미지에서 텍스트를 추출할 수 있도록 새로운 IronTesseract 객체를 생성합니다.
using IronOcr;
using System;

namespace IronOCR_Ex
{
    class Program
    {
        static void Main(string[] args)
        {
            var ocr = new IronTesseract();
            using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
            {
                var result = ocr.Read(Input); // Read PNG image File
                Console.WriteLine(result.Text); // Output extracted text to console
                Console.ReadLine();
            }
        }
    }
}
using IronOcr;
using System;

namespace IronOCR_Ex
{
    class Program
    {
        static void Main(string[] args)
        {
            var ocr = new IronTesseract();
            using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
            {
                var result = ocr.Read(Input); // Read PNG image File
                Console.WriteLine(result.Text); // Output extracted text to console
                Console.ReadLine();
            }
        }
    }
}
$vbLabelText   $csharpLabel
  1. 다음으로 Purgatory.PNG라는 이미지를 엽니다. 이 이미지는 Dante의 신곡의 일부입니다 - 제가 좋아하는 책 중 하나입니다. 그림은 다음 그림처럼 생겼습니다.

 IronOCR 의 광학 문자 판독 기능을 사용하여 추출할 텍스트

그림 2 - IronOCR의 광학 문자 읽기 기능으로 추출할 텍스트

  1. 위의 입력 이미지 텍스트에서 위 텍스트를 추출한 후의 출력입니다.

추출된 텍스트

그림 3 - 추출된 텍스트

  1. PDF 문서와 동일한 작업을 수행해 봅시다. PDF 문서에는 그림 2와 동일한 텍스트가 포함되어 있습니다.

유일한 차이점은 이미지 대신에 PDF 문서를 사용할 것이라는 점입니다. 다음 코드를 입력합니다:

var OCR = new IronTesseract();
using (var input = new OcrInput())
{
    input.Title = "Divine Comedy - Purgatory"; // Give title to input document 
    // Supply optional password and name of document
    input.AddPdf("..\\Documents\\Purgatorio.pdf", "dante");
    var result = OCR.Read(input); // Read the input file

    result.SaveAsSearchablePdf("SearchablePDFDocument.pdf"); 
}
var OCR = new IronTesseract();
using (var input = new OcrInput())
{
    input.Title = "Divine Comedy - Purgatory"; // Give title to input document 
    // Supply optional password and name of document
    input.AddPdf("..\\Documents\\Purgatorio.pdf", "dante");
    var result = OCR.Read(input); // Read the input file

    result.SaveAsSearchablePdf("SearchablePDFDocument.pdf"); 
}
$vbLabelText   $csharpLabel

이 코드는 이미지에서 텍스트를 추출하는 이전 코드와 거의 동일합니다.

여기서는 현재 PDF 문서(이 경우 Purgatorio.pdf)를 읽기 위해 OcrInput 메서드를 사용합니다. PDF 파일에 제목이나 비밀번호와 같은 메타데이터가 있으면 이를 입력할 수도 있습니다.

결과는 검색 가능한 PDF 문서로 저장되어 텍스트를 검색할 수 있습니다.

PDF 파일이 너무 크면 예외가 발생할 수 있습니다.

  1. Windows 애플리케이션에 대해 충분히 이야기했습니다; Microsoft Azure에서 OCR을 어떻게 사용할 수 있는지 살펴보겠습니다.

IronOCR의 장점은 마이크로서비스 아키텍처에서 Azure 함수로 Microsoft Azure와 매우 잘 작동한다는 것입니다. Microsoft Azure 함수가 어떻게 IronOCR와 함께 작동할지에 대한 매우 간단한 예가 있습니다. 이 Microsoft Azure 함수는 이미지에서 텍스트를 추출합니다.

public static class OCRFunction
{
    public static HttpClient hcClient = new HttpClient();

    [FunctionName("IronOCRFunction_EX")]
    public static async Task<IActionResult> Run([HttpTrigger] HttpRequest hrRequest, ExecutionContext ecContext)
    {
        var URI = hrRequest.Query["image"];
        var saStream = await hcClient.GetStreamAsync(URI);

        var ocr = new IronTesseract();
        using (var inputOCR = new OcrInput(saStream))
        {
            var outputOCR = ocr.Read(inputOCR);
            return new OkObjectResult(outputOCR.Text);
        }
    }
} 
public static class OCRFunction
{
    public static HttpClient hcClient = new HttpClient();

    [FunctionName("IronOCRFunction_EX")]
    public static async Task<IActionResult> Run([HttpTrigger] HttpRequest hrRequest, ExecutionContext ecContext)
    {
        var URI = hrRequest.Query["image"];
        var saStream = await hcClient.GetStreamAsync(URI);

        var ocr = new IronTesseract();
        using (var inputOCR = new OcrInput(saStream))
        {
            var outputOCR = ocr.Read(inputOCR);
            return new OkObjectResult(outputOCR.Text);
        }
    }
} 
$vbLabelText   $csharpLabel

이 함수로 받은 이미지를 OCR 엔진에 직접 공급하여 추출된 텍스트를 출력합니다.

Microsoft에 따르면 Microsoft Azure에 대한 간단한 요약입니다:

Microsoft Azure Microservices는 각 핵심 기능 또는 서비스가 개별적으로 빌드되고 배포되는 애플리케이션 빌드에 대한 아키텍처 접근 방식입니다. 마이크로서비스 아키텍처는 분산되어 있으며 느슨하게 결합되어 있어 하나의 구성 요소의 고장이 전체 앱을 망치지 않습니다. 독립 구성 요소가 정의된 API 계약으로 같이 작동하고 소통합니다. 빨리 변화하는 비즈니스 요구를 충족하고 새로운 기능을 시장에 더 빨리 선보이기 위해 마이크로서비스 애플리케이션을 빌드합니다.

IronOCR의 추가 기능들 .NET 또는 Microsoft Azure에

  • 거의 모든 파일, 이미지 또는 PDF에서 OCR을 수행할 수 있는 기능
  • 번개 같은 속도로 OCR 입력을 처리
  • 뛰어난 정확성
  • 바코드 및 QR 코드를 읽습니다
  • 현지에서 실행되며 SaaS가 필요 없습니다
  • PDF 및 이미지를 검색 가능한 문서로 변환할 수 있습니다
  • Microsoft Cognitive Services에서 제공하는 Azure OCR의 훌륭한 대안

OCR 성능 개선을 위한 이미지 필터

  • OcrInput.Rotate - 이미지를 시계 방향으로 몇 도 회전합니다. 반시계 방향으로 회전하려면 음수를 사용하십시오.
  • OcrInput.Binarize() - 이 이미지 필터는 모든 픽셀을 중간 색상 없이 검정색 또는 흰색으로 바꿉니다. 이로 인해 OCR 성능이 향상됩니다.
  • OcrInput.ToGrayScale() - 이 이미지 필터는 모든 픽셀을 회색조로 변환합니다. 이로 인해 OCR 속도가 향상됩니다.
  • OcrInput.Contrast() - 대비를 자동으로 높입니다. 이 필터는 저대비 스캔에서 OCR 속도 및 정확도를 향상시킵니다.
  • OcrInput.DeNoise() - 디지털 노이즈를 제거합니다. 이 필터는 입력 문서에 노이즈가 예상되는 경우에만 사용해야 합니다.
  • OcrInput.Invert() - 모든 색상을 반전합니다.
  • OcrInput.Dilate() - 팽창(Dilation)은 이미지 내 모든 객체의 경계에 픽셀을 추가합니다.
  • OcrInput.Erode() - 침식은 객체 경계의 픽셀을 제거합니다.
  • OcrInput.Deskew() - 이미지를 회전시켜 바로 세워지고 직각이 되도록 합니다. 이는 OCR에 매우 유용한데, Tesseract는 5도 이하로 왜곡된 스캔을 처리하는 데 어려움을 겪을 수 있습니다.
  • OcrInput.DeepCleanBackgroundNoise() - 심한 배경 소음 제거.
  • OcrInput.EnhanceResolution - 저화질 이미지의 해상도를 향상시킵니다.

속도 성능

다음 예제가 따라옵니다:

var OCR = new IronTesseract();
OCR.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
OCR.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
OCR.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
OCR.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
OCR.Language = OcrLanguage.EnglishFast;
using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
{
    var Result = OCR.Read(Input);
    Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
OCR.Configuration.BlackListCharacters = "~`$#^*_}{][|\\";
OCR.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
OCR.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
OCR.Configuration.EngineMode = TesseractEngineMode.LstmOnly;
OCR.Language = OcrLanguage.EnglishFast;
using (var Input = new OcrInput("..\\Images\\Purgatory.PNG"))
{
    var Result = OCR.Read(Input);
    Console.WriteLine(Result.Text);
}
$vbLabelText   $csharpLabel

가격 및 라이센스 옵션

기본적으로 모두 일회성 구매인 평생 라이센스 원칙에 따라 작동하는 유료 라이센스 티어 세 가지가 있습니다.

그리고 예, 이는 개발 목적에는 무료입니다.

추가 정보

  • 추가 리소스는 다음 링크에서 찾을 수 있습니다: 리소스
  • API 참조는 여기에서 찾을 수 있습니다: API 참조
  • IronOCR 제품에 대한 지원은 여기에서 찾을 수 있습니다: 지원
  • Iron Software에 문의: 연락 정보

Azure 및 기타 시스템에서 OCR을 실행하는 .NET 애플리케이션을 위한 IronOCR 기능

  • IronOCR는 125개의 국제 언어를 지원합니다. 각 언어는 Fast, Standard, Best 품질로 제공됩니다. 사용 가능한 일부 언어 팩은 다음과 같습니다:
    • 불가리어
    • 아르메니아어
    • 크로아티아어
    • 아프리칸스어
    • 덴마크어
    • 체코어
    • 필리핀어
    • 핀란드어
    • 프랑스어
    • 독일어
    • 많은 다른 언어 팩도 사용할 수 있으며, 이를 보시려면 다음 링크를 따라가세요. IronOCR 언어 팩
  • .NET에서 바로 작동합니다
    • Xamarin 지원
    • Mono 지원
    • Microsoft Azure 지원
    • Microsoft Azure에서 Docker 지원
    • PDF 문서 지원
    • Multiframe Tiffs 지원
    • 주요 이미지 형식 모두 지원
  • 다음 .NET Framework들이 지원됩니다:
    • .NET Framework 4.5 이상
    • .NET Standard 2
    • .NET Core 2
    • .NET Core 3
    • .NET Core 5
  • IronOCR를 작동하는 데 Tesseract(유니코드 및 100개 이상의 언어를 지원하는 오픈소스 OCR 엔진)가 설치되어 있을 필요가 없습니다.
    • Tesseract보다 향상된 정확성을 가지고 있습니다.
    • Tesseract보다 향상된 속도를 가지고 있습니다.
  • 낮은 품질의 문서 또는 파일 스캔을 보정합니다.
  • 낮은 품질의 왜곡된 문서 또는 파일 스캔을 보정합니다.

광학 문자 인식(OCR)이란?

위키백과에 따르면: 광학 문자 인식은 타이핑된, 인쇄된 텍스트의 이미지를 기계에 인코딩된 텍스트로 전자 또는 기계적으로 변환하는 것입니다. 이는 스캔된 문서, 문서의 사진, 장면 사진 또는 이미지 위에 겹쳐져 있는 자막 텍스트로부터 가능합니다. OCR은 Optical Character Recognition의 약자입니다. 기본적으로 4가지 유형의 광학 문자 인식이 있습니다:

  • OCR - Optical Character Recognition, 입력 문서에서 타자된 텍스트를 한 글자 또는 글리프(예를 들어 'a'의 다른 글꼴처럼 약속된 기호 세트 내의 요소 기호)씩 인식합니다.
  • OWR - Optical Word Recognition, 입력 문서에서 타자된 텍스트를 한 단어씩 인식합니다.
  • ICR - Intelligent Character Recognition, 인쇄된 스크립트(문자들이 다른 문자들과 연결되지 않은)와 같은 인쇄된 텍스트와 필기체 텍스트를 한 글자 또는 글리프씩 인식합니다.
  • IWR - Intelligent Word Recognition, 필기체 텍스트를 인식합니다.

자주 묻는 질문

Azure에서 C# 애플리케이션에 OCR 기능을 통합하려면 어떻게 해야 할까요?

Azure에서 C# 애플리케이션에 OCR 기능을 통합하려면 새 콘솔 애플리케이션을 만들고 NuGet을 통해 IronOCR을 설치하면 됩니다. Install-Package IronOcr 명령을 사용하거나 NuGet 패키지 관리자에서 IronOCR을 검색하세요.

IronOCR을 Azure의 기본 OCR 서비스보다 사용하는 장점은 무엇인가요?

IronOCR은 Azure의 기본 OCR 서비스에 비해 정확도 향상, 처리 속도 향상, SaaS 없이 로컬에서 실행 가능 등 여러 장점을 제공합니다. 또한 다양한 언어를 지원하고 OCR 성능을 향상시키는 이미지 필터 기능도 제공합니다.

OCR 텍스트 추출을 위한 Microsoft Azure Function을 어떻게 설정하나요?

Microsoft Azure Function에서 OCR 텍스트 추출을 설정하려면 IronOCR을 사용하여 이미지에서 텍스트를 추출하는 함수를 만들 수 있습니다. 이는 마이크로서비스 아키텍처의 일부로, OCR 기능을 Azure 애플리케이션에 원활하게 통합할 수 있도록 해줍니다.

IronOCR은 OCR 처리에서 여러 언어를 지원할 수 있습니까?

네, IronOCR은 125개 국제 언어를 지원하며, 각 언어별로 빠른 품질, 표준 품질, 최고 품질 옵션을 제공하여 전 세계적인 애플리케이션에 적합합니다.

IronOCR은 OCR 정확도를 향상시키기 위해 어떤 이미지 처리 옵션을 제공합니까?

IronOCR은 OCR 결과의 정확성과 신뢰성을 향상시키기 위해 회전, 이진화, 회색조 변환, 대비 조정, 노이즈 제거, 반전, 팽창, 침식, 기울기 보정, 심층 배경 노이즈 제거 및 해상도 향상과 같은 다양한 이미지 처리 옵션을 제공합니다.

IronOCR은 Azure 배포를 위해 다양한 .NET Framework와 호환됩니까?

네, IronOCR은 .NET Framework 4.5 이상, .NET Standard 2, .NET Core 2, .NET Core 3 및 .NET Core 5와 호환됩니다. 또한 Xamarin, Mono를 지원하며 Microsoft Azure의 Docker 환경에 배포할 수 있습니다.

Azure에서 IronOCR을 실행하려면 추가 소프트웨어가 필요합니까?

Azure에서 IronOCR을 실행하는 데 추가 소프트웨어는 필요하지 않습니다. IronOCR은 독립적으로 작동하며 Tesseract를 설치할 필요 없이 향상된 정확도와 속도를 제공합니다.

IronOCR에 사용할 수 있는 라이선스 옵션은 무엇인가요?

IronOCR은 일회성 구매로 평생 사용할 수 있는 라이선스 모델을 기반으로 세 가지 유료 라이선스 등급을 제공합니다. 개발 목적으로는 라이선스가 무료이므로 프로젝트 규모 확장에 유연성을 제공합니다.

IronOCR을 사용하여 이미지와 PDF 파일을 검색 가능한 문서로 변환하려면 어떻게 해야 하나요?

IronOCR은 OCR 기능을 활용하여 텍스트를 추출하고 인식함으로써 이미지와 PDF 파일을 검색 가능한 문서로 변환하여 쉽게 검색하고 색인화할 수 있도록 해줍니다.

IronOCR을 사용하여 바코드와 QR 코드를 읽는 과정은 무엇인가요?

IronOCR은 내장 기능을 사용하여 바코드와 QR 코드를 스캔하고 데이터를 추출함으로써 Azure의 C# 애플리케이션에 이러한 코드를 쉽게 통합할 수 있도록 지원합니다.

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

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

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

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

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

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