Azure Document Intelligence 인스턴스 생성

OCR, 문서 분석 및 인스턴스 생성

Azure Document Intelligence의 주요 기능, 요금 구조, 그리고 CMD/SDK를 통한 인스턴스 생성 및 API 호출 방법을 실전 중심으로 설명한다.

AI
Cloud
Azure
저자

Kwangmin Kim

공개

2025년 11월 03일

1 Azure Document Intelligence 개요

Azure Document Intelligence(이전 Form Recognizer)는 AI 기반 문서 이해 서비스로, 스캔 문서나 이미지에서 텍스트, 표, 구조를 자동으로 추출한다.

1.1 주요 특징

  • OCR (Optical Character Recognition): 인쇄 및 필기 텍스트 인식
  • 구조 분석: 표, 키-값 쌍, 체크박스 등 문서 레이아웃 파악
  • 사전 학습 모델: 영수증, 청구서, ID 문서 등 즉시 사용 가능
  • 사용자 지정 모델: 비즈니스 특화 문서에 대한 맞춤형 학습 지원

2 주요 기능 및 모델

2.1 문서 분석 모델

모든 문서 유형에 대한 기본적인 텍스트 및 구조 추출을 제공한다.

Read (OCR)
- 인쇄 텍스트 및 필기체 인식
- 검색 불가능한 PDF를 검색 가능한 PDF로 변환
- 고해상도 추출 및 다국어 지원
- 수기(손글씨)를 제외한 텍스트는 거의 100%에 가까운 정확도의 성능을 보임
- 만약 복잡한 수식이 있으면 기본 옵션으론 추출 정확도가 매우 떨어지지만
- 고급 기능에서formula모드를 선택하면 정확도가 100%가까지 올라간다.(별도 요금 청구됨)

Layout
- 문서 구조 분석 (표, 표 머리글, 체크박스, 라디오 버튼 등)
- 텍스트와 구조 요소의 위치 정보 제공

General Document
- content
- searchable pdf로도 같이 다운로드 가능
- 하지만 출력된 pdf에 수식은 텍스트로 변환되지 않고 이미지로 출력된다.
- result: 범용 문서에서 구조화된 데이터 반환
- 키-값 쌍(Key-Value Pairs) JSON 추출
- code: python code로 OCR 분석을 할 수 있는 code도 제공

2.2 특정 문서에 사전 학습된 모델

특정 문서 유형에 최적화된 모델로 별도 학습 없이 즉시 사용 가능하다.

모델 추출 정보 활용 분야
Invoice (청구서) 송장 번호, 공급자/고객 정보, 총액, 세금, 품목 재무/회계 자동화
Receipt (영수증) 판매점, 날짜/시간, 총액, 품목 경비 처리
ID Document 여권/면허증 정보, MRZ 신원 확인 (KYC)
Contract (계약서) 계약 당사자, 주요 날짜, 조항 법률/금융
Bank Statement 계좌 정보, 거래 내역 금융 서비스
US Tax Forms W-2, 1099, 1040 등 세무 자동화

2.3 사용자 지정 모델

비즈니스 고유 문서에 대한 맞춤형 모델을 학습시킬 수 있다.

Custom Extraction (추출 모델)
- 정적 레이아웃(템플릿) 또는 동적 문서에서 특정 필드 추출
- 최소 5개 샘플 문서로 학습 가능

Custom Classification (분류 모델)
- 문서 유형 자동 분류 (예: 계약서 vs 청구서)
- 적절한 추출 모델 자동 선택

Composed Model (복합 모델)
- 여러 추출 모델을 결합하여 단일 API로 호출

2.4 확장 기능 (Add-on)

기본 기능 외 선택적으로 활성화할 수 있는 고급 기능이다.

  • Formulas: 수학 수식 인식
  • Barcodes: 바코드 정보 추출
  • Font/Style: 텍스트 스타일 속성 (굵게, 기울임 등)
  • Query Fields: 자연어 질문으로 원하는 필드 추출 (Generative AI 기반)

