Installieren und Ausführen von TexterkennungscontainernInstall and run Recognize Text containers

Der Texterkennungsteil des maschinelles Sehens ist auch als Docker-Container verfügbar.The Recognize Text portion of Computer Vision is also available as a Docker container. Damit können Sie gedruckten Text in Bildern von verschiedensten Objekten mit unterschiedlichen Oberflächen und Hintergründen erkennen und extrahieren. Hierzu zählen z.B. Belege, Poster, und Visitenkarten.It allows you to detect and extract printed text from images of various objects with different surfaces and backgrounds, such as receipts, posters, and business cards.

Wichtig

Der Texterkennungscontainer funktioniert derzeit nur für Englisch.The Recognize Text container currently works only with English.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

VoraussetzungenPrerequisites

Zur Verwendung des Containers für die Texterkennung müssen Sie die folgenden Voraussetzungen erfüllen:You must meet the following prerequisites before using Recognize Text containers:

ErforderlichRequired ZweckPurpose
Docker-EngineDocker Engine Die Docker-Engine muss auf einem Hostcomputer installiert sein.You need the Docker Engine installed on a host computer. Für die Docker-Umgebung stehen Konfigurationspakete für macOS, Windows und Linux zur Verfügung.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux. Eine Einführung in Docker und Container finden Sie in der Docker-Übersicht.For a primer on Docker and container basics, see the Docker overview.

Docker muss so konfiguriert werden, dass die Container eine Verbindung mit Azure herstellen und Abrechnungsdaten an Azure senden können.Docker must be configured to allow the containers to connect with and send billing data to Azure.

Unter Windows muss Docker auch für die Unterstützung von Linux-Containern konfiguriert werden.On Windows, Docker must also be configured to support Linux containers.

Kenntnisse zu DockerFamiliarity with Docker Sie sollten über Grundkenntnisse der Konzepte von Docker, einschließlich Registrierungen, Repositorys, Container und Containerimages, verfügen und die grundlegenden docker-Befehle kennen.You should have a basic understanding of Docker concepts, like registries, repositories, containers, and container images, as well as knowledge of basic docker commands.
Azure Cognitive Services-RessourceAzure Cognitive Services resource Um den Container zu verwenden, benötigen Sie Folgendes:In order to use the container, you must have:

Eine Azure Cognitive Services-Ressource, den zugehörigen Abrechnungsschlüssel und den URI des Abrechnungsendpunkts.A Cognitive Services Azure resource and the associated billing key the billing endpoint URI. Beide Werte stehen auf der Übersichts- und auf der Schlüsselseite der Ressource zur Verfügung und werden zum Starten des Containers benötigt.Both values are available on the Overview and Keys pages for the resource and are required to start the container. Sie müssen, wie im folgenden Beispiel BILLING_ENDPOINT_URI dargestellt, dem Endpunkt-URI das vision/v2.0-Routing hinzufügen.You need to add the vision/v2.0 routing to the endpoint URI as shown in the following BILLING_ENDPOINT_URI example.

{BILLING_KEY} : Der Ressourcenschlüssel.{BILLING_KEY}: resource key

{BILLING_ENDPOINT_URI} : Der Endpunkt-URI. Beispiel: https://westus.api.cognitive.microsoft.com/vision/v2.0{BILLING_ENDPOINT_URI}: endpoint URI example is: https://westus.api.cognitive.microsoft.com/vision/v2.0

Anfordern des Zugriffs auf die private ContainerregistrierungRequest access to the private container registry

Füllen Sie das Formular zum Anfordern von Cognitive Services-Containern für maschinelles Sehen aus und senden Sie es anschließend, um Zugriff auf den Container anzufordern.Fill out and submit the Cognitive Services Vision Containers Request form to request access to the container. Im Formular müssen Sie Informationen über Sie selbst, Ihr Unternehmen und das Benutzerszenario eintragen, für das Sie den Container verwenden möchten.The form requests information about you, your company, and the user scenario for which you'll use the container. Nach der Übermittlung des Formulars wird es vom Azure Cognitive Services-Team überprüft, um sicherzustellen, dass Sie die Kriterien für den Zugriff auf die private Containerregistrierung erfüllen.After you submit the form, the Azure Cognitive Services team reviews it to make sure that you meet the criteria for access to the private container registry.

