Przejdź do głównej zawartości

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​

ArgumentZnaczenie
model_nameWagi gotowego modelu Ultralytics, np. yolo11n.pt.
inference_cpuLiczba rdzeni CPU zarezerwowanych dla usługi.
inference_memoryPamięć w GB.
inference_gpuLiczba GPU. Ustaw 0, aby uruchomić model na CPU.
inference_gpu_typeIdentyfikator 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.