vision.detectvision.detect
Sprawdź wejścia, wyjścia i obsługę środowiska zdefiniowane dla węzła vision.detect.
Samouczek wideo
04Zobacz, jak skonfigurować i uruchomić węzeł vision.detect w prawdziwym przepływie LaiCai Flow.
Wejścia
5modelIdstringWymaganeliteralallClassesboolOpcjonalneliteralclassNamesarrayOpcjonalneliteralminScorenumberWymaganeliteralroirectWymaganeliteralWyjścia
9data.bestobject—data.best.scorenumber—data.best.modelIdstring—data.best.classNamestring—data.best.centerpointscreenRatiodata.best.center.xnumberscreenRatiodata.best.center.ynumberscreenRatiodata.best.rectrectscreenRatiodata.itemsarray—Obsługa środowiska
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: yoloTensor 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 / float16Mapowanie 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.
id2labellabel2idclassNameRozmiar 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 / xObsł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.
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
}
}