VT-Station数据准备与标注实战:从原始数据到高效训练数据(1)

VT-Station数据准备与标注实战:从原始数据到高效训练数据(1)VT Station 实战指南 第二章 数据准备与标注 1 从原始数据到高效训练数据 云锦微智能科技 序言本文详细介绍了在 VT Station AI 训练平台上准备图像分类和目标检测任务训练数据的完整流程

大家好,欢迎来到IT知识分享网。

VT-Station实战指南:第二章-数据准备与标注:(1)从原始数据到高效训练数据

云锦微智能科技

序言

本文详细介绍了在 VT-Station AI 训练平台上准备图像分类和目标检测任务训练数据的完整流程。如何利用用户录制的视频,通过抽帧、ONNX 模型预标注、图像裁剪等技术高效生成符合平台要求的分类和检测数据集,并最终导入平台开始训练

VT-Station数据准备与标注实战:从原始数据到高效训练数据(1)

小贴士:特别适合的行业场景

• 工业领域:用于产品缺陷检测、生产流程监控等,本地化部署保障数据安全,快速实现产线智能化。

• 安防行业:支持人脸人体检测、行为识别等,满足安防场景对实时性和数据隐私的高要求。

智能硬件:方便将模型部署到边缘设备,如智能摄像头、工业机器人等,提升设备智能化水平。

准备目标检测数据

