OCR 인식 기술OCR cognitive skill

OCR (광학 문자 인식) 기술은 이미지 파일에서 인쇄 된 텍스트 및 필기 텍스트를 인식 합니다.The Optical character recognition (OCR) skill recognizes printed and handwritten text in image files. 이 기술은 Cognitive Services에서 Computer Vision API v 3.0 이 제공 하는 기계 학습 모델을 사용 합니다.This skill uses the machine learning models provided by Computer Vision API v3.0 in Cognitive Services. OCR 기술은 다음 기능에 해당됩니다.The OCR skill maps to the following functionality:

  • 영어, 스페인어, 독일어, 프랑스어, 이탈리아어, 포르투갈어 및 네덜란드어의 경우 새로운 "읽기" API가 사용 됩니다.For English, Spanish, German, French, Italian, Portuguese, and Dutch, the new "Read" API is used.
  • 다른 모든 언어의 경우에는 "OCR" API가 사용 됩니다.For all other languages, the "OCR" API is used.

OCR 기술은 이미지 파일에서 텍스트를 추출합니다.The OCR skill extracts text from image files. 지원 파일 형식은 다음과 같습니다.Supported file formats include:

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

참고

처리 빈도를 늘리거나 문서를 추가하거나 AI 알고리즘을 추가하여 범위를 확장할 때 청구 가능한 Cognitive Services 리소스를 연결해야 합니다.As you expand scope by increasing the frequency of processing, adding more documents, or adding more AI algorithms, you will need to attach a billable Cognitive Services resource. Cognitive Services에서 API를 호출하는 경우와 Azure Cognitiv Search에서 문서 크래킹 단계의 일부로 이미지를 추출하는 경우에는 요금이 부과됩니다.Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Cognitive Search. 문서에서 텍스트 추출할 때는 요금이 발생하지 않습니다.There are no charges for text extraction from documents.

기본 제공 기술을 실행하는 요금은 기존 Cognitive Services 종량제 가격으로 청구됩니다.Execution of built-in skills is charged at the existing Cognitive Services pay-as-you go price. 이미지 추출 가격 책정은 Azure Cognitiv Search 가격 책정 페이지에 설명되어 있습니다.Image extraction pricing is described on the Azure Cognitive Search pricing page.

기술 매개 변수Skill parameters

매개 변수는 대/소문자를 구분합니다.Parameters are case-sensitive.

매개 변수 이름Parameter name DescriptionDescription
detectOrientation 이미지 방향의 자동 검색을 사용합니다.Enables autodetection of image orientation.
유효한 값: true / false.Valid values: true / false.
defaultLanguageCode

입력 텍스트의 언어 코드입니다.Language code of the input text. 지원되는 언어는 다음과 같습니다.Supported languages include:
zh-Hans(중국어 간체)zh-Hans (ChineseSimplified)
zh-Hant(중국어 번체)zh-Hant (ChineseTraditional)
cs(체코어)cs (Czech)
da(덴마크어)da (Danish)
nl(네덜란드어)nl (Dutch)
en(영어)en (English)
fi(핀란드어)fi (Finnish)
fr(프랑스어)fr (French)
de(독일어)de (German)
el(그리스어)el (Greek)
hu(헝가리어)hu (Hungarian)
it(이탈리아어)it (Italian)
ja(일본어)ja (Japanese)
ko(한국어)ko (Korean)
nb(노르웨이어)nb (Norwegian)
pl(폴란드어)pl (Polish)
pt(포르투갈어)pt (Portuguese)
ru(러시아어)ru (Russian)
es(스페인어)es (Spanish)
sv(스웨덴어)sv (Swedish)
tr(터키어)tr (Turkish)
ar(아랍어)ar (Arabic)
ro(루마니아어)ro (Romanian)
sr-Cyrl(세르비아 키릴어)sr-Cyrl (SerbianCyrillic)
sr-Latn(세르비아 라틴어)sr-Latn (SerbianLatin)
나 (슬로바키아어)sk (Slovak)
unk(알 수 없음)unk (Unknown)

언어 코드가 지정되지 않았거나 null인 경우 언어는 영어로 설정됩니다.If the language code is unspecified or null, the language will be set to English. 언어가 명시적으로 “unk”로 설정된 경우 언어는 자동으로 검색됩니다.If the language is explicitly set to "unk", the language will be auto-detected.

lineEnding 검색 된 각 줄 사이에 사용할 값입니다.The value to use between each detected line. 가능한 값: "Space", "CarriageReturn", "줄 바꿈".Possible values: "Space", "CarriageReturn", "LineFeed". 기본값은 "Space"입니다.The default is "Space".

이전에는 기술에서 "인쇄 됨" 또는 "필기" 텍스트를 추출 해야 하는지 여부를 지정 하는 "textExtractionAlgorithm" 이라는 매개 변수가 있었습니다.Previously, there was a parameter called "textExtractionAlgorithm" for specifying whether the skill should extract "printed" or "handwritten" text. 이 매개 변수는 더 이상 사용 되지 않으며, 최신 읽기 API 알고리즘에서 한 번에 두 유형의 텍스트를 모두 추출할 수 있으므로 더 이상 필요 하지 않습니다.This parameter is deprecated and no longer necessary as the latest Read API algorithm is capable of extracting both types of text at once. 기술 정의에이 매개 변수가 이미 포함 되어 있으면 제거할 필요가 없지만 더 이상 사용 되지 않으며 두 유형의 텍스트는 설정 된 항목에 관계 없이 앞으로 추출 됩니다.If your skill definition already includes this parameter, you do not need to remove it, but it will no longer be used and both types of text will be extracted going forward regardless of what it is set to.

기술 입력Skill inputs

입력 이름Input name 설명Description
image 복합 형식입니다.Complex Type. imageActionnone 이외의 값으로 설정된 경우 현재 Azure Blob 인덱서에서 생성된 “/document/normalized_images” 필드에만 작동합니다.Currently only works with "/document/normalized_images" field, produced by the Azure Blob indexer when imageAction is set to a value other than none. 자세한 내용은 샘플을 참조하세요.See the sample for more information.

기술 출력Skill outputs

출력 이름Output name 설명Description
text 이미지에서 추출된 일반 텍스트입니다.Plain text extracted from the image.
layoutText 추출된 텍스트와 텍스트를 찾을 수 있는 위치를 설명하는 복합 유형입니다.Complex type that describes the extracted text and the location where the text was found.

샘플 정의Sample definition

{
  "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 출력Sample text and layoutText output

{
  "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"
      }
    ]
  }
}

샘플: 문서의 콘텐츠와 포함된 이미지에서 추출된 텍스트를 병합합니다.Sample: Merging text extracted from embedded images with the content of the document.

텍스트 병합기에 대한 일반적인 사용 사례는 이미지의 텍스트 표현(이미지의 캡션 또는 OCR 기술에서의 텍스트)을 문서의 콘텐츠 필드에 병합하는 기능입니다.A common use case for Text Merger is the ability to merge the textual representation of images (text from an OCR skill, or the caption of an image) into the content field of a document.

다음 기술 세트 예제는 merged_text 필드를 만듭니다.The following example skillset creates a merged_text field. 이 필드에는 문서의 텍스트 내용과 해당 문서에 포함된 각 이미지의 OCR 처리된 텍스트가 들어 있습니다.This field contains the textual content of your document and the OCRed text from each of the images embedded in that document.

요청 본문 구문Request Body Syntax

{
  "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"
        }
      ]
    }
  ]
}

위의 기술 집합 예제는 정규화 이미지 필드가 있다고 가정합니다.The above skillset example assumes that a normalized-images field exists. 이 필드를 생성하려면 인덱서 정의에서 imageAction 구성을 아래와 같이 generateNormalizedImages로 설정합니다.To generate this field, set the imageAction configuration in your indexer definition to generateNormalizedImages as shown below:

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

참고 항목See also