核心内容摘要
9月潮流风暴来袭!商场焕新,不止购物,更是生活的万花筒
数据集核心信息
总结表
总结维度具体内容类别目标检测Object Detection包含4个具体数据类别标记为
0、
1、
3具体类别名称未公布数量图像数量共1363张约
4k张格式计算机视觉数据集以图像文件为主要数据形式用于训练或验证计算机视觉模型数据集应用领域基础计算机视觉模型训练可作为目标检测任务的基础训练数据帮助入门级开发者或研究者搭建、调试目标检测模型熟悉模型训练流程与数据预处理逻辑。
特定场景目标识别探索虽未明确具体类别但可基于其目标检测属性用于探索工业质检、日常物品识别、场景元素标注等泛目标检测场景的技术可行性为后续场景化数据集构建提供参考。
教学与学习实践适合计算机视觉初学者用于实践操作例如学习数据标注规范、理解目标检测任务中数据与模型性能的关联或验证不同算法在小规模数据集上的表现差异。
数据集价值入门级实践价值对于缺乏高质量标注数据的初学者或小型团队该数据集提供了现成的目标检测标注数据无需从零进行数据采集与标注降低了计算机视觉技术实践的门槛。
技术验证价值可用于快速验证目标检测算法的基础效果例如测试新的模型结构、优化参数或数据增强方法在小样本数据下的适配性为后续大规模数据集的应用提供前期技术参考。
数据体系补充价值作为公开的目标检测数据集可补充到计算机视觉数据资源库中为不同规模、不同场景的目标检测任务提供多样化的数据选择尤其适合对数据量需求较低的轻量化模型开发场景。
1111采用PyTorch框架结合YOLOv5模型行业内常用的轻量型目标检测模型适配中小规模数据集代码包含数据加载、模型初始化、训练配置及基础验证逻辑可根据实际需求调整参数
环境依赖安装首先需安装必要的Python库执行以下命令# 安装PyTorch根据CUDA版本调整无GPU可使用cpu版本pip3installtorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装YOLOv5依赖、数据处理及可视化库pipinstallultralytics pandas matplotlib opencv-python
数据集目录结构准备将数据集按以下标准结构整理确保图像与标注文件一一对应dataset/ ├─ train/ # 训练集建议占总数据70% │ ├─ images/ # 训练图像文件.jpg/.png │ └─ labels/ # 训练标注文件.txtYOLO格式 ├─ val/ # 验证集建议占总数据30% │ ├─ images/ # 验证图像文件 │ └─ labels/ # 验证标注文件 └─ data.yaml # 数据集配置文件关键定义类别、路径data.yaml配置内容需根据实际数据集调整train:../dataset/train/images# 训练集图像路径相对/绝对路径均可val:../dataset/val/images# 验证集图像路径nc:4# 类别数量与数据集4个类别对应names:[class0,class1,class2,class3]# 类别名称需替换为实际类别若未知可先占位
模型训练核心代码fromultralyticsimportYOLOimportos# --------------------------
基础配置 --------------------------# 数据集配置文件路径需替换为你的data.yaml实际路径DATA_YAML_PATHdataset/data.yaml# 选择YOLOv5模型版本n nano轻量版适合小数据集s/m/l/x为更大模型需更多算力MODEL_VERSIONyolov5n.pt# 训练轮次小数据集建议
轮可根据验证精度调整EPOCHS150# 输入图像尺寸YOLOv5默认640可根据图像实际尺寸调整如
320IMG_SIZE640# 批次大小根据GPU显存调整16GB显存可设168GB显存设8无GPU设
BATCH_SIZE8# 设备选择0第1块GPU-1CPUDEVICE0ifos.environ.get(CUDA_VISIBLE_DEVICES)else-1# --------------------------
加载预训练模型 --------------------------# 加载YOLOv5预训练模型利用预训练权重加速收敛适合小数据集modelYOLO(MODEL_VERSION)print(f成功加载模型{MODEL_VERSION}训练设备{GPUifDEVICE0elseCPU})# --------------------------
执行模型训练 --------------------------print(开始训练...)train_resultsmodel.train(dataDATA_YAML_PATH,epochsEPOCHS,imgszIMG_SIZE,batchBATCH_SIZE,deviceDEVICE,projecttarget_detection_train,# 训练结果保存目录名namefirst_project_train,# 本次训练任务名saveTrue,# 保存训练过程中的模型权重valTrue,# 训练中自动进行验证patience20,# 若20轮验证精度无提升自动停止训练防止过拟合lr
0
001,# 初始学习率默认
001小数据集可适当降低至
0005weight_decay
0005# 权重衰减防止过拟合)# --------------------------
训练后基础验证 --------------------------print(训练完成开始验证模型性能...)# 用验证集评估模型输出精度、召回率、mAP等关键指标val_resultsmodel.val(dataDATA_YAML_PATH,imgszIMG_SIZE,batchBATCH_SIZE,deviceDEVICE,save_jsonTrue# 保存验证结果为JSON文件便于后续分析)# 打印关键验证指标mAP50IoU
5时的平均精度目标检测核心指标print(f验证集mAP50{val_results.box.map50:.4f})print(f验证集平均精度mAP
{val_results.box.map:.4f})# --------------------------
模型保存与推理测试 --------------------------# 保存最终训练好的模型默认保存在 project/name/weights/best.ptbest_model_pathos.path.join(target_detection_train,first_project_train,weights,best.pt)print(f最佳模型已保存至{best_model_path})# 加载训练好的模型测试单张图像替换为你的测试图像路径test_img_pathtest_image.jpgifos.path.exists(test_img_path):resultmodel(test_img_path,imgszIMG_SIZE,conf
0.
# conf
25检测置信度阈值# 保存检测结果图像带 bounding box 和类别标签result[0].save(detected_result.jpg)print(f测试图像检测完成结果保存至detected_result.jpg)
关键参数调整建议针对该数据集特性模型选择因数据集仅1363张图像小样本优先使用yolov5n.pt或yolov5s.pt避免大模型如yolov5l.pt过拟合。
训练轮次若训练中验证集mAP50在100轮后不再提升可提前停止通过patience20自动实现避免无效训练。
数据增强YOLOv5默认开启翻转、缩放等增强若数据集类别不平衡如某类图像极少可在model.train()中添加augmentTrue开启更强增强。
置信度阈值推理时conf参数建议设
2-
3平衡检测召回率与误检率可根据实际检测效果调整。
5.
注意事项若数据集标注格式非YOLO格式如VOC XML需先使用工具转换如labelImg标注工具可直接导出YOLO格式或用pandas编写脚本批量转换。
无GPU时将DEVICE-1但训练速度会显著变慢建议减少batch_size如设2并降低epochs如100轮。
训练后若出现“过拟合”训练集精度高、验证集精度低可增加数据增强、降低学习率或减少训练轮次。