我已经下载并正在使用以下方法实现一个机器学习应用程序Tensorflow Lite Posenet 模型。这个模型的输出是一个热图,这是我不熟悉的 CNN 的一部分。
处理输出所需的一项信息是“输出步幅”。它用于计算原始图像中找到的关键点的原始坐标。
keypointPositions = heatmapPositions * outputStride + offsetVectors
But the 文档不指定输出步幅。张量流中是否有可用的信息或方法可以用来获取此(任何)预训练模型的输出步幅?
- img 的输入形状为:
(257,257,3)
- 输出形状为:
(9,9,17)
(17 个不同关键点的 1 [9x9] 热图)
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)
输出步长可以通过以下等式获得:
resolution = ((InputImageSize - 1) / OutputStride) + 1
Example:输入图像width of 225像素和output步幅16结果输出大小为15
15 = ((225 - 1) / 16) + 1
对于tflite PoseNet模型(分辨率为9):
9 = ((257-1)/ x) + 1
x = 32
所以输出步长是32
Source
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)