#java #android #python #tensorflow
#java #Android #python #tensorflow
Вопрос:
Я использовал файл модели tflite posenet, предоставленный tensorflow.
Я получаю выходные данные в виде 4 массивов 4d, которые:
[1, 23, 17, 17]
[1, 23, 17, 34]
[1, 23, 17, 64]
[1, 23, 17, 1]
Размер моего входного изображения составляет 353×257.
Теперь как получить координаты позы из этого вывода?
Блог, который я имею в виду, чтобы сделать это — https://medium.com/tensorflow/real-time-human-pose-estimation-in-the-browser-with-tensorflow-js-7dd0bc881cd5
Ответ №1:
Вы можете сослаться на этот новый вышедший блог, в котором показано, как использовать PoseNet для Android, он включает библиотеку, которая выполняет постобработку для поиска координат ключевых точек, что должно быть полезно для руководства логикой вашего кода. В основном, с первым массивом выводились оценки, с размерами, равными размеру пакета * высоте * ширине * numKeypoints. Каждая координата x, y содержит 17 баллов, по 1 баллу для каждой ключевой точки. Вы хотите выполнить итерацию по высоте и ширине и найти пару координат x, y с наибольшим результатом для каждой из 17 ключевых точек, вот где находится эта ключевая точка. Затем второй массив содержит смещения, снова размер пакета * высота * ширина * смещения. Их 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
Надеюсь, это поможет!
Комментарии:
1. Есть примеры для определения нескольких поз? Единственные примеры и демонстрационное приложение обнаруживают только отдельные позы.