View a markdown version of this page

Menemukan Item di Halaman Dokumen - Amazon Textract

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menemukan Item di Halaman Dokumen

Operasi Amazon Textract mengembalikan lokasi dan geometri item yang ditemukan di halaman dokumen. DetectDocumentTextdan GetDocumentTextDetectionmengembalikan lokasi dan geometri untuk garis dan kata, sementara AnalyzeDocumentdan GetDocumentAnalysismengembalikan lokasi dan geometri pasangan nilai kunci, tabel, sel, dan elemen seleksi.

Untuk menentukan di mana item berada di halaman dokumen, gunakan informasi kotak pembatas (Geometri) yang dikembalikan oleh operasi Amazon Textract di objek Blokir. GeometryObjek berisi dua jenis lokasi dan informasi geometris untuk item yang terdeteksi:

  • BoundingBoxObjek sejajar sumbu yang berisi koordinat kiri atas dan lebar serta tinggi item.

  • Objek poligon yang menggambarkan garis besar item, ditentukan sebagai larik objek Titik yang berisi koordinat halaman dokumen X (sumbu horizontal) dan Y (sumbu vertikal) dari setiap titik.

JSON untuk Block objek terlihat mirip dengan yang berikut ini. Perhatikan BoundingBox dan Polygon bidang.

{ "Geometry": { "BoundingBox": { "Width": 0.053907789289951324, "Top": 0.08913730084896088, "Left": 0.11085548996925354, "Height": 0.013171200640499592 }, "Polygon": [ { "Y": 0.08985357731580734, "X": 0.11085548996925354 }, { "Y": 0.08913730084896088, "X": 0.16447919607162476 }, { "Y": 0.10159222036600113, "X": 0.16476328670978546 }, { "Y": 0.10230850428342819, "X": 0.11113958805799484 } ] }, "Text": "Name:", "TextType": "PRINTED", "BlockType": "WORD", "Confidence": 99.56285858154297, "Id": "c734fca6-c4c4-415c-b6c1-30f7510b72ee" },

Anda dapat menggunakan informasi geometri untuk menggambar kotak pembatas di sekitar item yang terdeteksi. Untuk contoh yang menggunakan BoundingBox dan Polygon informasi untuk menggambar kotak di sekitar garis dan garis vertikal di awal dan akhir setiap kata, lihatMendeteksi Teks Dokumen dengan Amazon Textract. Output contoh mirip dengan yang berikut ini.

Formulir dengan bidang untuk Nama, Alamat, dan Tanggal Lahir yang menampilkan informasi pribadi Jane Doe dengan alamat 123 Any Street, Anytown, USA dan tanggal lahir 12-26-1980.

Kotak Bounding

Sebuah bounding box (BoundingBox) memiliki properti sebagai berikut:

  • Tinggi - Tinggi kotak pembatas sebagai rasio tinggi halaman dokumen secara keseluruhan.

  • Kiri - Koordinat X dari titik kiri atas kotak pembatas sebagai rasio lebar halaman dokumen keseluruhan.

  • Atas - Koordinat Y dari titik kiri atas kotak pembatas sebagai rasio tinggi halaman dokumen keseluruhan.

  • Lebar - Lebar kotak pembatas sebagai rasio lebar halaman dokumen keseluruhan.

Setiap BoundingBox properti memiliki nilai antara 0 dan 1. Nilai adalah rasio lebar gambar keseluruhan (berlaku untuk Left danWidth) atau tinggi (berlaku untuk Height danTop). Misalnya, jika gambar input berukuran 700 x 200 piksel, dan koordinat kiri atas kotak pembatas adalah (350,50) piksel, API mengembalikan nilai 0,5 (350/700) dan Left nilai 0,25 (). Top 50/200

Diagram berikut menunjukkan rentang halaman dokumen yang dicakup oleh setiap BoundingBox properti.

Diagram yang menunjukkan properti Kiri, Atas, Lebar, dan Tinggi yang mendefinisikan kotak pembatas pada halaman.