Wichtig

Sie müssen im Formular eine E-Mail-Adresse verwenden, die entweder einem Microsoft-Konto (MSA) oder einem Azure Active Directory-Konto (Azure AD) zugeordnet ist.You must use an email address associated with either a Microsoft Account (MSA) or an Azure Active Directory (Azure AD) account in the form.

Wenn Ihre Anforderung genehmigt wurde, erhalten Sie eine E-Mail mit Anweisungen zum Abrufen Ihrer Anmeldeinformationen und zum Zugreifen auf die private Containerregistrierung.If your request is approved, you receive an email with instructions that describe how to obtain your credentials and access the private container registry.

Anmelden bei der privaten ContainerregistrierungLog in to the private container registry

Es gibt verschiedene Möglichkeiten, sich bei der privaten Containerregistrierung für Cognitive Services-Container zu authentifizieren.There are several ways to authenticate with the private container registry for Cognitive Services containers. Es wird empfohlen, die Befehlszeilenmethode mithilfe der Docker CLI zu verwenden.We recommend that you use the command-line method by using the Docker CLI.

Verwenden Sie den Befehl docker login wie im folgenden Beispiel gezeigt, um sich bei der privaten Containerregistrierung für Cognitive Services-Container (containerpreview.azurecr.io) anzumelden.Use the docker login command, as shown in the following example, to log in to containerpreview.azurecr.io, which is the private container registry for Cognitive Services containers. Ersetzen Sie <username> durch den Benutzernamen und <password> durch das Kennwort. Diese Anmeldeinformationen wurden Ihnen vom Azure Cognitive Services-Team bereitgestellt.Replace <username> with the user name and <password> with the password provided in the credentials you received from the Azure Cognitive Services team.

docker login containerpreview.azurecr.io -u <username> -p <password>

Wenn Sie Ihre Anmeldeinformationen in einer Textdatei gesichert haben, können Sie den Inhalt dieser Textdatei mit dem Befehl docker login verketten.If you secured your credentials in a text file, you can concatenate the contents of that text file to the docker login command. Verwenden Sie den Befehl cat wie im folgenden Beispiel.Use the cat command, as shown in the following example. Ersetzen Sie <passwordFile> durch den Pfad und Namen der Textdatei, die das Kennwort enthält.Replace <passwordFile> with the path and name of the text file that contains the password. Ersetzen Sie den <Benutzernamen> durch den in Ihren Anmeldeinformationen angegebenen Benutzernamen.Replace <username> with the user name provided in your credentials.

cat <passwordFile> | docker login containerpreview.azurecr.io -u <username> --password-stdin

Der HostcomputerThe host computer

Der Host ist ein x64-basierter Computer, auf dem der Docker-Container ausgeführt wird.The host is a x64-based computer that runs the Docker container. Dies kann ein lokaler Computer oder ein Docker-Hostingdienst in Azure sein, z. B.:It can be a computer on your premises or a Docker hosting service in Azure, such as:

Containeranforderungen und -empfehlungenContainer requirements and recommendations

In der folgenden Tabelle werden die Mindestanforderungen und empfohlenen Werte für CPU-Kerne und Arbeitsspeicher beschrieben, die jedem Container für die Texterkennung zugeordnet werden.The following table describes the minimum and recommended CPU cores and memory to allocate for each Recognize Text container.

ContainerContainer MinimumMinimum EmpfohlenRecommended TPSTPS
(Minimum, Maximum)(Minimum, Maximum)
TexterkennungRecognize Text 1 Kern, 8 GB Arbeitsspeicher, 0,5 TPS1 core, 8 GB memory, 0.5 TPS 2 Kerne, 8 GB Arbeitsspeicher, 1 TPS2 cores, 8 GB memory, 1 TPS 0,5, 10.5, 1
  • Jeder Kern muss eine Geschwindigkeit von mindestens 2,6 GHz aufweisen.Each core must be at least 2.6 gigahertz (GHz) or faster.
  • TPS: Transaktionen pro SekundeTPS - transactions per second