1、VT-Station 平台检测数据格式要求

  • 图像文件夹 (如JPEGImages
  • 标注文件夹 (如Annotations – XML 文件)
  • 可选:图像集文件 (ImageSets/Main/train.txtval.txt 等)
  • 图片文件如 000001.jpg 和 标注文件 000001.xml 的文件名部分必须一致。

2. 从用户视频到标注数据

  • 视频抽帧
    • 工具:FFmpeg (命令行) 或 OpenCV (Python 脚本),这里以 ffmpeg 为例
    • FFmpeg 示例:

Plain Text
ffmpeg -i your_video.mp4 -vf “fps=1” -q:v 2 frames/frame_%04d.jpg

  • 图片去重

图片去重原理常见的有两种,基于精确哈希 (MD5, SHA1, SHA256 等) 和 基于感知哈希 (Perceptual Hashing),我们这里主要考虑基于感知哈希的方法。常见的工具主要有:czkawka imagededup 等工具。我们这里以 czkawka 为例

Plain Text
czkawka image -d frames -s Medium -D OB

  • 数据标注
    • 因为数据标注工具较多,学习资料很多,本文不过多赘述,用户可以自己上网查找
    • 工具介绍:CVAT,LabelImg, LabelMe, VGG Image Annotator (VIA), MakeSense.ai 等。
    • 强调标注规范:准确框选目标,赋予正确类别。
    • 导出为 VOC XML 格式。
  • (进阶) 使用现有 ONNX 模型进行预标注
    • 拥有一个性能尚可的 ONNX 目标检测模型,本文以 VT-Station 训练出来的 onnx yolo 模型为例,读者可以根据需要定制脚本
    • 使用 Python 脚本进行标注
    • 通过 https://pan.viitrix.cn/s/2Kz87zb3e3WBGHS 下载 onnx_predict.py 对图片进行预标注

Plain Text
python onnx_predict.py –onnx_file model/yolov5s-best.onnx –label_file model/voc-model-labels.txt -i frames –save_labels True

  • 对数据集打包并导入 VT-Station 平台

Plain Text
tar cvf frames.tar frames

准备图像分类数据

1.VT-Station 平台分类数据格式要求

每个图片对应一个 json 文件,json 文件的格式是:

Plain Text
{“labels”: [{“name”: “LABEL1”}, {“name”: “LABEL2”}]}

标注文件的目录结构如下

Plain Text
dataset_root/
├── folder1/
│ ├── image1.jpg
│ ├── image1.json
│ └── …
└── folder2/
│ ├── image1.jpg
│ ├── image1.json
│ └── …

常见的分类数据集的目录结构如下

Plain Text
dataset_root/
├── label1/
│ ├── image1.jpg
│ ├── image2.jpg
│ └── …
└── label2/
│ ├── image1.jpg
│ ├── image2.jpg
│ └── …

可以使用下面的脚本(convert_vt_cls.sh)转换成 VT 的导入格式:

bash
#!/usr/bin/env bash
set -e -o pipefail
MYDIR=”$( cd “$( dirname “${BASH_SOURCE[0]}” )” && pwd )”

cd $MYDIR

dirs=$(find . -mindepth 1 -maxdepth 1 -type d | sed -e’s/\.\///g’)

for cls in $dirs; do
if [ -z “$cls” ]; then
continue
fi
if [ “$cls” == “.” ]; then
continue
fi
echo $cls
for f in $(find $cls -iname “*.jpg” -or -iname “*.png” -or -iname “*.jpeg”); do
filename=$(basename $f)
dir=$(dirname $f)
name=”${filename%.*}”
ext=”${filename*.}”
label_filename=”$dir/${name}.json”
echo $label_filename
cat > $label_filename <<EOF
{“labels”: [{“name”: “$cls”}]}
EOF
done
done

2. 用户自己录制的视频 (用于分类)

  • 视频抽帧
    • 方法同检测部分,不做赘述。
  • 图片去重
    • 方法同检测部分,不做赘述。
  • 目标检测并抠图

一般情况下分类模型不会对整张图片分类,一般先做目标检测再做分类,例如男女分类,先通过目标检测把人找出来,再对人的性别进行分类检测。所以在数据处理部分也要对原始图片先做目标检测并抠图,再对抠图进行标注。抠图脚本同样可以使用前面的 onnx_predict.py,命令如下

Plain Text
python onnx_predict.py –onnx_file model/yolov5s-best.onnx –label_file model/voc-model-labels.txt -i frames –save_labels False –crop True

  • 数据筛选与分类:

把上面工具生成的 crop 图根据分类保存按照 imagefolder 的格式保持,然后使用 convert_vt_cls.sh 转转化为 VT 需要的格式。

数据导入 VT-Station 平台

  • 登录 VT-Station 平台。
  • 导航到数据集管理模块。
  • 选择“创建数据集”或“导入数据集”。
  • 指定数据集类型(图像分类或目标检测)。
  • 上传数据:

上传准备好的数据压缩包(例如,包含图片及标注文件的检测数据集,或包含类别子文件夹的分类数据集),一般是 tar 或者 zip 格式。

参考文档

•图片去重工具 – czkawka

•本文涉及的脚本及预训练模型

实战指南目录

开篇:零代码构建专属AI模型

VT-Station实战指南开篇点击查阅:

VT-Station实战指南:零代码构建专属AI模型(开篇)

第一章:基础入门 (Getting Started)

VT-Station实战指南:第一章-基础入门点击查阅:

VT-Station实战指南:第一章-基础入门

第二章:数据准备与标注 (Preparing Your Data)

Recipe 2.1: 导入您的数据

目标:学会将不同来源的数据导入 VT-Station。

内容:支持的数据格式(图片、视频?),从本地上传,从云存储导入(如果支持),数据集的组织方式。

小贴士:导入前需要注意的数据整理事项。

Recipe 2.2: 理解不同的标注类型

目标:了解何时使用何种标注工具。

内容:分类标签、矩形框 (Bounding Box)、多边形 (Polygon)、关键点 (Keypoint) 等(根据 VT-Station 支持的功能选择),各自适用的场景解释。

Recipe 2.3: 实战:图像分类标注

目标:掌握为图像打分类标签的操作。

内容:打开标注界面,选择图片,添加/选择标签,批量操作技巧。

小贴士:如何定义清晰、无歧义的分类标签?

Recipe 2.4: 实战:目标检测标注 (矩形框)

目标:掌握使用矩形框标注目标物体。

内容:选择矩形框工具,框选目标,为框选区域选择或输入标签,修改/删除标注框。

小贴士:标注框应该多紧密?包含多少背景?

Recipe 2.5: 标注数据质量核查与管理

目标:学习如何检查和提升标注数据质量。

内容:检查标注一致性,查找漏标/错标,版本管理(如果支持),多人协作标注流程(如果支持)。

小贴士:为什么高质量标注如此重要?”Garbage in, garbage out.”

Recipe 2.6: 数据增强简介与应用

目标:了解数据增强的作用,并使用平台提供的功能。

内容:什么是数据增强(旋转、翻转、亮度调整等),为何需要它(增加数据量、提升模型鲁棒性),如何在 VT-Station 中配置数据增强策略。

第三章:模型训练 (Training Your Model)

Recipe 3.1: 选择合适的模型模板/类型

目标:根据任务类型和数据情况选择合适的起点。

内容:平台提供的预设模型/模板介绍(例如,通用分类模型、快速检测模型、高精度检测模型),选择建议。

小贴士:新手该如何选择?

Recipe 3.2: 配置训练参数 (简化版)

目标:了解关键训练参数的含义并进行基本配置。

内容:解释最重要的几个参数(如训练时长/轮数 Epochs、批次大小 Batch Size),提供建议值或预设选项(如 “快速训练”、”均衡模式”、”追求高精度”)。

小贴士:首次训练建议使用默认或推荐设置。

Recipe 3.3: 启动与监控模型训练

目标:学会开始训练并理解训练过程中的状态信息。

内容:如何点击“开始训练”,查看训练日志,理解关键指标曲线(如 Loss 下降、Accuracy/mAP 上升)的简单含义。

小贴士:训练需要多长时间?如何判断训练是否在正常进行?

Recipe 3.4: 理解训练结果报告

目标:初步解读模型训练完成后的效果。

内容:查看关键评估指标(准确率、召回率、mAP 等)的含义,了解模型的基本表现。

第四章:模型评估与优化 (Evaluating and Improving Your Model)

Recipe 4.1: 可视化模型预测结果

目标:直观地查看模型在验证/测试数据上的表现。

内容:使用平台的评估工具,查看模型预测的标注框/分类结果与真实标注的对比,找出模型容易出错的样本。

小贴士:这是最直观了解模型好坏的方式。

Recipe 4.2: 深入解读评估指标

目标:更详细地理解模型的性能。

内容:混淆矩阵 (Confusion Matrix) 的解读(分类任务),精度 (Precision) 与召回率 (Recall) 的权衡(检测任务)。

小贴士:没有完美的模型,关键是满足业务需求。

Recipe 4.3: 识别常见训练问题

目标:了解模型可能遇到的问题及初步判断。

内容:简单解释过拟合(模型只在训练数据上表现好)和欠拟合(模型没学好),如何通过训练曲线和评估结果初步判断。

Recipe 4.4: 优化技巧:增加或修正数据

目标:学习通过改进数据来提升模型效果。

内容:根据 Recipe 4.1 发现的错误样本,针对性地增加相似数据或修正错误标注,重新训练。

小贴士:数据是提升模型效果最有效的手段之一。

Recipe 4.5: 优化技巧:调整训练参数

目标:学习通过微调参数改进模型。

内容:基于 Recipe 4.3 的判断,尝试调整训练时长、学习率(如果平台开放)等参数,重新训练。

小贴士:参数调整通常需要多次尝试。

Recipe 4.6: 模型版本管理

目标:管理不同次训练得到的模型。

内容:如何保存、命名和比较不同版本的模型。

第五章:模型部署与应用 (Deploying Your Model)

Recipe 5.1: 理解部署选项

目标:了解 VT-Station 支持的部署方式及其适用场景。

内容:云端 API 部署、边缘设备部署等。

Recipe 5.2: 实战:一键部署为边缘设备

目标:将训练好的模型发布为一个可供调用的服务。

内容:选择要部署的模型,点击部署按钮,获取 API 地址和调用凭证。

小贴士:部署前确认模型效果满足要求。

Recipe 5.3: 如何调用已部署的 API

目标:学会向部署好的模型发送数据并获取预测结果。

内容:提供简单的 API 调用示例代码(如 Python requests),解释输入数据格式和输出结果格式。

小贴士:确保调用时的数据预处理与训练时一致(平台通常会自动处理)。

Recipe 5.4: 监控已部署模型的运行状态

目标:了解模型服务的健康状况。

内容:查看调用量、响应时间、错误率等基本监控信息(如果平台提供)。

第六章:进阶技巧与最佳实践 (Advanced Tips & Best Practices)

Recipe 6.1: 处理不均衡数据

场景:某些类别的样本数量远多于其他类别。

技巧:数据增强、重采样(如果平台支持)、特殊损失函数(平台内部可能已处理)。

Recipe 6.2: 利用主动学习/智能标注加速标注

场景:数据量很大,如何高效标注?

技巧:介绍主动学习概念,如何在 VT-Station 中使用该功能让模型辅助筛选需要优先标注的数据。

Recipe 6.3: 何时需要寻求外部专家帮助?

场景:遇到难以解决的问题或效果瓶颈。

技巧:设定合理预期,了解 VT-Station 的能力边界,何时考虑引入 AI 专家。

附录 (Appendix)

术语表 (Glossary): 解释 Cookbook 中出现的关键 AI 和平台术语。

常见问题解答 (FAQ): 汇总用户在使用过程中可能遇到的常见问题和解决方案。

获取帮助与支持: 如何联系 VT-Station 的技术支持或查找更多文档资源。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/178814.html

(0)
上一篇 2025-05-17 11:15
下一篇 2025-05-17 11:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信