다음을 통해 공유


OCR 인지 기술

OCR(광학 인식) 기술은 이미지 파일에서 인쇄 및 필기한 텍스트를 인식합니다. 이 문서는 OCR 기술에 대한 참조 설명서입니다. 사용 지침은 이미지에서 텍스트 추출을 참조하세요.

OCR 기술은 Azure AI 서비스에서 Azure AI Vision API v3.2에서 제공하는 기계 학습 모델을 사용합니다. OCR 기술은 다음 기능에 매핑됩니다.

OCR 기술은 이미지 파일 및 포함된 이미지에서 텍스트를 추출합니다. 지원되는 파일 형식은 다음과 같습니다.

  • . JPEG
  • .JPG
  • .PNG
  • .BMP
  • . TIFF

OCR 및 이미지 분석에 지원되는 데이터 원본은 Azure Blob Storage 및 ADLS(Azure Data Lake Storage) Gen2의 Blob 및 OneLake의 이미지 콘텐츠입니다. 이미지는 독립 실행형 파일이거나 PDF 또는 기타 파일에 포함된 이미지일 수 있습니다.

참고 항목

이 기술은 Azure AI 서비스에 바인딩되며, 하루에 인덱서당 20개의 문서를 초과하는 트랜잭션에 대해 청구 가능한 리소스를 필요로 합니다. 기본 제공 기술을 실행하는 요금은 기존 Azure AI 서비스 종량제 가격으로 청구됩니다.

또한 이미지 추출은 Azure AI 검색을 통해 청구할 수 있습니다.

기술 매개 변수

매개 변수는 대/소문자를 구분합니다.

매개 변수 이름 설명
detectOrientation 이미지 방향을 검색합니다. 유효한 값은 true 또는 false입니다.

이 매개 변수는 레거시 OCR 버전 3.2 API를 사용하는 경우에만 적용됩니다.
defaultLanguageCode 입력 텍스트의 언어 코드입니다. 지원되는 언어에는 Azure AI Vision의 일반 공급 언어가 모두 포함됩니다 . unk도 지정할 수 있습니다.

언어 코드가 지정되지 않았거나 null인 경우 언어는 영어로 설정됩니다. 언어가 명시적으로 unk로 설정된 경우 찾은 모든 언어가 자동 검색되고 반환됩니다.
lineEnding 줄 구분 기호로 사용할 값입니다. 가능한 값: "Space", "CarriageReturn", "LineFeed". 기본값은 "Space"입니다.

이전 버전에서는 "printed" 또는 "handwritten" 텍스트의 추출을 지정하는 "textExtractionAlgorithm"이라는 매개 변수가 있었습니다. 최신 Read API 알고리즘은 한 번에 두 형식의 텍스트를 모두 추출하므로 이 매개 변수는 더 이상 사용되지 않습니다. 기술에 이 매개 변수가 포함된 경우 제거할 필요는 없지만 기술 실행 중에는 사용되지 않습니다.

기술 입력

입력 이름 설명
image 복합 형식입니다. imageActionnone 이외의 값으로 설정된 경우 현재 Azure Blob 인덱서에서 생성된 “/document/normalized_images” 필드에만 작동합니다.

기술 출력

출력 이름 설명
text 이미지에서 추출된 일반 텍스트입니다.
layoutText 추출된 텍스트와 텍스트가 발견된 위치를 설명하는 복합 형식입니다.

PDF 또는 기타 애플리케이션 파일에 포함된 이미지에서 OCR을 호출하는 경우 OCR 출력은 추출 및 처리된 텍스트 이후의 페이지 아래쪽에 있습니다.

샘플 정의

{
  "skills": [
    {
      "description": "Extracts text (plain and structured) from image.",
      "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
      "context": "/document/normalized_images/*",
      "defaultLanguageCode": null,
      "detectOrientation": true,
      "inputs": [
        {
          "name": "image",
          "source": "/document/normalized_images/*"
        }
      ],
      "outputs": [
        {
          "name": "text",
          "targetName": "myText"
        },
        {
          "name": "layoutText",
          "targetName": "myLayoutText"
        }
      ]
    }
  ]
}

샘플 텍스트와 layoutText 출력

{
  "text": "Hello World. -John",
  "layoutText":
  {
    "language" : "en",
    "text" : "Hello World. -John",
    "lines" : [
      {
        "boundingBox":
        [ {"x":10, "y":10}, {"x":50, "y":10}, {"x":50, "y":30},{"x":10, "y":30}],
        "text":"Hello World."
      },
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"-John"
      }
    ],
    "words": [
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"Hello"
      },
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"World."
      },
      {
        "boundingBox": [ {"x":110, "y":10}, {"x":150, "y":10}, {"x":150, "y":30},{"x":110, "y":30}],
        "text":"-John"
      }
    ]
  }
}

샘플: 문서의 콘텐츠와 포함된 이미지에서 추출된 텍스트를 병합합니다.

기술 세트 실행의 첫 번째 단계인 문서 크래킹은 텍스트와 이미지 콘텐츠를 구분합니다. 텍스트 병합기에 대한 일반적인 사용 사례는 이미지의 텍스트 표현(이미지의 캡션 또는 OCR 기술에서의 텍스트)을 문서의 콘텐츠 필드에 병합하는 것입니다. 이는 원본 문서가 포함된 이미지와 텍스트를 결합하는 PDF 또는 Word 문서인 시나리오에 해당합니다.

다음 예제 기술 세트는 merged_text 필드를 만듭니다. 이 필드에는 문서의 텍스트 내용과 해당 문서에 포함된 각 이미지의 OCR 처리된 텍스트가 들어 있습니다.

요청 본문 구문

{
  "description": "Extract text from images and merge with content text to produce merged_text",
  "skills":
  [
    {
      "description": "Extract text (plain and structured) from image.",
      "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
      "context": "/document/normalized_images/*",
      "defaultLanguageCode": "en",
      "detectOrientation": true,
      "inputs": [
        {
          "name": "image",
          "source": "/document/normalized_images/*"
        }
      ],
      "outputs": [
        {
          "name": "text"
        }
      ]
    },
    {
      "@odata.type": "#Microsoft.Skills.Text.MergeSkill",
      "description": "Create merged_text, which includes all the textual representation of each image inserted at the right location in the content field.",
      "context": "/document",
      "insertPreTag": " ",
      "insertPostTag": " ",
      "inputs": [
        {
          "name":"text",
          "source": "/document/content"
        },
        {
          "name": "itemsToInsert", 
          "source": "/document/normalized_images/*/text"
        },
        {
          "name":"offsets", 
          "source": "/document/normalized_images/*/contentOffset"
        }
      ],
      "outputs": [
        {
          "name": "mergedText", 
          "targetName" : "merged_text"
        }
      ]
    }
  ]
}

위의 기술 집합 예제는 정규화 이미지 필드가 있다고 가정합니다. 이 필드를 생성하려면 아래와 같이 인덱서 정의에서 imageAction 구성을 generateNormalizedImages로 설정합니다.

{
  //...rest of your indexer definition goes here ...
  "parameters": {
    "configuration": {
      "dataToExtract":"contentAndMetadata",
      "imageAction":"generateNormalizedImages"
    }
  }
}

참고 항목