Textextraktion (Lese-API) mit Azure Computer Vision-API (Python3.6)

Einführung

Ich habe versucht, Text aus dem Bild zu extrahieren

Entwicklungsumgebung

Einführung

    1. Melden Sie sich beim Azure-Portal an (https://portal.azure.com/).
  1. Erstellen Sie eine Ressource für die Computer Vision-API image.png

    1. Notieren Sie sich den Schlüssel und den Endpunkt image.png

Vier. Bitte installieren Sie die erforderlichen Bibliotheken.

pip install matplotlib
pip install pillow
pip install opencv-python
pip install --upgrade azure-cognitiveservices-vision-computervision 

Fünf. Geben Sie den Schlüssel und den Endpunkt ein, den Sie notiert haben, und führen Sie den folgenden Code aus!

subscription_key = "<your subscription key>"
endpoint = "<your API endpoint>"

Der Endpunkt scheint auch dann zu funktionieren, wenn Sie die Region angeben.

endpoint = "https://<your region>.api.cognitive.microsoft.com/"

Extrahieren Sie Text aus der Bild-URL

[Schnellstart: Extrahieren Sie gedruckten und handgeschriebenen Text mit der REST-API und Python von Computer Vision](https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision / quickstarts / python-hand-text)

import json
import os
import os.path
import sys
import requests
import time
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from PIL import Image
from io import BytesIO
 import cv2

subscription_key = "<your subscription key>"
endpoint = "<your API endpoint>"
 endpoint = "https://japanwest.api.cognitive.microsoft.com/"
text_recognition_url = endpoint + "vision/v3.1/read/analyze"

image_url = "https://raw.githubusercontent.com/MicrosoftDocs/azure-docs/master/articles/cognitive-services/Computer-vision/Images/readsample.jpg "
headers = {'Ocp-Apim-Subscription-Key': subscription_key}
data = {'url': image_url}
response = requests.post(text_recognition_url, headers=headers, json=data)
response.raise_for_status()

operation_url = response.headers["Operation-Location"]
analysis = {}
poll = True
while (poll):
    response_final = requests.get(response.headers["Operation-Location"], headers=headers)
    analysis = response_final.json()
    
    print(json.dumps(analysis, indent=4))

    time.sleep(1)
    if ("analyzeResult" in analysis):
        poll = False
    if ("status" in analysis and analysis['status'] == 'failed'):
        poll = False

polygons = []
if ("analyzeResult" in analysis):
    polygons = [(line["boundingBox"], line["text"])
                for line in analysis["analyzeResult"]["readResults"][0]["lines"]]

image = Image.open(BytesIO(requests.get(image_url).content))
ax = plt.imshow(image)
for polygon in polygons:
    vertices = [(polygon[0][i], polygon[0][i+1])
                for i in range(0, len(polygon[0]), 2)]
    text = polygon[1]
    patch = Polygon(vertices, closed=True, fill=False, linewidth=2, color='y')
    ax.axes.add_patch(patch)
    plt.text(vertices[0][0], vertices[0][1], text, fontsize=20, va="top")
plt.show()
input output
readsample.jpg Figure_1.png

Extrahieren Sie Text aus dem lokalen Bild

import json
import os
import os.path
import sys
import requests
import time
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from PIL import Image
from io import BytesIO
import cv2

subscription_key = "<your subscription key>"
endpoint = "<your API endpoint>"
 endpoint = "https://japanwest.api.cognitive.microsoft.com/"
text_recognition_url = endpoint + "vision/v3.1/read/analyze"

headers = {'Ocp-Apim-Subscription-Key': subscription_key, 'Content-Type': 'application/octet-stream'}
filename = "readsample.jpg "
root, ext = os.path.splitext(filename)
 image_data = open(filename, "rb").read()
color = cv2.imread(filename, cv2.IMREAD_COLOR)
cv2.namedWindow("color", cv2.WINDOW_NORMAL)
cv2.imshow("color", color)
cv2.waitKey(1)
image_data = cv2.imencode(ext, color)[1].tostring()
response = requests.post(text_recognition_url, headers=headers, data=image_data)
response.raise_for_status()

operation_url = response.headers["Operation-Location"]
analysis = {}
poll = True
while (poll):
    response_final = requests.get(
        response.headers["Operation-Location"], headers=headers)
    analysis = response_final.json()
    
    print(json.dumps(analysis, indent=4))

    time.sleep(1)
    if ("analyzeResult" in analysis):
        poll = False
    if ("status" in analysis and analysis['status'] == 'failed'):
        poll = False

polygons = []
if ("analyzeResult" in analysis):
    polygons = [(line["boundingBox"], line["text"])
                for line in analysis["analyzeResult"]["readResults"][0]["lines"]]

 image = Image.open(BytesIO(image_data))
image = Image.fromarray(color)
ax = plt.imshow(image)
for polygon in polygons:
    vertices = [(polygon[0][i], polygon[0][i+1])
                for i in range(0, len(polygon[0]), 2)]
    text = polygon[1]
    patch = Polygon(vertices, closed=True, fill=False, linewidth=2, color='y')
    ax.axes.add_patch(patch)
    plt.text(vertices[0][0], vertices[0][1], text, fontsize=20, va="top")
plt.show()
input output
readsample.jpg Figure_3.png

Verwenden Sie die Computer Vision-Clientbibliothek

Schnellstart: Verwenden Sie die Computer Vision Client Library (https://docs.microsoft.com/en-us/azure/cognitive-services/Computer-vision/quickstarts-sdk/client-library?pivots=programming-language) -python & tabs = Visual-Studio)

from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes
from msrest.authentication import CognitiveServicesCredentials

from array import array
import os
from PIL import Image
import sys
import time
import cv2 
from io import BytesIO

subscription_key = "<your subscription key>"
endpoint = "<your API endpoint>"
 endpoint = "https://japanwest.api.cognitive.microsoft.com/"

computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

print("===== Batch Read File - remote =====")
remote_image_handw_text_url = "https://raw.githubusercontent.com/MicrosoftDocs/azure-docs/master/articles/cognitive-services/Computer-vision/Images/readsample.jpg "

recognize_handw_results = computervision_client.read(remote_image_handw_text_url, raw=True)
operation_location_remote = recognize_handw_results.headers["Operation-Location"]
operation_id = operation_location_remote.split("/")[-1]

while True:
    get_handw_text_results = computervision_client.get_read_result(operation_id)
    if get_handw_text_results.status not in ['notStarted', 'running']:
        break
    time.sleep(1)

if get_handw_text_results.status == OperationStatusCodes.succeeded:
    for text_result in get_handw_text_results.analyze_result.read_results:
        for line in text_result.lines:
            print(line.text)
            print(line.bounding_box)
print()
===== Batch Read File - remote =====
The quick brown fox jumps
[38.0, 650.0, 2572.0, 699.0, 2570.0, 854.0, 37.0, 815.0]
over
[184.0, 1053.0, 508.0, 1044.0, 510.0, 1123.0, 184.0, 1128.0]
the lazy dog!
[639.0, 1011.0, 1976.0, 1026.0, 1974.0, 1158.0, 637.0, 1141.0]

Danke für deine harte Arbeit.

Recommended Posts

Textextraktion (Lese-API) mit Azure Computer Vision-API (Python3.6)
Textextraktion mit GCP Cloud Vision API (Python3.6)
Textextraktion mit AWS Textract (Python3.6)
[Azure] Klicken Sie mit Python auf Custom Vision Service
Lesen von Zeichen in Bildern mit Python OCR
Jüngste Fähigkeit zur Bilderkennung - Die neuesten Forschungsergebnisse von MS unter Verwendung der Computer Vision API mit Python
Lesen Sie CSV mit Python-Pandas
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
Lesen von JSON-Daten mit Python
Ablauf des Extrahierens von Text in PDF mit der Cloud Vision API
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
Klicken Sie mit Python auf die Etherpad-Lite-API
Extrahieren Sie Text aus [python] pdf und lesen Sie Zeichen mit Open-Jtalk vor
Sprechen Sie japanischen Text mit OpenJTalk + Python
Hochladen und Herunterladen von Bildern in Azure Storage. Mit Python + Anfragen + REST API
Laden Sie fbx aus Python mitinema4d
Sammeln von Informationen von Twitter mit Python (Twitter API)
Google Cloud Vision API-Beispiel für Python
Einfache Schlüsselwortextraktion mit TermExtract für Python
Englische Spracherkennung mit Python [Rede zu Text]
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Einfacher Slack API-Client mit Python
Holen Sie sich Lebensmitteldaten mit Amazon API (Python)
Verwenden von Python und MeCab mit Azure Databricks
[C] [Python] Lesen mit AquesTalk unter Linux
Lesen wir die RINEX-Datei mit Python ①
Bearbeiten von Azure CosmosDB aus Python Part.2
Verwenden Sie die Google Cloud Vision-API von Python
Transkription von Bildern mit der Vision API von GCP
[Python] Region Covariance: Verteilte Covarianzmatrix und Computer Vision
[Python] Bilder mit OpenCV lesen (für Anfänger)
[Python] Erstellen Sie schnell eine API mit Flask
Text Mining mit Python ② Visualisierung mit Word Cloud
[Automatisierung] Lesen Sie Word-Dokumente mit Python
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Verwenden Sie Python und MeCab mit Azure-Funktionen
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
Lesen einer CSV-Datei mit Python 2/3
Flask kann mit Azure API Apps nicht RESTful sein
[Computer Vision] Epipolare Geometrie mit Katzen gelernt
Lesen Sie Daten mit python / netCDF> nc.variables [] / Überprüfen Sie die Datengröße
Lesen Sie Python-CSV-Daten mit Pandas ⇒ Graph mit Matplotlib
Ich habe "License OCR" mit der Google Vision API ausprobiert
Kantenextraktion mit Python + OpenCV (Sobel-Filter, Laplace-Filter)
Lesen Sie JSON mit Python und geben Sie CSV aus
[Python] Wie man Excel-Dateien mit Pandas liest
Medizinische Bildanalyse mit Python 1 (MRT-Bild mit SimpleITK lesen)