Kern und Arbeitsspeicher entsprechen den Einstellungen --cpus und --memory, die im Rahmen des Befehls docker run verwendet werden.Core and memory correspond to the --cpus and --memory settings, which are used as part of the docker run command.

Abrufen des Containerimages mit docker pullGet the container image with docker pull

Es stehen Containerimages für die Texterkennung zur Verfügung.Container images for Recognize Text are available.

ContainerContainer RepositoryRepository
TexterkennungRecognize Text containerpreview.azurecr.io/microsoft/cognitive-services-recognize-text:latest

Verwenden Sie den Befehl docker pull, um ein Containerimage herunterzuladen.Use the docker pull command to download a container image.

Docker-Pullvorgang für den Container für die TexterkennungDocker pull for the Recognize Text container

docker pull containerpreview.azurecr.io/microsoft/cognitive-services-recognize-text:latest

Tipp

Mithilfe des Befehls docker images können Sie Ihre heruntergeladenen Containerimages auflisten.You can use the docker images command to list your downloaded container images. Mit dem folgenden Befehl werden beispielsweise die ID, das Repository und das Tag jedes heruntergeladenen Containerimages in Form einer Tabelle aufgelistet:For example, the following command lists the ID, repository, and tag of each downloaded container image, formatted as a table:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID            REPOSITORY              TAG
ebbee78a6baa       <container-name>         latest

Verwenden des ContainersHow to use the container

Wenn sich der Container auf dem Hostcomputer befindet, können Sie über den folgenden Prozess mit dem Container arbeiten.Once the container is on the host computer, use the following process to work with the container.

  1. Führen Sie den Container aus, und verwenden Sie dabei die erforderlichen Abrechnungseinstellungen.Run the container, with the required billing settings. Es sind noch weitere Beispiele für den Befehl docker run verfügbar.More examples of the docker run command are available.
  2. Fragen Sie den Vorhersageendpunkt des Containers ab.Query the container's prediction endpoint.

Ausführen des Containers mit docker runRun the container with docker run

Verwenden Sie den Befehl docker run, um den Container auszuführen.Use the docker run command to run the container. Für den Befehl werden die folgenden Parameter verwendet:The command uses the following parameters:

PlatzhalterPlaceholder WertValue
{BILLING_KEY}{BILLING_KEY} Dieser Schlüssel wird zum Starten des Containers verwendet und ist auf der Schlüsselseite von Azure Cognitive Services verfügbar.This key is used to start the container, and is available on the Azure Cognitive Services Keys page.
{BILLING_ENDPOINT_URI}{BILLING_ENDPOINT_URI} Der Wert für den URI des Abrechnungsendpunkts.The billing endpoint URI value. Ein Beispiel ist https://westus.api.cognitive.microsoft.com/vision/v2.0.Example is: https://westus.api.cognitive.microsoft.com/vision/v2.0

Sie müssen, wie im folgenden Beispiel BILLING_ENDPOINT_URI dargestellt, dem Endpunkt-URI das vision/v2.0-Routing hinzufügen.You need to add the vision/v2.0 routing to the endpoint URI as shown in the following BILLING_ENDPOINT_URI example.

Ersetzen Sie im folgenden Beispiel für den Befehl docker run diese Parameter durch Ihre eigenen Werte.Replace these parameters with your own values in the following example docker run command.

docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
containerpreview.azurecr.io/microsoft/cognitive-services-recognize-text \
Eula=accept \
Billing={BILLING_ENDPOINT_URI} \
ApiKey={BILLING_KEY}

Dieser Befehl:This command:

  • Führt einen Erkennungscontainer auf der Grundlage des Containerimages ausRuns a recognize container from the container image
  • Weist einen einzelnen CPU-Kern und 4 GB Arbeitsspeicher zuAllocates one CPU core and 4 gigabytes (GB) of memory
  • Verfügbarmachen des TCP-Ports 5000 und Zuweisen einer Pseudo-TTY-Verbindung für den ContainerExposes TCP port 5000 and allocates a pseudo-TTY for the container
  • Entfernt den Container automatisch, nachdem er beendet wurde.Automatically removes the container after it exits. Das Containerimage ist auf dem Hostcomputer weiterhin verfügbar.The container image is still available on the host computer.

