Umiejętności poznawcze OCR

Umiejętność optycznego rozpoznawania znaków (OCR) rozpoznaje tekst drukowany i odręczny w plikach obrazów. Ten artykuł zawiera dokumentację referencyjną dotyczącą umiejętności OCR. Aby uzyskać instrukcje użycia, zobacz Wyodrębnianie tekstu z obrazów .

Umiejętność OCR korzysta z modeli uczenia maszynowego udostępnianych przez interfejs API usługi Azure AI Vision w wersji 3.2 w usługach Azure AI. Umiejętność OCR mapuje się na następujące funkcje:

Umiejętność OCR wyodrębnia tekst z plików obrazów. Obsługiwane formaty plików obejmują:

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

Uwaga

Ta umiejętność jest powiązana z usługami azure AI i wymaga rozliczanego zasobu dla transakcji, które przekraczają 20 dokumentów na indeksator dziennie. Wykonanie wbudowanych umiejętności jest naliczane za istniejące usługi Azure AI z płatnością zgodnie z rzeczywistym użyciem.

Ponadto wyodrębnianie obrazów jest rozliczane za pomocą usługi Azure AI Search.

Parametry umiejętności

W parametrach jest rozróżniana wielkość liter.

Nazwa parametru opis
detectOrientation Wykrywa orientację obrazu. Prawidłowe wartości to true i false.

Ten parametr ma zastosowanie tylko wtedy, gdy jest używany starszy interfejs API OCR w wersji 3.2 .
defaultLanguageCode Kod języka tekstu wejściowego. Obsługiwane języki obejmują wszystkie ogólnie dostępne języki usługi Azure AI Vision. Można również określić unk (Nieznany).

Jeśli kod języka jest nieokreślony lub ma wartość null, język jest ustawiony na angielski. Jeśli język jest jawnie ustawiony na unk, wszystkie znalezione języki są automatycznie wykrywane i zwracane.
lineEnding Wartość, która ma być używana jako separator linii. Możliwe wartości: "Spacja", "CarriageReturn", "LineFeed". Wartość domyślna to "Spacja".

W poprzednich wersjach istniał parametr o nazwie "textExtractionAlgorithm", aby określić wyodrębnianie tekstu "drukowanego" lub "odręcznego". Ten parametr jest przestarzały, ponieważ bieżący algorytm interfejsu API odczytu wyodrębnia oba typy tekstu jednocześnie. Jeśli umiejętności obejmują ten parametr, nie musisz go usuwać, ale nie będzie on używany podczas wykonywania umiejętności.

Dane wejściowe umiejętności

Nazwa danych wejściowych opis
image Typ złożony. Obecnie działa tylko z polem "/document/normalized_images" utworzonym przez indeksator obiektów blob platformy Azure, gdy imageAction jest ustawiona wartość inną niż none.

Dane wyjściowe umiejętności

Nazwa danych wyjściowych opis
text Zwykły tekst wyodrębniony z obrazu.
layoutText Typ złożony opisujący wyodrębniony tekst i lokalizację, w której znaleziono tekst.

Jeśli wywołasz funkcję OCR na obrazach osadzonych w plikach PDF lub innych plikach aplikacji, dane wyjściowe OCR będą znajdować się w dolnej części strony, po każdym wyodrębnieniu i przetworzeniu tekstu.

Przykładowa definicja

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

Przykładowy tekst i układTekstowe dane wyjściowe

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

Przykład: scalanie tekstu wyodrębnionego z obrazów osadzonych z zawartością dokumentu

Pękanie dokumentów, pierwszy krok wykonywania zestawu umiejętności, oddziela tekst i zawartość obrazu. Typowy przypadek użycia połączenia tekstu polega na scaleniu tekstowej reprezentacji obrazów (tekstu z umiejętności OCR lub podpis obrazu) do pola zawartości dokumentu. Dotyczy to scenariuszy, w których dokument źródłowy jest dokumentem PDF lub Word, który łączy tekst z obrazami osadzonymi.

Poniższy przykładowy zestaw umiejętności tworzy pole merged_text . To pole zawiera tekstową zawartość dokumentu i tekst OCRed z każdego z obrazów osadzonych w tym dokumencie.

Składnia treści żądania

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

Powyższy przykład zestawu umiejętności zakłada, że istnieje pole normalized-images. Aby wygenerować to pole, ustaw konfigurację imageAction w definicji indeksatora, aby wygenerowaćNormalizedImages, jak pokazano poniżej:

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

Zobacz też