푸터 콘텐츠로 바로가기
OCR 도구
오픈소스 라이브러리를 사용하여 C#에서 OCR을 구현하는 방법

OCR C# 오픈 소스 (개발자용 목록)

OCR(광학 문자 인식)은 스캔한 문서를 오늘날 디지털 세상에서 활용하는 방식을 완전히 바꿔놓는 혁신적인 기술입니다. 컴퓨터가 스캔된 PDF 문서를 포함한 다양한 소스에서 텍스트를 인식하고 추출할 수 있게 하여, 효과적으로 PDF 문서를 편집하고 상호작용할 수 있습니다. 광학 문자 인식 (OCR) 프로그램 중 하나인 Adobe Acrobat은 스캔된 문서에서 신속하게 텍스트를 추출하여 편집 가능한 PDF 및 검색 가능한 이미지 PDF로 변환할 수 있도록 합니다.

개발자는 Tesseract 및 IronOCR와 같은 OCR 라이브러리를 활용하여 최첨단 알고리즘과 기계 학습 방법을 사용하는 강력한 도구와 API에 액세스할 수 있습니다. 이 라이브러리는 정확한 텍스트 인식을 가능하게 하며, 이전에 스캔한 문서와 새로운 문서에서 유용한 정보를 관리하고 검색하는 것을 더 쉽게 만듭니다. OCR는 원활한 콘텐츠 분석을 가능하게 하여 스캔한 문서와 페이지 이미지를 최대한 활용하여 비즈니스와 개인의 생산성을 극대화합니다. OCR는 종이 기반 기록을 디지털화하거나, 청구서에서 데이터를 추출하거나, 문서 접근성을 단순히 향상하는 데 사용되든, 현재 기술의 중요한 도구입니다.

Tesseract

가장 유명한 오픈 소스 OCR 엔진은 Tesseract라고 불리며, 처음에는 Hewlett-Packard에 의해 만들어졌습니다. 2006년 이후로 Google이 Apache 라이선스 하에 배포되는 이 무료 소프트웨어 프로젝트를 지원하고 있습니다.

가장 정확한 오픈 소스 및 무료 시스템 중 하나는 Tesseract OCR 엔진입니다. Tesseract는 최신 안정 버전인 4.1.1에서 LSTM을 기반으로 하여 116개의 언어를 지원합니다.

자체 구축 인터페이스가 없기 때문에 명령 줄 인터페이스에서 실행할 때 별도의 GUI(그래픽 사용자 인터페이스)의 지원이 필요합니다. 신경망을 사용하여 새로운 정보를 학습할 수 있으며 고급 이미지 전처리 파이프라인을 가지고 있습니다. Tesseract .NET SDK는 .NET 애플리케이션에 OCR 기능을 추가할 수 있는 가장 효과적인 방법이며, 텍스트 인식 기능을 제공하는 최고의 솔루션 중 하나입니다. Tesseract는 현재 시장에서 의심할 여지 없이 최고의 OCR 라이브러리입니다.

GOCR

GPL(OS 라이센스)로 개발된 OCR(광학 문자 인식) 프로그램은 GOCR로 불립니다. 텍스트 파일을 다시 문서의 스캔된 이미지로 변환합니다. 프로그램을 시작하고 SF에서 개발 팀을 관리한 후, Joerg Schulenburg는 (매우) 낮은 시간 대로 오늘날 패키지를 계속 처리하고 있습니다.

GOCR는 여러 프론트 엔드에서 사용할 수 있기 때문에 다른 운영 체제, 네트워크 애플리케이션, 아키텍처로 포팅하는 것이 비교적 간단합니다. 다양한 그림 파일 형식을 읽을 수 있으며, 2010년까지 품질이 지속적으로 개선되었습니다.

GOCR에 따르면 높이 20-60 픽셀의 단일 열 산세리프 폰트를 처리할 수 있습니다. 라틴어 이외의 알파벳으로 작성된 텍스트, 세리프 폰트, 겹치는 문자, 다양한 글꼴, 노이즈가 있는 사진, 과도한 기울기 각도로 인해 발생하는 문제를 보고합니다. GOCR는 바코드 번역도 가능합니다.

CuneiForm

무료 오픈 소스 기술인 CuneiForm은 이제 Cognitive OpenOCR로도 알려져 있습니다. 내장형 출력 및 데이터베이스가 있습니다. 23개의 다른 언어를 다루며 텍스트 형식 스캔, 문서 레이아웃 분석 및 식별과 같은 작업도 수행합니다.