Document Intelligence Studio를 통해 코드 없이 시각적으로 모델을 테스트하고 학습할 수 있다.

3 요금 구조

Azure Document Intelligence는 처리한 페이지 수모델 종류에 따라 과금되는 종량제 방식이다.

3.1 주요 요금표 (S0 표준 등급 기준)

항목 모델/기능 1,000페이지당 가격 비고
무료 (F0) 모든 모델 월 500페이지 무료 테스트용, 응답 2페이지 제한
Read (OCR) 텍스트 추출 $1.50 가장 기본적인 OCR
Prebuilt Models Layout, Invoice, Receipt 등 $10 특정 문서 최적화
Query Fields AI 기반 필드 추출 $10 자연어 질의 방식
Custom Classification 문서 유형 분류 $3 문서 종류 식별
Custom Extraction 맞춤형 추출 모델 $30 가장 높은 단가
Add-ons 고해상도, 수식, 스타일 등 $6 (추가) 기본 모델에 추가
Model Training 사용자 지정 모델 학습 시간당 $3 학습 시에만 발생

요금 산정 출처

3.2 비용 최적화 팁

모델 선택 전략
- 단순 텍스트 추출: Read ($1.50) 사용
- 구조 추출: Layout ($10) 사용
- 특정 문서: Prebuilt ($10) 사용
- 고유 양식: Custom ($30) 사용

약정 요금제 (Commitment Tier)
- 월별 페이지 수를 미리 약정하면 할인된 단가 적용
- 대량 처리 시 비용 절감 효과

무료 계층 활용
- F0 계층으로 월 500페이지까지 무료 테스트
- 개발/PoC 단계에서 활용

참고: 정확한 비용 산정은 Azure 가격 계산기에서 확인 가능

4 인스턴스 생성 및 사용 방법

4.1 Azure Portal Browser 를 통한 리소스 생성

  1. 반드시, 본인에게 할당된 resource group 안에서 document intelligence instance를 생성해야한다.
  • 그냥 홈페이지에서 생성하면 Vnet 방화벽 설정이 불일치하여 서비스를 이용할 수 없고 아마 instance 생성 자체가 안될 것이다.

Service Instance Creation
  1. 검색창에 document intelligence (form recognizer) or document intelligence 입력하여 검색 및 클릭
  2. Subscription & Plan을 토글 박스에서 선택해 create 버튼 클릭
  3. Basic Setting (빈칸을 모두 채워 넣어야 한다.)
  • resource group: 본인의 resource group을 반드시 선택해야 한다. (후에 vnet의 subnet과 연결이 되기 위해 필요)
  • region: resource group의 region과 일치시켜준다.
    • 참고로 외부 서버를 이용하는 것은 요금이 더 나가는 것으로 파악됨
    • 가까운 리전 선택 시 지연시간 감소
  • name: 인스턴스의 이름을 원하는 방식 or 조직내 작명 규칙에 따라 작성한다.
    • 고유한 이름 필요 (예: doc-intel-myproject-01)
    • 소문자, 숫자, 하이픈만 사용 가능
    • 조직내 작명 규칙 예시: [서비스 두음글자]-[resource group name]-[region name]-[serial number]
    • name 예시: di-aipoc-test-krc-003
  • pricing tier: 초기 사용자는 2개의 옵션이 있다
    • F0: 무료 할당량과 제한된 기능으로 서비스를 test 해볼 수 있다.
      • 500 page 초과 문서 분석 못함
      • Content Understanding 기능 사용 못함
      • adds on 기능 사용 못함 (formula 집중 추출 등)

      F0 Service in Content Understand Studio
    • Standard S0: 종량제 (프로덕션용), 모든 기능을 제한없이 이용할 수 있다.

