Я не использовал службу customvision.ai, но раньше работал с моделями обнаружения объектов. Массив 13x13, скорее всего, представляет собой сетку, которая покрывает входное изображение. Для каждой ячейки в этом массиве - обычно соответствующей блоку 32x32 пикселей в исходном изображении - существует прогноз из 40 чисел.
Это немного зависит от того, какая модель customvision.ai использует то, что означают эти 40 чисел. Но, как правило, они содержат координаты одного или нескольких ограничивающих прямоугольников, а также вероятности классов.
В случае, если модель YOLO (что представляется вероятным, поскольку она также имеет выходную сетку 13x13), существует несколько прогнозов на ячейку. Каждое предсказание имеет 4 числа для описания ограничивающего прямоугольника, 1 число для описания вероятности того, что этот ограничивающий прямоугольник содержит объект, и num_classes
чисел с вероятностями для различных классов.
Таким образом, в ячейке сетки есть (5 + num_classes) x num_predictions
чисел. Если модель делает 5 прогнозов на ячейку сетки, и вы тренировались в 3 классах, вы получаете (5 + 3)*5 = 40
чисел на ячейку сетки.
Обратите внимание, что я делаю здесь много предположений, потому что я ничего не знаю о типе вашей модели и количестве классов объектов, на которых вы тренировались.
Эти 40 чисел могут иметь или не иметь действительные координаты ограничивающего прямоугольника. Возможно, вам придется написать дополнительный код для «декодирования» этих номеров. Опять же, логика для этого зависит от типа модели.
Я предполагаю, что customvision.ai имеет некоторую документацию или пример кода о том, как это сделать.
Вы также можете прочитать больше об этой теме в нескольких моих сообщениях в блоге: