vision.detectvision.detect
Просмотрите входы, выходы и поддержку выполнения узла vision.detect.
Видеоурок
04Посмотрите, как настроить и запустить узел vision.detect в реальном рабочем процессе LaiCai Flow.
Входы
5modelIdstringОбязательноliteralallClassesboolНеобязательноliteralclassNamesarrayНеобязательноliteralminScorenumberОбязательноliteralroirectОбязательноliteralВыходы
9data.bestobject—data.best.scorenumber—data.best.modelIdstring—data.best.classNamestring—data.best.centerpointscreenRatiodata.best.center.xnumberscreenRatiodata.best.center.ynumberscreenRatiodata.best.rectrectscreenRatiodata.itemsarray—Поддержка выполнения
Совместимость модели и технические требования
Расширения 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.
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
}
}