푸터 콘텐츠로 바로가기
OCR 도구

Python으로 OCR을 만드는 방법

세상은 방대한 양의 텍스트 정보로 가득 차 있습니다. 조금 더 접근하기 쉬우면 엄청나게 유용할 수 있는 많은 가치 있는 콘텐츠가 있습니다.

여기서 광학 문자 인식(OCR) 기술이 활약합니다. 컴퓨터가 인간처럼 이미지를 보고 텍스트를 "읽을" 수 있는 상황을 상상해 보세요. 이것은 컴퓨터 비전으로, 이미지에서 서로 다른 항목을 인식하고 식별할 수 있도록 컴퓨터를 훈련할 수 있는 컴퓨터 과학의 한 부분을 나타냅니다.

이 튜토리얼에서는 단순성과 다재다능함으로 알려진 프로그래밍 언어 Python을 사용하여 자체 OCR 시스템을 구축하는 과정을 안내해 드리겠습니다. Tesseract, IronOCR, OpenCV와 같은 라이브러리를 이용하여 문서 이미지에서 텍스트를 추출하고 조작하며 작업할 수 있는 가능성을 곧 열게 될 것입니다.

OCR 엔진의 전제조건 (광학 문자 인식)

우리의 OCR 시스템을 구축하기 전에, 몇 가지가 필요합니다:

  1. Python: 컴퓨터에 Python이 설치되어 있는지 확인하세요. 공식 Python 웹사이트에서 다운로드할 수 있습니다.
  2. Tesseract OCR 설치: Tesseract OCR은 Google에서 개발한 오픈 소스 OCR 엔진입니다. 이는 프로젝트에서 사용할 강력한 도구입니다. Tesseract 라이브러리를 GitHub에서 다운로드하고 Tesseract OCR 설치 절차에 대해 읽어보세요.
  3. Python 라이브러리: 이 프로젝트에서는 두 가지 중요한 Python 라이브러리를 사용할 것입니다: pytesseractopencv-python 라이브러리. 명령줄 프롬프트나 터미널에서 다음 명령어를 사용하여 설치할 수 있습니다:

    pip install pytesseract opencv-python
    pip install pytesseract opencv-python
    SHELL

Python에서 OCR을 구축하는 방법: 그림 1

OCR 시스템을 구축하는 단계

Python OCR 라이브러리와 간단한 Python 스크립트의 도움으로 Python 코드를 사용하여 쉽게 OCR을 구축할 수 있습니다.

1단계: 라이브러리 임포트

먼저 필요한 라이브러리를 임포트해야 합니다:

import cv2  # OpenCV library for computer vision
import pytesseract  # Tesseract library for OCR
import cv2  # OpenCV library for computer vision
import pytesseract  # Tesseract library for OCR
PYTHON

2단계: 이미지를 읽고 처리하기

OpenCV를 사용하여 이미지를 로드하고 OCR 정확도를 향상시키기 위해 전처리합니다:

# Load the image using OpenCV
image = cv2.imread('sample_image.png') 

# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

# Apply thresholding or other preprocessing techniques if needed
# This step helps in enhancing the quality for better OCR results
# Load the image using OpenCV
image = cv2.imread('sample_image.png') 

# Convert the image to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 

# Apply thresholding or other preprocessing techniques if needed
# This step helps in enhancing the quality for better OCR results
PYTHON

3단계: Tesseract를 사용한 OCR

이제 Tesseract OCR 엔진을 사용하여 처리된 이미지에서 OCR을 수행할 때입니다:

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

# Use pytesseract to perform OCR on the grayscale image
text = pytesseract.image_to_string(gray_image)
# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

# Use pytesseract to perform OCR on the grayscale image
text = pytesseract.image_to_string(gray_image)
PYTHON

4단계: 결과 표시

원본 이미지와 추출된 텍스트를 시각화하고 싶다면 OpenCV를 사용하여 표시할 수 있습니다:

# Display the original image using OpenCV
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 

# Print the extracted text to the console
print("Extracted Text:", text) 

cv2.destroyAllWindows()  # Close the OpenCV window
# Display the original image using OpenCV
cv2.imshow('Original Image', image) 
cv2.waitKey(0) 

# Print the extracted text to the console
print("Extracted Text:", text) 

