티스토리 뷰
[ML] OCR(Optical Character Recognition, 광학 문자 인식)
Daniel803 2023. 7. 13. 07:51AWS에서 설명하는 OCR은 아래와 같다.
: OCR은 이미지 파일의 텍스트를 기계가 읽을 수 있는 텍스트 포맷으로 변환하는 과정을 말한다. 예를 들어, 당신이 어떤 양식이나 영수증을 스캔한다면, 당신의 컴퓨터는 이를 이미지 파일로 저장할 것이다. 당신은 텍스트 에디터로 이 이미지 파일을 수정, 검색 또는 단어 개수 세기 등을 할 수 없다. 하지만 당신이 ocr을 이용해 이 이미지 파일을 텍스트 문서로 변환해 텍스트 데이터로 저장한다면 수정이나 검색 등이 가능하다.
: Optical Character Recognition (OCR) is the process that converts an image of text into a machine-readable text format. For example, if you scan a form or a receipt, your computer saves the scan as an image file. You cannot use a text editor to edit, search, or count the words in the image file. However, you can use OCR to convert the image into a text document with its contents stored as text data.
왜 OCR이 중요할까? (Why is OCR important?)
: 대부분의 비즈니스 워크플로우는 인쇄 매체에서 정보를 수신하는 것과 관련이 있다. 종이 양식, 송장, 스캔한 법률 문서, 출력된 계약서들은 모두 비즈니스 과정의 일부다. 이 방대한 양의 서류는 저장하고 관리하는데 많은 시간과 공간이 필요하다. 종이 없이 문서를 관리하는 것이 바람직하지만, 문서를 이미지로 스캔하는 데는 어려움이 따른다. 이 과정은 수작업이 필요한 지루하고 느린 과정이다.
게다가, 디지털화된 문서 내용은 텍스트가 숨겨진 이미지 파일로 생성된다. 이미지 파일 내에 텍스트는 텍스트 문서처럼 워드 프로세싱 소프트웨어로 처리가 불가하다. OCR은 이미지 속 텍스트를 텍스트 데이터로 변환해 이 문제를 해결하고 다른 소프트웨어로 분석이 가능하게 한다. 그런 다음 이 데이터를 분석하고 운영을 간소화해 프로세스를 자동화하고 생산성을 향상시킬 수 있다.
: Most business workflows involve receiving information from print media. Paper forms, invoices, scanned legal documents, and printed contracts are all part of business processes. These large volumes of paperwork take a lot of time and space to store and manage. Though paperless document management is the way to go, scanning the document into an image creates challenges. The process requires manual intervention and can be tedious and slow.
Moreover, digitizing this document content creates image files with the text hidden within it. Text in images cannot be processed by word processing software in the same way as text documents. OCR technology solves the problem by converting text images into text data that can be analyzed by other business software. You can then use the data to conduct analytics, streamline operations, automate processes, and improve productivity.
OCR은 어떻게 동작할까? (How does OCR work?)
: OCR은 아래와 같은 순서로 동작한다.
(1) 이미지 획득 (Image acquisition)
: 스캐너는 문서를 읽어들이고 이를 이진 데이터로 변환한다. OCR은 스캔한 이미지를 분석해 밝은 영역을 배경, 어두운 부분을 텍스트로 분류한다.
(2) 전처리 (Preprocessing)
: OCR은 우선 이미지를 정리하고 에러를 제거해 읽을 준비를 한다. 아래는 클리닝(정리) 기법이다.
● 스캔하는 동안 문서의 기울기를 약간 조정해 정렬 문제 해결
● 디지털 이미지의 얼룩을 제고하거나 텍스트 이미지의 가장자리를 부드럽게
● 이미지 내의 텍스트 상자 및 선 정리
● 다국어 OCR 기술을 통한 스크립트 인식
(3) 텍스트 인식 (Text recognition)
- 텍스트 인식을 위한 OCR 알고리즘이나 소프트웨어 처리의 두 가지 메인 타입은 패턴 매칭(pattern matching)과 피쳐 추출하기(feature extraction)이다.
a. 패턴 매칭 (Pattern matching)
: 패턴 매칭은 글리프(glyph)라 불리는 문자 이미지 격리와 이 격리된 문자를 저장된 비슷한 글리프와 비교를 하는 방식으로 동작한다. 패턴 인식은 저장된 글리프가 입력 글리프와 비슷한 폰트와 배열을 갖고 있을 때만 동작한다. 이 방법은 알려진 폰트로 문자가 타이핑 된 문서를 스캔한 이미지에서 잘 동작한다.
b. 피쳐 추출하기 (Feature extraction)
: 피쳐 추출하기는 글리프를 선과 닫힌 고리, 선의 방향, 선의 교차점으로 분해한다. 그리고 이러한 특징을 사용해 저장된 글리프 중 가장 일치하거나 유사한 것을 찾는다.
c. 후처리 (Postprocessing)
: 분석 후에 OCR은 추출된 텍스트 데이터를 컴퓨터 파일로 변환한다. 어떤 OCR은 스캔한 문서의 이전과 이후 버전을 모두 포함한 주석처리가 된 PDF 파일을 생성하기도 한다.
AWS의 내용을 참고했으니, AWS에서 제공하는 두 가지 OCR에 대해 알아보자.
(1) Amazon Textract (아마존 텍스트랙트)는 머신러닝 서비스로 OCR을 사용해 자동적으로 텍스트와 손으로 쓴 글씨, PDF와 같은 스캔한 문서의 데이터를 추출한다. 수천개의 다양한 레이아웃과 형식을 가진 문서를 매우 빠른 속도로 읽을 수 있다. 추출할 때 모든 인식된 것에 대한 신뢰도 점수를 반환해 사용자가 결과물을 어떻게 사용할지 합리적인 결정을 내릴 수 있도록 해준다.
(2) Amazon Rekognition (아마존 레코그니션)은 수백만 개의 이미지와 비디오를 몇 분안에 분석하고 AI를 통해 인간의 시각 리뷰 태스크를 강화한다. 사용자는 아마존 레고그니션 API를 사용해 이미지와 비디오로부터 텍스트를 추출할 수 있다. 또한 도로 표지판, 소셜 미디어 게시물, 상품 포장물 등의 이미지나 비디오의 기울어지고 왜곡된 텍스트 역시 추출이 가능하다.
참고
- https://aws.amazon.com/what-is/ocr/?nc1=h_ls
- https://ai-inform.tistory.com/entry/OCR%EC%9D%B4%EB%9E%80-OCR-%EC%89%AC%EC%9A%B4-%EC%84%A4%EB%AA%85
'기술(Tech, IT) > 머신 러닝(Machine Learning)' 카테고리의 다른 글
[ML] Joint Probability (결합 확률) (0) | 2023.09.13 |
---|---|
[ML] Tesseract (테서랙트) (0) | 2023.07.17 |
[ML] Calinski-Harabasz Index (칼린스키-하라바츠 인덱스) (0) | 2023.06.27 |
[ML] Disentangled Representation Learning(DRL) (0) | 2023.06.21 |
[ML] K-Nearest Neighbors Algorithms(KNN, K-최근접 이웃 알고리즘) (0) | 2023.06.20 |
- Total
- Today
- Yesterday
- machine learning
- Python
- 투 포인터
- 티스토리챌린지
- java
- 오블완
- I2C
- 이코노미스트
- Hash Map
- defaultdict
- DICTIONARY
- vertex shader
- The Economist
- socket programming
- 소켓 프로그래밍
- leetcode
- C++
- Computer Graphics
- 딕셔너리
- ml
- 이코노미스트 에스프레소
- join
- 파이썬
- Android
- 머신 러닝
- 리트코드
- min heap
- 안드로이드
- tf-idf
- The Economist Espresso
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |