Wykrywanie obiektów z YOLO
YoloWorkflow uruchamia gotowy model YOLO z biblioteki Ultralytics i udostępnia
go przez API HTTP. Przy korzystaniu z gotowych wag nie potrzebujesz wolumenu.
Utwórz plik Pythona we własnym projekcie:
import base64
from pathlib import Path
from cgc.sdk import Image
from cgc.sdk.recipes.yolo import YoloConfig, YoloWorkflow
workflow = YoloWorkflow(
name="yolo-inference",
image=Image.from_registry("ultralytics/ultralytics:latest"),
config=YoloConfig(
model_name="yolo11n.pt",
inference_cpu=4,
inference_memory=16,
inference_gpu=1,
inference_gpu_type="nvidia-rtx-a5000",
),
)
endpoint = workflow.deploy_pretrained_inference(
wait=True,
reuse_existing=True,
)
endpoint.wait_http("/health", timeout_seconds=300)
prediction = endpoint.post_json(
"/predict",
{"image_url": "https://ultralytics.com/images/bus.jpg"},
timeout=120,
)
for detection in prediction["detections"]:
print(detection["class_name"], detection["confidence"])
image_bytes = base64.b64decode(prediction["annotated_image_base64"])
Path("yolo_prediction.jpg").write_bytes(image_bytes)
Konfiguracja
| Argument | Znaczenie |
|---|---|
model_name | Wagi gotowego modelu Ultralytics, np. yolo11n.pt. |
inference_cpu | Liczba rdzeni CPU zarezerwowanych dla usługi. |
inference_memory | Pamięć w GB. |
inference_gpu | Liczba GPU. Ustaw 0, aby uruchomić model na CPU. |
inference_gpu_type | Identyfikator typu GPU w CGC. Podaj pusty tekst (""), gdy inference_gpu=0. |
Aby uruchomić model na CPU:
config=YoloConfig(
model_name="yolo11n.pt",
inference_cpu=4,
inference_memory=16,
inference_gpu=0,
inference_gpu_type="",
)
Przetwarzanie na CPU jest zwykle wolniejsze, ale nie wymaga GPU.
Endpoint /predict przyjmuje:
{"image_url": "https://example.com/image.jpg"}
albo:
{"image_base64": "..."}
Usuń usługę, gdy nie jest już potrzebna:
endpoint.delete()
Pełny skrypt yolo_inference.py znajdziesz na stronie
Przykłady workflow.
notatka
reuse_existing=True nie aktualizuje modelu, obrazu ani środowiska istniejącego
zasobu. Po zakończeniu przykładu usługa nadal działa, dopóki jej nie usuniesz.