בנוסף לעיבוד בסטרימינג, אפשר לבחור בעיבוד באצווה כדי לקבל מידע מהנתונים. מצב העיבוד הזה לא מבוסס על סטרימינג, והוא מאפשר לכם ליצור אפליקציות לתמיכה בסוגי מדיה אחרים.
אתם יכולים לעבד קבצים של תמונות שאוחסנו ב-Cloud Storage באמצעות מודלים נבחרים. הפלט מאוחסן ב-Cloud Storage.
מודלים נתמכים
המודלים הבאים תומכים בעיבוד ברצף (batch processing):
- הכלי לזיהוי תגים
- כלי לזיהוי מוצרים
סוגי נתונים נתמכים
בדף הזה מוסבר איך לעבד באצווה את סוגי הנתונים הבאים:
- נתוני תמונות
לפני שמתחילים
- בדקו את המודלים הנתמכים וסוגי הנתונים הנתמכים לעיבוד באצווה שמתואר בדף הזה.
- אם אתם משתמשים במודל Product recognizer, אתם צריכים ליצור
CatalogוProductRecognitionIndexכדי להשתמש בהם כשאתם יוצרים מודל Product recognizer לעיבוד באצווה. לחלופין, אפשר לזהות אינדקס קיים של מזהה מוצרים או מודל קיים של מזהה מוצרים לשימוש. - אם אתם משתמשים במודל לזיהוי תגים, אתם צריכים ליצור מודל באמצעות המדריך למודל לזיהוי תגים.
- אם אתם משתמשים במודל Product recognizer, אתם צריכים ליצור
- יוצרים קטגוריה אחת או יותר של Cloud Storage לקלט ולפלט של עיבוד באצווה.
- מאתרים קבצים נתמכים ומעלים אותם לקטגוריית הקלט של Cloud Storage כדי לעבד אותם.
התהליך שעובר המשתמש
כדי לעבד נתוני תמונות באצווה, פועלים לפי השלבים הכלליים הבאים:
מפעילים את Vertex AI Vision API.
יוצרים מעבד נתמך (מזהה מוצרים או מזהה תגים).
יוצרים אפליקציה.
קלט: מוסיפים צומת קלט אוניברסלי שמציין את הקבצים לעיבוד ב-Cloud Storage.
עיבוד: מוסיפים את צומת המודל.
פלט: מוסיפים את צומת האחסון של הפלט ומציינים איפה הנתונים המעובדים מאוחסנים ב-Cloud Storage.
יוצרים מופעים של האפליקציה לעיבוד באצווה, כשכל מופע תואם למיקום קלט של קטגוריית Cloud Storage.
פורסים את האפליקציה ואת המופעים שלה.
אחרי שמופע העיבוד באצווה מסתיים, בודקים את הפלט שמאוחסן ב-Cloud Storage.
עיבוד תמונות באצווה
השלבים לשליחת בקשה לעיבוד באצווה משתנים ממודל למודל. פועלים לפי ההוראות של מודל היעד כדי לעבד תמונות בקבוצות.
מודל לזיהוי מוצרים
אפשר להשתמש בדוגמאות האלה כדי לעבד תמונות באצווה באמצעות מודל לזיהוי מוצרים.
המסוף
יוצרים בקשה לעיבוד קבוצת תמונות במסוף Google Cloud .
יצירת אפליקציה חדשה
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
לוחצים על הלחצן יצירה.
מזינים את שם האפליקציה ובוחרים את האזור.
לוחצים על Continue.
בוחרים אמצעי חיוב. מידע נוסף על תשלום לפי שימוש לעומת חיוב חודשי זמין בדף התמחור.
לוחצים על יצירה.
ציון קלט לעיבוד ברצף
בדף של הכלי ליצירת אפליקציות לגרפים, לוחצים על הצומת Universal input (קלט אוניברסלי).
בחלונית הצדדית קלט אוניברסלי, לוחצים על בחירת מקורות קלט.
בדף בחירת מקורות קלט, בוחרים באפשרות חיזוי אצווה.
לוחצים על Continue.
בחלונית מקורות, לוחצים על עיון בשדה של בורר המיקומים כדי לציין איפה הקבצים נמצאים ב-Cloud Storage.
זה שינוי אופציונלי. כדי לציין עוד מקורות, לוחצים על הוספת פריט וחוזרים על השלב הקודם.
לוחצים על שליחה.
הוספת המודל
בדף של הכלי ליצירת אפליקציות גרפיות, לוחצים על צומת המודל Product recognizer בקטע Specialized models.
בחלונית Product recognizer, לוחצים על Select model.
בוחרים באפשרות בחירת מודל קיים לזיהוי מוצרים.
אם אתם צריכים ליצור מודל או אינדקס חדשים, בוחרים באפשרות המתאימה כדי ליצור את המשאבים.
בוחרים את המודל מהרשימה.
לוחצים על בחירה.
זה שינוי אופציונלי. משנים את סף הביטחון.
לוחצים על הפעלת ההגדרות.
הוספת יעד פלט
בדף של הכלי ליצירת אפליקציות לגרפים, לוחצים על צומת המודל Cloud Storage בקטע פלט.
בחלונית Cloud Storage, לוחצים על Browse כדי לבחור את יעד הפלט של התחזית של האצווה ב-Cloud Storage.
פריסת האפליקציה
- בדף של הכלי ליצירת אפליקציות לגרפים, לוחצים על פריסה.
REST ושורת הפקודה
כדי לשלוח את הבקשה לעיבוד קבוצת תמונות, צריך לבצע את השלבים הבאים.
יוצרים מודל לזיהוי מוצרים באמצעות השיטה
projects.locations.processors.create.הבקשה הזו כוללת הפניה למשאבי
Catalogו-ProductRecognitionIndex. במדריך למודל לזיהוי מוצרים אפשר לקרוא מידע על יצירת משאביCatalogוProductRecognitionIndex.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/processors?processor_id=product-recognition-model1 \ -d '{ "display_name": "DISPLAY_NAME", "model_type": PRODUCT_RECOGNIZER, "custom_processor_source_info": { "source_type": PRODUCT_RECOGNIZER, "product_recognizer_artifact": { "retail_product_recognition_index":"projects/PROJECT_ID/locations/LOCATION_ID/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID", } } }'יוצרים אפליקציה עם מודל חדש לזיהוי מוצרים. הבקשה הזו משתמשת ב-method
projects.locations.applications.create.גוף הבקשה (
app.json):{ "applicationConfigs": { "nodes": [ { "displayName": "Universal Input", "name": "universal-input-0", "processor": "builtin:universal-input" }, { "displayName": "Product Recognition", "name": "product-recognition", "nodeConfig": { "product_recognizer_config": { "recognition_confidence_threshold": 0.75 } }, "parents": [ { "parentNode": "universal-input-0" } ], "processor": "projects/PROJECT_ID/locations/LOCATION_ID/processors/product-recognition-model1" }, { "displayName": "Storage output", "name": "gcs-output", "nodeConfig": { "gcs_output_config": { "gcs_path":"gs://product_recognizer_app_output" } }, "parents": [ { "parentNode": "product-recognition" } ], "processor": "builtin:gcs-output" } ] } }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @app.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications?application_id=product-recognition-app'יוצרים מופעים של האפליקציה באמצעות השיטה
projects.locations.applications.createApplicationInstances.גוף הבקשה (
instances.json):{ "applicationInstances": [ { "instance": { "instanceType": "BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://product_recognition_input" } ] }, "instanceId": "instance1" }, { "instance": { "instanceType":"BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://product_recognition_input2" } ] }, "instanceId": "instance2" } ] }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @instances.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app:createApplicationInstances'פורסים את האפליקציה.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app:deploy'קבלת מופעים של אפליקציות. המידע הזה מציין מתי מסתיים עיבוד ברצף (batch processing).
בפרט, השדה
stateמציג את המועד שבו העיבוד הושלם:"state": "FINISHED". אחרי שהמופע מסתיים, אי אפשר לשנות אותו.אפשר להשתמש ב-method
projects.locations.applications.instances.listכדי לעקוב אחרי מופעים. באופן דומה, כדי להסיר מופעים מהרשימה הזו, משתמשים בשיטהprojects.locations.applications.deleteApplicationInstances.בקשה:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app/instances'תשובה לדוגמה:
{ "instances": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app/instances/instance1", "createTime": "2023-03-30T18:30:51.991004265Z", "inputResources": [ { "inputResource": "gs://product_recognition_input", "consumerNode": "universal-input-0", "dataType": "IMAGE" } ], "outputResources": [ { "outputResource": "gs://product_recognition_output/instance1", "producerNode": "product-recognition", "autogen": true } ], "updateTime": "2023-04-18T04:58:18.592092259Z", "state": "FINISHED", "instanceType": "BATCH_PREDICTION" } }
מודל לזיהוי תגים
אפשר להשתמש בדוגמאות האלה כדי לעבד תמונות בקבוצות באמצעות מודל לזיהוי תגים.
REST ושורת הפקודה
כדי לשלוח את הבקשה לעיבוד קבוצת תמונות, צריך לבצע את השלבים הבאים.
יוצרים מודל לזיהוי תגים באמצעות השיטה
projects.locations.processors.create.לשם כך, צריך לציין את שם המשאב של המודל המקורי שמתארח בפלטפורמת Vertex AI (
vertex_model).curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/processors?processor_id=tag-recognition-model1 \ -d '{ "display_name": "DISPLAY_NAME", "model_type": TAG_RECOGNIZER, "custom_processor_source_info": { "source_type": VERTEX_AUTOML, "vertex_model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID" } }'יוצרים אפליקציה עם מודל חדש של זיהוי תגים. הבקשה הזו משתמשת ב-method
projects.locations.applications.create.גוף הבקשה (
app.json):{ "applicationConfigs": { "nodes": [ { "displayName": "Universal Input", "name": "universal-input-0", "processor": "builtin:universal-input" }, { "displayName": "Tag Recognition", "name": "tag-recognition", "nodeConfig": { "tag_recognizer_config": { "tag_parsing_config": { "entity_parsing_configs": [ { "entity_class": "price", "regex": "\\$\\d+\\.\\d{2}", "entity_matching_strategy": "MAX_OVERLAP_AREA" } ] }, "entity_detection_confidence_threshold": 0.0 } }, "parents": [ { "parentNode": "universal-input-0" } ], "processor": "projects/PROJECT_ID/locations/LOCATION_ID/processors/tag-recognition-model1" }, { "displayName": "Storage output", "name": "gcs-output", "nodeConfig": { "gcs_output_config": { "gcs_path": "gs://tag_recognizer_app_output" } }, "parents": [ { "parentNode": "tag-recognition" } ], "processor": "builtin:gcs-output" } ] } }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @app.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications?application_id=tag-recognition-app'יוצרים מופעים של האפליקציה באמצעות השיטה
projects.locations.applications.createApplicationInstances.גוף הבקשה (
instances.json):{ "applicationInstances": [ { "instance": { "instanceType": "BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://tag_recognition_input" } ] }, "instanceId": "instance1" }, { "instance": { "instanceType":"BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://tag_recognition_input2" } ] }, "instanceId": "instance2" } ] }בקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @instances.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app:createApplicationInstances'פורסים את האפליקציה.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app:deploy'קבלת מופעים של אפליקציות. המידע הזה מציין מתי מסתיים עיבוד ברצף (batch processing).
בפרט, השדה
stateמציג את המועד שבו העיבוד הושלם:"state": "FINISHED". אחרי שהמופע מסתיים, אי אפשר לשנות אותו.אפשר להשתמש ב-method
projects.locations.applications.instances.listכדי לעקוב אחרי מופעים. באופן דומה, כדי להסיר מופעים מהרשימה הזו, משתמשים בשיטהprojects.locations.applications.deleteApplicationInstances.בקשה:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app/instances'תשובה לדוגמה:
{ "instances": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app/instances/instance1", "createTime": "2023-03-30T18:30:51.991004265Z", "inputResources": [ { "inputResource": "gs://tag_recognition_input", "consumerNode": "universal-input-0", "dataType": "IMAGE" } ], "outputResources": [ { "outputResource": "gs://tag_recognition_output/instance1", "producerNode": "tag-recognition", "autogen": true } ], "updateTime": "2023-04-18T04:58:18.592092259Z", "state": "FINISHED", "instanceType": "BATCH_PREDICTION" } }