Модели Custom Vision ONNX перестали работать с Windows 10 ML - PullRequest
1 голос
/ 20 июня 2020

Я обучил модель с помощью Custom Vision ai. Экспорт модели в виде файла ONNX.

В моем C#. net основном консольном приложении я сослался на SDK windows 10, как описано здесь: доступ к windows ml из консольных приложений

Затем я создаю снимок экрана и конвертирую его в SoftwareBitmap -> VideoFrame и, наконец, в ImageFeatureValue на основе примера: Использование изображения в качестве входного тензора для моделей ONNX

наконец, я привязываю тензор к моей модели onnx с помощью:

var output = new OnnxModelOutput();
var session = await CreateSession(projectId);
var binding = new LearningModelBinding(session);

binding.Bind("data", imageFile);
binding.Bind("classLabel", output.ClassLabel);
binding.Bind("loss", output.Loss);

Это отлично работало в течение месяца! Через несколько дней он перестал работать. Похоже, что привязка ONNX изменилась в пользовательском видении ai. Если сравнить старую модель с новой:

Старая модель

имя : данные тип : float32 [Нет, 3,224,224] обозначение : Изображение (Bgr8) Изображение (я) в формате BGR. Это [N, C, H, W] -тензор. 1-й / 2-й / 3-й срезы по оси C - это синий, зеленый и красный каналы соответственно. ввод старой модели ONNX

Новая модель

имя : данные тип : float32 [Нет, 3,224,224] обозначение : Изображение (Bgr8, Linear, NominalRange_0_255) Изображение (я) в формате BGR. Это [N, C, H, W] -тензор. 1-й, 2-й и 3-й срезы по оси C - это синий, зеленый и красный каналы соответственно. введите здесь описание изображения

Вопрос

С текущим изменением в новой модели ONNX входная привязка завершается с ошибкой: Данные переменной модели, ожидаются Float [- 1,3,224,224,], но была предпринята попытка привязки с несовместимым типом Image [1174x729]. '

Итак, как отразить изменение входных данных модели в c# ???

1 Ответ

0 голосов
/ 23 июня 2020

Мне удалось решить эту проблему!

Я загрузил этот инструмент и открыл модель

https://github.com/Microsoft/Windows-Machine-Learning/tree/master/Tools/WinMLDashboard

enter image description here

And then you need to remove the new metadata properties. That is to say you need to remove the Linear,NominalRange_0_255)

So once I removed this, it once more worked! введите описание изображения здесь

...