Я внедряю пользовательскую модель в приложение флаттера. Для этого я использую пакет tflite (https://pub.dev/packages/tflite). При работе на Android и я получаю правильные прогнозы, но IOS совершенно странно и не имеет смысла.
В моем файле model_labels.txt есть 10 меток, поэтому индекс меток от 0 до 9. Я использую этот код когда я получаю свое изображение
Future<List<dynamic>> recognizeImage(File image) async {
await loadModel();
var recognitions = await Tflite.runModelOnImage(
path: image.path,
imageMean: 0.0, // defaults to 117.0
imageStd: 256.0, // defaults to 1.0
numResults: 5, // defaults to 5
threshold: 0.01, // defaults to 0.1
asynch: true,
);
print(recognitions);
return result;}
печать возвратов распознавания android (= имеет смысл)
[{confidence: 0.9737526178359985, index: 0, label: label1},
{confidence: 0.025052303448319435, index: 6, label: label2}]
печать возвратов распознавания IOS (= ерунда)
[{index: 21, label: , confidence: 2.8203511238098145},
{index: 11, label: label1, confidence: 2.743105411529541},
{index: 17, label: label2, confidence: 2.7106339931488037},
{index: 10, label: , confidence: 2.4108083248138428},
{index: 28, label: label2, confidence: 2.398569107055664}]
Что не так на этом рисунке:
- Я получаю индексы выше 9, у меня всего 10 меток в моем файле label.txt
- index : 21 и индекс: 10 не имеют метки, имеет смысл, потому что нет метки, но не имеет смысла, поскольку не должно быть индексов выше, чем 9
- . Индекс: 17 и индекс: 28 имеют одинаковую метку, но разную достоверность, что не имеет смысла, так как не должно быть нескольких предсказаний с одной и той же меткой
- все значения достоверности больше 1,0, что опять же не имеет смысла
Кто-нибудь испытывал такие же проблемы?