getResult method

ClassificationResult getResult(
  1. List<TensorData> outputs,
  2. Uint8List originalImageBytes
)

Processa as saídas do modelo para gerar o resultado de classificação Retorna um ClassificationResult contendo os resultados da classificação.

Implementation

ClassificationResult getResult(
  List<TensorData> outputs,
  Uint8List originalImageBytes,
) {
  final out = outputs[0];
  // Converte o buffer de bytes do tensor para Float32List de forma segura
  final bd = ByteData.sublistView(out.data);
  final floatCount = bd.lengthInBytes ~/ 4;
  final floatData = Float32List(floatCount);
  for (var i = 0; i < floatCount; i++) {
    floatData[i] = bd.getFloat32(i * 4, Endian.little);
  }
  // Cria uma lista de probabilidades em double
  final probabilities = floatData.map((e) => e.toDouble()).toList();
  final (maxIndex, maxProb) = getMaxIndexAndProb(probabilities);

  return ClassificationResult(
    originalImage: originalImageBytes,
    label: labels[maxIndex],
    confidence: maxProb,
    allProbabilities: probabilities,
    timestamp: DateTime.now(),
  );
}