【发布时间】:2020-10-14 16:25:00
【问题描述】:
我想从内存中的bitmap 或byte[] 加载图像。大多数示例都使用文件。
我想对视频流进行预测。我们可以在bitmaps 或byte arrays 中取出帧。
public class MagsData2
{
public Image ImageData;
}
public class MagsData
{
public byte[] ImageData;
}
Image btmap = Bitmap.FromFile("assets/images/img.jpg");
var images = new List<MagsData2>() { new MagsData2() { ImageData = btmap } };
var images = new List<MagsData>() { new MagsData() { ImageData = ImageToByte(btmap) } };
使用第一个会出现异常:
System.ArgumentOutOfRangeException: '无法确定 IDataView 成员 ImageData 的类型和注册的自定义类型(参数 'rawType')'
上线
IDataView imageDataView = mlContext.Data.LoadFromEnumerable(images);
第二个给出异常:
System.ArgumentOutOfRangeException: 'Schema mismatch for input column 'ImageData':
expected String, got VarVector<Byte> (Parameter 'inputSchema')'
上线
var model = pipeline.Fit(data);
相关代码
var data = mlContext.Data.LoadFromEnumerable(new List<MagsData>());
var pipeline = mlContext.Transforms.LoadImages(outputColumnName: "image", imageFolder: "", inputColumnName: nameof(MagsData.ImageData))
.Append(mlContext.Transforms.ResizeImages(outputColumnName: "image", imageWidth: ImageNetSettings.imageWidth, imageHeight: ImageNetSettings.imageHeight, inputColumnName: "image"))
.Append(mlContext.Transforms.ExtractPixels(outputColumnName: "image"))
.Append(mlContext.Transforms.ApplyOnnxModel(modelFile: modelLocation, outputColumnNames: new[] { TinyYoloModelSettings.ModelOutput }, inputColumnNames: new[] { TinyYoloModelSettings.ModelInput }));
var model = pipeline.Fit(data);
【问题讨论】: