C# 및 .NET의 한국어 OCR

이 문서의 다른 버전 :

IronOCR은 .NET 코더가 한국어를 포함한 126 개 언어로 이미지 및 PDF 문서에서 텍스트를 읽을 수 있도록 하는 C# 소프트웨어 구성 요소입니다.

.NET 개발자 전용으로 제작된 Tesseract의 고급 포크이며 속도와 정확성 모두에서 정기적으로 다른 Tesseract 엔진보다 성능이 뛰어납니다.

IronOcr.Languages.Korean의 내용

이 패키지에는 .NET 용 108 OCR 언어가 포함되어 있습니다.

  • 한국어
  • 한국 최고
  • 한국어 빠른
  • 한국어 수직
  • 한국어 VerticalBest
  • 한국어 VerticalFast

다운로드

한국어 언어 팩 [한국어 (韓國 語)]
* Download as 지퍼
* Install with
NuGet

설치

가장 먼저 해야 할 일은 한국어 OCR 패키지를 .NET 프로젝트에 설치하는 것입니다.

PM> Install-Package IronOCR.Languages.Korean

코드 예

이 C# 코드 예제는 이미지 또는 PDF 문서에서 한국어 텍스트를 읽습니다.


//PM> Install-Package IronOcr.Languages.Korean
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;
using (var Input = new OcrInput(@"images\Korean.png"))
{
    var Result = Ocr.Read(Input);
    var AllText = Result.Text;
    // Process the text read from the image
}

IronOCR을 선택하는 이유는 무엇입니까?

IronOCR은 설치가 쉽고 완전하며 잘 문서화된 .NET 소프트웨어 라이브러리입니다.

IronOCR을 선택하면 외부 웹 서비스를 사용하지 않고 지속적인 비용을 지불하거나 인터넷을 통해 기밀 문서를 전송하지 않고도 99.8 % 이상의 OCR 정확도를 달성할 수 있습니다.

C# 개발자가 Vanilla Tesseract보다 IronOCR을 선택하는 이유 :

  • 단일 DLL 또는 Nuget으로 설치
  • Tesseract 5, 4 및 3 엔진을 즉시 사용할 수 있습니다.
  • 정확도 99.8 %는 일반 Tesseract보다 훨씬 뛰어난 성능을 보입니다.
  • 놀라운 속도와 멀티 스레딩
  • MVC, WebApp, 데스크탑, 콘솔 및 서버 애플리케이션 호환
  • 작업 할 Exes 또는 C++ 코드 없음
  • 전체 PDF OCR 지원
  • 거의 모든 이미지 파일 또는 PDF에서 OCR을 수행하려면
  • 완전한 .NET Core, Standard 및 FrameWork 지원
  • Windows, Mac, Linux, Azure, Docker, Lambda, AWS에 배포
  • 바코드 및 QR 코드 읽기
  • OCR을 XHTML로 내보내기
  • OCR을 검색 가능한 PDF 문서로 내보내기
  • 멀티 스레딩 지원
  • NuGet 또는 OcrData 파일을 통해 관리되는 126 개의 국제 언어
  • 이미지, 좌표, 통계 및 글꼴을 추출합니다. 텍스트 뿐만이 아닙니다.
  • 상용 및 독점 응용 프로그램 내에서 Tesseract OCR을 재배포하는 데 사용할 수 있습니다.

IronOCR은 실제 이미지와 사진과 같은 불완전한 문서 또는 디지털 노이즈나 결함이 있을 수 있는 저해상도 스캔 작업을 할 때 빛납니다.

다른 .NET Tesseract API 및 웹 서비스와 같은 .NET 플랫폼 용 다른 무료 OCR 라이브러리는 이러한 실제 사용 사례에서 그렇게 잘 수행되지 않습니다.

Tesseract 5를 사용한 OCR-C#으로 코딩 시작

아래 코드 샘플은 C# 또는 VB .NET을 사용하여 이미지에서 텍스트를 읽는 것이 얼마나 쉬운 지 보여줍니다.

