Передача изображения в модель tflite - PullRequest
0 голосов
/ 13 марта 2020

Я загрузил тензорную модель Lite во Флаттер, но у меня возникли проблемы с передачей изображения в модель для прогнозирования. Метод прогнозирования позволяет передавать любой объект, но Flutter читает изображения как файлы, поскольку я использую класс Image Picker, и я не могу найти способ преобразовать тип файла в изображение, чтобы я мог преобразовать его в (28,28,1) что требуется моделью.

Спасибо, любая помощь будет оценена.

Uint8List imageToByteListFloat32(
       img.Image image, int inputSize, double mean, double std) {
    var convertedBytes = Float32List(1 * inputSize * inputSize * 3);
    var buffer = Float32List.view(convertedBytes.buffer);
    int pixelIndex = 0;
    for (var i = 0; i < inputSize; i++) {
      for (var j = 0; j < inputSize; j++) {
        var pixel = image.getPixel(j, i);
        buffer[pixelIndex++] = (img.getRed(pixel) - mean) / std;
        buffer[pixelIndex++] = (img.getGreen(pixel) - mean) / std;
        buffer[pixelIndex++] = (img.getBlue(pixel) - mean) / std;
      }
    }
    return convertedBytes.buffer.asUint8List();
  }

  classifyImage(File image) async {
    var output = await Tflite.runModelOnBinary(
        binary: imageToByteListFloat32(image, 224, 127.5, 127.5),// required
        numResults: 10,    // defaults to 5
        threshold: 0.05,  // defaults to 0.1
        asynch: true      // defaults to true
    );
    setState(() {
      _loading = false;
      _outputs = output;
    });
  }`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...