Tensorflow: определение шага вывода предварительно обученной модели CNN

Я загрузил и реализую приложение ML, используя Модель Tensorflow Lite Posenet. Результатом этой модели является тепловая карта, которая является частью CNN, с которой я новичок.

Одна часть информации, необходимая для обработки вывода, - это «шаг вывода». Он используется для вычисления исходных координат ключевых точек, найденных на исходном изображении.

keypointPositions = heatmapPositions * outputStride + offsetVectors

Но в документации не указывается выходной шаг. Есть ли информация или способ, доступный в тензорном потоке, который я могу использовать, чтобы получить выходной шаг для этой (любой) предварительно обученной модели?

  • Форма ввода для img: (257,257,3)
  • Форма вывода: (9,9,17) (1 [9x9] тепловая карта для 17 различных ключевых точек)
import tensorflow as tf
import numpy as np
import json

model = tf.lite.Interpreter('models\posenet_mobilenet_v1_100_257x257_multi_kpt_stripped.tflite')
model.allocate_tensors()

with open('model_details.json', 'w') as outfile:
     info = dict(list(enumerate(model.get_tensor_details())))
     s = json.dumps(str(info))
     outfile.write(s)

person Josh Sharkey    schedule 05.02.2020    source источник


Ответы (1)


Выходной шаг можно получить из следующего уравнения:

resolution = ((InputImageSize - 1) / OutputStride) + 1

Пример: входное изображение с шириной 225 пикселей и выходным шагом 16 дает размер вывода 15.

15 = ((225 - 1) / 16) + 1

Для модели tflite PoseNet (разрешение 9):

9 = ((257-1)/ x) + 1 x = 32, поэтому выходной шаг равен 32

Источник

person Josh Sharkey    schedule 05.02.2020
comment
Не могли бы вы немного уточнить, каков выходной шаг в сетке позы, как это имеет значение в модели сети позы, как он рассчитывается и какое число должно быть! . Пожалуйста, объясните вкратце? - person Hamza; 13.04.2021
comment
Пожалуйста, взгляните на прикрепленный источник: в нем объясняется: этот параметр влияет на высоту и ширину слоев в нейронной сети. На высоком уровне это влияет на точность и скорость оценки позы. Чем ниже значение шага вывода, тем выше точность, но ниже скорость. Чем выше значение, тем выше скорость, но ниже точность. Лучший способ увидеть влияние шага вывода на качество вывода - поиграть с демонстрацией оценки одной позы. - person Josh Sharkey; 13.04.2021
comment
Вот демонстрация: storage.googleapis.com/tfjs-models/demos /posenet/camera.html - person Josh Sharkey; 13.04.2021
comment
Я хочу знать, почему это происходит, в чем причина внутри PoseNET? - person Hamza; 14.04.2021