Cognitive Technologies는 OpenOCR 용 BSD 무료 및 BSD 라이센스를 개발했습니다. Cross-platform 사용을 지원하지만 Linux 사용자에게는 그래픽 인터페이스가 제공되지 않습니다.

Dot NET Framework 2.0 이상 애플리케이션에서 문자 인식 작업을 단순화하기 위해 래퍼 라이브러리 Puma Dot NET이 사용됩니다. 데이터 처리 중 사전 점검을 실행하여 인식 품질을 향상시킵니다.

CuneiForm은 전자 사본의 종이 문서와 이미지 파일을 구조나 원본 문서 글꼴에 영향을 미치지 않고 편집 가능한 형태로 자동 또는 반자동으로 변환하도록 설계된 기술입니다. 이 시스템은 전자 문서를 일괄 처리하거나 한 번에 하나씩 처리하기 위한 두 부분으로 구성됩니다. 또한, 이 시스템은 러시아어와 영어의 혼합을 지원합니다. 2009년 Andrei Borovsky에 의해 생성된 분기만이 다른 혼합 언어의 인식을 지원합니다. 다른 언어를 인식하도록 시스템을 교육하는 것은 어려운 작업입니다. 각 언어는 dat-파일과 연관되어 있으며, 그 구조와 생성 과정은 개발자들에 의해 공개되지 않았기 때문입니다.

Kraken

Kraken은 Ocropus의 문제점을 해결하기 위해 개발되었지만, 다른 기능에는 영향을 미치지 않습니다. 자체 CLSTM 신경망 라이브러리를 활용하며, 이전 프로젝트에서 얻은 귀중한 경험을 활용하고 새 데이터를 이용합니다. 다른 플랫폼에서 효과적으로 작동하기 위해 특정 외부 라이브러리의 사용을 요구합니다. 저장된 정보를 통해 잠재적인 데이터 검증 문제에 대한 더 정확한 예측을 할 수 있습니다. 또한, 그 작동 방법론은 새로운 모델의 쉬운 배포와 교육을 용이하게 합니다.

A9T9

A9T9는 사진 파일에서 텍스트를 추출하고 이미지와 PDF 문서를 변환할 수 있는 무료 OCR 소프트웨어입니다. Tesseract OCR 엔진을 위한 그래픽 사용자 인터페이스(GUI)를 제공합니다.

이 프로그램은 설정하기 쉽습니다. 무엇보다도, 완전히 무료이며 오픈소스입니다. 스파이웨어와 애드웨어가 없습니다.

PDF 파일이나 이미지를 열면 소스 파일의 내용이 왼쪽 창에 표시됩니다. 문서에 여러 페이지가 있거나 다중 페이지 문서인 경우, 페이지 하단의 화살표를 사용하여 페이지 사이를 탐색할 수 있습니다.

OCR 프로세스를 시작하려면, 초록색 OCR 버튼을 클릭하면 출력이 오른쪽 두 번째 창에 나타납니다. 출력 텍스트를 텍스트 파일과 워드 문서로 저장할 수 있는 옵션이 있습니다.

IronOCR

표준 Tesseract 라이브러리와 달리, IronOCR는 Tesseract를 확장하여 더 높은 정확도, 향상된 성능, 보강된 안정성을 제공하는 네이티브 C# OCR 라이브러리를 제공합니다. IronOCR는 .NET 프로그램과 웹사이트에서 PDF 및 이미지에서 텍스트를 추출하는 데 사용할 수 있습니다. 다양한 외국어를 지원하며 텍스트나 구조화된 데이터 출력을 생성할 수 있습니다. 바코드와 포함된 텍스트가 있는 이미지를 스캔할 수 있습니다. 이 라이브러리는 콘솔, 웹, MVC 및 데스크톱에서 개발된 .NET 응용 프로그램에서 사용할 수 있습니다. 개발 팀은 상용 배포를 위한 라이선스 과정에서 직접 지원을 제공합니다. IronOCR는 최신 Visual Studio 버전과 호환됩니다.

