visionvision.detect

vision.detect

Просмотрите входы, выходы и поддержку выполнения узла vision.detect.

Видеоурок

04

Посмотрите, как настроить и запустить узел vision.detect в реальном рабочем процессе LaiCai Flow.

Урок по узлу: Object Detect
Смотреть на YouTube

Входы

5
ВходТип значенияОбязательностьДопустимые источники
modelIdstringОбязательноliteral
allClassesboolНеобязательноliteral
classNamesarrayНеобязательноliteral
minScorenumberОбязательноliteral
roirectОбязательноliteral

Выходы

9
Путь выходаТип значенияСистема координат
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

Поддержка выполнения

КомпьютерПоддерживается
Android AgentПоддерживается

Совместимость модели и технические требования

Расширения ONNX недостаточно для совместимости. LaiCai должен понимать вход, выходной тензор, координаты рамок, оценки уверенности и порядок классов.

Обучите пользовательскую модель обнаружения

Файл модели

Используйте стандартную YOLO-модель обнаружения объектов, экспортированную в ONNX. Файлы PyTorch .pt, идентификаторы облачных API и модели классификации, сегментации, позы или поворотных рамок напрямую не импортируются.

.onnxtype: yolo

Входной тензор

Нужен один трёхканальный вход RGB NCHW, float32 или float16 с нормализацией 0–1. LaiCai сохраняет пропорции letterbox-заполнением RGB 114; для неизвестного динамического размера используется 640 × 640.

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

Классы

ID классов должны начинаться с 0, быть непрерывными и соответствовать порядку обучения. id2label и label2id должны совпадать, а className — точно соответствовать метке.

id2labellabel2idclassName

Размер и скорость

Для постоянного обнаружения начните с Nano или Small. Более крупные модели могут быть точнее, но требуют больше памяти и работают медленнее. Проверяйте на реальном компьютере и Android-устройстве.

n / s / m / l / x

Поддерживаемые выходные тензоры

Модель должна возвращать ровно один тензор одного из следующих форматов. Для сырого YOLO-выхода LaiCai выполняет фильтрацию и NMS.

ФорматДопустимая shapeЗначение
raw_yolo_no_objectness[1, 4 + nc, N] / [1, N, 4 + nc]Рамки и оценки классов без отдельного objectness.
raw_yolo_with_objectness[1, 5 + nc, N] / [1, N, 5 + nc]Рамки, objectness и оценки классов.
postprocessed_xyxy[1, N, 6] / [N, 6]x1, y1, x2, y2, оценка и ID класса после NMS.

Проверка перед импортом

  • Это ONNX-модель обнаружения объектов, а не .pt или ID облачного API.
  • Есть один вход RGB NCHW и один поддерживаемый выходной тензор.
  • Используются float32/float16, а не INT8/UINT8.
  • Известны порядок классов и формат; для одного класса указан outputFormat.
  • В папке один .onnx либо он указан через modelFile в config.json.
  • Сначала протестируйте текущий кадр на компьютере, затем отдельно в Android Agent.

Пример config.json

Метки и outputFormat приведены как пример. Замените их фактическим порядком классов и форматом экспортированной модели.

{
  "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
  }
}