짧막한 예제


string Text = new IronTesseract().Read(@"img\Screenshot.png").Text;

구성 가능한 Hello World


// PM> Install-Package IronOCR.Languages.Korean
using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;
using (var Input = new OcrInput())
{
    Input.AddImage("images/sample.jpeg");
    // 여러 이미지를 추가 할 수 있습니다.
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}

C# PDF OCR

모든 PDF 문서에서 텍스트를 추출하는 데 동일한 접근 방식을 유사하게 사용할 수 있습니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;
using (var input = new OcrInput())
{
    input.AddPdf("example.pdf", "password");
    // 특정 PDF 페이지 번호를 OCR로 선택할 수도 있습니다.

    var Result = Ocr.Read(input);

    Console.WriteLine(Result.Text);
    Console.WriteLine($"{Result.Pages.Count()} Pages");
    // PDF의 모든 페이지 당 1 페이지
}

MultiPage TIFF 용 OCR

OCR 여러 페이지 문서를 포함한 TIFF 파일 형식 읽기. TIFF는 검색 가능한 텍스트가 있는 PDF 파일로 직접 변환할 수도 있습니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("multi-frame.tiff");
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}

바코드 및 QR

IronOCR의 고유 한 기능은 텍스트를 스캔하는 동안 문서에서 바코드와 QR 코드를 읽을 수 있다는 것입니다. OcrResult.OcrBarcode 클래스의 인스턴스는 개발자에게 스캔된 각 바코드에 대한 자세한 정보를 제공합니다.


// using IronOcr;
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;

using (var input = new OcrInput())
{
    input.AddImage("img/Barcode.png");
    var Result = Ocr.Read(input);
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
        // 유형 및 위치 속성도 노출됨
    }
}

이미지의 특정 영역에 대한 OCR

IronOCR의 모든 스캔 및 읽기 방법은 페이지에서 텍스트를 읽고자하는 페이지를 정확히 지정하는 기능을 제공합니다. 이것은 표준화된 양식을 볼 때 매우 유용하며 많은 시간을 절약하고 효율성을 향상시킬 수 있습니다.

자르기 영역을 사용하려면 System.Drawing.Rectangle 객체를 사용할 수 있도록 System.Drawing 시스템 참조를 추가해야 합니다.


using IronOcr;
using System.Drawing;  // 어셈블리 참조 추가로 System.Drawing 사용

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;

using (var Input = new OcrInput())
{
    var ContentArea = new Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // 치수는 픽셀 단위입니다.

    Input.Add("document.png", ContentArea);

    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}

저품질 스캔을 위한 OCR

IronOCR OcrInput 클래스는 일반 Tesseract가 읽을 수 없는 스캔을 수정할 수 있습니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;

using (var Input = new OcrInput(@"img\Potter.LowQuality.tiff"))
{
    Input.DeNoise(); // 디지털 노이즈 및 스캔 불량 수정
    Input.Deskew();  // 회전 및 원근 수정
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}

OCR 결과를 검색 가능한 PDF로 내보내기

복사 가능한 텍스트 문자열로 이미지를 PDF로 변환합니다. 검색 엔진 및 데이터베이스에 의해 색인화될 수 있습니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;

using (var Input = new OcrInput())
{
    Input.Title = "Quarterly Report";
    Input.AddImage("image1.jpeg");
    Input.AddImage("image2.png");
    Input.AddImage("image3.gif");

    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}

TIFF를 검색 가능한 PDF로 변환

TIFF 문서 (또는 이미지 파일 그룹)를 인트라넷, 웹 사이트 및 Google 검색 엔진에서 색인화할 수 있는 검색 가능한 PDF로 직접 변환합니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;

using (var Input = new OcrInput())
{
    Input.AddMultiFrameTiff("example.tiff");
    var Result = Ocr.Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}

OCR 결과를 HTML로 내보내기

OCR 이미지를 XHTML로 변환합니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;
using (var Input = new OcrInput())
{
    Input.Title = "Html Title";
    Input.AddImage("image1.jpeg");
    var Result = Ocr.Read(Input);
    Result.SaveAsHocrFile("results.html");
}