Untuk menampilkan kotak pembatas dengan lokasi dan ukuran yang benar, Anda mengalikan BoundingBox nilai dengan lebar atau tinggi halaman dokumen (tergantung pada nilai yang Anda inginkan) untuk mendapatkan nilai piksel. Anda menggunakan nilai-nilai piksel untuk menampilkan kotak pembatas. Contohnya adalah menggunakan halaman dokumen dengan lebar 608 piksel x tinggi 588 piksel, dan nilai kotak pembatas berikut untuk teks yang dianalisis:

BoundingBox.Left: 0.3922065 BoundingBox.Top: 0.15567766 BoundingBox.Width: 0.284666 BoundingBox.Height: 0.2930403

Lokasi kotak pembatas teks dalam piksel dihitung sebagai berikut:

Left coordinate = BoundingBox.Left (0.3922065) * document page width (608) = 238

Top coordinate = BoundingBox.Top (0.15567766) * document page height (588) = 91

Bounding box width = BoundingBox.Width (0.284666) * document page width (608) = 173

Bounding box height = BoundingBox.Height (0.2930403) * document page height (588) = 172

Anda menggunakan nilai-nilai ini untuk menampilkan kotak pembatas di sekitar teks yang dianalisis. Contoh Java dan Python berikut menunjukkan cara menampilkan kotak pembatas.

Java
public void ShowBoundingBox(int imageHeight, int imageWidth, BoundingBox box, Graphics2D g2d) { float left = imageWidth * box.getLeft(); float top = imageHeight * box.getTop(); // Display bounding box. g2d.setColor(new Color(0, 212, 0)); g2d.drawRect(Math.round(left / scale), Math.round(top / scale), Math.round((imageWidth * box.getWidth()) / scale), Math.round((imageHeight * box.getHeight())) / scale); }
Python

Contoh Python ini mengambil response pengembalian oleh operasi DetectDocumentTextAPI.

def process_text_detection(response): # Get the text blocks blocks = response['Blocks'] width, height = image.size draw = ImageDraw.Draw(image) print('Detected Document Text') # Create image showing bounding box/polygon the detected lines/text for block in blocks: draw = ImageDraw.Draw(image) if block['BlockType'] == "LINE": box=block['Geometry']['BoundingBox'] left = width * box['Left'] top = height * box['Top'] draw.rectangle([left,top, left + (width * box['Width']), top +(height * box['Height'])],outline='black') # Display the image image.show() return len(blocks)

Polygon

Poligon yang dikembalikan oleh AnalyzeDocument adalah array objek Point. Masing-masing Point memiliki koordinat X dan Y untuk lokasi tertentu pada halaman dokumen. Seperti BoundingBox koordinat, koordinat poligon dinormalisasi ke lebar dan tinggi dokumen, dan antara 0 dan 1.

Anda dapat menggunakan titik dalam array poligon untuk menampilkan kotak pembatas butir halus di sekitar objek. Block Anda menghitung posisi setiap titik poligon pada halaman dokumen dengan menggunakan teknik yang sama yang digunakan untukBoundingBoxes. Kalikan koordinat X dengan lebar halaman dokumen, dan kalikan koordinat Y dengan tinggi halaman dokumen.

Contoh berikut menunjukkan bagaimana menampilkan garis vertikal poligon.

public void ShowPolygonVerticals(int imageHeight, int imageWidth, List <Point> points, Graphics2D g2d) { g2d.setColor(new Color(0, 212, 0)); Object[] parry = points.toArray(); g2d.setStroke(new BasicStroke(2)); g2d.drawLine(Math.round(((Point) parry[0]).getX() * imageWidth), Math.round(((Point) parry[0]).getY() * imageHeight), Math.round(((Point) parry[3]).getX() * imageWidth), Math.round(((Point) parry[3]).getY() * imageHeight)); g2d.setColor(new Color(255, 0, 0)); g2d.drawLine(Math.round(((Point) parry[1]).getX() * imageWidth), Math.round(((Point) parry[1]).getY() * imageHeight), Math.round(((Point) parry[2]).getX() * imageWidth), Math.round(((Point) parry[2]).getY() * imageHeight)); }

Sudut Rotasi

Bagian terakhir dari objek Geometri adalah sudut rotasi teks. Sudut rotasi adalah angka antara 0 dan 360 yang mengubah derajat teks diputar.