Nachdem Sie ein AutoML Vision Edge-Modell erstellt und in einen Google Cloud Storage-Bucket exportiert haben, können Sie RESTful-Dienste mit Ihren AutoML Vision Edge-Modellen und TF Serving-Docker-Images verwenden.
Umfang
Mit Docker-Containern lassen sich Edge-Modelle problemlos auf verschiedenen Geräten bereitstellen. Zum Ausführen von Edge-Modellen können Sie mit einer beliebigen Sprache REST APIs aus Containern aufrufen. Dies bietet den zusätzlichen Vorteil, dass Sie weder Abhängigkeiten installieren noch geeignete TensorFlow-Versionen suchen müssen.
In dieser Anleitung lernen Sie Schritt für Schritt, wie Sie Edge-Modelle auf Geräten mit Docker-Containern ausführen.
Insbesondere führt Sie diese Anleitung durch drei Schritte:
- Vorkonfigurierte Container abrufen
- Container mit Edge-Modellen ausführen, um REST APIs zu starten
- Vorhersagen treffen
Viele Geräte haben nur CPUs, einige haben jedoch GPUs, um Vorhersagen schneller zu erhalten. Daher stellen wir Anleitungen mit vorkonfigurierten CPU- und GPU-Containern bereit.
Ziele
In dieser einführenden, umfassenden Schritt-für-Schritt-Anleitung werden Codebeispiele für folgende Zwecke verwendet:
- Docker-Container abrufen
- REST APIs über Docker-Container mit Edge-Modellen starten
- Vorhersagen treffen, um analysierte Ergebnisse zu erhalten
Vorbereitung
Für diese Anleitung müssen Sie folgende Schritte ausführen:
- Ein exportierbares Edge-Modell trainieren. Folgen Sie der Kurzanleitung für Edge-Gerätemodelle, um ein Edge-Modell zu trainieren.
- Ein AutoML Vision Edge-Modell exportieren. Dieses Modell wird mit Containern als REST APIs bereitgestellt.
- Docker installieren. Diese Software wird zum Ausführen von Docker-Containern benötigt.
- (Optional) NVIDIA-Docker und -Treiber installieren. Dies ist ein optionaler Schritt, wenn Sie Geräte mit GPUs verwenden und Vorhersagen schneller erhalten möchten.
- Testbilder vorbereiten. Diese Bilder werden in Anfragen gesendet, um analysierte Ergebnisse zu erhalten.
Einzelheiten zum Exportieren von Modellen und zur Installation der erforderlichen Software finden Sie im folgenden Abschnitt.
AutoML Vision Edge-Modell exportieren
Nachdem Sie ein Edge-Modell trainiert haben, können Sie es auf verschiedene Geräte exportieren.
Die Container unterstützen TensorFlow-Modelle, die beim Export den Namen saved_model.pb
haben.
Wählen Sie zum Exportieren eines AutoML Vision Edge-Modells für Container über die Benutzeroberfläche den Tab Container aus und exportieren Sie das Modell dann nach ${YOUR_MODEL_PATH} in Google Cloud Storage. Dieses exportierte Modell wird später mit Containern als REST APIs bereitgestellt.
Führen Sie den folgenden Befehl aus, um das exportierte Modell lokal herunterzuladen.
Dabei gilt:
- ${YOUR_MODEL_PATH}: Modellstandort in Google Cloud Storage (z. B.
gs://my-bucket-vcm/models/edge/ICN4245971651915048908/2020-01-20_01-27-14-064_tf-saved-model/
) - ${YOUR_LOCAL_MODEL_PATH}: der lokale Pfad, unter dem Sie das Modell speichern möchten (z. B.
/tmp
)
gsutil cp ${YOUR_MODEL_PATH} ${YOUR_LOCAL_MODEL_PATH}/saved_model.pb
Docker installieren
Docker ist Software, die zum Bereitstellen und Ausführen von Anwendungen in Containern verwendet wird.
Installieren Sie Docker Community Edition (CE) auf Ihrem System. Damit werden Edge-Modelle als REST APIs bereitgestellt.
NVIDIA-Treiber und NVIDIA DOCKER installieren (optional – nur für GPU)
Einige Geräte haben GPUs, um schnellere Vorhersagen zu ermöglichen. Der GPU-Docker-Container unterstützt NVIDIA-GPUs.
Zum Ausführen von GPU-Containern müssen Sie den NVIDIA-Treiber und NVIDIA Docker auf Ihrem System installieren.
Modellinferenz mithilfe einer CPU ausführen
In diesem Abschnitt wird Schritt für Schritt erklärt, wie Sie mithilfe von CPU-Containern Modellinferenzen ausführen. Mit dem installierten Docker rufen Sie den CPU-Container ab und führen ihn aus, um die exportierten Edge-Modelle als REST APIs bereitzustellen. Dann senden Sie Anfragen mit einem Testbild an die REST APIs, um analysierte Ergebnisse zu erhalten.
Docker-Image abrufen
Zuerst verwenden Sie Docker, um einen vorkonfigurierten CPU-Container abzurufen. Der vorkonfigurierte CPU-Container hat bereits die gesamte Umgebung, um exportierte Edge-Modelle bereitzustellen, enthält jedoch noch keine Edge-Modelle.
Der vorkonfigurierte CPU-Container wird in Google Container Registry gespeichert. Legen Sie vor dem Anfordern des Containers in Google Container Registry eine Umgebungsvariable für den Speicherort des Containers fest:
export CPU_DOCKER_GCS_PATH=gcr.io/cloud-devrel-public-resources/gcloud-container-1.14.0:latest
Nachdem Sie die Umgebungsvariable für den Container Registry-Pfad festgelegt haben, führen Sie die folgende Befehlszeile aus, um den CPU-Container abzurufen:
sudo docker pull ${CPU_DOCKER_GCS_PATH}
Docker-Container ausführen
Nachdem Sie den vorhandenen Container abgerufen haben, führen Sie ihn aus, um Edge-Modellinferenzen mit REST APIs bereitzustellen.
Bevor Sie den CPU-Container starten, müssen Sie Systemvariablen festlegen:
- ${CONTAINER_NAME}: ein String, der den Namen des Containers bei der Ausführung angibt, z. B.
CONTAINER_NAME=automl_high_accuracy_model_cpu
- ${PORT}: eine Zahl, die den Port auf Ihrem Gerät angibt, um später REST API-Aufrufe anzunehmen, z. B.
PORT=8501
Nachdem Sie die Variablen festgelegt haben, führen Sie Docker in der Befehlszeile aus, um mit REST APIs Edge-Modellinferenzen bereitzustellen:
sudo docker run --rm --name ${CONTAINER_NAME} -p ${PORT}:8501 -v ${YOUR_MODEL_PATH}:/tmp/mounted_model/0001 -t ${CPU_DOCKER_GCS_PATH}
Wenn der Container erfolgreich ausgeführt wird, können die REST APIs unter http://localhost:${PORT}/v1/models/default:predict
Ergebnisse liefern. Im folgenden Abschnitt wird beschrieben, wie Anfragen für Vorhersagen an diesen Speicherort gesendet werden.
Vorhersageanfrage senden
Nachdem der Container nun erfolgreich ausgeführt wird, können Sie Vorhersageanfragen für ein Testbild an die REST APIs senden.
Befehlszeile
Der Anfragetext in der Befehlszeile enthält base64-codierte image_bytes
und den String key
, um das angegebene Bild zu identifizieren. Weitere Informationen zur Bildcodierung finden Sie unter Base64-Codierung. Das Format der JSON-Anfragedatei sieht so aus:
/tmp/request.json
{ "instances": [ { "image_bytes": { "b64": "/9j/7QBEUGhvdG9zaG9...base64-encoded-image-content...fXNWzvDEeYxxxzj/Coa6Bax//Z" }, "key": "your-chosen-image-key" } ] }
Nachdem Sie eine lokale JSON-Anfragedatei erstellt haben, können Sie eine Vorhersageanfrage senden.
Verwenden Sie dafür den folgenden Befehl:
curl -X POST -d @/tmp/request.json http://localhost:${PORT}/v1/models/default:predictAntwort
Die Ausgabe sollte in etwa so aussehen:
{ "predictions": [ { "detection_multiclass_scores": [ [0.00233048, 0.00207388, 0.00123361, 0.0052332, 0.00132892, 0.00333592], [0.00233048, 0.00207388, 0.00123361, 0.0052332, 0.00132892, 0.00333592], [0.00240907, 0.00173151, 0.00134027, 0.00287125, 0.00130472, 0.00242674], [0.00227344, 0.00124374, 0.00147101, 0.00377446, 0.000997812, 0.0029003], [0.00132903, 0.000844955, 0.000537515, 0.00474253, 0.000508994, 0.00130466], [0.00233048, 0.00207388, 0.00123361, 0.0052332, 0.00132892, 0.00333592], [0.00110534, 0.000204086, 0.000247836, 0.000553966, 0.000193745, 0.000359297], [0.00112912, 0.000443578, 0.000779897, 0.00203282, 0.00069508, 0.00188044], [0.00271052, 0.00163364, 0.00138229, 0.00314173, 0.00164038, 0.00332257], [0.00227907, 0.00217116, 0.00190553, 0.00321552, 0.00233933, 0.0053153], [0.00271052, 0.00163364, 0.00138229, 0.00314173, 0.00164038, 0.00332257], [0.00250274, 0.000489146, 0.000879943, 0.00355569, 0.00129834, 0.00355521], [0.00227344, 0.00124374, 0.00147101, 0.00377446, 0.000997812, 0.0029003], [0.00241205, 0.000786602, 0.000896335, 0.00187016, 0.00106838, 0.00193021], [0.00132069, 0.00173706, 0.00389183, 0.00536761, 0.00387135, 0.00752795], [0.0011555, 0.00025022, 0.000221372, 0.000536889, 0.000187278, 0.000306398], [0.00150242, 0.000391901, 0.00061205, 0.00158429, 0.000300348, 0.000788659], [0.00181362, 0.000169843, 0.000458032, 0.000690967, 0.000296295, 0.000412017], [0.00101465, 0.000184, 0.000148445, 0.00068599, 0.000111818, 0.000290155], [0.00128508, 0.00108775, 0.00298983, 0.00174832, 0.00143594, 0.00285548], [0.00137702, 0.000480384, 0.000831485, 0.000920624, 0.000405788, 0.000735044], [0.00103369, 0.00152704, 0.000892937, 0.00269693, 0.00214335, 0.00588191], [0.0013324, 0.000647604, 0.00293729, 0.00156629, 0.00195253, 0.00239435], [0.0022423, 0.00141206, 0.0012649, 0.00450748, 0.00138766, 0.00249887], [0.00125939, 0.0002428, 0.000370741, 0.000917137, 0.00024578, 0.000412881], [0.00135186, 0.000139147, 0.000525713, 0.00103053, 0.000366062, 0.000844955], [0.00127548, 0.000989318, 0.00256863, 0.00162545, 0.00311682, 0.00439551], [0.00112912, 0.000443578, 0.000779897, 0.00203282, 0.00069508, 0.00188044], [0.00114602, 0.00107747, 0.00145, 0.00320849, 0.00211915, 0.00331426], [0.00148326, 0.00059548, 0.00431389, 0.00164703, 0.00311947, 0.00268343], [0.00154313, 0.000925034, 0.00770769, 0.00252789, 0.00489518, 0.00352332], [0.00135094, 0.00042069, 0.00088492, 0.000987828, 0.000755847, 0.00144881], [0.0015994, 0.000540197, 0.00163212, 0.00140327, 0.00114474, 0.0026556], [0.00150502, 0.000138223, 0.000343591, 0.000529736, 0.000173837, 0.000381887], [0.00127372, 0.00066787, 0.00149515, 0.00272799, 0.00110033, 0.00370145], [0.00144503, 0.000365585, 0.00318581, 0.00126475, 0.00212631, 0.00204816], [0.00132069, 0.00173706, 0.00389183, 0.00536761, 0.00387135, 0.00752795], [0.00198057, 0.000307024, 0.000573188, 0.00147268, 0.000757724, 0.0017142], [0.00157535, 0.000590324, 0.00190055, 0.00170627, 0.00138417, 0.00246152], [0.00177169, 0.000364572, 0.00183856, 0.000767767, 0.00121492, 0.000916481] ], "detection_classes": [5.0, 2.0, 5.0, 5.0, 5.0, 4.0, 5.0, 5.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 5.0, 4.0, 5.0, 5.0, 4.0, 5.0, 5.0, 4.0, 5.0, 2.0, 4.0, 4.0, 5.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 5.0, 4.0, 4.0, 5.0, 5.0], "num_detections": 40.0, "image_info": [320, 320, 1, 0, 320, 320], "detection_boxes": [ [0.457792, 0.0, 0.639324, 0.180828], [0.101111, 0.0, 0.89904, 0.995376], [0.447649, 0.314644, 0.548206, 0.432875], [0.250341, 0.733411, 0.3419, 0.847185], [0.573936, 0.0933048, 0.766472, 0.208054], [0.490438, 0.194659, 0.825894, 0.563959], [0.619383, 0.57948, 0.758244, 0.694948], [0.776185, 0.554518, 0.841549, 0.707129], [0.101111, 0.0, 0.89904, 0.995376], [0.431243, 0.0917888, 0.850772, 0.617123], [0.250883, 0.13572, 0.780518, 0.817881], [0.327646, 0.878977, 0.607503, 0.989904], [0.573936, 0.0933048, 0.766472, 0.208054], [0.37792, 0.460952, 0.566977, 0.618865], [0.373325, 0.575019, 0.463646, 0.642949], [0.27251, 0.0714827, 0.790764, 0.77176], [0.725154, 0.561221, 0.849777, 0.702165], [0.37549, 0.558988, 0.460575, 0.626821], [0.265563, 0.248368, 0.785451, 0.977509], [0.605674, 0.597553, 0.760419, 0.744799], [0.400611, 0.327271, 0.487579, 0.424036], [0.48632, 0.980808, 0.606008, 0.997468], [0.542414, 0.0588853, 0.752879, 0.200775], [0.490438, 0.194659, 0.825894, 0.563959], [0.368839, 0.115654, 0.741839, 0.587659], [0.467101, 0.985155, 0.588853, 0.997708], [0.755204, 0.561319, 0.836475, 0.676249], [0.409855, 0.302322, 0.773464, 0.587772], [0.351938, 0.934163, 0.587043, 0.99954], [0.27758, 0.72402, 0.334137, 0.846945], [0.29875, 0.601199, 0.381122, 0.679323], [0.64637, 0.566566, 0.767553, 0.67331], [0.372612, 0.596795, 0.457588, 0.666544], [0.438422, 0.989558, 0.578529, 0.998366], [0.586531, 0.499894, 0.879711, 0.845526], [0.608476, 0.644501, 0.759154, 0.827037], [0.352501, 0.477601, 0.710863, 0.948605], [0.466184, 0.953443, 0.668056, 0.996681], [0.547756, 0.00152373, 0.722814, 0.150687], [0.759639, 0.548476, 0.866864, 0.722007] ], "detection_scores": [0.877304, 0.839354, 0.824509, 0.579912, 0.461549, 0.306151, 0.268687, 0.197998, 0.181444, 0.17856, 0.152705, 0.148958, 0.14726, 0.135506, 0.128483, 0.12234, 0.105697, 0.105665, 0.0941569, 0.0891062, 0.0845169, 0.0810551, 0.0794339, 0.0784486, 0.0771784, 0.0770716, 0.075339, 0.0716749, 0.0715761, 0.07108, 0.0705339, 0.0693555, 0.0677402, 0.0644643, 0.0631491, 0.062369, 0.0619523, 0.060859, 0.0601122, 0.0589799], "detection_classes_as_text": ["Tomato", "Salad", "Tomato", "Tomato", "Tomato", "Seafood", "Tomato", "Tomato", "Seafood", "Seafood", "Salad", "Seafood", "Seafood", "Seafood", "Tomato", "Seafood", "Tomato", "Tomato", "Seafood", "Tomato", "Tomato", "Seafood", "Tomato", "Salad", "Seafood", "Seafood", "Tomato", "Seafood", "Seafood", "Tomato", "Tomato", "Tomato", "Tomato", "Seafood", "Seafood", "Tomato", "Seafood", "Seafood", "Tomato", "Tomato"], "key": "1" } ] }
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für die AutoML Vision-Objekterkennung finden Sie unter Clientbibliotheken für die AutoML Vision-Objekterkennung. Weitere Informationen finden Sie in der Referenzdokumentation zur AutoML Vision Object Detection Python API.
Richten Sie zur Authentifizierung bei der AutoML Vision-Objekterkennung die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Modellinferenz mithilfe von GPU-Containern ausführen (optional)
In diesem Abschnitt wird gezeigt, wie Modellinferenzen mithilfe von GPU-Containern ausgeführt werden. Dieser Prozess ist dem Ausführen von Modellinferenzen mithilfe einer CPU sehr ähnlich. Die Hauptunterschiede sind der GPU-Containerpfad und die Methode zum Starten von GPU-Containern.
Docker-Image abrufen
Zuerst verwenden Sie Docker, um einen vorkonfigurierten GPU-Container abzurufen. Der vorkonfigurierte GPU-Container hat bereits die Umgebung, um exportierte Edge-Modelle mit GPUs bereitzustellen, enthält jedoch noch keine Edge-Modelle oder Treiber.
Der vorkonfigurierte CPU-Container wird in Google Container Registry gespeichert. Legen Sie vor dem Anfordern des Containers in Google Container Registry eine Umgebungsvariable für den Speicherort des Containers fest:
export GPU_DOCKER_GCS_PATH=gcr.io/cloud-devrel-public-resources/gcloud-container-1.14.0-gpu:latest
Führen Sie die folgende Befehlszeile aus, um den GPU-Container abzurufen:
sudo docker pull ${GPU_DOCKER_GCS_PATH}
Docker-Container ausführen
Mit diesem Schritt wird der GPU-Container ausgeführt, um mit REST APIs Edge-Modellinferenzen bereitzustellen. Sie müssen NVIDIA-Treiber und Docker wie oben beschrieben installieren. Außerdem müssen die folgenden Systemvariablen festgelegt werden:
- ${CONTAINER_NAME}: ein String, der den Namen des Containers bei der Ausführung angibt, z. B.
CONTAINER_NAME=automl_high_accuracy_model_gpu
- ${PORT}: eine Zahl, die den Port auf Ihrem Gerät angibt, um später REST API-Aufrufe anzunehmen, z. B.
PORT=8502
Nachdem Sie die Variablen festgelegt haben, führen Sie Docker in der Befehlszeile aus, um mit REST APIs Edge-Modellinferenzen bereitzustellen:
sudo docker run --runtime=nvidia --rm --name "${CONTAINER_NAME}" -v \ ${YOUR_MODEL_PATH}:/tmp/mounted_model/0001 -p \ ${PORT}:8501 -t ${GPU_DOCKER_GCS_PATH}
Wenn der Container erfolgreich ausgeführt wird, können die REST APIs unter http://localhost:${PORT}/v1/models/default:predict
Ergebnisse liefern. Im folgenden Abschnitt wird beschrieben, wie Anfragen für Vorhersagen an diesen Speicherort gesendet werden.
Vorhersageanfrage senden
Nachdem der Container nun erfolgreich ausgeführt wird, können Sie Vorhersageanfragen für ein Testbild an die REST APIs senden.
Befehlszeile
Der Anfragetext in der Befehlszeile enthält base64-codierte image_bytes
und den String key
, um das angegebene Bild zu identifizieren. Weitere Informationen zur Bildcodierung finden Sie unter Base64-Codierung. Das Format der JSON-Anfragedatei sieht so aus:
/tmp/request.json
{ "instances": [ { "image_bytes": { "b64": "/9j/7QBEUGhvdG9zaG9...base64-encoded-image-content...fXNWzvDEeYxxxzj/Coa6Bax//Z" }, "key": "your-chosen-image-key" } ] }
Nachdem Sie eine lokale JSON-Anfragedatei erstellt haben, können Sie eine Vorhersageanfrage senden.
Verwenden Sie dafür den folgenden Befehl:
curl -X POST -d @/tmp/request.json http://localhost:${PORT}/v1/models/default:predictAntwort
Die Ausgabe sollte in etwa so aussehen:
{ "predictions": [ { "detection_multiclass_scores": [ [0.00233048, 0.00207388, 0.00123361, 0.0052332, 0.00132892, 0.00333592], [0.00233048, 0.00207388, 0.00123361, 0.0052332, 0.00132892, 0.00333592], [0.00240907, 0.00173151, 0.00134027, 0.00287125, 0.00130472, 0.00242674], [0.00227344, 0.00124374, 0.00147101, 0.00377446, 0.000997812, 0.0029003], [0.00132903, 0.000844955, 0.000537515, 0.00474253, 0.000508994, 0.00130466], [0.00233048, 0.00207388, 0.00123361, 0.0052332, 0.00132892, 0.00333592], [0.00110534, 0.000204086, 0.000247836, 0.000553966, 0.000193745, 0.000359297], [0.00112912, 0.000443578, 0.000779897, 0.00203282, 0.00069508, 0.00188044], [0.00271052, 0.00163364, 0.00138229, 0.00314173, 0.00164038, 0.00332257], [0.00227907, 0.00217116, 0.00190553, 0.00321552, 0.00233933, 0.0053153], [0.00271052, 0.00163364, 0.00138229, 0.00314173, 0.00164038, 0.00332257], [0.00250274, 0.000489146, 0.000879943, 0.00355569, 0.00129834, 0.00355521], [0.00227344, 0.00124374, 0.00147101, 0.00377446, 0.000997812, 0.0029003], [0.00241205, 0.000786602, 0.000896335, 0.00187016, 0.00106838, 0.00193021], [0.00132069, 0.00173706, 0.00389183, 0.00536761, 0.00387135, 0.00752795], [0.0011555, 0.00025022, 0.000221372, 0.000536889, 0.000187278, 0.000306398], [0.00150242, 0.000391901, 0.00061205, 0.00158429, 0.000300348, 0.000788659], [0.00181362, 0.000169843, 0.000458032, 0.000690967, 0.000296295, 0.000412017], [0.00101465, 0.000184, 0.000148445, 0.00068599, 0.000111818, 0.000290155], [0.00128508, 0.00108775, 0.00298983, 0.00174832, 0.00143594, 0.00285548], [0.00137702, 0.000480384, 0.000831485, 0.000920624, 0.000405788, 0.000735044], [0.00103369, 0.00152704, 0.000892937, 0.00269693, 0.00214335, 0.00588191], [0.0013324, 0.000647604, 0.00293729, 0.00156629, 0.00195253, 0.00239435], [0.0022423, 0.00141206, 0.0012649, 0.00450748, 0.00138766, 0.00249887], [0.00125939, 0.0002428, 0.000370741, 0.000917137, 0.00024578, 0.000412881], [0.00135186, 0.000139147, 0.000525713, 0.00103053, 0.000366062, 0.000844955], [0.00127548, 0.000989318, 0.00256863, 0.00162545, 0.00311682, 0.00439551], [0.00112912, 0.000443578, 0.000779897, 0.00203282, 0.00069508, 0.00188044], [0.00114602, 0.00107747, 0.00145, 0.00320849, 0.00211915, 0.00331426], [0.00148326, 0.00059548, 0.00431389, 0.00164703, 0.00311947, 0.00268343], [0.00154313, 0.000925034, 0.00770769, 0.00252789, 0.00489518, 0.00352332], [0.00135094, 0.00042069, 0.00088492, 0.000987828, 0.000755847, 0.00144881], [0.0015994, 0.000540197, 0.00163212, 0.00140327, 0.00114474, 0.0026556], [0.00150502, 0.000138223, 0.000343591, 0.000529736, 0.000173837, 0.000381887], [0.00127372, 0.00066787, 0.00149515, 0.00272799, 0.00110033, 0.00370145], [0.00144503, 0.000365585, 0.00318581, 0.00126475, 0.00212631, 0.00204816], [0.00132069, 0.00173706, 0.00389183, 0.00536761, 0.00387135, 0.00752795], [0.00198057, 0.000307024, 0.000573188, 0.00147268, 0.000757724, 0.0017142], [0.00157535, 0.000590324, 0.00190055, 0.00170627, 0.00138417, 0.00246152], [0.00177169, 0.000364572, 0.00183856, 0.000767767, 0.00121492, 0.000916481] ], "detection_classes": [5.0, 2.0, 5.0, 5.0, 5.0, 4.0, 5.0, 5.0, 4.0, 4.0, 2.0, 4.0, 4.0, 4.0, 5.0, 4.0, 5.0, 5.0, 4.0, 5.0, 5.0, 4.0, 5.0, 2.0, 4.0, 4.0, 5.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 5.0, 4.0, 4.0, 5.0, 5.0], "num_detections": 40.0, "image_info": [320, 320, 1, 0, 320, 320], "detection_boxes": [ [0.457792, 0.0, 0.639324, 0.180828], [0.101111, 0.0, 0.89904, 0.995376], [0.447649, 0.314644, 0.548206, 0.432875], [0.250341, 0.733411, 0.3419, 0.847185], [0.573936, 0.0933048, 0.766472, 0.208054], [0.490438, 0.194659, 0.825894, 0.563959], [0.619383, 0.57948, 0.758244, 0.694948], [0.776185, 0.554518, 0.841549, 0.707129], [0.101111, 0.0, 0.89904, 0.995376], [0.431243, 0.0917888, 0.850772, 0.617123], [0.250883, 0.13572, 0.780518, 0.817881], [0.327646, 0.878977, 0.607503, 0.989904], [0.573936, 0.0933048, 0.766472, 0.208054], [0.37792, 0.460952, 0.566977, 0.618865], [0.373325, 0.575019, 0.463646, 0.642949], [0.27251, 0.0714827, 0.790764, 0.77176], [0.725154, 0.561221, 0.849777, 0.702165], [0.37549, 0.558988, 0.460575, 0.626821], [0.265563, 0.248368, 0.785451, 0.977509], [0.605674, 0.597553, 0.760419, 0.744799], [0.400611, 0.327271, 0.487579, 0.424036], [0.48632, 0.980808, 0.606008, 0.997468], [0.542414, 0.0588853, 0.752879, 0.200775], [0.490438, 0.194659, 0.825894, 0.563959], [0.368839, 0.115654, 0.741839, 0.587659], [0.467101, 0.985155, 0.588853, 0.997708], [0.755204, 0.561319, 0.836475, 0.676249], [0.409855, 0.302322, 0.773464, 0.587772], [0.351938, 0.934163, 0.587043, 0.99954], [0.27758, 0.72402, 0.334137, 0.846945], [0.29875, 0.601199, 0.381122, 0.679323], [0.64637, 0.566566, 0.767553, 0.67331], [0.372612, 0.596795, 0.457588, 0.666544], [0.438422, 0.989558, 0.578529, 0.998366], [0.586531, 0.499894, 0.879711, 0.845526], [0.608476, 0.644501, 0.759154, 0.827037], [0.352501, 0.477601, 0.710863, 0.948605], [0.466184, 0.953443, 0.668056, 0.996681], [0.547756, 0.00152373, 0.722814, 0.150687], [0.759639, 0.548476, 0.866864, 0.722007] ], "detection_scores": [0.877304, 0.839354, 0.824509, 0.579912, 0.461549, 0.306151, 0.268687, 0.197998, 0.181444, 0.17856, 0.152705, 0.148958, 0.14726, 0.135506, 0.128483, 0.12234, 0.105697, 0.105665, 0.0941569, 0.0891062, 0.0845169, 0.0810551, 0.0794339, 0.0784486, 0.0771784, 0.0770716, 0.075339, 0.0716749, 0.0715761, 0.07108, 0.0705339, 0.0693555, 0.0677402, 0.0644643, 0.0631491, 0.062369, 0.0619523, 0.060859, 0.0601122, 0.0589799], "detection_classes_as_text": ["Tomato", "Salad", "Tomato", "Tomato", "Tomato", "Seafood", "Tomato", "Tomato", "Seafood", "Seafood", "Salad", "Seafood", "Seafood", "Seafood", "Tomato", "Seafood", "Tomato", "Tomato", "Seafood", "Tomato", "Tomato", "Seafood", "Tomato", "Salad", "Seafood", "Seafood", "Tomato", "Seafood", "Seafood", "Tomato", "Tomato", "Tomato", "Tomato", "Seafood", "Seafood", "Tomato", "Seafood", "Seafood", "Tomato", "Tomato"], "key": "1" } ] }
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für die AutoML Vision-Objekterkennung finden Sie unter Clientbibliotheken für die AutoML Vision-Objekterkennung. Weitere Informationen finden Sie in der Referenzdokumentation zur AutoML Vision Object Detection Python API.
Richten Sie zur Authentifizierung bei der AutoML Vision-Objekterkennung die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Zusammenfassung
In dieser Anleitung haben Sie Edge-Modelle mithilfe von CPU- oder GPU-Docker-Containern ausgeführt. Sie können diese containerbasierte Lösung jetzt auf weiteren Geräten bereitstellen.
Nächste Schritte
- Einführungsdokumentation zu TensorFlow lesen, um weitere Einzelheiten über TensorFlow zu erfahren
- Mehr über TensorFlow Serving erfahren
- TensorFlow Serving mit Kubernetes verwenden