You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在Visual Studio中使用本地目标检测场景,如何用VOTT导出文件训练ML.NET模型?

基于VOTT标注文件训练ML.NET目标检测模型的实现方法

前置适配要求

VOTT导出标注时优先选择COCO格式或Pascal VOC格式,这两类格式ML.NET原生支持直接加载,无需额外做标注数据的格式转换。如果已经导出为CSV格式,需要自行完成标注字段到ML.NET目标检测要求的图像路径、边界框、分类标签三个核心字段的映射。

具体实现步骤

  • 安装依赖NuGet包:Microsoft.ML、Microsoft.ML.ImageAnalytics、Microsoft.ML.Vision,版本选择最新稳定版即可
  • 加载标注与图像数据,以COCO格式为例:
using Microsoft.ML;
using Microsoft.ML.Vision;

// 初始化ML上下文
var mlContext = new MLContext(seed: 1);

// 配置本地路径
string imageRootDir = @"你的本地图像存储目录路径";
string cocoAnnotationPath = @"VOTT导出的coco.json文件路径";

// 直接加载COCO格式标注
var rawDataset = mlContext.Data.LoadFromCoco(cocoAnnotationPath, imageRootDir);
  • 拆分训练集与测试集
// 按8:2比例拆分训练、测试集
var trainTestData = mlContext.Data.TrainTestSplit(rawDataset, testFraction: 0.2);
  • 构建训练管道
var trainingPipeline = mlContext.Transforms.ResizeImages(
        outputColumnName: "ResizedImage", 
        imageWidth: 640, 
        imageHeight: 640, 
        inputColumnName: "Image")
    .Append(mlContext.Transforms.ExtractPixels(
        outputColumnName: "Pixels", 
        inputColumnName: "ResizedImage"))
    .Append(mlContext.MulticlassClassification.Trainers.YoloV5(
        labelColumnName: "Label",
        boundingBoxColumnName: "Box",
        imageColumnName: "Pixels"));

// 启动训练
var trainedModel = trainingPipeline.Fit(trainTestData.TrainSet);

常见问题处理

  • 标注与图像路径不匹配:VOTT导出时勾选「复制关联图像到导出目录」选项,保证标注文件内记录的图像相对路径和本地实际存储路径一致
  • 输入维度报错:ResizeImages步骤的宽高参数要和训练器要求的输入尺寸匹配,YOLOv5默认支持640*640尺寸输入
  • 使用Pascal VOC格式标注:把加载方法替换为mlContext.Data.LoadFromPascalVoc(标注文件夹路径, 图像根目录)即可,后续训练步骤完全一致

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:27:09