mx117eva007 Ответов: 3

Как использовать модель yolov3 onnx для обнаружения объектов изображения с помощью microsoft.ml (ML.NET 1.4.)


Привет,
у меня есть вопрос о yolov3
когда я использую ML.NET 1.4 для обнаружения объекта изображения

Что я уже пробовал:

я учусь ML.NET образец:https://github.com/dotnet/machinelearning-samples/tree/master/samples/csharp/getting-started/DeepLearning_ObjectDetection_Onnx

и модифицируйте pipline для ввода и вывода yolov3
var pipeline = mlContext.Transforms.LoadImages("input_1", "", nameof(ImageNetData.ImagePath))
                .Append(mlContext.Transforms.ResizeImages("input_1", ImageNetSettings.imageWidth, ImageNetSettings.imageHeight, "input_1"))
                .Append(mlContext.Transforms.ExtractPixels("input_1"))
                .Append(mlContext.Transforms.ApplyOnnxModel(modelFile: modelLocation, outputColumnNames: new[]
                {
                    "yolonms_layer_1/ExpandDims_1:0",
                    "yolonms_layer_1/ExpandDims_3:0",
                    "yolonms_layer_1/concat_2:0"
                }, inputColumnNames: new[] {"input_1"}));


когда я предсказываю данные, я не знаю, как изменить три выходных идентификатора,
потому что этот метод принимает только один входной arg
var scoredData = model.Transform(testData);

            IEnumerable<float[]> probabilities =
                scoredData.GetColumn<float[]>("yolonms_layer_1/concat_2:0").ToList();


модель yolov3 onnx скачать с сайта https://github.com/onnx/models
и используйте Netron для получения выходных слоев

пожалуйста, дайте мне некоторые указания, спасибо вам всем большое!

3 Ответов

Рейтинг:
0

Member 14685145

Здравствуйте, я столкнулся с той же проблемой, что и вы...
Вы нашли решение для этого?


mx117eva007

я не нашел решения ...

Рейтинг:
0

REZIDENT10

.Append(mlContext.Трансформация.ApplyOnnxModel(modelFile: modelLocation, outputColumnNames: new[] { "yolonms_layer_1/ExpandDims_1:0",
"yolonms_layer_1/ExpandDims_3:0",
"yolonms_layer_1/concat_2:0" }, inputColumnNames: new[] { "input_1" }))
.Append(mlContext.Трансформация.Concatenate("outputs", new[] { "yolonms_layer_1/ExpandDims_1:0",
"yolonms_layer_1/ExpandDims_3:0",
"yolonms_layer_1/concat_2:0" }));

IEnumerable<float[]> вероятности =
scoredData.GetColumn<float[]>("выходы").Список();