Что возвращает посенет? - PullRequest
0 голосов
/ 11 мая 2019

Я работаю над проектом, который читает изображение в качестве входного и показывает и выводит изображение. Выходное изображение содержит несколько строк для обозначения скелета человеческого тела. Я использую модель оценки позы от tenorflow-lite:

https://www.tensorflow.org/lite/models/pose_estimation/overview

Я прочитал документы, и это показывает, что вывод содержит массив 4-х измерений. Я попытался использовать netron для визуализации файла моей модели, и это выглядит так: model visualisation

Мне удалось получить результат тепловая карта из входных данных, но у меня возникла проблема, что все плавающие являются отрицательными. Это смущает меня, и я не уверен, что сделал что-то не так или как понять эти выводы.

Вот код для вывода

            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], который является отрицательным. Так есть кто-нибудь, кто знает об этом, может помочь мне :(

Большое спасибо!

...