OCR 이미지 향상 필터

IronOCR은 OCR 성능을 향상시키기 위해 OcrInput 객체에 고유한 필터를 제공합니다.

이미지 향상 코드 예

OCR 입력 이미지를 더 높은 품질로 만들어 더 빠르고 더 나은 OCR 결과를 생성합니다.


using IronOcr;

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;

using (var Input = new OcrInput(@"LowQuality.jpeg"))
{
    Input.DeNoise(); // 디지털 노이즈 및 스캔 불량 수정
    Input.Deskew();  // 회전 및 원근 수정
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}

OCR 이미지 필터 목록

IronOCR에 내장된 OCR 성능을 향상시키는 입력 필터는 다음과 같습니다.

  • OcrInput.Rotate (double degrees) - 이미지를 시계 방향으로 회전합니다. 시계 반대 방향의 경우 음수를 사용합니다.
  • OcrInput.Binarize () - 이 이미지 필터는 중간 접지 없이 모든 픽셀을 검정색 또는 흰색으로 바꿉니다. 텍스트 대비 배경이 매우 낮은 경우에 유용합니다.
  • OcrInput.ToGrayScale () - 모든 픽셀을 회색 음영으로 바꿉니다. 속도는 향상될 수 있습니다.
  • OcrInput.Contrast () - 자동으로 대비를 증가시킵니다. 저 대비 스캔에서 OCR 속도와 정확도를 향상시킵니다.
  • OcrInput.DeNoise () - 디지털 노이즈를 제거합니다. 노이즈가 예상되는 곳에서만 사용하세요.
  • OcrInput.Invert () - 모든 색상을 반전시킵니다. 예: 흰색이 검은색으로, 검은색이 흰색으로 변합니다.
  • OcrInput.Dilate () - 이미지의 개체 경계에 픽셀을 추가합니다. 침식의 반대입니다.
  • OcrInput.Erode () - 물체 경계의 픽셀을 제거합니다.
  • OcrInput.Deskew () - 이미지를 표준 방향으로 조정합니다. 기울어진 스캔에서 유용합니다.
  • OcrInput.DeepCleanBackgroundNoise () - 무거운 배경 노이즈 제거. 극단적인 배경 노이즈가 있는 경우에만 권장됩니다.
  • OcrInput.EnhanceResolution - 저품질 이미지의 해상도를 향상시킵니다. OcrInput.MinimumDPIOcrInput.TargetDPI는 필요 시 자동으로 저해상도를 감지 및 개선합니다.

CleanBackgroundNoise. 다소 시간이 많이 걸리는 설정이지만 디지털 노이즈 및 다양한 결함을 제거하여 읽을 수 없는 이미지를 처리할 수 있습니다.

EnhanceContrast는 이미지 배경 대비를 증가시켜 OCR 정확도 및 속도를 향상시킵니다.

EnhanceResolution은 저해상도 이미지 (275dpi 미만)를 자동 감지하고 업스케일링하여 텍스트를 선명하게 보이게 합니다. 시간이 소요될 수 있지만 전체 OCR 시간을 줄입니다.

언어 IronOCR은 22 개의 국제 언어 팩을 지원하며, 설정을 통해 여러 언어를 선택할 수 있습니다.

전략 IronOCR은 빠르고 덜 정확한 문서 스캔과 AI를 활용한 높은 정확성을 위한 전략 두 가지를 지원합니다.

ColorSpace는 회색조 또는 컬러로 OCR을 선택할 수 있습니다. 일반적으로 회색조가 최상입니다.

DetectWhiteTextOnDarkBackgrounds는 IronOCR이 검정색 텍스트와 어두운 배경의 내용을 감지하여 읽을 수 있게 합니다.

InputImageType은 전체 문서 또는 스니펫 등 다양한 입력을 정의할 수 있도록 합니다.

RotateAndStraighten은 문서의 기울기나 원근을 자동 보정하는 고급 기능입니다.

