基于YOLO11的垂钓人员识别:从数据集构建到模型训练实战

发布时间:2026/7/31 4:41:01
基于YOLO11的垂钓人员识别:从数据集构建到模型训练实战 基于YOLO11的垂钓人员识别从数据集构建到模型训练实战一、场景背景在河道、水库、禁钓区以及水利设施周边违规垂钓行为不仅影响水域生态环境还可能带来安全隐患。传统的人工巡查方式效率有限难以做到全天候覆盖。借助计算机视觉技术在视频监控画面中自动识别垂钓人员可以辅助监管部门及时发现违规行为提升巡查效率。本文以“垂钓人员识别”项目为例介绍如何利用YOLO11目标检测模型从数据集整理、标注、训练到验证的完整流程。项目使用的数据集包含100张经筛选的代表性图片标注类别为“IF”垂钓人员适用于河道监控场景下的行人检测任务。二、数据集说明来源数据集说明表本系统使用的数据集来自“垂钓人员识别”项目项目名称为chuidiaoshibie。原始数据集存放于D:\pythonWorkSpaces\thinksourcecode\dataset\垂钓人员识别目录下经过整理后从label_studio_import\oss_selected_100子目录中选取了100张具有代表性的图片用于模型训练和验证。数据集基本信息项目内容百度网盘目录名称垂钓人员识别项目名称chuidiaoshibie图片数量100张Label Studio任务数100个标注类别IF垂钓人员业务场景该数据集主要面向河道、水库、禁钓区等户外水域场景。图片样本涵盖了不同年龄、性别和着装的垂钓者在河流、水库岸边等典型环境中进行钓鱼活动的画面。部分图片经过AI标注处理显示了目标检测的边界框。标注类别说明当前数据集仅包含一个类别IF即垂钓人员。标注时使用矩形框框出画面中的垂钓者主体不区分站立、坐姿或不同朝向。单类别标注降低了模型训练的复杂度但同时也要求模型能够准确区分垂钓人员与普通行人、其他水域活动者。素材统计与使用图片数量100张Label Studio任务数量100个配套视频文件视频素材\100张图片视频.mp4可用于项目展示或数据集预览三、样本画面观察在开始训练之前先通过部分样本图片了解数据集的特点。以下为从原始视频中抽取的典型画面从样本中可以看到画面多为户外自然光场景光照条件变化较大晴天、阴天、逆光等背景复杂包含水面、树木、桥梁、建筑物等垂钓者姿态多样有站立、坐姿、弯腰等部分场景中垂钓者距离摄像头较远目标尺寸较小存在多目标场景多个垂钓者同时出现在画面中这些特点对目标检测模型提出了较高要求需要在后续训练中特别关注。四、标注流程与数据准备4.1 使用Label Studio进行标注数据集使用Label Studio进行标注。以下为标注界面截图标注过程中需要注意使用矩形框完整框住垂钓人员主体避免框选过大或过小对于被遮挡的目标根据可见部分合理标注确保标注框与目标边缘贴合紧密4.2 数据格式转换Label Studio导出格式通常为JSON需要转换为YOLO格式即每个图片对应一个txt文件每行格式为class_id x_center y_center width height坐标归一化到[0,1]。转换脚本示例importjsonimportosdeflabel_studio_to_yolo(json_path,output_dir,class_mapping):withopen(json_path,r)asf:datajson.load(f)foritemindata:image_nameitem[file_upload].split(/)[-1].replace(.jpg,.txt)img_widthitem.get(original_width,1920)img_heightitem.get(original_height,1080)yolo_lines[]forannotationinitem.get(annotations,[]):forresultinannotation.get(result,[]):ifresult[type]rectanglelabels:labelresult[value][rectanglelabels][0]class_idclass_mapping[label]xresult[value][x]/100.0yresult[value][y]/100.0wresult[value][width]/100.0hresult[value][height]/100.0# 转换为YOLO格式中心点坐标x_centerxw/2y_centeryh/2yolo_lines.append(f{class_id}{x_center:.6f}{y_center:.6f}{w:.6f}{h:.6f})withopen(os.path.join(output_dir,image_name),w)asf:f.write(\n.join(yolo_lines))4.3 数据集划分将100张图片按照常见比例划分为训练集、验证集和测试集划分比例图片数量训练集70%70张验证集20%20张测试集10%10张建议使用sklearn.model_selection.train_test_split进行随机分层划分确保各类别样本分布均匀。五、YOLO11训练流程5.1 环境准备安装YOLO11依赖pipinstallultralytics5.2 数据集配置文件创建dataset.yaml指定数据路径和类别信息# dataset.yamlpath:./chuidiaoshibie# 数据集根目录train:images/train# 训练集图片目录val:images/val# 验证集图片目录test:images/test# 测试集图片目录nc:1# 类别数量names:[IF]# 类别名称列表5.3 训练配置使用YOLO11进行训练。以下为训练命令示例fromultralyticsimportYOLO# 加载预训练模型modelYOLO(yolo11n.pt)# 使用yolo11n作为基础模型# 开始训练resultsmodel.train(datadataset.yaml,epochs100,imgsz640,batch16,workers4,lr00.01,augmentTrue,patience20,save_period10,projectchuidiaoshibie,nameyolo11n_100epochs)5.4 训练参数说明参数说明建议值epochs训练轮数100~200小数据集建议100轮imgsz输入图片尺寸640平衡精度与速度batch批次大小根据显存调整建议8~32lr0初始学习率0.01augment是否启用数据增强True小数据集必备patience早停耐心值20防止过拟合5.5 训练过程截图以下为模型训练操作界面截图展示训练配置和参数设置六、验证指标与误检漏检分析6.1 模型验证结果使用训练好的模型对验证集进行推理以下为部分验证结果截图6.2 常见问题分析基于训练过程中的观察以下问题值得关注1. 复杂背景下的识别准确率在桥梁附近、树木遮挡、水面反光等复杂背景下模型可能将背景中的某些物体误判为垂钓人员。建议在训练时增加这些场景的样本或使用更强的数据增强策略如随机遮挡、色彩抖动。2. 多目标场景下的重叠问题当画面中出现多个垂钓者时检测框可能出现重叠或互相遮挡的情况。YOLO11的NMS非极大值抑制算法可以缓解此问题但建议调整NMS的IoU阈值默认0.45适当降低至0.4可减少重叠框。3. 低置信度情况下的误检与漏检对于距离较远、目标尺寸较小或光照条件较差的样本模型可能输出较低的置信度。可以通过以下方式改善增加小目标样本的训练权重使用Mosaic数据增强适当降低置信度阈值默认0.25可调至0.2在验证时关注Recall指标确保漏检率可控6.3 模型评估指标训练完成后可查看以下关键指标指标说明关注点mAP0.5IoU阈值为0.5时的平均精度整体检测效果mAP0.5:0.95不同IoU阈值下的平均精度定位精度Precision精确率误检控制Recall召回率漏检控制F1-score精确率与召回率的调和平均综合性能七、常见坑与优化建议7.1 数据集层面的坑样本数量不足100张图片对于YOLO11训练来说偏少建议通过数据增强翻转、旋转、缩放、色彩变换等扩充样本量或收集更多原始图片。类别不平衡单类别任务不存在类别不平衡问题但需要确保正样本有垂钓者的图片与负样本无垂钓者的背景图片比例合理。标注质量标注框的准确性直接影响模型性能。建议在标注完成后进行抽检确保框选位置和大小合理。7.2 训练层面的坑过拟合小数据集容易过拟合建议使用预训练权重如yolo11n.pt并设置早停patience20。学习率设置初始学习率不宜过大0.01~0.001较为合适。可配合余弦退火调度器。批次大小显存允许的情况下适当增大batch size有助于稳定训练。7.3 推理部署层面的坑模型选择YOLO11提供n、s、m、l、x等不同规模n模型速度最快但精度较低x模型精度最高但推理速度慢。根据实际场景的算力需求选择。输入尺寸训练时使用640x640推理时建议保持一致。若需要提高小目标检测能力可尝试使用更大输入尺寸如1280x1280。八、总结本文以“垂钓人员识别”项目为例详细介绍了基于YOLO11的目标检测模型训练全流程。从数据集整理、标注、格式转换到模型训练、验证涵盖了工程实践中的关键步骤。核心要点回顾数据集质量是模型性能的基础100张样本虽然可以完成训练但建议持续扩充以提升泛化能力。YOLO11在单类别目标检测任务中表现良好小数据集下建议使用预训练权重并配合数据增强。验证分析是迭代优化的关键重点关注误检和漏检场景针对性补充样本或调整参数。工程落地需要考虑模型大小、推理速度与精度的平衡根据实际部署环境选择合适的模型版本。该方案可迁移至其他类似的水域监控场景如游泳人员识别、船只检测等只需替换对应数据集并调整类别配置即可。作者说明本文由思源视觉整理仅作计算机视觉技术实践记录。九、素材配图建议本文中已使用的配图素材如下数据集样本展示标注界面示例模型验证结果训练操作界面![垂钓人员识别 模型训练操作界面。](https://thinksource2020.oss-cn-beijing.aliyuncs.com/blog