Service Instance Setting-basic
  1. Network 설정 (선택 사항)
  • 퍼블릭 액세스
    • 기본: 모든 네트워크에서 접근 가능
    • 보안 강화: 특정 VNet만 허용
  • 프라이빗 엔드포인트
    • 기업 환경: 프라이빗 네트워크만 접근 허용
    • 추가 비용 발생 (테스트에는 불필요)
  • type: Selected networks, configure network security for your Azure AI services resource. 선택
  • 여기서 resource group 내에서 인스턴스를 생성하지 않았으면 자동 연결이 불가하다.
  1. Identity 설정
  • 관리 ID
    • 시스템 할당 ID 활성화 시 Key Vault 등과 안전한 연동 가능
    • 선택 사항이지만 프로덕션 환경에서는 권장
  • 태그
    • 비용 추적용: Environment: Production, Project: InvoiceOCR
    • 부서별 분류: Department: Finance
  • status를 on으로 설정하여 ID를 부여받으면 다른 service resource와 연결을 하여 좀 더 편하게 서비스를 이용할 수 있나보다 (해보진 않음)
  • 본인은 off로 함
  1. Tags 설정 (Optional)
  • 본인은 그냥 pass
  1. Review + Create
  • 설정 검토
  • 만들기 클릭
  • 배포 완료 (약 1-2분 소요)

Service Instance Setting-review + create

키 및 엔드포인트 확인

