visionvision.detect

vision.detect

Sprawdź wejścia, wyjścia i obsługę środowiska zdefiniowane dla węzła vision.detect.

Samouczek wideo

04

Zobacz, jak skonfigurować i uruchomić węzeł vision.detect w prawdziwym przepływie LaiCai Flow.

Samouczek węzła: Object Detect
Obejrzyj w YouTube

Wejścia

5
WejścieTyp wartościWymaganieDozwolone źródła
modelIdstringWymaganeliteral
allClassesboolOpcjonalneliteral
classNamesarrayOpcjonalneliteral
minScorenumberWymaganeliteral
roirectWymaganeliteral

Wyjścia

9
Ścieżka wyjściaTyp wartościUkład współrzędnych
data.bestobject
data.best.scorenumber
data.best.modelIdstring
data.best.classNamestring
data.best.centerpointscreenRatio
data.best.center.xnumberscreenRatio
data.best.center.ynumberscreenRatio
data.best.rectrectscreenRatio
data.itemsarray

Obsługa środowiska

KomputerObsługiwane
Android AgentObsługiwane

Zgodność modelu i wymagania techniczne

Samo rozszerzenie ONNX nie gwarantuje zgodności. LaiCai musi też rozumieć wejście, tensor wyjściowy, współrzędne ramek, ufność i kolejność klas.

Trenuj niestandardowy model wykrywania

Plik modelu

Użyj standardowego modelu YOLO do wykrywania obiektów wyeksportowanego do ONNX. Plików PyTorch .pt, identyfikatorów hostowanego API oraz modeli klasyfikacji, segmentacji, pozy lub obróconych ramek nie można importować bezpośrednio.

.onnxtype: yolo

Tensor wejściowy

Potrzebne jest jedno trzykanałowe wejście RGB NCHW, float32 lub float16 z normalizacją 0–1. LaiCai zachowuje proporcje przez letterbox RGB 114; nieznany rozmiar dynamiczny używa 640 × 640.

[1, 3, H, W]float32 / float16

Mapowanie klas

ID klas zaczynają się od 0, są ciągłe i zgodne z kolejnością treningu. id2label oraz label2id muszą się zgadzać, a className dokładnie odpowiadać etykiecie.

id2labellabel2idclassName

Rozmiar i szybkość

Dla ciągłego wykrywania zacznij od Nano lub Small. Większe modele mogą być dokładniejsze, ale zużywają więcej pamięci i są wolniejsze. Mierz na rzeczywistym komputerze i Androidzie.

n / s / m / l / x

Obsługiwane tensory wyjściowe

Model musi zwracać dokładnie jeden tensor w jednym z poniższych układów. LaiCai stosuje filtr ufności i NMS do surowego wyjścia YOLO.

FormatObsługiwany shapeZnaczenie
raw_yolo_no_objectness[1, 4 + nc, N] / [1, N, 4 + nc]Ramki i wyniki klas bez osobnego objectness.
raw_yolo_with_objectness[1, 5 + nc, N] / [1, N, 5 + nc]Ramki, objectness i wyniki klas.
postprocessed_xyxy[1, N, 6] / [N, 6]x1, y1, x2, y2, wynik i ID klasy po NMS.

Sprawdź przed importem

  • To detektor ONNX, nie .pt ani ID hostowanego API.
  • Ma jedno wejście RGB NCHW i jedno obsługiwane wyjście.
  • Używa float32 lub float16, nie INT8/UINT8.
  • Znana jest kolejność i format; jedna klasa deklaruje outputFormat.
  • Folder zawiera jeden .onnx lub config.json wskazuje modelFile.
  • Najpierw testuj bieżącą klatkę na komputerze, potem osobno w Android Agent.

Przykład config.json

Etykiety i outputFormat są przykładami. Zastąp je faktyczną kolejnością klas i formatem wyeksportowanego modelu.

{
  "id": "game-objects",
  "name": "Game Objects",
  "type": "yolo",
  "modelFile": "model.onnx",
  "outputFormat": "raw_yolo_no_objectness",
  "id2label": {
    "0": "ore",
    "1": "tree"
  },
  "label2id": {
    "ore": 0,
    "tree": 1
  }
}