Bagikan melalui


Keterampilan kognitif OCR

Keterampilan Pengenalan Karakter Optik (OCR) untuk mengenali teks yang dicetak dan ditulis tangan dalam file gambar. Artikel ini adalah dokumentasi referensi untuk keterampilan OCR. Lihat Mengekstrak teks dari gambar untuk instruksi penggunaan.

Keterampilan OCR menggunakan model pembelajaran mesin yang disediakan oleh Azure AI Vision API v3.2 di layanan Azure AI. Keterampilan OCR memetakan ke fungsionalitas berikut:

  • Untuk bahasa yang tercantum di bawah dukungan bahasa Azure AI Vision, API Baca digunakan.

  • Untuk Sirilik Yunani dan Serbia, OCR warisan dalam API versi 3.2 digunakan.

Keterampilan OCR mengekstrak teks dari file gambar. Format file yang didukung meliputi:

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

Catatan

Keterampilan ini terikat ke layanan Azure AI dan memerlukan sumber daya yang dapat ditagih untuk transaksi yang melebihi 20 dokumen per pengindeks per hari. Eksekusi keterampilan bawaan dibebankan pada harga prabayar layanan Azure AI yang ada.

Selain itu, ekstraksi gambar dapat ditagih oleh Azure AI Search.

Parameter keterampilan

Parameternya peka huruf besar/kecil.

Nama Parameter Deskripsi
detectOrientation Mendeteksi orientasi gambar. Nilai yang valid adalah true atau false.

Parameter ini hanya berlaku jika API OCR versi 3.2 warisan digunakan.
defaultLanguageCode Kode bahasa dari teks input. Bahasa yang didukung mencakup semua bahasa azure AI Vision yang tersedia secara umum. Anda juga dapat menentukan unk (Tidak Diketahui).

Jika kode bahasa tidak ditentukan atau null, bahasa diatur ke bahasa Inggris. Jika bahasa secara eksplisit diatur ke unk, semua bahasa yang ditemukan terdeteksi dan dikembalikan secara otomatis.
lineEnding Nilai yang akan digunakan sebagai pemisah baris. Nilai yang mungkin: "Space", "CarriageReturn", "LineFeed". Defaultnya adalah “Space”.

Dalam versi sebelumnya, ada parameter yang disebut "textExtractionAlgorithm" untuk menentukan ekstraksi teks "dicetak" atau "tulisan tangan". Parameter ini tidak digunakan lagi karena algoritma READ API saat ini mengekstrak kedua jenis teks sekaligus. Jika keterampilan Anda menyertakan parameter ini, Anda tidak perlu menghapusnya, tetapi tidak akan digunakan selama eksekusi keterampilan.

Input keterampilan

Masukkan nama Deskripsi
image Jenis Kompleks. Saat ini hanya berfungsi dengan bidang "/document/normalized_images", yang dihasilkan oleh pengindeks blob Azure saat imageAction diatur ke nilai selain none.

Output keterampilan

Nama output Deskripsi
text Teks biasa yang diekstrak dari gambar.
layoutText Jenis kompleks yang menjelaskan teks yang diekstrak dan lokasi tempat teks ditemukan.

Jika Anda memanggil OCR pada gambar yang disematkan dalam PDF atau file aplikasi lainnya, output OCR akan terletak di bagian bawah halaman, setelah teks apa pun yang diekstrak dan diproses.

Definisi sampel

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

Sampel teks dan output 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"
      }
    ]
  }
}

Sampel: Menggabungkan teks yang diekstrak dari gambar yang disematkan dengan konten dokumen

Pemecahan dokumen, langkah pertama dalam eksekusi set keterampilan, memisahkan konten teks dan gambar. Kasus penggunaan umum untuk Penggabungan Teks adalah menggabungkan representasi tekstual gambar (teks dari keterampilan OCR, atau keterangan gambar) ke dalam bidang konten dokumen. Ini untuk skenario di mana dokumen sumber adalah dokumen PDF atau Word yang menggabungkan teks dengan gambar yang disematkan.

Contoh set keterampilan berikut ini menciptakan bidang merged_text. Bidang ini berisi konten tekstual dokumen Anda dan teks OCR dari setiap gambar yang disematkan dalam dokumen tersebut.

Minta Sintaks Tubuh

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

Contoh keterampilan di atas mengasumsikan bahwa ada bidang gambar yang dinormalisasi. Untuk membuat bidang ini, atur konfigurasi imageAction dalam definisi pengindeks Anda ke generateNormalizedImages seperti yang ditunjukkan di bawah ini:

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

Lihat juga