Textextraktion mit GCP Cloud Vision API (Python3.6)

Einführung

Ich habe versucht, mit der GCP Cloud Vision API Text aus Bildern zu extrahieren

Entwicklungsumgebung

Einführung

Siehe Text im Bild erkennen.

    1. Erstellen Sie ein Projekt über die Cloud-Konsole.
  1. Stellen Sie sicher, dass die Abrechnung aktiviert ist.
    1. Aktivieren Sie die Vision-API. Vier. Stellen Sie die Authentifizierung ein und die JSON-Datei wird auf Ihren PC heruntergeladen. Fünf. Setzen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den Pfad der JSON-Datei.
  2. Öffnen Sie die Anaconda-Eingabeaufforderung und erstellen Sie eine Python 3.6-Umgebung.
$ conda create -n py36 python=3.6
$ conda activate py36
    1. Installieren Sie die Bibliothek
$ pip install numpy
$ pip install pillow
$ pip install opencv-python
$ pip install --upgrade google-cloud-vision
  1. Lassen Sie uns den folgenden Code ausführen
from google.cloud import vision
import io
import os
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image

def detect_text(image):
    """Detects text in the file."""
    client = vision.ImageAnnotatorClient()

    content = cv2.imencode(".png ", image)[1].tostring()
    tmp = vision.Image(content=content)
    response = client.text_detection(image=tmp)
    texts = response.text_annotations
    if response.error.message:
        raise Exception(
            '{}\nFor more info on error messages, check: '
            'https://cloud.google.com/apis/design/errors'.format(
                response.error.message))
    return texts

filename = "338px-Atomist_quote_from_Democritus.png "
root, ext = os.path.splitext(filename)
image = cv2.imread(filename, cv2.IMREAD_COLOR)
texts = detect_text(image)
fontpath ='C:\Windows\Fonts\meiryo.ttc'
font = ImageFont.truetype(fontpath, 10)
image_pil = Image.fromarray(image)
for text in texts:
    print(text.description)
    vertices = [(vertex.x, vertex.y) for vertex in text.bounding_poly.vertices]
    # cv2.putText(image, text.description, vertices[0], cv2.FONT_HERSHEY_PLAIN, 1, (255, 255, 255), 1, cv2.LINE_AA)
    # cv2.rectangle(image, vertices[0], vertices[2], (0, 255, 0))
    draw = ImageDraw.Draw(image_pil)
    w, h = draw.textsize(text.description, font = font)
    draw.text((vertices[0][0], vertices[0][1]-h), text.description, font=font, fill=(255, 255, 255, 0))
    # draw.text(vertices[0], text.description, font=font, fill=(255, 255, 255, 0))
    draw.rectangle((vertices[0], vertices[2]), outline=(0, 255, 0))
image = np.array(image_pil)
cv2.imshow("image", image)
cv2.imwrite(root+"_ocr"+ext, image)
cv2.waitKey(0)
input PIL PIL(OpenCV-Stil) OpenCV
338px-Atomist_quote_from_Democritus.png 338px-Atomist_quote_from_Democritus_ocr.png 338px-Atomist_quote_from_Democritus_ocr_2.png 338px-Atomist_quote_from_Democritus_ocr_3.png

Bei OpenCV ist Englisch (Japanisch) in voller Breite verstümmelt, daher habe ich PIL verwendet, um den Text anzuzeigen. Danke für deine harte Arbeit.

Recommended Posts

Textextraktion mit GCP Cloud Vision API (Python3.6)
Textextraktion (Lese-API) mit Azure Computer Vision-API (Python3.6)
Textextraktion mit AWS Textract (Python3.6)
Ablauf des Extrahierens von Text in PDF mit der Cloud Vision API
Google Cloud Vision API-Beispiel für Python
Verwenden Sie die Google Cloud Vision-API von Python
[GCP] Betreiben Sie Google Cloud Storage mit Python
Text Mining mit Python ② Visualisierung mit Word Cloud
Probleme mit den Ausgabeergebnissen mit der Cloud Vision-API von Google
[Blender] Ergänzen Sie die Python-API von Blender mit einem Texteditor
Verwenden Sie die Trello-API mit Python
Verwenden Sie die Twitter-API mit Python
Web-API mit Python + Falcon
Rufen Sie die API mit python3 auf.
Verwenden Sie die Unterschall-API mit Python3
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
[Paketwolke] Verwalten Sie Python-Pakete mit der Paketwolke
Erstellen Sie Awaitable mit der Python / C-API
GOTO in Python mit erhabenem Text 3
Holen Sie sich Bewertungen mit Python Googlemap API
Führen Sie Rotrics DexArm mit der Python-API aus
Quine Post mit Qiita API (Python)
Text Mining mit Python ① Morphologische Analyse
Aktivieren Sie Python raw_input mit Sublime Text 3
Führen Sie XGBoost mit Cloud Dataflow (Python) aus.
Klicken Sie mit Python auf die Etherpad-Lite-API
Sprechen Sie japanischen Text mit OpenJTalk + Python
"AttributeError: Modul 'google.cloud.vision' hat keine Attributtypen '" in der Cloud Vision API (GCP Vision AI)
Spielen Sie mit dem kostenlosen GCP-Frame ~ Cloud Run, Datastore & LINE Messaging API ~
Cloud DevOps-Kochbuch Teil 4 - Entdecken Sie DevOps DirectMail in Python mit der REST-API
Übersetzen Sie die Untertitel im WebVTT-Format von Coursera mit der GCP Cloud Translation API
Sammeln von Informationen von Twitter mit Python (Twitter API)
Einfache Schlüsselwortextraktion mit TermExtract für Python
Englische Spracherkennung mit Python [Rede zu Text]
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
Streaming-Spracherkennung mit der Google Cloud Speech API
Python ruft die Google Cloud Vision API von LINE BOT über AWS Lambda auf
Einfacher Slack API-Client mit Python
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
Verstopft mit Python-Update der GCP-Konsole ①
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
Transkription von Bildern mit der Vision API von GCP
Maschinelles Lernen x Web App-Diagnose: Erkennen Sie CAPTCHA mit der Cloud Vision-API
[GCP] Verfahren zum Erstellen einer Webanwendung mit Cloud-Funktionen (Python + Flask)
[Azure] Klicken Sie mit Python auf Custom Vision Service
[Python] Erstellen Sie schnell eine API mit Flask
Erkennen Sie japanische Zeichen anhand von Bildern mithilfe der Cloud Vision-API von Google mit Python
Serverlose Gesichtserkennungs-API mit Python
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Verwendung der Cloud Vision API von GCP
Lesen von Zeichen in Bildern mit Python OCR
Transkribieren Sie WAV-Dateien mit der Cloud Speech API
Behandeln Sie strukturierte Protokolle mit GCP Cloud Logging
[Cloud102] # 1 Beginnen wir mit Python (Teil 3 Jupyter Notebook-Konstruktion GCP Cloud Shell Edition)
Probieren Sie es mit Word Cloud Japanese Python JupyterLab.
Ich habe "License OCR" mit der Google Vision API ausprobiert