배포 완료 후:

  1. 리소스로 이동 클릭
  2. 좌측 메뉴에서 키 및 엔드포인트 선택
  3. 다음 정보 복사:
    • 키 1 또는 키 2 (API 인증용)
    • 엔드포인트 (예: https://doc-intel-myproject-01.cognitiveservices.azure.com/)

보안 주의사항
- 키는 절대 코드에 하드코딩하지 말 것
- 환경변수 또는 Key Vault 사용 권장
- 키 정기 재생성 (6개월마다)

  1. 생성된 service resource를 resource group에서 확인하고 클릭하면 Go to Document Intelligence Studio로 연결되는 버튼을 볼 수 있다.
  • Content Understand Studio 로 연결되고 start width document intelligence 또는 explore content understanding 서비스 버튼 눌러 서비스를 이용하면 된다.
  • 본인은 start width document intelligence 만으로 충분하여 기본 서비스를 선택

Content Understand Studio
  1. 세부 기능 선택
  • 여러 기능들이 리스팅 되어 있다. 본인은 OCR/Read를 선택
  • 기존 사용자라면 페이지 이동시 본인이 이용하고 있는 Azure Directory를 선택하여 전환해야할 수도 있다.

OCR/Read
  1. OCR - Run Analysis Options
  • F0 Price Tier라면 500 page가 넘는 문서는 분석이 불가하다.
  • searchable PDF: 분석 결과를 pdf 형태로 다운로드 받을 수 있고 이미지로 구성된 pdf라면 부분적 또는 전체 내용이 텍스트화 되어 검색이 가능해진다.
  • Premium Detection
    • Formula: 수식 강화 추출 서비스로 정확도는 체감상 90% 이상이다. 이 기능이 없이는 수식은 거의 추출이 불가능하다.
  • 우측 창을 보면 Content, Result, Code 형태로 출력물이 생기고 Result 섹션에 Json 파일로 결과를 다운로드 받을 수 있다.

4.2 Azure CLI를 통한 리소스 생성

사전 준비
1. Azure CLI 설치
2. Azure 계정 로그인

# Azure 로그인  
az login  

# Document Intelligence 리소스 생성  
az cognitiveservices account create \  
  --name "MyDocumentIntelService" \  
  --resource-group "MyResourceGroup" \  
  --kind "FormRecognizer" \  
  --sku "S0" \  
  --location "eastus"  

주의사항
- Azure CLI는 리소스 관리용이며, 실제 문서 분석 API 호출은 SDK 필요
- --sku 옵션: F0(무료), S0(표준) 선택 가능
- --location: 가까운 리전 선택 (한국의 경우 koreacentral 권장)

4.3 Python SDK를 통한 문서 분석

설치 및 설정

# Python SDK 설치  
pip install azure-ai-documentintelligence  

# 환경변수 설정 (Windows CMD)  
set AZURE_DOCUMENT_ENDPOINT=https://your-resource.cognitiveservices.azure.com/  
set AZURE_DOCUMENT_KEY=your-api-key  

# 환경변수 설정 (PowerShell)  
$env:AZURE_DOCUMENT_ENDPOINT="https://your-resource.cognitiveservices.azure.com/"  
$env:AZURE_DOCUMENT_KEY="your-api-key"  

기본 사용 예제 (영수증 분석)

from azure.ai.documentintelligence import DocumentIntelligenceClient  
from azure.core.credentials import AzureKeyCredential  
import os  

# 클라이언트 초기화  
endpoint = os.environ["AZURE_DOCUMENT_ENDPOINT"]  
key = os.environ["AZURE_DOCUMENT_KEY"]  

client = DocumentIntelligenceClient(endpoint, AzureKeyCredential(key))  

# 영수증 분석  
with open("receipt.jpg", "rb") as f:  
    poller = client.begin_analyze_document(  
        "prebuilt-receipt",   
        analyze_request=f,   
        content_type="application/octet-stream"  
    )  

result = poller.result()  

# 결과 출력  
for receipt in result.documents:  
    print(f"판매점: {receipt.fields.get('MerchantName').value}")  
    print(f"총액: {receipt.fields.get('Total').value}")  
    print(f"거래일시: {receipt.fields.get('TransactionDate').value}")  

레이아웃 분석 예제

# 문서 구조 분석  
with open("document.pdf", "rb") as f:  
    poller = client.begin_analyze_document(  
        "prebuilt-layout",  
        analyze_request=f,  
        content_type="application/pdf"  
    )  

result = poller.result()  

# 표 추출  
for table in result.tables:  
    print(f"표 감지: {table.row_count}행 x {table.column_count}열")  
    for cell in table.cells:  
        print(f"  [{cell.row_index}, {cell.column_index}]: {cell.content}")  

4.4 cURL을 통한 REST API 직접 호출

고급 사용자를 위한 HTTP 직접 요청 방식이다.

# 분석 시작 요청  
curl -i -X POST "https://[YOUR_ENDPOINT]/formrecognizer/documentModels/prebuilt-layout:analyze?api-version=2023-07-31" \  
  -H "Content-Type: application/json" \  
  -H "Ocp-Apim-Subscription-Key: [YOUR_API_KEY]" \  
  -d "{\"urlSource\": \"https://example.com/document.pdf\"}"  

# 응답에서 Operation-Location 헤더 확인 후 결과 조회  
curl -X GET "[Operation-Location URL]" \  
  -H "Ocp-Apim-Subscription-Key: [YOUR_API_KEY]"  

4.5 Document Intelligence Studio 활용

코드 없이 웹 UI로 테스트할 수 있는 공식 도구이다.

접속 방법
1. Document Intelligence Studio 접속
2. Azure 계정으로 로그인
3. 리소스 선택 또는 새로 생성

주요 기능
- 샘플 문서로 즉시 테스트
- 모델 성능 비교
- 사용자 지정 모델 학습 및 테스트
- 생성된 코드 스니펫 확인

4.6 일반적인 문제 해결

API 키 오류

AuthenticationFailed: Access denied due to invalid subscription key  

→ Azure Portal에서 Key와 Endpoint 재확인

Region 불일치

ResourceNotFound: The specified resource does not exist  

→ Endpoint URL의 리전이 리소스 생성 리전과 일치하는지 확인

할당량 초과

429 TooManyRequests: Rate limit exceeded  

→ F0 계층은 초당 1요청, 분당 20요청 제한 (S0으로 업그레이드 권장)

5 참고 자료

Subscribe

Enjoy this blog? Get notified of new posts by email: