Cognitieve OCR-vaardigheid

De OCR-vaardigheid (Optical Character Recognition) herkent afgedrukte en handgeschreven tekst in afbeeldingsbestanden. Dit artikel is de referentiedocumentatie voor de OCR-vaardigheid. Zie Tekst extraheren uit afbeeldingen voor gebruiksinstructies.

Een OCR-vaardigheid maakt gebruik van de machine learning-modellen die worden geleverd door Azure AI Vision API v3.2 in Azure AI-services. De OCR-vaardigheid wordt toegewezen aan de volgende functionaliteit:

De OCR-vaardigheid extraheert tekst uit afbeeldingsbestanden. Ondersteunde bestandsindelingen zijn onder andere:

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

Notitie

Deze vaardigheid is gebonden aan Azure AI-services en vereist een factureerbare resource voor transacties die groter zijn dan 20 documenten per indexeerfunctie per dag. Voor de uitvoering van ingebouwde vaardigheden worden kosten in rekening gebracht voor de bestaande betalen per gebruik-prijs van Azure AI-services.

Daarnaast kan afbeeldingsextractie worden gefactureerd door Azure AI Search.

Vaardigheidsparameters

Parameters zijn hoofdlettergevoelig.

Parameternaam Beschrijving
detectOrientation Detecteert de afdrukstand van de afbeelding. Geldige waarden zijn true of false.

Deze parameter is alleen van toepassing als de verouderde OCR-versie 3.2-API wordt gebruikt.
defaultLanguageCode Taalcode van de invoertekst. Ondersteunde talen omvatten alle algemeen beschikbare talen van Azure AI Vision. U kunt ook opgeven unk (onbekend).

Als de taalcode niet is opgegeven of null is, wordt de taal ingesteld op Engels. Als de taal expliciet is ingesteld unkop, worden alle gevonden talen automatisch gedetecteerd en geretourneerd.
lineEnding De waarde die moet worden gebruikt als scheidingsteken voor regels. Mogelijke waarden: "Space", "CarriageReturn", "LineFeed". De standaardwaarde is 'Spatie'.

In eerdere versies was er een parameter met de naam textExtractionAlgorithm om extractie van 'afgedrukte' of 'handgeschreven' tekst op te geven. Deze parameter is afgeschaft omdat met het huidige read-API-algoritme beide typen tekst tegelijk worden geëxtraheerd. Als uw vaardigheid deze parameter bevat, hoeft u deze niet te verwijderen, maar wordt deze niet gebruikt tijdens het uitvoeren van vaardigheden.

Invoer van vaardigheden

Invoernaam Beschrijving
image Complex Type. Werkt momenteel alleen met het veld /document/normalized_images, geproduceerd door de Azure Blob-indexeerfunctie wanneer imageAction deze is ingesteld op een andere waarde dan none.

Uitvoer van vaardigheden

Uitvoernaam Beschrijving
text Tekst zonder opmaak geëxtraheerd uit de afbeelding.
layoutText Complex type dat de geëxtraheerde tekst beschrijft en de locatie waar de tekst is gevonden.

Als u OCR aanroept op afbeeldingen die zijn ingesloten in PDF-bestanden of andere toepassingsbestanden, bevindt de OCR-uitvoer zich onder aan de pagina, na elke tekst die is geëxtraheerd en verwerkt.

Voorbeelddefinitie

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

Voorbeeldtekst en layoutText-uitvoer

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

Voorbeeld: Tekst samenvoegen die is geëxtraheerd uit ingesloten afbeeldingen met de inhoud van het document

Document kraken, de eerste stap bij het uitvoeren van vaardighedensets, scheidt tekst- en afbeeldingsinhoud. Een veelvoorkomend gebruiksvoorbeeld voor Tekstfusie is het samenvoegen van de tekstuele weergave van afbeeldingen (tekst van een OCR-vaardigheid of de onderschrift van een afbeelding) in het inhoudsveld van een document. Dit is voor scenario's waarin het brondocument een PDF- of Word-document is dat tekst combineert met ingesloten afbeeldingen.

In de volgende voorbeeldvaardighedenset wordt een merged_text veld gemaakt. Dit veld bevat de tekstuele inhoud van uw document en de OCRed-tekst van elk van de afbeeldingen die in dat document zijn ingesloten.

Syntaxis aanvraagbody

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

In het bovenstaande voorbeeld van een vaardighedenset wordt ervan uitgegaan dat er een genormaliseerd afbeeldingsveld bestaat. Als u dit veld wilt genereren, stelt u de imageAction-configuratie in uw indexeerdefinitie in omNormalizedImages te genereren, zoals hieronder wordt weergegeven:

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

Zie ook