OCR 인식 기술

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

OCR 기술은 Cognitive Services에서 Computer Vision API v3.2에서 제공하는 기계 학습 모델을 사용합니다. OCR 기술은 다음 기능에 해당됩니다.

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

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

참고

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

또한 이미지 추출은 Azure Cognitive Search를 통해 청구할 수 있습니다.

기술 매개 변수

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

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

이 매개 변수는 레거시 OCR API를 사용하는 경우에만 적용됩니다.
defaultLanguageCode 입력 텍스트의 언어 코드입니다. 지원되는 언어에는 Cognitive Services Computer 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"
    }
  }
}

참고 항목