IronOCR의 이점

  • 최신 Tesseract 5 엔진을 사용하여 IronOCR는 다양한 사진이나 PDF 파일에서 종이 문서, 바코드 및 QR 코드를 읽을 수 있습니다. 이 패키지는 데스크톱, 콘솔 및 웹 응용 프로그램에 OCR을 간단하게 통합할 수 있게 합니다.
  • IronOCR는 스캔된 PDF를 검색 가능한 PDF로 변환할 수 있도록 OCR을 수행할 수 있게 합니다.
  • 단어 목록 및 사용자 지정 언어와 함께, IronOCR는 전 세계 125개 이상의 언어를 지원합니다.
  • IronOCR는 20가지 이상의 다양한 바코드 및 QR 코드를 스캔할 수 있습니다.
  • IronOCR는 바코드 데이터뿐만 아니라 평문 텍스트 출력을 제공할 수 있습니다. 개발자는 대체 구조화 데이터 개체 패러다임을 사용하여 시스템에 직접 입력할 모든 내용을 검색할 수 있습니다. 이는 웹 응용 프로그램에서 구조화된 제목, 단락, 줄, 단어 및 문자를 포함합니다.

다음은 주어진 이미지에서 텍스트 내용을 인식하여 텍스트로 변환하는 데 사용할 샘플 코드입니다.

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
$vbLabelText   $csharpLabel

위 코드 스니펫에서는 IronTesseract을(를) 사용하여 기능을 개발하고 있습니다. 첫째, 하나 이상의 이미지 파일을 추가할 수 있도록 새로운 OcrInput 객체를 인스턴스화합니다. AddImage 메서드를 사용하여 각각의 이미지 경로를 지정함으로써 원하는 만큼 이미지를 추가할 수 있습니다. 이미지를 추가한 후, 제공된 입력에 대해 OCR을 수행하기 위해 IronTesseract 객체에서 Read 메서드가 호출됩니다. 결과 텍스트는 콘솔을 통해 추출 및 표시됩니다.

아래 출력은 이전에 제공된 이미지에서 추출된 텍스트를 보여주며, 이미지에서 텍스트가 성공적으로 추출되었음을 입증합니다.

OCR C# 오픈 소스 (개발자용 목록) 그림 1 - 출력

자세한 IronOCR 설명을 위해 이 게시물을 참조하세요.

결론

OCR 오픈소스 도구를 통해 우리는 소스 코드를 사용하여 자체 프로그램을 구축할 수 있습니다. 그러나 일부 도구에는 코딩 문제 발생 시 지원을 제공할 공식 라이브러리 또는 전담 팀이 없습니다. Tesseract의 문서도 일반 사용 시나리오를 위한 샘플 코드 또는 튜토리얼이 부족하여 초보자가 코드와 라이브러리를 이해하기 어렵게 만듭니다.

IronOCR는 .NET Framework Standard 2, .NET Framework 4.5, .NET Core 2, 3, 5 등 다양한 .NET 프로젝트를 지원하며 Mono, Xamarin, Azure와 같은 최신 기술과도 호환됩니다. IronOCR 기술을 활용하여 우리는 Tesseract의 결과를 향상시키고 부정확하게 스캔된 문서나 이미지를 교정할 수 있습니다. 복잡한 Tesseract 사전 시스템은 NuGet 패키지를 통해 관리됩니다. 우리는 Iron OCR 라이브러리를 사용하여 OCR 도구를 개발합니다.

IronOCR를 사용하면 추가 구성 없이 프로그램을 사용할 수 있으며, PDF 파일, 다중 프레임 TIFF 및 모든 일반 이미지 형식을 지원할 수 있습니다. 바코드 인식 기능도 제공하여 이미지에서 바코드 데이터를 추출하고 바코드 값을 읽을 수 있습니다. IronOCR는 무료 체험판을 제공하는 비용 효율적인 개발 버전을 제공하며, 영구 라이선스는 추가 비용 없이 IronOCR 번들에 포함됩니다. IronOCR 번들은 단일 결제로 여러 플랫폼을 지원합니다. IronOCR의 가격에 대한 자세한 정보는 이 페이지를 참조하십시오.

칸나오팟 우돈판트
소프트웨어 엔지니어
카나팟은 소프트웨어 엔지니어가 되기 전 일본 홋카이도 대학교에서 환경 자원학 박사 학위를 취득했습니다. 학위 과정 중에는 생물생산공학과 소속 차량 로봇 연구실에서 활동하기도 했습니다. 2022년에는 C# 기술을 활용하여 Iron Software의 엔지니어링 팀에 합류했고, 현재 IronPDF 개발에 집중하고 있습니다. 카나팟은 IronPDF에 사용되는 대부분의 코드를 직접 작성하는 개발자로부터 배울 수 있다는 점에 만족하며, 동료들과의 소통을 통해 배우는 것 외에도 Iron Software에서 일하는 즐거움을 누리고 있습니다. 코딩이나 문서 작업을 하지 않을 때는 주로 PS5로 게임을 하거나 The Last of Us를 다시 시청하는 것을 즐깁니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me