Я работаю над проектом, который читает изображение в качестве входного и показывает и выводит изображение. Выходное изображение содержит несколько строк для обозначения скелета человеческого тела. Я использую модель оценки позы от tenorflow-lite:
https://www.tensorflow.org/lite/models/pose_estimation/overview
Я прочитал документы, и это показывает, что вывод содержит массив 4-х измерений. Я попытался использовать netron для визуализации файла моей модели, и это выглядит так:
![model visualisation](https://i.stack.imgur.com/g6yVD.png)
Мне удалось получить результат тепловая карта из входных данных, но у меня возникла проблема, что все плавающие являются отрицательными. Это смущает меня, и я не уверен, что сделал что-то не так или как понять эти выводы.
Вот код для вывода
tfLite = new Interpreter(loadModelFile());
Bitmap inputPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.human2);
inputPhoto = Bitmap.createScaledBitmap(inputPhoto, INPUT_SIZE_X, INPUT_SIZE_Y, false);
inputPhoto = inputPhoto.copy(Bitmap.Config.ARGB_8888, true);
int pixels[] = new int[INPUT_SIZE_X * INPUT_SIZE_Y];
inputPhoto.getPixels(pixels, 0, INPUT_SIZE_X, 0, 0, INPUT_SIZE_X, INPUT_SIZE_Y);
int pixelsIndex = 0;
for (int i = 0; i < INPUT_SIZE_X; i ++) {
for (int j = 0; j < INPUT_SIZE_Y; j++) {
int p = pixels[pixelsIndex];
inputData[0][i][j][0] = (p >> 16) & 0xff;
inputData[0][i][j][1] = (p >> 8) & 0xff;
inputData[0][i][j][2] = (p) & 0xff;
pixelsIndex ++;
}
}
float outputData[][][][] = new float[1][23][17][17];
tfLite.run(inputData, outputData);
Выходными данными является массив [1] [23] [17] [17], который является отрицательным. Так есть кто-нибудь, кто знает об этом, может помочь мне :(
Большое спасибо!