Keterampilan kognitif OCR

Note

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

Keterampilan pengenalan karakter optik (OCR) mengenali teks cetak dan tulisan 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 Vision di Foundry Tools API v3.2. Keterampilan OCR memetakan ke fungsionalitas berikut:

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

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

Sumber data yang didukung untuk OCR dan analisis gambar adalah blob di Azure Blob Storage dan Azure Data Lake Storage (ADLS) Gen2, dan konten gambar di Microsoft OneLake. Gambar dapat berupa file mandiri atau gambar yang disematkan dalam PDF atau file lainnya.

Note

Keterampilan ini terikat dengan Foundry Tools dan memerlukan sumber daya yang dapat ditagih untuk transaksi yang melebihi 20 dokumen per pengindeks per hari. Eksekusi keterampilan bawaan dibebankan pada harga Foundry Tools Standard.

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

Parameter keterampilan

Parameter 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 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.

Masukan 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.

Keluaran 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.

Contoh definisi

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

Baca juga