vision.detectvision.detect
Consulte as entradas, saídas e o suporte de execução definidos para o node vision.detect.
Tutorial em vídeo
04Veja como configurar e executar o node vision.detect em um fluxo real do LaiCai Flow.
Entradas
5modelIdstringObrigatórioliteralallClassesboolOpcionalliteralclassNamesarrayOpcionalliteralminScorenumberObrigatórioliteralroirectObrigatórioliteralSaídas
9data.bestobject—data.best.scorenumber—data.best.modelIdstring—data.best.classNamestring—data.best.centerpointscreenRatiodata.best.center.xnumberscreenRatiodata.best.center.ynumberscreenRatiodata.best.rectrectscreenRatiodata.itemsarray—Suporte de execução
Compatibilidade e requisitos técnicos do modelo
A extensão ONNX sozinha não garante compatibilidade. O LaiCai também precisa interpretar a entrada, o tensor de saída, as coordenadas, a confiança e a ordem das classes.
Treinar um modelo de detecção personalizado
Arquivo do modelo
Use um modelo YOLO padrão de detecção de objetos exportado para ONNX. Arquivos PyTorch .pt, IDs de API hospedada e modelos de classificação, segmentação, pose ou caixas rotacionadas não podem ser importados diretamente.
.onnxtype: yoloTensor de entrada
É necessária uma entrada RGB NCHW de três canais, float32 ou float16 normalizada para 0–1. O LaiCai preserva a proporção com letterbox RGB 114; tamanhos dinâmicos não resolvidos usam 640 × 640.
[1, 3, H, W]float32 / float16Mapeamento de classes
Os IDs devem começar em 0, ser contínuos e seguir a ordem de treino. id2label e label2id devem coincidir, e className precisa ser idêntico ao rótulo configurado.
id2labellabel2idclassNameTamanho e velocidade
Comece com Nano ou Small para detecção contínua. Modelos maiores podem ser mais precisos, mas gastam mais memória e são mais lentos. Meça no desktop e Android reais.
n / s / m / l / xTensores de saída compatíveis
O modelo deve retornar exatamente um tensor em um destes layouts. O LaiCai aplica filtro de confiança e NMS à saída YOLO bruta.
raw_yolo_no_objectness[1, 4 + nc, N] / [1, N, 4 + nc]Caixas e pontuações de classe sem objectness separado.raw_yolo_with_objectness[1, 5 + nc, N] / [1, N, 5 + nc]Caixas, objectness e pontuações de classe.postprocessed_xyxy[1, N, 6] / [N, 6]x1, y1, x2, y2, pontuação e ID da classe após NMS.Verifique antes de importar
- É um detector ONNX, não um .pt ou ID de API hospedada.
- Há uma entrada RGB NCHW e uma saída compatível.
- Usa float32 ou float16, não INT8/UINT8.
- A ordem e o formato são conhecidos; uma classe declara outputFormat.
- A pasta contém um .onnx ou config.json indica modelFile.
- Teste o quadro atual no desktop e depois valide separadamente no Android Agent.
Exemplo de config.json
Os rótulos e outputFormat são exemplos. Substitua pela ordem e formato reais do modelo exportado.
{
"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
}
}