公司动态

基于 YOLOv26 的鸟类识别检测系统(全套源码+数据集)

📅 2026/8/4 8:14:17
基于 YOLOv26 的鸟类识别检测系统(全套源码+数据集)
基于 YOLO26 与 Faster R-CNN 双模型对比覆盖数据集构建、模型训练调优、桌面系统集成的完整深度学习工程项目。目录项目概览数据集模型训练训练指标可视化图说明系统功能技术栈项目结构启动教程项目概览本项目以北美 200 种鸟类的细粒度识别为核心任务完整经历了以下深度学习开发阶段数据集构建与处理基于经典 CUB-200-2011 基准数据集将原始分类标注转换为 YOLO 目标检测格式按 8:1:1 完成数据集划分构建可直接驱动检测训练的CUB_200_8_1_1数据集。模型训练与调优以 YOLO26n 为主训练模型100 epoch早停则提前结束并同步训练 Faster R-CNN30 epoch作为对比基线通过超参数设计、学习率调度、数据增强等手段完成调优最终在 200 类细粒度鸟类检测任务上取得优异指标。系统集成与功能开发基于 PyQt6 开发桌面端珍稀鸟类检测系统集成图片、视频、实时摄像头三种检测模式配合历史记录、模型管理、训练指标展示等功能模块形成完整的工程化应用。数据集概述项目内容数据集名称CUB_200_8_1_1来源基准CUB-200-2011Caltech-UCSD Birds 200标注格式YOLO 格式归一化中心点 宽高类别数量200 种北美鸟类图片总数11,788 张图片格式JPEG.jpg图片尺寸不固定短边通常 200–500 px标注特点每张图片含单个目标框各类别分布均衡数据集划分子集图片数量占比训练集train9,43080%验证集val1,17910%测试集test1,17910%合计11,788100%标注格式说明class_id cx cy w h字段说明class_id类别索引0 ~ 199cx目标框中心点 x相对图片宽度归一化cy目标框中心点 y相对图片高度归一化w目标框宽度相对图片宽度归一化h目标框高度相对图片高度归一化200 种鸟类完整列表ID英文名中文名0Black_footed_Albatross黑脚信天翁1Laysan_Albatross莱岛信天翁2Sooty_Albatross乌信天翁3Groove_billed_Ani沟嘴犀鹃4Crested_Auklet凤头海雀5Least_Auklet小海雀6Parakeet_Auklet长嘴海雀7Rhinoceros_Auklet角嘴海雀8Brewer_Blackbird布氏拟八哥9Red_winged_Blackbird红翅黑鸟10Rusty_Blackbird锈色拟八哥11Yellow_headed_Blackbird黄头黑鸟12Bobolink刺歌雀13Indigo_Bunting靛蓝彩鹀14Lazuli_Bunting天青石彩鹀15Painted_Bunting彩色彩鹀16Cardinal主红雀17Spotted_Catbird斑猫鸟18Gray_Catbird灰猫鸟19Yellow_breasted_Chat黄胸聊鸟20Eastern_Towhee东方唧鹀21Chuck_will_Widow查克遗孀夜鹰22Brandt_Cormorant布氏鸬鹚23Red_faced_Cormorant红脸鸬鹚24Pelagic_Cormorant远洋鸬鹚25Bronzed_Cowbird铜色牛鹂26Shiny_Cowbird光泽牛鹂27Brown_Creeper褐旋木雀28American_Crow美洲乌鸦29Fish_Crow鱼鸦30Black_billed_Cuckoo黑嘴杜鹃31Mangrove_Cuckoo红树林杜鹃32Yellow_billed_Cuckoo黄嘴杜鹃33Gray_crowned_Rosy_Finch灰顶玫红雀34Purple_Finch紫朱雀35Northern_Flicker北扑翅䴕36Acadian_Flycatcher阿卡迪亚捕蝇鸟37Great_Crested_Flycatcher大冠捕蝇鸟38Least_Flycatcher小捕蝇鸟39Olive_sided_Flycatcher橄榄侧捕蝇鸟40Scissor_tailed_Flycatcher剪尾捕蝇鸟41Vermilion_Flycatcher朱红捕蝇鸟42Yellow_bellied_Flycatcher黄腹捕蝇鸟43Frigatebird军舰鸟44Northern_Fulmar北方管鼻鹱45Gadwall赤膀鸭46American_Goldfinch美洲金翅雀47European_Goldfinch欧洲金翅雀48Boat_tailed_Grackle船尾拟八哥49Eared_Grebe黑颈䴙䴘50Horned_Grebe角䴙䴘51Pied_billed_Grebe斑嘴䴙䴘52Western_Grebe西方䴙䴘53Blue_Grosbeak蓝色大嘴雀54Evening_Grosbeak暮色大嘴雀55Pine_Grosbeak松雀56Rose_breasted_Grosbeak玫胸大嘴雀57Pigeon_Guillemot鸽崖海鸦58California_Gull加州鸥59Glaucous_winged_Gull灰翅鸥60Heermann_Gull赫氏鸥61Herring_Gull银鸥62Ivory_Gull象牙鸥63Ring_billed_Gull环嘴鸥64Slaty_backed_Gull灰背鸥65Western_Gull西方鸥66Anna_Hummingbird安娜蜂鸟67Ruby_throated_Hummingbird红喉蜂鸟68Rufous_Hummingbird棕煌蜂鸟69Green_Violetear绿紫耳蜂鸟70Long_tailed_Jaeger长尾贼鸥71Pomarine_Jaeger中贼鸥72Blue_Jay蓝松鸦73Florida_Jay佛罗里达灌丛鸦74Green_Jay绿松鸦75Dark_eyed_Junco暗眼灯草鹀76Tropical_Kingbird热带王霸鹟77Gray_Kingbird灰王霸鹟78Belted_Kingfisher带翠鸟79Green_Kingfisher绿翠鸟80Pied_Kingfisher斑翡翠81Ringed_Kingfisher环翠鸟82White_breasted_Kingfisher白胸翡翠83Red_legged_Kittiwake红腿三趾鸥84Horned_Lark角百灵85Pacific_Loon太平洋潜鸟86Mallard绿头鸭87Western_Meadowlark西草地鹨88Hooded_Merganser头巾秋沙鸭89Red_breasted_Merganser红胸秋沙鸭90Mockingbird北方嘲鸫91Nighthawk美洲夜鹰92Clark_Nutcracker克拉克星鸦93White_breasted_Nuthatch白胸䴓94Baltimore_Oriole巴尔的摩拟黄鹂95Hooded_Oriole头巾拟黄鹂96Orchard_Oriole果园拟黄鹂97Scott_Oriole斯科特拟黄鹂98Ovenbird灶鸟99Brown_Pelican褐鹈鹕100White_Pelican白鹈鹕101Western_Wood_Pewee西方林霸鹟102Sayornis北美鹟103American_Pipit美洲鹨104Whip_poor_Will三声夜鹰105Horned_Puffin角海鹦106Common_Raven普通渡鸦107White_necked_Raven白颈渡鸦108American_Redstart美洲红尾林莺109Geococcyx走鹃110Loggerhead_Shrike大头伯劳111Great_Grey_Shrike大灰伯劳112Baird_Sparrow贝氏麻雀113Black_throated_Sparrow黑喉麻雀114Brewer_Sparrow布氏麻雀115Chipping_Sparrow棕顶麻雀116Clay_colored_Sparrow土色麻雀117House_Sparrow家麻雀118Field_Sparrow田野麻雀119Fox_Sparrow狐色麻雀120Grasshopper_Sparrow蝗虫麻雀121Harris_Sparrow哈里斯麻雀122Henslow_Sparrow亨斯洛麻雀123Le_Conte_Sparrow勒孔特麻雀124Lincoln_Sparrow林肯麻雀125Nelson_Sharp_tailed_Sparrow纳尔逊尖尾麻雀126Savannah_Sparrow萨瓦纳麻雀127Seaside_Sparrow海滨麻雀128Song_Sparrow歌带鹀129Tree_Sparrow美洲树麻雀130Vesper_Sparrow晚祷麻雀131White_crowned_Sparrow白冠麻雀132White_throated_Sparrow白喉麻雀133Cape_Glossy_Starling好望角辉椋鸟134Bank_Swallow崖沙燕135Barn_Swallow家燕136Cliff_Swallow崖燕137Tree_Swallow树燕138Scarlet_Tanager猩红比蓝雀139Summer_Tanager夏比蓝雀140Artic_Tern北极燕鸥141Black_Tern黑燕鸥142Caspian_Tern里海燕鸥143Common_Tern普通燕鸥144Elegant_Tern丽色燕鸥145Forsters_Tern福氏燕鸥146Least_Tern小燕鸥147Green_tailed_Towhee绿尾唧鹀148Brown_Thrasher褐嘲鸫149Sage_Thrasher鼠尾草嘲鸫150Black_capped_Vireo黑冠绿鹃151Blue_headed_Vireo蓝头绿鹃152Philadelphia_Vireo费城绿鹃153Red_eyed_Vireo红眼绿鹃154Warbling_Vireo鸣唱绿鹃155White_eyed_Vireo白眼绿鹃156Yellow_throated_Vireo黄喉绿鹃157Bay_breasted_Warbler栗胸林莺158Black_and_white_Warbler黑白林莺159Black_throated_Blue_Warbler黑喉蓝林莺160Blue_winged_Warbler蓝翅林莺161Canada_Warbler加拿大林莺162Cape_May_Warbler海角林莺163Cerulean_Warbler天蓝林莺164Chestnut_sided_Warbler栗侧林莺165Golden_winged_Warbler金翅林莺166Hooded_Warbler兜帽林莺167Kentucky_Warbler肯塔基林莺168Magnolia_Warbler木兰林莺169Mourning_Warbler悼念林莺170Myrtle_Warbler桃金娘林莺171Nashville_Warbler纳什维尔林莺172Orange_crowned_Warbler橙冠林莺173Palm_Warbler棕榈林莺174Pine_Warbler松林莺175Prairie_Warbler草原林莺176Prothonotary_Warbler黄头林莺177Swainson_Warbler斯温森林莺178Tennessee_Warbler田纳西林莺179Wilson_Warbler威尔逊林莺180Worm_eating_Warbler食虫林莺181Yellow_Warbler黄林莺182Northern_Waterthrush北方水鸫莺183Louisiana_Waterthrush路易斯安那水鸫莺184Bohemian_Waxwing波西米亚太平鸟185Cedar_Waxwing雪松太平鸟186American_Three_toed_Woodpecker美洲三趾啄木鸟187Pileated_Woodpecker北美黑啄木鸟188Red_bellied_Woodpecker红腹啄木鸟189Red_cockaded_Woodpecker红顶啄木鸟190Red_headed_Woodpecker红头啄木鸟191Downy_Woodpecker绒啄木鸟192Bewick_Wren贝氏鹪鹩193Cactus_Wren仙人掌鹪鹩194Carolina_Wren卡罗来纳鹪鹩195House_Wren家鹪鹩196Marsh_Wren沼泽鹪鹩197Rock_Wren岩鹪鹩198Winter_Wren冬鹪鹩199Common_Yellowthroat普通黄喉林莺模型训练YOLO26n 训练配置参数值说明基础模型YOLO26nNano 级别轻量高效预训练权重是基于 COCO 预训练迁移学习训练轮次100 epoch—早停耐心30 epoch验证指标无提升则停止输入分辨率640×640—Batch Size16—初始学习率lr00.01—最终学习率lrf0.01余弦衰减终值比例动量0.937—权重衰减0.0005—预热轮次3 epoch学习率从低值线性增长优化器auto自动选择AdamW/SGDAMP 混合精度是加速训练降低显存占用随机种子42保证可复现性设备GPUcuda:0—数据增强策略增强方式参数说明HSV 色调扰动0.015轻微色调变化HSV 饱和度扰动0.7较强饱和度随机变换HSV 明度扰动0.4中等亮度随机变换水平翻转0.550% 概率随机水平翻转平移0.1随机平移 10%缩放0.5随机缩放 ±50%Mosaic1.0四图拼接增强小目标识别关闭 Mosaic最后 10 epoch稳定训练末期收敛RandAugment自动随机组合多种增强策略随机擦除0.440% 概率随机遮盖区域Faster R-CNN 训练配置对比实验参数值说明骨干网络ResNet-50 FPNtorchvision 预训练预训练权重是COCO 预训练迁移训练轮次30 epoch—输入分辨率640×640—Batch Size2Two-stage 模型显存需求大初始学习率0.005—动量0.9—权重衰减0.0005—学习率调度StepLRstep10γ0.1每 10 epoch 学习率缩小 10 倍AMP 混合精度是—置信度阈值0.5预测框过滤阈值IoU 阈值0.5NMS 重叠度阈值随机种子42—设备GPUcuda:0—训练指标YOLO26n 最终结果指标值最佳 Epoch第 57 轮Precision精确率81.47%Recall召回率79.66%mAP5086.87%mAP50-9578.26%训练总时长~3.82 小时单张推理耗时21.68 ms参数量2.70 M权重文件大小5.51 MBFaster R-CNN 最终结果指标值最佳 Epoch第 29 轮Precision精确率60.31%Recall召回率63.53%mAP5069.75%F1 分数61.88%平均 IoU91.25%训练总时长~9.66 小时单张推理耗时67.19 ms参数量44.28 M权重文件大小337.36 MB双模型对比指标YOLO26Faster R-CNNYOLO26 优势mAP5086.87%69.75%24.6%Precision81.47%60.31%35.1%Recall79.66%63.53%25.4%训练时长~3.82h~9.66h快 60.5%推理耗时21.68ms67.19ms快 67.7%参数量2.70M44.28M少 93.9%权重大小5.51MB337.36MB小 98.4%YOLO26 在所有核心指标上全面优于 Faster R-CNN同时具备更快的推理速度和更小的模型体积是本项目的主力部署模型。可视化图说明训练过程中自动生成若干可视化曲线图保存于train_result_yolov26/metric_plots/YOLO26和fastrcnn_result/metric_plots/Faster R-CNN目录双模型对比图保存于model_compare_result/。YOLO26 训练曲线图文件含义train_box_loss.png训练集边界框回归损失Box Loss反映模型对目标位置预测的准确度越低越好train_cls_loss.png训练集分类损失Classification Loss反映模型对 200 类鸟类识别的分类能力越低越好train_dfl_loss.png训练集分布焦点损失DFL LossYOLO 系列的边界框精细化损失越低越好val_box_loss.png验证集边界框回归损失用于判断模型泛化能力与训练损失走势对比可观察过拟合情况val_cls_loss.png验证集分类损失反映模型在未见数据上的分类稳定性val_dfl_loss.png验证集分布焦点损失val_precision.png验证集精确率曲线Precision表示所有正例预测中真正例的比例趋势上升表示误检减少val_recall.png验证集召回率曲线Recall表示所有真实目标中被正确检出的比例趋势上升表示漏检减少val_map50.png验证集 mAPIoU0.5 曲线是目标检测的核心综合评估指标越高代表整体检测越准确val_map50_95.png验证集 mAPIoU0.5:0.95 曲线多 IoU 阈值下的严格综合指标对定位精度要求更高lr_pg0.png第 0 参数组学习率变化曲线主干网络反映学习率调度策略的执行过程lr_pg1.png第 1 参数组学习率变化曲线检测头lr_pg2.png第 2 参数组学习率变化曲线偏置项Faster R-CNN 训练曲线图文件含义train_total_loss.png训练总损失为分类损失、回归损失、RPN 损失之和train_loss_classifier.pngRoI 头分类损失衡量目标类别预测的误差train_loss_box_reg.pngRoI 头边界框回归损失衡量目标定位的精度train_loss_objectness.pngRPN 目标性损失衡量候选框是否包含目标的判断能力train_loss_rpn_box_reg.pngRPN 阶段边界框回归损失衡量候选区域的定位误差val_precision.png验证集精确率曲线val_recall.png验证集召回率曲线val_f1.png验证集 F1 分数精确率与召回率的调和平均值val_map50.png验证集 mAP50 曲线val_mean_iou.png验证集平均 IoU衡量预测框与真实框的平均重叠程度inference_time.png每 epoch 的平均推理耗时变化曲线ms双模型对比图model_compare_result/图文件含义comparison_overview.png综合对比总览图将所有核心指标并排展示直观呈现两模型全局差异map50.pngmAP50 指标对比柱状图precision.pngPrecision 精确率对比柱状图recall.pngRecall 召回率对比柱状图infer_time_ms_.png推理时间对比柱状图ms越低代表推理越快params_m_.png参数量对比柱状图百万越低代表模型越轻量系统功能桌面端应用基于 PyQt6 开发提供以下六大功能模块模块功能说明图片识别导入本地图片运行 YOLO26 检测输出标注框、类别名称中英文、置信度支持结果图片保存视频识别导入本地视频文件逐帧检测实时预览检测结果支持进度控制与结果导出摄像头识别调用本地摄像头实时推流检测适用于现场鸟类目标观测检测历史记录每次检测的时间、来源、模型、目标总数、识别类别数等信息支持筛选与导出CSV模型管理切换检测模型支持加载不同.pt文件调整置信度阈值、IoU 阈值、最大检测数等推理参数指标展示在应用内直接浏览训练过程中生成的各类指标曲线图无需离开系统即可查阅训练结果其他特性用户登录认证系统支持多账号管理SQLite 本地数据库持久化检测历史中英双语类别显示200 种鸟类均提供中文名检测结果支持导出为 CSV 文件技术栈层次技术深度学习框架PyTorch目标检测主模型Ultralytics YOLO26目标检测对比模型torchvision Faster R-CNNResNet-50 FPN桌面 GUIPyQt6数据库SQLite通过 Python 内置 sqlite3图像处理OpenCVcv2数据处理NumPy、Pandas可视化Matplotlib语言Python 3.10训练设备NVIDIA GPUCUDA项目结构c226/ ├── main.py # 桌面应用启动入口 ├── train.py # YOLO 训练启动脚本默认 YOLO26 ├── train_fastrcnn.py # Faster R-CNN 训练启动脚本 │ ├── desktop_app/ # 桌面应用核心代码 │ ├── app_context.py # 全局应用上下文 │ ├── bootstrap.py # 应用初始化与启动 │ ├── core/ │ │ ├── bird_names.py # 200 种鸟类中英文名称映射 │ │ ├── constants.py # 全局常量页面、默认参数、配置键 │ │ └── paths.py # 路径管理模型、数据、数据库等 │ ├── database/ │ │ └── connection.py # SQLite 数据库连接管理 │ ├── repositories/ │ │ ├── config_repository.py # 配置项持久化 │ │ ├── history_repository.py# 检测历史记录存取 │ │ └── user_repository.py # 用户信息管理 │ ├── services/ │ │ ├── auth_service.py # 用户认证服务 │ │ ├── detection_service.py # 检测核心逻辑 │ │ ├── export_service.py # 检测结果导出 │ │ ├── history_service.py # 历史记录业务逻辑 │ │ ├── metrics_service.py # 训练指标读取服务 │ │ └── model_service.py # 模型加载与推理管理 │ ├── ui/ │ │ ├── login_window.py # 登录窗口 │ │ ├── main_window.py # 主窗口框架 │ │ ├── styles.py # 全局样式 │ │ ├── pages/ │ │ │ ├── image_page.py # 图片识别页面 │ │ │ ├── video_page.py # 视频识别页面 │ │ │ ├── camera_page.py # 摄像头识别页面 │ │ │ ├── history_page.py # 检测历史页面 │ │ │ ├── model_page.py # 模型管理页面 │ │ │ └── metrics_page.py # 指标展示页面 │ │ └── widgets/ │ │ ├── common.py # 通用 UI 组件 │ │ └── preview.py # 检测结果预览组件 │ ├── utils/ │ │ ├── icon_utils.py # 图标工具 │ │ ├── image_utils.py # 图像处理工具 │ │ └── matplotlib_utils.py # Matplotlib 嵌入 Qt 工具 │ └── workers/ │ └── detection_workers.py # 后台检测线程异步推理 │ ├── yolo_train/ # YOLO 训练管线 │ ├── config.py # 训练超参数配置 │ ├── dataset.py # 数据集加载与预处理 │ ├── train_pipeline.py # 完整训练流程 │ ├── torch_path_io.py # PyTorch 路径兼容补丁 │ └── visualizer.py # 训练指标可视化 │ ├── fastrcnn_train/ # Faster R-CNN 训练管线 │ ├── config.py # 训练超参数配置 │ ├── dataset.py # 数据集加载YOLO 标注转换 │ ├── modeling.py # 模型构建ResNet-50 FPN │ ├── metrics.py # COCO 评估指标计算 │ ├── train_pipeline.py # 完整训练流程 │ ├── checkpoint.py # 模型权重保存与加载 │ ├── comparison.py # 双模型对比分析 │ └── visualizer.py # 训练指标可视化与对比图生成 │ ├── CUB_200_8_1_1/ # 数据集 │ ├── data.yaml # YOLO 数据集配置类别 路径 │ ├── 数据集说明.md │ ├── train/images/ # 训练集图片9430 张 │ ├── train/labels/ # 训练集标注 │ ├── val/images/ # 验证集图片1179 张 │ ├── val/labels/ │ ├── test/images/ # 测试集图片1179 张 │ └── test/labels/ │ ├── train_result_yolov26/ # YOLO26 训练输出 │ ├── weights/ │ │ ├── best.pt # 最佳验证集权重 │ │ └── last.pt # 最终 epoch 权重 │ ├── args.yaml # 完整训练参数记录 │ ├── runtime_data.yaml # 运行时数据集配置 │ ├── results.csv # 逐 epoch 训练/验证指标数据 │ └── metric_plots/ # 各项指标可视化曲线图 │ ├── fastrcnn_result/ # Faster R-CNN 训练输出 │ ├── weights/ │ │ ├── best_model.pth # 最佳验证集权重 │ │ └── last_model.pth # 最终权重 │ ├── metrics.csv # 逐 epoch 训练/验证指标数据 │ ├── summary.json # 最终指标汇总 │ ├── train_config.json # 完整训练配置记录 │ └── metric_plots/ # 各项指标可视化曲线图 │ ├── model_compare_result/ # 双模型对比分析结果 │ ├── comparison_summary.json # 对比数据汇总 │ └── *.png # 各维度对比柱状图 │ ├── yolo26n.pt # YOLO26n 预训练权重回退用 └── requirements.txt # Python 依赖列表启动教程环境要求Python 3.10 或以上NVIDIA GPU CUDA训练阶段必须推理/系统运行可使用 CPU操作系统Windows 10/11安装依赖pipinstall-rrequirements.txt训练 YOLO26 模型python train.py训练输出权重、日志、指标曲线自动保存至train_result_yolov26/目录。训练 Faster R-CNN 模型对比实验python train_fastrcnn.py训练输出自动保存至fastrcnn_result/目录训练完成后自动与 YOLO26 进行对比分析结果输出至model_compare_result/。启动桌面应用python main.py首次运行时自动初始化数据库默认加载train_result_yolov26/weights/best.pt作为检测模型。若权重文件不存在将回退至项目根目录下的yolo26n.pt。本项目为个人原创结构清晰功能完整适合计算机视觉方向课程设计、毕业设计和项目演示使用。有定制化需求可以评论或私信作者。作者原创项目地址michael-jay.pages.dev/projects.html