Es sind noch weitere Beispiele für den Befehl docker run verfügbar.More examples of the docker run command are available.

Wichtig

Die Optionen Eula, Billing und ApiKey müssen angegeben werden, um den Container auszuführen, andernfalls wird der Container nicht gestartet.The Eula, Billing, and ApiKey options must be specified to run the container; otherwise, the container won't start. Weitere Informationen finden Sie unter Abrechnung.For more information, see Billing.

Ausführen mehrerer Container auf dem gleichen HostRun multiple containers on the same host

Wenn Sie beabsichtigen, mehrere Container mit offengelegten Ports auszuführen, stellen Sie sicher, dass jeder Container mit einem anderen offengelegten Port ausgeführt wird.If you intend to run multiple containers with exposed ports, make sure to run each container with a different exposed port. Führen Sie beispielsweise den ersten Container an Port 5000 und den zweiten Container an Port 5001 aus.For example, run the first container on port 5000 and the second container on port 5001.

Sie können diesen Container und einen anderen Azure Cognitive Services-Container zusammen auf dem Host ausführen.You can have this container and a different Azure Cognitive Services container running on the HOST together. Sie können auch mehrere Container desselben Cognitive Services-Containers ausführen.You also can have multiple containers of the same Cognitive Services container running.

Abfragen des Vorhersageendpunkts des ContainersQuery the container's prediction endpoint

Der Container stellt REST-basierte Endpunkt-APIs für die Abfragevorhersage bereit.The container provides REST-based query prediction endpoint APIs.

Verwenden Sie für Container-APIs den Host https://localhost:5000.Use the host, https://localhost:5000, for container APIs.

Asynchrone TexterkennungAsynchronous text recognition

