如何从张量流tflite模型的姿势网获取姿势坐标

时间:2019-03-05 10:17:56

标签: java android python tensorflow

我使用了由tensorflow提供的posenet的tflite模型文件。
我得到的输出是4d的4个数组:

[1, 23, 17, 17]
[1, 23, 17, 34]
[1, 23, 17, 64]
[1, 23, 17, 1]

我输入的图片大小为353x257。
现在如何从输出中调整姿势?

我指的是博客- https://medium.com/tensorflow/real-time-human-pose-estimation-in-the-browser-with-tensorflow-js-7dd0bc881cd5

1 个答案:

答案 0 :(得分:0)

您可以参考这个新博客,该博客显示了如何使用Android PoseNet,其中包括一个库,该库进行后处理以查找关键点坐标,这将有助于指导代码逻辑。 基本上,第一个数组的输出是分数,其尺寸为批处理大小*高度*宽度* numKeypoints。每个x,y坐标包含17个分数,每个关键点1个分数。您要遍历高度和宽度,并找到17个关键点中每个得分最高的x,y坐标对,这就是该关键点所在的位置。然后第二个数组包含偏移量,同样是批大小*高*宽度*偏移量。之所以有34个是因为它是17 * 2,因为每个关键点都有一个x和y偏移量。这是必需的,因为模型实际上将图像压缩到23 * 17(在您的情况下)并找到这些尺寸的坐标,然后需要使用偏移将其扩展回原始的353 * 257尺寸。

博客文章:https://link.medium.com/AKiU0kq3iZ

以下是我指的来源:https://github.com/tensorflow/examples/blob/master/lite/examples/posenet/android/posenet/src/main/java/org/tensorflow/lite/examples/posenet/lib/Posenet.kt

希望有帮助!