스캔한 문서에서 데이터를 추출하고 싶으십니까? 노력하다 나노 넷™ 많은 AI 기반 OCR 스캐너 에서 정보를 추출하고 구성합니다. 스캔한 문서 자동적으로.
개요
세상이 종이와 필기에서 편리함을 위한 디지털 문서로 바뀌면서 이미지와 스캔한 문서를 의미 있는 데이터로 변환하는 것의 중요성이 높아졌습니다.
고도로 정확한 문서 데이터 추출에 대한 요구에 부응하기 위해 수많은 연구 시설과 기업(예: Google, AWS, Nanonets 등)은 컴퓨터 비전 및 자연어 처리(NLP) 분야의 기술에 깊이 집중했습니다.
딥 러닝 기술의 꽃피는 것은 추출할 수 있는 종류의 데이터로의 거대한 도약을 보장했습니다. 우리는 더 이상 텍스트 추출뿐만 아니라 테이블 및 키-값 쌍과 같은 다른 데이터 구조에도 제약을 받지 않습니다. 현재 많은 솔루션이 문서 데이터 추출에 있어 개인 및 비즈니스 소유자의 요구를 충족시키기 위해 다양한 제품을 제공합니다.
이 기사에서는 스캔한 문서에서 데이터를 추출하는 데 사용되는 현재 기술에 대해 자세히 설명하고 Python의 간단한 실습 자습서가 이어집니다. 또한 현재 시장에서 이 분야에서 최고의 제품을 제공하는 인기 있는 솔루션을 살펴보겠습니다.
데이터 추출이란?
데이터 추출은 비정형 데이터를 프로그램에 의해 해석 가능한 정보로 변환하여 인간이 더 많은 데이터를 처리할 수 있도록 하는 프로세스입니다. 여기에서는 스캔한 문서에서 추출하는 가장 일반적인 데이터 유형 몇 가지를 나열합니다.
텍스트 데이터
스캔한 문서에서 데이터를 추출하는 가장 일반적이고 중요한 작업은 텍스트를 추출하는 것입니다. 이 프로세스는 간단해 보이지만 스캔한 문서가 이미지 형식으로 표시되는 경우가 많기 때문에 실제로는 매우 어렵습니다. 또한 추출 방법은 텍스트 유형에 따라 크게 다릅니다. 텍스트는 대부분 조밀하게 인쇄된 형식으로 존재하지만 스캔이 덜한 문서나 스타일이 크게 다른 손으로 쓴 편지에서 희소 텍스트를 추출하는 기능도 똑같이 중요합니다. 이러한 프로세스를 통해 프로그램은 이미지를 기계로 인코딩된 텍스트로 변환할 수 있습니다. 여기서 우리는 추가 분석을 위해 구조화되지 않은 데이터(특정 형식 없이)에서 구조화된 데이터로 이미지를 추가로 구성할 수 있습니다.
테이블
표 형식은 사람의 눈으로 쉽게 해석할 수 있는 형식이므로 데이터 저장에 가장 널리 사용되는 접근 방식입니다. 스캔한 문서에서 표를 추출하는 프로세스에는 문자 감지 이상의 기술이 필요합니다. 적절한 표 추출을 수행하고 추가 계산을 위해 해당 정보를 구조화된 데이터로 변환하기 위해 선과 기타 시각적 특징을 감지해야 합니다. 컴퓨터 비전 방법(다음 섹션에서 자세히 설명)은 높은 정확도의 테이블 추출을 달성하는 데 많이 사용됩니다.
키-값 쌍
데이터 저장을 위해 문서에서 자주 채택하는 대체 형식은 KVP(키-값 쌍)입니다.
KVP는 본질적으로 키와 값이라는 두 가지 데이터 항목이 하나로 연결되어 있습니다. 키는 검색할 값의 고유 식별자로 사용됩니다. 고전적인 KVP의 예는 사전이며, 여기서 어휘는 키이고 해당 정의는 값입니다. 이러한 쌍은 일반적으로 눈에 띄지 않지만 실제로 문서에서 매우 자주 사용됩니다. 이름, 나이, 송장에 있는 항목의 가격과 같은 설문 조사의 질문은 모두 암시적으로 KVP입니다.
그러나 표와 달리 KVP는 알 수 없는 형식으로 존재하는 경우가 많으며 때로는 부분적으로 필기하기도 합니다. 예를 들어 키를 상자에 미리 인쇄할 수 있고 양식을 완성할 때 값을 손으로 쓸 수 있습니다. 따라서 KVP 추출을 자동으로 수행하기 위한 기본 구조를 찾는 것은 최첨단 시설 및 실험실에서도 지속적인 연구 프로세스입니다.
도
마지막으로 추출하거나 데이터 캡처 스캔한 문서 내의 그림에서. 원형 차트 및 막대 차트와 같은 통계 지표에는 문서에 대한 중요한 정보가 포함되는 경우가 많습니다. 좋은 데이터 추출 프로세스는 범례와 숫자에서 추론하여 추가 사용을 위해 그림에서 데이터를 부분적으로 추출할 수 있어야 합니다.
스캔한 문서에서 데이터를 추출하고 싶으십니까? 나노넷 제공™ 더 높은 정확도, 더 큰 유연성, 후 처리 및 광범위한 통합을위한 스핀!
데이터 추출 뒤에 숨은 기술
데이터 추출은 두 가지 주요 프로세스를 중심으로 진행됩니다. 광학 문자 인식 (OCR) 자연어 처리 (자연어).
OCR 추출은 텍스트 이미지를 기계 인코딩된 텍스트로 변환하는 프로세스이고 후자는 의미를 추론하기 위해 단어를 분석합니다. OCR과 함께 더 포괄적인 추출을 위해 테이블 및 KVP와 같은 앞서 언급한 데이터 유형을 추출하는 상자 및 라인 감지와 같은 다른 컴퓨터 비전 기술이 종종 수반됩니다.
데이터 추출 파이프라인의 핵심 개선 사항은 컴퓨터 비전 및 자연어 처리(NLP) 분야에 크게 기여한 딥 러닝의 발전과 밀접하게 연결되어 있습니다.
딥 러닝이란 무엇입니까?
딥 러닝은 인공 지능 시대의 과대 광고에 중요한 역할을 하며 수많은 응용 프로그램에서 지속적으로 최전선에 밀려났습니다. 전통적인 엔지니어링에서 우리의 목표는 주어진 입력에서 출력을 생성하는 시스템/기능을 설계하는 것입니다. 반면에 딥 러닝은 입력과 출력에 의존하여 소위 말하는 새로운 보이지 않는 데이터로 확장될 수 있는 중간 관계를 찾습니다. 신경망.
신경망 또는 다층 퍼셉트론 (MLP)는 인간의 두뇌가 학습하는 방식에서 영감을 받은 머신 러닝 아키텍처입니다. 네트워크에는 생물학적 뉴런을 모방하고 다른 정보가 제공될 때 "활성화"하는 뉴런이 포함됩니다. 뉴런 세트는 레이어를 형성하고 여러 레이어가 함께 쌓여 네트워크를 형성하여 여러 형태(예: 이미지 분류 또는 객체 감지를 위한 경계 상자)의 예측 목적을 제공합니다.
컴퓨터 비전 분야에서는 일종의 신경망 변형인 컨볼루션 신경망이 많이 적용됩니다. (CNN). 기존 레이어 대신 CNN은 특징 추출을 위해 텐서(또는 고차원 벡터)를 통과하는 컨볼루션 커널을 채택합니다. 결국 전통적인 네트워크 계층과 함께 CNN은 이미지 관련 작업에서 매우 성공적이며 OCR 추출 및 기타 특징 감지의 기반을 더욱 형성했습니다.
반면에 NLP는 시계열 데이터에 중점을 둔 다른 네트워크 집합에 의존합니다. 하나의 이미지가 서로 독립적인 이미지와 달리 앞 또는 뒤의 단어도 고려하면 텍스트 예측이 크게 도움이 될 수 있습니다. 지난 몇 년 동안 네트워크의 가족, 즉 장단기 기억 (LSTM), 이전 결과를 입력으로 사용하여 현재 결과를 예측합니다. 양방향 LSTM은 예측 결과를 향상시키기 위해 종종 채택되었으며, 여기서 이전과 이후의 결과가 모두 고려되었습니다. 그러나 최근 몇 년 동안 어텐션 메커니즘을 사용하는 변압기의 개념은 순차 시계열을 처리하는 기존 네트워크보다 높은 유연성으로 인해 더 나은 결과를 가져오기 시작했습니다.
데이터 추출의 응용
데이터 추출의 주요 목표는 구조화되지 않은 문서의 데이터를 구조화된 형식으로 변환하는 것입니다. 여기서 텍스트, 그림 및 데이터 구조의 매우 정확한 검색은 수치 및 컨텍스트 분석에 매우 유용할 수 있습니다. 이러한 분석은 특히 비즈니스에 매우 유용할 수 있습니다.
근무지에서 발생
비즈니스 기업과 대규모 조직은 매일 유사한 형식의 수천 개의 문서 작업을 처리합니다. 대형 은행은 수많은 동일한 신청서를 받고 연구팀은 통계 분석을 수행하기 위해 수많은 양식을 분석해야 합니다. 따라서 문서에서 데이터를 추출하는 초기 단계의 자동화는 인적 자원의 중복성을 크게 줄이고 작업자가 정보를 입력하는 대신 데이터 분석 및 애플리케이션 검토에 집중할 수 있도록 합니다.
- 신청 확인 — 회사는 수기로 작성했든 지원서를 통해서든 수많은 지원서를 받습니다. 대부분의 경우 이러한 응용 프로그램에는 확인을 위해 개인 ID가 포함될 수 있습니다. 여권이나 카드와 같은 신분증을 스캔한 문서는 일반적으로 유사한 형식으로 일괄 제공됩니다. 따라서 잘 작성된 데이터 추출기는 데이터(텍스트, 표, 그림, KVP)를 기계가 이해할 수 있는 텍스트로 빠르게 변환할 수 있으므로 이러한 작업에 소요되는 시간을 크게 줄이고 추출 대신 애플리케이션 선택에 집중할 수 있습니다.
- 지불 조정 — 지불 조정은 은행 거래 내역을 비교하여 계정 간의 숫자가 일치하는지 확인하는 프로세스입니다. 이 프로세스는 문서에서 데이터 추출을 주로 중심으로 하고 있습니다. 이는 상당한 규모와 다양한 수입원을 보유한 회사에게 어려운 문제입니다. 데이터 추출은 이 프로세스를 용이하게 하고 직원들이 잘못된 데이터에 집중하고 현금 흐름에 대한 잠재적인 사기 사건을 탐색할 수 있도록 합니다.
- 통계 분석 — 고객 또는 실험 참가자의 피드백은 기업 및 조직에서 제품 및 서비스 개선을 위해 사용되며 종합적인 피드백 평가에는 일반적으로 통계 분석이 필요합니다. 그러나 설문 데이터는 다양한 형식으로 존재하거나 다양한 형식의 텍스트 사이에 숨겨져 있을 수 있습니다. 데이터 추출은 문서에서 명백한 데이터를 일괄적으로 지적함으로써 프로세스를 용이하게 하고 유용한 프로세스를 찾는 프로세스를 용이하게 하여 궁극적으로 효율성을 높일 수 있습니다.
- 과거 기록 공유 — 의료에서 은행 서비스 전환에 이르기까지 대기업은 다른 곳에 이미 존재했을 수 있는 새로운 고객 정보를 필요로 하는 경우가 많습니다. 예를 들어, 이사로 인해 병원을 옮기는 환자는 새 병원에 도움이 될 수 있는 기존 의료 기록이 있을 수 있습니다. 이러한 경우 개인이 모든 정보를 자동으로 채울 수 있도록 스캔한 기록을 새 병원으로 가져오기만 하면 되므로 좋은 데이터 추출 소프트웨어가 유용합니다. 이는 편리할 뿐만 아니라 특히 의료 산업에서 중요한 환자 기록이 간과되는 광범위한 위험을 피할 수 있습니다.
스캔한 문서에서 데이터를 추출하고 싶으십니까? 나노넷 제공™ 더 높은 정확도, 더 큰 유연성, 후 처리 및 광범위한 통합을위한 스핀!
튜토리얼
데이터 추출을 수행하는 방법에 대한 명확한 보기를 제공하기 위해 스캔 문서에서 데이터 추출을 수행하는 두 가지 방법을 보여줍니다.
처음부터 건물
다음과 같이 PyTesseract 엔진을 통해 간단한 데이터 추출 OCR 엔진을 구축할 수 있습니다.
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
코드에 대한 자세한 내용은 공식 선적 서류 비치.
간단히 말해서 코드는 주어진 이미지에서 텍스트 및 경계 상자와 같은 데이터를 추출합니다. 이 엔진은 상당히 유용하지만 훈련을 위한 상당한 계산 능력으로 인해 고급 솔루션에서 제공하는 엔진만큼 강력하지 않습니다.
Google 문서 API 사용
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
궁극적으로 Google의 문서 AI를 사용하면 문서에서 수많은 정보를 높은 정확도로 추출할 수 있습니다. 또한 이 서비스는 일반 이미지와 야생 이미지 모두에 대한 텍스트 추출을 포함하여 특정 용도로도 제공됩니다.
를 참조하십시오 여기에서 지금 확인해 보세요. 이상입니다.
데이터 추출을 제공하는 현재 솔루션
문서 데이터 추출을 위한 API가 있는 대기업 외에도 매우 정확한 데이터를 제공하는 여러 솔루션이 있습니다. PDF OCR 서비스. 다양한 측면에 특화된 PDF OCR의 여러 옵션과 유망한 결과를 제공하는 것으로 보이는 최근 연구 프로토타입을 제시합니다*:
*참고 사항: 이미지 속 이미지와 같은 작업을 대상으로 하는 여러 OCR 서비스가 있습니다. 우리는 현재 PDF 문서 읽기에만 집중하고 있기 때문에 해당 서비스를 건너뛰었습니다.
- 구글 API — 가장 큰 온라인 서비스 제공업체 중 하나인 Google은 선구적인 컴퓨터 비전 기술로 문서 추출에서 놀라운 결과를 제공합니다. 사용량이 꽤 적은 경우 무료로 서비스를 사용할 수 있지만 API 호출이 증가하면 가격이 누적됩니다.
- 딥 리더 — Deep Reader는 ACCV Conference 2019에 발표된 연구 작업입니다. 여러 최신 네트워크 아키텍처를 통합하여 다음과 같은 작업을 수행합니다. 문서 일치, 텍스트 검색 및 노이즈 제거 이미지. 테이블 및 키-값-쌍 추출과 같은 추가 기능을 통해 데이터를 체계적으로 검색하고 저장할 수 있습니다.
- Nanonets ™ — 고도로 숙련된 딥 러닝 팀과 함께 Nanonets™ PDF OCR은 템플릿과 규칙에 완전히 독립적입니다. 따라서 Nanonets™는 특정 유형의 PDF에서 작동할 수 있을 뿐만 아니라 텍스트 검색을 위해 모든 문서 유형에 적용할 수도 있습니다.
스캔한 문서에서 데이터를 추출하고 싶으십니까? 나노넷 제공™ 더 높은 정확도, 더 큰 유연성, 후 처리 및 광범위한 통합을위한 스핀!
결론
결론적으로 이 기사는 스캔 문서에서 데이터를 추출하는 방법과 그 뒤에 숨겨진 문제와 이 프로세스에 필요한 기술을 포함하여 철저한 설명을 제공합니다.
서로 다른 방법에 대한 두 가지 자습서가 제공되며 기본적으로 제공되는 현재 솔루션도 참조용으로 제공됩니다.
- 2019
- 소개
- 절대
- 계정
- 정확한
- 달성
- 또한
- 추가
- 많은
- 발전하다
- AI
- 알고리즘
- All
- 이미
- 대안
- 분석하다
- 분석
- 다른
- API를
- API
- 어플리케이션
- 어플리케이션
- 접근
- 아키텍처
- 약
- 기사
- 인조의
- 인공 지능
- 주의
- 자동화
- 가능
- AWS
- 배경
- 은행
- 은행
- 기초
- 존재
- BEST
- 그 너머
- 가장 큰
- 경계
- 보물상자
- 빌드
- 사업
- 사업
- 카드
- 가지 경우
- 현금
- 캐시 플로
- 어떤
- 과제
- 도전
- 차트
- Checkout
- 고전적인
- 클라우드
- 현지 시간
- 암호
- 왔다
- 공통의
- 기업
- 회사
- 완전히
- 완료
- 포괄적 인
- 계산
- 컴퓨터
- 개념
- 컨퍼런스
- 자신
- 연결
- 끊임없이
- 이 포함되어 있습니다
- 기여
- 편의
- 편리한
- 전환
- 핵심
- 기업
- 동
- 수
- 결정적인
- Current
- 현재
- 고객
- 고객
- 데이터
- 데이터 처리
- 데이터 저장
- 거래
- 기술 된
- 디자인
- 세부 묘사
- Detection System
- 다른
- 어려운
- 디지털
- 서류
- 용이하게
- 효율성
- 직원
- 엔진
- 엔지니어링
- 특히
- 본질적으로
- 견적
- 등
- 평가
- 이벤트
- 예
- 외
- 실험
- 탐험
- 광대 한
- 추출물
- 가족
- 특색
- 특징
- 피드백
- Fields
- 발견
- 먼저,
- 유연성
- 흐름
- 초점
- 집중
- 집중
- 초점
- 수행원
- 중심
- 형태
- 체재
- 양식
- 무료
- 프랑스어
- 다하다
- 가득 찬
- 추가
- 골
- 좋은
- 구글
- 큰
- 매우
- 처리
- 손 -에
- 머리
- 건강 관리
- 의료 산업
- 도움이
- 여기에서 지금 확인해 보세요.
- 높은
- 더 높은
- 고도로
- history
- 병원
- 방법
- How To
- 그러나
- HTTPS
- 사람의
- 인사부
- 인간
- 영상
- 중요성
- 중대한
- 개선
- 포함
- 포함
- 수입
- 증가
- 개인
- 개인
- 산업
- 산업
- 정보
- 입력
- 영감
- 인텔리전스
- 발행물
- IT
- 일
- 키
- 키
- 실험실
- 언어
- 언어
- 넓은
- 지도
- 배우다
- 배우기
- 라인
- 명부
- 긴
- 기계
- 기계 학습
- 주요한
- 과반수
- 사람
- 태도
- 시장
- 경기
- 어울리는
- 의료
- 방법
- 배우기
- 가장
- 가장 인기 많은
- 움직이는
- 여러
- 즉
- 자연의
- 요구
- 네트워크
- 네트워크
- 표준
- 숫자
- 다수의
- 제공
- 제공
- 제공
- 오퍼링
- 제공
- 공무원
- 지속적으로
- 온라인
- 조작
- 옵션
- 주문
- 조직
- 최
- 기타
- 소유자
- 참가자
- 지불
- 실행할 수 있는
- 기간
- 확인
- 개척
- 인기 문서
- 가능성
- 힘
- 예측
- 예측
- 제시
- 예쁜
- 너무 이른
- 가격
- 방법
- 프로세스
- 처리
- 제품
- 프로그램
- 프로그램
- 장래가 촉망되는
- 제공
- 제공
- 목적
- 빨리
- RE
- 리더
- 읽기
- 받다
- 화해
- 기록
- 감소
- 에 관한
- 관계
- 의뢰
- 필요
- 필수
- 필요
- 연구
- 자료
- 응답
- 결과
- return
- 위험
- 스캐닝
- 초
- 서비스
- 서비스
- 세트
- 몇몇의
- 짧은
- 단기간의
- 비슷한
- 단순, 간단, 편리
- 이후
- 크기
- 소프트웨어
- 고체
- 솔루션
- 일부
- 전문
- 회전
- 최첨단
- 문
- 통계적인
- 저장
- 흐름
- 강한
- 구조화
- 실질적인
- 성공한
- 지원
- 설문조사
- 대상
- 작업
- 팀
- 기법
- 기술
- Technology
- test
- 세계
- 따라서
- 수천
- 을 통하여
- 시간
- 시대
- 함께
- t
- 에 대한
- 전통적인
- 트레이닝
- 자습서
- 유형
- 이해
- 유일한
- 사용
- 보통
- 가치
- 여러
- 확인
- 관측
- 시력
- 여부
- 동안
- 이내
- 없이
- 말
- 작업
- 근로자
- 세계
- 겠지
- XML
- 년