Sie können die Vorgänge POST /vision/v2.0/recognizeText und GET /vision/v2.0/textOperations/*{id}* kombiniert verwenden, um gedruckten Text in einem Bild asynchron erkennen, ähnlich wie der Dienst für maschinelles Sehen die entsprechenden REST-Vorgänge verwendet.You can use the POST /vision/v2.0/recognizeText and GET /vision/v2.0/textOperations/*{id}* operations in concert to asynchronously recognize printed text in an image, similar to how the Computer Vision service uses those corresponding REST operations. Der Texterkennungscontainer erkennt zurzeit nur gedruckten Text, keinen handgeschriebenen Text, daher wird der Parameter mode, der normalerweise für den Vorgang des Diensts für maschinelles Sehen angegeben wird, vom Texterkennungscontainer ignoriert.The Recognize Text container only recognizes printed text, not handwritten text, at this time, so the mode parameter normally specified for the Computer Vision service operation is ignored by the Recognize Text container.

Synchrone TexterkennungSynchronous text recognition

Mit dem Vorgang POST /vision/v2.0/recognizeTextDirect können Sie gedruckten Text in einem Bild synchron erkennen.You can use the POST /vision/v2.0/recognizeTextDirect operation to synchronously recognize printed text in an image. Da dieser Vorgang synchron ist, entspricht der Anforderungstext für diesen Vorgang dem des Vorgangs POST /vision/v2.0/recognizeText, aber der Antworttext für diesen Vorgang ist identisch mit dem des Vorgangs GET /vision/v2.0/textOperations/*{id}*.Because this operation is synchronous, the request body for this operation is the same as that for the POST /vision/v2.0/recognizeText operation, but the response body for this operation is the same as that returned by the GET /vision/v2.0/textOperations/*{id}* operation.

Überprüfen auf aktive ContainerValidate that a container is running

Es gibt mehrere Möglichkeiten zu überprüfen, ob ein Container aktiv ist.There are several ways to validate that the container is running.

AnforderungRequest ZweckPurpose
http://localhost:5000/ Der Container stellt eine Homepage bereit.The container provides a home page.
http://localhost:5000/status Anforderung mit GET, um zu überprüfen, ob der Container aktiv ist, ohne eine Endpunktabfrage zu verursachen.Requested with GET, to validate that the container is running without causing an endpoint query. Diese Anforderung kann für Live- und Bereitschaftstests von Kubernetes verwendet werden.This request can be used for Kubernetes liveness and readiness probes.
http://localhost:5000/swagger Der Container stellt eine umfassende Dokumentation für die Endpunkte sowie die Funktion Try it now bereit.The container provides a full set of documentation for the endpoints and a Try it now feature. Diese Funktion ermöglicht Ihnen die Eingabe Ihrer Einstellungen in einem webbasierten HTML-Formular, sodass Sie die Abfrage ausführen können, ohne Code schreiben zu müssen.With this feature, you can enter your settings into a web-based HTML form and make the query without having to write any code. Nach der Rückgabe der Abfrage wird ein cURL-Beispielbefehl bereitgestellt, der das erforderliche Format für HTTP-Header und -Text veranschaulicht.After the query returns, an example CURL command is provided to demonstrate the HTTP headers and body format that's required.

Homepage des Containers

Beenden des ContainersStop the container

Zum Herunterfahren des Containers drücken Sie in der Befehlszeilenumgebung, in der der Container ausgeführt wird, STRG+C.To shut down the container, in the command-line environment where the container is running, select Ctrl+C.

ProblembehandlungTroubleshooting

Wenn Sie den Container mit einer Ausgabenbereitstellung ausführen und die Protokollierung aktiviert ist, generiert der Container Protokolldateien. Diese sind hilfreich, um Probleme beim Starten oder Ausführen des Containers zu beheben.If you run the container with an output mount and logging enabled, the container generates log files that are helpful to troubleshoot issues that happen while starting or running the container.

AbrechnungBilling

Der Container für die Texterkennung sendet Abrechnungsinformationen an Azure und verwendet dafür eine Ressource vom Typ Texterkennung in Ihrem Azure-Konto.The Recognize Text containers send billing information to Azure, using a Recognize Text resource on your Azure account.

Abfragen des Containers werden mit dem Tarif der Azure-Ressource in Ressource gestellt, die für den <ApiKey> verwendet wird.Queries to the container are billed at the pricing tier of the Azure resource used for the <ApiKey>.

Für die Ausführung von Azure Cognitive Services-Containern besteht keine Lizenz, wenn sie nicht zu Messzwecken mit dem Abrechnungsendpunkt verbunden sind.Azure Cognitive Services containers aren't licensed to run without being connected to the billing endpoint for metering. Sie müssen sicherstellen, dass die Container jederzeit Abrechnungsinformationen an den Abrechnungsendpunkt übermitteln können.You must enable the containers to communicate billing information with the billing endpoint at all times. Cognitive Services-Container senden keine Kundendaten (z. B. das analysierte Bild oder den analysierten Text) an Microsoft.Cognitive Services containers don't send customer data, such as the image or text that's being analyzed, to Microsoft.

Herstellen einer Verbindung mit AzureConnect to Azure

Der Container benötigt die Abrechnungsargumentwerte, um ausgeführt werden zu können.The container needs the billing argument values to run. Diese Werte ermöglichen es dem Container, eine Verbindung mit dem Abrechnungsendpunkt herzustellen.These values allow the container to connect to the billing endpoint. Der Container meldet die Nutzung etwa alle 10 bis 15 Minuten.The container reports usage about every 10 to 15 minutes. Wenn der Container nicht innerhalb des zulässigen Zeitfensters eine Verbindung mit Azure herstellt, wird der Container weiterhin ausgeführt, verarbeitet aber keine Anfragen, bis der Abrechnungsendpunkt wiederhergestellt wurde.If the container doesn't connect to Azure within the allowed time window, the container continues to run but doesn't serve queries until the billing endpoint is restored. Es erfolgen 10 Verbindungsversuche im gleichen Zeitintervall von 10 bis 15 Minuten.The connection is attempted 10 times at the same time interval of 10 to 15 minutes. Wenn die Verbindung mit dem Abrechnungsendpunkt nicht innerhalb der 10 Versuche hergestellt werden kann, wird die Ausführung des Containers beendet.If it can't connect to the billing endpoint within the 10 tries, the container stops running.

AbrechnungsargumenteBilling arguments

Alle drei der folgenden Optionen müssen mit gültigen Werten angegeben werden, damit der Container mit dem Befehl docker run gestartet wird.All three of the following options must be specified with valid values in order for the docker run command to start the container.

OptionOption BESCHREIBUNGDescription
ApiKey Der API-Schlüssel der Cognitive Services-Ressource, der zum Nachverfolgen von Abrechnungsinformationen verwendet wird.The API key of the Cognitive Services resource used to track billing information.
Der Wert dieser Option muss für die bereitgestellte Ressource, die in Billing angegeben wurde, auf einen API-Schlüssel festgelegt werden.The value of this option must be set to an API key for the provisioned resource specified in Billing.
Billing Der Endpunkt der Cognitive Services-Ressource, der zum Nachzuverfolgen von Abrechnungsinformationen verwendet wird.The endpoint of the Cognitive Services resource used to track billing information.
Der Wert dieser Option muss auf den Endpunkt-URI einer bereitgestellten Azure-Ressource festgelegt werden.The value of this option must be set to the endpoint URI of a provisioned Azure resource.
Eula Gibt an, dass Sie die Lizenz für den Container akzeptiert haben.Indicates that you accepted the license for the container.
Der Wert dieser Option muss auf accept festgelegt werden.The value of this option must be set to accept.

Weitere Informationen zu diesen Optionen finden Sie unter Konfigurieren von Containern.For more information about these options, see Configure containers.

BlogbeiträgeBlog posts

EntwicklerbeispieleDeveloper samples

Beispiele für Entwickler finden Sie in unserem GitHub-Repository.Developer samples are available at our GitHub repository.

Anzeigen des WebinarsView webinar

Im Webinar erhalten Sie Informationen zu folgenden Aktionen:Join the webinar to learn about:

  • Bereitstellen von Cognitive Services auf einem beliebigen Computer mit DockerHow to deploy Cognitive Services to any machine using Docker
  • Bereitstellen von Cognitive Services in AKSHow to deploy Cognitive Services to AKS

ZusammenfassungSummary

In diesem Artikel haben Sie die Konzepte und den Workflow zum Herunterladen, Installieren und Ausführen von Containern für die Texterkennung kennengelernt.In this article, you learned concepts and workflow for downloading, installing, and running Recognize Text containers. Zusammenfassung:In summary:

  • Die Texterkennung stellt einen Linux-Container für Docker bereit, der die Texterkennung kapselt.Recognize Text provides a Linux container for Docker, encapsulating recognize text.
  • Containerimages werden aus Microsoft Container Registry (MCR) in Azure heruntergeladen.Container images are downloaded from the Microsoft Container Registry (MCR) in Azure.
  • Containerimages werden in Docker ausgeführt.Container images run in Docker.
  • Sie können entweder die REST-API oder das SDK verwenden, um Vorgänge in Containern für die Texterkennung über den Host-URI des Containers aufzurufen.You can use either the REST API or SDK to call operations in Recognize Text containers by specifying the host URI of the container.
  • Bei der Instanziierung eines Containers müssen Sie Abrechnungsinformationen angeben.You must specify billing information when instantiating a container.

Wichtig

Für die Ausführung von Cognitive Services-Containern besteht keine Lizenz, wenn sie nicht zu Messzwecken mit Azure verbunden sind.Cognitive Services containers are not licensed to run without being connected to Azure for metering. Kunden müssen sicherstellen, dass Container jederzeit Abrechnungsinformationen an den Messungsdienst übermitteln können.Customers need to enable the containers to communicate billing information with the metering service at all times. Cognitive Services-Container senden keine Kundendaten (etwa das analysierte Bild oder den analysierten Text) an Microsoft.Cognitive Services containers do not send customer data (for example, the image or text that is being analyzed) to Microsoft.

Nächste SchritteNext steps