Competenza cognitiva OCR

La competenza OCR (Optical Character Recognition) riconosce il testo stampato e scritto a mano nei file di immagine. Questo articolo è la documentazione di riferimento per la competenza OCR. Per istruzioni sull'utilizzo, vedere Estrarre testo dalle immagini .

Una competenza OCR usa i modelli di Machine Learning forniti dall'API Visione artificiale di Azure v3.2 nei servizi di intelligenza artificiale di Azure. La competenza OCR corrisponde alle funzionalità seguenti:

  • Per le lingue elencate in Supporto del linguaggio di Visione artificiale di Azure, viene usata l'API di lettura.

  • Per greco e serbo cirillico, viene usato l'OCR legacy nella versione 3.2 .

La competenza OCR estrae il testo dai file di immagine. I formati di file supportati comprendono:

  • .JPEG
  • .JPG
  • .PNG
  • .BMP
  • . DIVERBIO

Nota

Questa competenza è associata ai servizi di intelligenza artificiale di Azure e richiede una risorsa fatturabile per le transazioni che superano 20 documenti per indicizzatore al giorno. L'esecuzione delle competenze predefinite viene addebitata secondo gli attuali prezzi con pagamento in base al consumo dei Servizi di Azure AI.

Inoltre, l'estrazione di immagini è fatturabile da Azure AI Search.

Parametri della competenza

I parametri fanno distinzione tra maiuscole e minuscole.

Nome parametro Descrizione
detectOrientation Rileva l'orientamento dell'immagine. I valori validi sono true o false.

Questo parametro si applica solo se viene usata l'API OCR versione 3.2 legacy.
defaultLanguageCode Codice lingua del testo di input. I linguaggi supportati includono tutti i linguaggi disponibili a livello generale di Visione artificiale di Azure. È anche possibile specificare unk (sconosciuto).

Se il codice di lingua non è specificato o null, la lingua è impostata su Inglese. Se la lingua è impostata in modo esplicito su unk, vengono rilevate automaticamente e restituite tutte le lingue trovate.
lineEnding Valore da utilizzare come separatore di riga. Valori possibili: "Space", "CarriageReturn", "LineFeed". Il valore predefinito è "Space".

Nelle versioni precedenti era presente un parametro denominato "textExtractionAlgorithm" per specificare l'estrazione di testo "stampato" o "scritto a mano". Questo parametro è deprecato perché l'algoritmo dell'API lettura corrente estrae entrambi i tipi di testo contemporaneamente. Se la competenza include questo parametro, non è necessario rimuoverlo, ma non verrà usato durante l'esecuzione delle competenze.

Input competenze

Nome input Descrizione
image Tipo complesso. Attualmente funziona solo con il campo "/document/normalized_images", prodotto dall'indicizzatore di BLOB di Azure quando imageAction è impostato su un valore diverso da none.

Output competenze

Nome output Descrizione
text Testo normale estratto dall'immagine.
layoutText Tipo complesso che descrive il testo estratto e la posizione in cui è stato trovato il testo.

Se si chiama OCR sulle immagini incorporate in PDF o in altri file dell'applicazione, l'output OCR si troverà nella parte inferiore della pagina, dopo qualsiasi testo estratto ed elaborato.

Definizione di esempio

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

Esempio di output di testo e 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"
      }
    ]
  }
}

Esempio: unione di testo estratto da immagini incorporate con il contenuto del documento

Document cracking, il primo passaggio dell'esecuzione del set di competenze, separa il contenuto di testo e immagine. Un caso d'uso comune per La fusione del testo consiste nell'unire la rappresentazione testuale delle immagini (testo di una competenza OCR o la didascalia di un'immagine) nel campo contenuto di un documento. Questo è per gli scenari in cui il documento di origine è un documento PDF o Word che combina testo con immagini incorporate.

Il set di competenze di esempio seguente crea un campo merged_text. Questo campo contiene il contenuto testuale del documento e il testo sottoposto a riconoscimento dei caratteri da ognuna delle immagini incorporate in tale documento.

Sintassi del corpo della richiesta

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

Nell'esempio dell'insieme di competenze precedente si suppone l'esistenza di un campo di immagini normalizzate. Per generare questo campo, impostare la configurazione imageAction nella definizione di indicizzatore su generateNormalizedImages come illustrato di seguito:

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

Vedi anche