YOLOE: uniwersalny detektor obiektów z promptami tekstowymi i wizualnymi
YOLOE umożliwia wykrywanie dowolnych obiektów na obrazach, wykorzystując opisy tekstowe lub przykłady wizualne zamiast stałych klas. Backbone i PAN są zapożyczone ze standardowych YOLO, ale głowa detektora porównuje embeddingi obiektów z wektorami z kodera tekstowego. Moduł RepRTA doprecyzowuje embeddingi tekstowe i integruje je z modelem poprzez reparametryzację, zachowując prędkość wnioskowania bez narzutu.
Model jest inicjalizowany z wstępnie wytrenowanych wag, klasy są określane dynamicznie:
from ultralytics import YOLOE
model = YOLOE("yoloe-26m-seg.pt")
model.set_classes(["person", "bus"])
results = model.predict("path/to/image.jpg")
Architektura i kluczowe moduły
Standardowy YOLO ogranicza się do klas z zestawu danych treningowych. W YOLOE embeddingi klas są generowane przez koder tekstowy przed wnioskowaniem i wbudowywane w wagi. Pozwala to uniknąć zbierania zbiorów danych, anotacji i iteracji treningowych.
Dodatkowo obsługiwane są prompty wizualne poprzez SAVPE (Semantic-Activated Visual Prompt Encoder). Użytkownik dostarcza obraz referencyjny z bounding boxes, model szuka podobnych obiektów:
import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor
model = YOLOE("yoloe-26m-seg.pt")
visual_prompts = dict(
bboxes=np.array([
[221.52, 405.8, 344.98, 857.54], # Osoba
[120, 425, 160, 445], # Autobus
]),
cls=np.array([0, 1]),
)
results = model.predict(
"ultralytics/assets/bus.jpg",
refer_image="reference.jpg",
visual_prompts=visual_prompts,
predictor=YOLOEVPSegPredictor,
)
results[0].show()
Tryb bez promptów wykorzystuje wbudowany słownik z ponad 1200 kategoriami:
from ultralytics import YOLOE
model = YOLOE("yoloe-26m-seg-pf.pt")
results = model.predict("path/to/image.jpg")
results[0].show()
Scenariusze zastosowań
YOLOE jest skuteczny w zadaniach z dobrze opisywalnymi obiektami. Oto typowe przypadki użycia:
- Kontrola etykietowania: wykrywanie kodów QR, uszkodzonych etykiet, orientacji opakowań na linii produkcyjnej.
- Monitorowanie stref: wyszukiwanie obcych przedmiotów lub brak narzędzi.
- Inwentaryzacja magazynowa: liczenie i klasyfikacja zmieniającego się asortymentu.
- Kontrola wizualna: rysy, odpryski, odkształcenia na powierzchniach.
W tych scenariuszach prompty zastępują zbiory danych, przyspieszając rozwój.
Ograniczenia i wybór podejścia
Model ustępuje w zadaniach z wizualnie podobnymi klasami, specyficznymi obiektami lub wymaganiami dotyczącymi dokładności >95%. Różnice w subtelnych detalach lub nieznanych wcześniej obiektach wymagają dalszego treningu.
Strategia: uruchomić YOLOE do podstawowej oceny, w przypadku niedostatków — udoskonalić kodery lub przejść do klasycznego treningu.
Co jest ważne
- Klasy dynamiczne: prompty tekstowe lub wizualne zamiast stałych etykiet.
- Zachowanie prędkości: RepRTA reparametryzuje embeddingi, eliminując narzut czasu wykonania.
- Elastyczność: SAVPE dla przykładów wizualnych, wbudowany słownik dla trybu zero-prompt.
- Praktyczność: odpowiedni dla zadań przemysłowych ze zmieniającymi się obiektami.
- Ograniczenia: nie dla high-precision na egzotycznych danych.
— Editorial Team
Brak komentarzy.