Textextraktion mit AWS Textract (Python3.6)

Einführung

Ich habe versucht, mit AWS Textract Text aus einem Bild zu extrahieren

Entwicklungsumgebung

Einführung

    1. Installieren Sie awscli AWSCLIV2. Siehe Installieren, Aktualisieren und Deinstallieren von AWS CLI Version 2 unter Windows. Installieren Sie msi
  1. Generieren Sie mit IAM einen Zugriffsschlüssel über die AWS-Konsole image.png

    1. Stellen Sie awscli an der Eingabeaufforderung ein

Geben Sie den Zugriffsschlüssel und den geheimen Zugriffsschlüssel ein, die Sie beim Generieren des Zugriffsschlüssels erhalten haben. Geben Sie als Standardregionsnamen ap-south-1 (Asien-Pazifik-Mumbai) an, wo Textract verwendet werden kann. Das Ausgabeformat ist json.

$ aws configure 
AWS Access Key ID [None]: XXXX
AWS Secret Access Key [None]: XXXX
Default region name [None]: ap-south-1
Default output format [None]: json
    1. Fügen Sie die Richtlinie "AmazonTextractFullAccess" unter "IAM-Berechtigungen hinzufügen" hinzu image.png

Vier. Öffnen Sie die Anaconda-Eingabeaufforderung und erstellen Sie eine Python 3.6-Umgebung.

$ conda create -n py36 python=3.6
$ conda activate py36

Fünf. Installieren Sie die Bibliothek

$ pip install boto3
$ pip install opencv-python
  1. Lassen Sie uns den folgenden Code ausführen
import boto3
import cv2
import os.path

def process_text_analysis(image):
    client = boto3.client('textract')
    image_data = cv2.imencode(".png ", image)[1].tostring()
    response = client.analyze_document(Document={'Bytes': image_data}, FeatureTypes=["TABLES", "FORMS"])
    blocks = response['Blocks']
    return blocks

def draw_blocks(image, blocks):
    height, width = image.shape[:2]
    draw = image.copy()
    for block in blocks:
        if block['BlockType'] == "WORD":
            vertices = [(int(width * block['Geometry']['Polygon'][i]['X']), int(height * block['Geometry']['Polygon'][i]['Y'])) for i in range(len(block['Geometry']['Polygon']))]
            cv2.putText(draw, block['Text'], vertices[0], cv2.FONT_HERSHEY_PLAIN, 1, (255, 255, 255), 1, cv2.LINE_AA)
            cv2.rectangle(draw, vertices[0], vertices[2], (0, 255, 0))
    return draw

filename = "338px-Atomist_quote_from_Democritus.png "
image = cv2.imread(filename, cv2.IMREAD_COLOR)

blocks = process_text_analysis(image)
print("Blocks detected: " + str(len(blocks)))

draw = draw_blocks(image, blocks)
cv2.imshow("draw", draw)
cv2.waitKey(0)
input output
338px-Atomist_quote_from_Democritus.png awsocr.png

Danke für deine harte Arbeit.

Recommended Posts

Textextraktion mit AWS Textract (Python3.6)
Textextraktion mit GCP Cloud Vision API (Python3.6)
Textextraktion (Lese-API) mit Azure Computer Vision-API (Python3.6)
Text Mining mit Python ① Morphologische Analyse
Aktivieren Sie Python raw_input mit Sublime Text 3
Sprechen Sie japanischen Text mit OpenJTalk + Python
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Einfache Schlüsselwortextraktion mit TermExtract für Python
Englische Spracherkennung mit Python [Rede zu Text]
Ich möchte mit aws mit Python spielen
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Text Mining mit Python ② Visualisierung mit Word Cloud
Lesen von Zeichen in Bildern mit Python OCR
Berühren Sie AWS mit Serverless Framework und Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
LINE BOT mit Python + AWS Lambda + API Gateway
Bildverarbeitung von Grund auf mit Python (4) Konturextraktion
Serverlose Anwendung mit AWS SAM! (APIGATEWAY + Lambda (Python))
Verwalten Sie AWS mit der Python-Bibliothek Boto
Erste Schritte mit AWS IoT in Python
Serielle Kommunikation mit Python
Clustertext in Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Text Mining mit Python ① Morphologische Analyse (re: Linux-Version)
Versuchen Sie es mit Python.
Dynamische HTML-Seiten mit AWS Lambda und Python
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1