cv2.destroyAllWindows()  # Close the OpenCV window
PYTHON

원본 이미지

Python에서 OCR을 구축하는 방법: 그림 2

추출된 텍스트

Python에서 OCR을 구축하는 방법: 그림 3

보시다시피, 결과는 이미지의 품질과 복잡성에 따라 달라질 수 있으며, 테이블이 포함된 복잡한 구조의 이미지를 위해 추가 학습(기계 학습 훈련과 유사한)이 필요할 수도 있습니다.

IronOCR

데이터로 넘쳐나는 세상에서 인쇄된 텍스트를 기계로 읽을 수 있는 콘텐츠로 쉽게 변환할 수 있는 능력은 혁신적인 능력입니다.

IronOCR에 오신 것을 환영합니다 – 개발자가 강력한 광학 문자 인식(OCR) 기능을 어플리케이션에 쉽게 통합할 수 있게 하는 최첨단 기술입니다.

스캔된 문서에서 데이터를 추출하든, 데이터 입력을 자동화하든, 접근성을 향상시키든 간에, IronOCR은 전통적인 텍스트 인식의 경계를 넘는 포괄적인 솔루션을 제공합니다.

이 탐색에서는 IronOCR의 다양한 기능을 살펴보고 물리적 세계와 디지털 세계 간의 격차를 해소할 수 있는 잠재력을 강조합니다.

IronOCR 설치 중

NuGet 패키지 관리자 콘솔을 통해 IronOCR을 쉽게 설치할 수 있으며, 다음 명령어를 실행하기만 하면 됩니다.

Install-Package IronOcr

IronOCR은 또한 공식 NuGet 웹사이트에서 다운로드할 수 있습니다.

IronOCR을 사용하여 이미지에서 텍스트 추출하기

이 섹션에서는 IronOCR을 사용하여 이미지를 통한 텍스트를 어떻게 쉽게 추출할 수 있는지 확인할 것입니다. 아래는 이미지에서 텍스트를 추출하는 소스 코드입니다.

using IronOcr;
using System;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    input.AddImage("r3.png");
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    Console.WriteLine(result.Text);
}
using IronOcr;
using System;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    input.AddImage("r3.png");
    OcrResult result = ocr.Read(input);
    string text = result.Text;
    Console.WriteLine(result.Text);
}
$vbLabelText   $csharpLabel

산출

Python에서 OCR을 구축하는 방법: 그림 4

결론

이 튜토리얼에서는 Python에서 광학 문자 인식(OCR) 시스템을 구축하는 과정을 탐구하며, 이미지에서 텍스트를 놀라울 만큼 쉽게 추출할 수 있는 능력을 공개했습니다.

Tesseract 및 OpenCV와 같은 라이브러리를 활용하여 이미지를 로드하고 전처리하는 것에서부터 Tesseract OCR 엔진을 사용하여 텍스트를 추출하는 기본 단계를 거치며 안내했습니다.

IronOCR과 같은 고급 솔루션이 해결하려는 정확성 제한과 같은 잠재적인 문제점에도 언급했습니다.

DIY 경로를 선택하든 고급 도구를 채택하든, OCR의 세계는 이미지를 실행 가능한 텍스트로 변환하고 데이터 입력을 간소화하며 접근성을 증대하는 약속으로 유혹합니다. 이 새로운 지식을 통해 시각적 영역과 디지털 영역을 매끄럽게 결합하는 여정을 시작할 준비가 되었습니다.

IronOCR 시작을 위해 다음 링크를 방문하세요. 이미지에서 텍스트를 추출하는 전체 튜토리얼을 보시려면 여기를 방문하세요.

오늘 IronOCR을 무료로 시도해보고 싶다면 상업 환경에서 워터마크 없이 모든 용도와 잠재력을 탐구할 수 있는 IronOCR에서 제공하는 체험판을 선택하세요. 15일이 지나면, 라이선스를 구입하여 계속 사용할 수 있습니다.

칸나오팟 우돈판트
소프트웨어 엔지니어
카나팟은 소프트웨어 엔지니어가 되기 전 일본 홋카이도 대학교에서 환경 자원학 박사 학위를 취득했습니다. 학위 과정 중에는 생물생산공학과 소속 차량 로봇 연구실에서 활동하기도 했습니다. 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