ReadBarcodes는 IronOCR이 바코드와 QR 코드를 자동으로 탐지 및 읽을 수 있게 합니다.

ColorDepth는 OCR 라이브러리가 사용하는 색 농도를 설정하여 품질을 향상시킵니다.

126 언어 팩

IronOCR 은 이 웹 사이트 또는 NuGet 패키지 관리자에서 다운로드 할 수 있는 DLL로 배포되는 언어 팩을 통해 126개의 국제 언어를 지원합니다.

언어에는 독일어, 프랑스어, 영어, 중국어, 일본어 등이 포함됩니다. 여권 MRZ, MICR 수표, 재무 데이터, 번호판 등에 대한 전문 언어 팩이 있습니다. 자신이 만든 파일을 포함하여 모든 tesseract "traineddata" 파일을 사용할 수도 있습니다.

언어 예

다른 OCR 언어 사용.


// using IronOcr;
// PM> Install IronOcr.Languages.Arabic

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Arabic;

using (var input = new OcrInput())
{
    input.AddImage("img/arabic.gif");
    // 필요한 경우 이미지 필터 추가
    // 이 경우 생각한 입력조차도 품질이 매우 낮습니다.
    // IronTesseract는 기존의 Tesseract가 할 수 없는 것을 읽을 수 있습니다.

    var Result = Ocr.Read(input);

    // 콘솔은 Windows에서 아랍어를 쉽게 인쇄할 수 없습니다.
    // 대신 디스크에 저장합시다.
    Result.SaveAsTextFile("arabic.txt");
}

다국어 예

동시에 여러 언어를 사용하여 OCR을 수행할 수도 있습니다. 이 기능은 유니 코드 문서에서 영어 메타 데이터와 URL을 얻는 데 정말로 도움이 될 수 있습니다.


// using IronOcr;
// PM> Install IronOcr.Languages.ChineseSimplified

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.ChineseSimplified;
Ocr.AddSecondaryLanguage(OcrLanguage.Korean);

// 여러 언어를 추가 할 수 있습니다.

using (var input = new OcrInput())
{
    input.Add("multi-language.pdf");
    var Result = Ocr.Read(input);
    Result.SaveAsTextFile("results.txt");
}

자세한 OCR 결과 개체

IronOCR은 각 OCR 작업에 대해 OCR 결과 개체를 반환합니다. 일반적으로 개발자는 이미지에서 텍스트를 스캔하기 위해 이 개체의 text 속성만 사용합니다. 그러나 OCR 결과 DOM은 이보다 훨씬 더 발전했습니다.


using IronOcr;
using System.Drawing; // 어셈블리 참조 추가

var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.Korean;
Ocr.Configuration.EngineMode = TesseractEngineMode.TesseractAndLstm;
Ocr.Configuration.ReadBarCodes = true; //!중대한

using (var Input = new OcrInput(@"images\sample.tiff"))
{
    OcrResult Result = Ocr.Read(Input);
    var Pages = Result.Pages;
    var Words = Pages[0].Words;
    var Barcodes = Result.Barcodes;
    // 방대하고 상세한 API를 찾으려면 여기를 탐색하십시오.
    // -페이지, 블록, Paraphaphs, 라인, 단어, 문자
    // -이미지 내보내기, 글꼴 좌표, 통계 데이터
}

공연

IronOCR은 성능을 조정하거나 입력 이미지를 크게 수정할 필요없이 즉시 작동합니다.

Speed is Blazing : IronOcr.2020 +는 이전 빌드보다 최대 10 배 더 빠르고 오류가 250% 이상 적습니다.

더 알아보기

C#, VB, F# 또는 기타 .NET 언어의 OCR에 대해 자세히 알아 보려면 IronOCR을 사용하는 방법에 대한 실제 예를 제공하고 최대한 활용하는 방법에 대한 뉘앙스를 보여줄 수 있는 커뮤니티 자습서를 참조하십시오. 이 도서관.

.NET 개발자를 위한 전체 개체 참조도 제공됩니다.