YOLOv5至YOLOv12升级:多种类动物识别系统的设计与实现(完整代码+界面+数据集项目)
摘要:多种类动物识别是智慧牧场管理、野生动物监测与生物多样性评估中的关键环节,实际场景常伴随光照变化、遮挡、姿态差异、跨域成像与长尾类别等问题,导致传统特征工程方法在泛化与鲁棒性上受限。本文(博主)围绕“检测—识别—统计—部署”的完整链路,构建了一套基于深度学习的多种类动物识别方案:以端到端目标检测/细粒度分类网络为核心,通过多尺度特征融合与注意力机制增强对小目标与遮挡目标的表征能力,并结合迁移学习、数据增强与类别重加权策略缓解长尾分布带来的性能退化;在训练阶段引入标签平滑与难例挖掘以提升边界样本的可分性,在推理阶段采用轻量化结构与图优化以满足实时性需求。实验以 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95、Precision、Recall、F1 等指标进行评估,结果表明该方法在复杂背景与跨场景测试中保持较稳定的精度与召回,并可输出类别置信度、目标计数与可视化结果,便于后续行为分析与管理决策。本文同时给出数据构建与标注规范、训练配置与部署要点,为多类动物识别系统的工程落地提供可复用的实现参考。
文章目录
功能效果展示视频:多种类动物识别YOLOv12-v11至v5(八个模型,含示例论文)合集(完整Python项目演示,UI界面,含论文等)
1.前言综述
在生态保护、畜牧养殖与城市共生等场景中,多种类动物的自动识别正逐步成为连接“长期监测—科学评估—管理决策”的关键技术支点,尤其在红外相机、无人机与公众影像持续增长的背景下,海量数据所带来的人工筛查瓶颈与信息滞后问题愈发突出。1。 (mammal.cn)
以相机陷阱为代表的被动式采集手段能够低干扰、高频率地记录动物活动,但“拍得多”并不等于“用得上”,如何从数百万级图像中稳定提取物种、数量与行为信息仍是制约生态研究与执法巡护效率的重要因素。2。 (Experts@Minnesota)
近年来,深度学习在陆域生物多样性监测中的应用快速扩展,其优势不仅体现在识别精度上,也体现在对多源传感数据(图像、视频、声学、遥感等)的统一建模潜力,从而推动野外监测从“数据采集自动化”向“数据理解自动化”过渡。3。 (Springer)
在工程实践层面,面向相机陷阱数据的目标检测流水线已被证明能够显著降低“先检出再分类”的人力成本,并为后续的物种识别、活动强度估计与人兽冲突风险评估提供可复用的前端能力。4。 (CoLab)
从方法演进看,早期动物识别往往依赖手工特征与浅层分类器,典型如尺度不变特征在跨尺度匹配与部分遮挡条件下提供了可解释的局部描述,但在复杂背景、光照突变与细粒度物种区分上通常受限于特征表达的上限。5。 (Springer)
深度检测框架的兴起使“先定位再判别”成为主流范式,其中区域建议网络将候选框生成与分类回归统一到端到端训练流程中,为小目标、密集目标与复杂背景下的稳定检出奠定了基础。6。 (lyzygl.com.cn)
在实时性要求更强的野外终端与移动端场景中,单阶段检测通过一次前向传播同时完成定位与分类,代表性工作将检测建模为直接回归问题,显著提升了速度并降低了部署门槛。7。 (CV Foundation)
另一方面,野外监测数据天然呈现“长尾分布”,少样本物种与易混物种会在训练中被大量背景与常见类淹没,针对前景—背景极端不均衡的损失重加权策略为密集检测的可训练性提供了关键支撑。8。 (CVF Open Access)
近年检测研究进一步迈向基于Transformer的集合预测框架,通过全局建模与端到端集合匹配,减少对锚框设计与后处理规则的依赖,为跨域泛化与多任务融合提供了新的结构选择。9。 (Springer)
面向“跨地域、跨季节、跨设备”的野外应用,数据集偏差与域迁移往往比模型容量更早触及性能天花板,专门用于衡量“训练地点—测试地点”跨域差异的相机陷阱基准表明,即便在同域测试表现优异,迁移到新地点后识别性能仍可能显著下降。10。 (Springer)
除监测类数据外,公众科学与互联网影像为多物种识别提供了更大规模的长尾样本来源,但其类别极不均衡、成像设备多样且姿态变化剧烈,对低样本学习与鲁棒表征提出了直接挑战。11。 (CVF Open Access)
在区域性物种识别方面,面向欧洲野生动物的协作式数据与工具建设展示了“跨机构数据汇聚—统一标注规范—共享模型能力”的可行路径,为多物种自动识别从研究原型走向长期运行系统提供了参考范式。12。 (Springer)
国内研究同样围绕相机陷阱野生动物检测识别的任务定义、数据特性与典型算法路线展开系统梳理,并对复杂背景、小目标与类别不均衡等问题给出较为集中的讨论视角。[13]。 (lyzygl.com.cn)
针对我国野生动物监测业务需求,相关综述进一步总结了深度学习在目标检测、物种识别与监测流程智能化中的应用进展,为“算法选择—数据组织—业务落地”之间的衔接提供了国内语境下的经验归纳。[14]。 (lyzygl.com.cn)
同时,面向红外相机等资源受限平台的研究已开始以特定物种数据集为基础评估不同网络结构在精度、速度与模型体积之间的权衡,为边缘侧实时识别提供了直接的工程证据。[15]。 (lyzygl.com.cn)
尽管研究与应用均已取得显著进展,多种类动物识别在真实场景中仍面临若干共性难点:其一,昼夜切换、红外成像与遮挡导致的外观分布漂移会显著削弱模型在新地点的稳定性;其二,长尾类别与细粒度相似物种使得“检出”与“分对”往往成为两条难以同时优化的目标;其三,野外终端算力与能耗约束迫使模型在轻量化、速度与精度之间作出更严格的折中,并进一步放大了数据质量、标注一致性与评估协议的重要性。基于上述问题,博主在本文中将以YOLO系列检测器为核心完成多物种目标检测与识别任务的工程化实现,对关键结构与训练策略进行面向小目标与低照度场景的针对性改进,并在统一数据集上对多种YOLO变体的性能进行对比分析;同时构建并发布面向特定应用场景的标注数据集与预处理划分方案,结合PySide6实现可交互的桌面端识别系统界面,并整理可复现实验的代码与资源包以支持后续研究与二次开发。
主要功能演示:
(1)登录与注册功能主要用于将“检测能力”与“用户空间”绑定,确保不同用户的模型偏好、阈值配置、历史结果与导出记录能够长期持久化保存。系统启动后默认进入登录页,用户可选择注册新账号并写入 SQLite 用户表,登录时完成账号存在性校验与密码校验,通过后加载该用户的个性化配置(如默认模型、Conf/IoU、保存路径等)并跳转至主界面;在实际演示中,博主通常会展示一次“注册→登录→进入主界面→退出登录→再次登录恢复配置”的闭环,以体现账号体系对结果追溯与多用户共用设备的价值。

(2)主界面布局以“输入区—显示区—控制区—统计区”为主线组织交互:左侧或顶部提供输入源入口(图片、文件夹、视频、摄像头)与工程操作(打开、暂停、停止、清空、导出),中部为检测可视化显示区(原图与渲染结果切换或并排),右侧集成参数面板与信息面板(Conf/IoU 调节、类别列表、置信度显示、帧率/耗时、状态提示),底部或侧栏给出检测统计表与日志输出。演示时建议以“载入一段视频→实时绘制框与标签→表格同步刷新计数→一键导出结果”为串联,直观呈现界面布局与业务流程的一致性。

(3)模型选择模块用于在同一套 UI 与同一套输入输出规范下切换不同权重文件,从而实现“算法对比”与“场景适配”。系统在推理前对所选权重进行加载与一次性预热,推理过程中保持 Detector 线程与 UI 线程解耦,避免切换模型或加载权重导致界面冻结;演示时可以展示下拉框或模型管理页中列出的多种 YOLO 族权重(如轻量版与高精度版),并对同一张图像重复推理,以对比不同模型在小目标、遮挡与复杂背景下的检出差异及实时性变化。

(4)主题修改用于改善长时间使用下的可读性与交互舒适度,同时也便于在不同展示环境中保持一致的视觉风格。系统通常基于 Qt 样式表实现亮色/暗色主题切换,并支持替换背景图、图标集与关键控件字体颜色;演示时可展示“主题一键切换→按钮/表格/日志区配色同步变化→图标与背景即时刷新”的效果,同时强调主题设置写入用户配置表或配置文件,在下次登录后自动恢复,形成稳定的个性化体验。
2.数据集介绍
本项目使用的多种类动物检测数据集以野外相机陷阱与多源自然场景图像为主要载体(以文件命名可见 AnimalsDet_SIXU_* 的序列特征),覆盖了典型野生动物(如豹、虎、熊、野猪、鹿、象等)与部分家畜/伴生目标(如牛、羊、猫、狗等),同时保留少量人、车辆等“干扰类”以增强模型在真实监测场景中的背景判别能力。数据集总计 13,879 张图像,其中训练集 11,259 张、验证集 1,879 张、测试集 741 张,按固定划分用于模型训练、超参数选择与泛化评估。结合你提供的标注可视化样例可以看到,同一图像中多目标共存、遮挡与尺度剧烈变化较为常见,尤其在低照度与复杂植被背景下,目标边缘纹理弱、对比度低,容易引发漏检与误检;因此该数据集更贴近“野外监测”而非“棚拍分类”的数据分布,对检测器的多尺度表征与鲁棒性提出了更现实的要求(标注与推理效果示例如图所示)。
在标注层面,老思建议统一采用 YOLO 系列通用的 TXT 归一化边界框格式,即以 ( x c , y c , w , h ) (x_c,y_c,w,h) (xc,yc,w,h) 表示目标框中心点与宽高并归一化到 [ 0 , 1 ] [0,1] [0,1],便于与 Ultralytics/YOLOv5–YOLOv12 生态直接对接;训练时将输入统一到 640 × 640 640\times640 640×640,通常通过等比例缩放与 LetterBox 填充保证几何不失真,并在数据清洗阶段处理空标注、重复样本与类别别名(如大小写不一致、Human/person 等同义标签)以避免统计与训练偏差。从类别统计图与框分布图可以看出,本数据集存在明显的长尾特征:少数常见类实例数显著更高,而稀有类样本相对有限;同时边界框中心分布在图像中部更密集,小/中尺度框占比更高,说明相机陷阱成像中“远距离、局部遮挡、小目标”是主导形态,这也是后续训练中需要重点依赖多尺度特征与数据增强策略来弥补的难点(类别分布与框统计如图所示)。
📊 数据集规格说明 (Dataset Specification)
| 维度 | 参数项 | 详细数据 |
|---|---|---|
| 基础信息 | 标注软件 | LabelImg(若实际使用 CVAT/LabelMe,可在文末资源包中同步说明) |
| 标注格式 | YOLO TXT (Normalized, x c , y c , w , h x_c,y_c,w,h xc,yc,w,h) | |
| 数量统计 | 训练集 (Train) | 11,259 张 |
| 验证集 (Val) | 1,879 张 | |
| 测试集 (Test) | 741 张 | |
| 总计 (Total) | 13,879 张 | |
| 类别清单 | Class ID: 0 | Bear(熊) |
| Class ID: 1 | Buffalo(水牛) |
|
| Class ID: 2 | Deer(鹿) |
|
| Class ID: 3 | Elephant(大象) |
|
| Class ID: 4 | Leopard(豹) |
|
| Class ID: 5 | Monkey(猴子) |
|
| Class ID: 6 | Raccoon(浣熊) |
|
| Class ID: 7 | Tiger(老虎) |
|
| Class ID: 8 | WildBoar(野猪) |
|
| Class ID: 9 | Goat(山羊) |
|
| Class ID: 10 | Cat(猫) |
|
| Class ID: 11 | Dog(狗) |
|
| Class ID: 12 | Cow(牛) |
|
| Class ID: 13 | Donkey(驴) |
|
| Class ID: 14 | Gaur(野牛) |
|
| Class ID: 15 | GuardDog(看门狗) |
|
| Class ID: 16 | Hen(母鸡) |
|
| Class ID: 17 | Rat(鼠) |
|
| Class ID: 18 | Wolf(狼) |
|
| Class ID: 19 | Person(人) |
|
| Class ID: 20 | Bicycle(自行车) |
|
| Class ID: 21 | Car(汽车) |
|
| Class ID: 22 | Dogs-Cats(狗和猫) |
|
| Class ID: 23 | OtherEntities(其他实体) |
|
| 图像规格 | 输入尺寸 | 640 * 640(训练/推理统一) |
| 数据来源 | 多源自然场景(相机陷阱/公开视频与图像),人工清洗与规范化标注 |
3. 模型设计与实现
面向多种类动物目标的识别任务,系统需要同时输出“位置(边界框)+类别+置信度”,且在图片、视频与摄像头流上保持稳定的实时性。若仅做图像级分类,ResNet、EfficientNet 等骨干网络在表征学习上具有良好通用性,但它们不直接建模空间定位,通常需要额外的候选框机制或密集滑窗策略,工程复杂度与时延成本都会显著抬升。老思在本项目中选择以 YOLO 系列作为统一的检测底座,原因在于其单阶段端到端范式能够把特征提取、尺度融合与分类回归压缩到一次前向传播中,适合“多目标、多尺度、强背景干扰”的野外动物场景;同时,Ultralytics 体系提供了较一致的训练、验证与导出接口,便于在同一 UI 中切换不同版本权重并复现实验对比。对于默认主模型,本系统采用 YOLO12n 作为轻量基线,它以注意力机制为中心进行架构重构,同时仍强调实时推理能力;文档也提示该模型偏研究与基准测试属性,训练稳定性与 CPU 推理可能不如更成熟版本,因此工程上保留 YOLO11/其它 YOLO 权重作为可切换备选。(Ultralytics Docs)
从结构上看,YOLO12 仍遵循“Backbone–Neck–Head”的经典三段式组织:Backbone 负责多层次特征提取,Neck 负责跨尺度融合,Head 在多个尺度上输出分类与回归结果。与传统 CNN 主导的 YOLO 迭代不同,YOLO12 的核心变化在于把高效注意力纳入主干与融合过程,并用更“推理友好”的实现方式控制注意力带来的访存开销:其 Area Attention 将特征图沿水平或垂直方向划分为 l l l 个等分区域(默认 l = 4 l=4 l=4),以区域为单位完成注意力计算,从而在保持较大有效感受野的同时显著降低计算与内存代价;为缓解大模型注意力堆叠带来的优化困难,YOLO12 引入 Residual Efficient Layer Aggregation Networks(R-ELAN),在 ELAN 的特征聚合思想上加入块级残差与更紧凑的聚合结构;同时通过 FlashAttention(可选)、移除显式位置编码、调整 MLP 比例、减少堆叠深度、并在注意力分支加入 7 × 7 7\times7 7×7 的可分离卷积作为“position perceiver”来隐式注入位置信息,从系统层面平衡速度与精度。(Ultralytics Docs)
在检测头的任务建模上,系统采用 YOLO 系列常见的“分类—回归”联合学习:分类分支预测类别概率,回归分支预测边界框参数。对边界框回归,实践中普遍使用 IoU 系列损失以直接刻画几何重叠关系,基本形式为
I o U ( B , B ∗ ) = ∣ B ∩ B ∗ ∣ ∣ B ∪ B ∗ ∣ , \mathrm{IoU}(B,B^*)=\frac{|B\cap B^*|}{|B\cup B^*|}, IoU(B,B∗)=∣B∪B∗∣∣B∩B∗∣,
其中 B B B 与 B ∗ B^* B∗ 分别为预测框与真实框。为提升收敛稳定性,常用的 CIoU 一类损失会额外约束中心距离与长宽比一致性,其典型形式可写为
L C I o U = 1 − I o U + ρ 2 ( c , c ∗ ) d 2 + α v , L_{\mathrm{CIoU}} = 1-\mathrm{IoU} + \frac{\rho^2(\mathbf{c},\mathbf{c}^*)}{d^2}+\alpha v, LCIoU=1−IoU+d2ρ2(c,c∗)+αv,
ρ ( ⋅ ) \rho(\cdot) ρ(⋅) 为中心点欧氏距离, d d d 为最小外接框对角线长度, v v v 与 α \alpha α 用于刻画并平衡长宽比差异。对分类分支,工程中通常采用二元交叉熵(BCE)或其带 logits 的稳定实现;而在 Ultralytics 风格的检测头中,回归还常结合分布式回归思想(如 DFL)把连续边界框坐标离散为分布学习,以提升定位精度,其损失可抽象为对离散分布的交叉熵形式
L D F L = − ∑ k = 0 K y k log p k , L_{\mathrm{DFL}}=-\sum_{k=0}^{K} y_k\log p_k, LDFL=−k=0∑Kyklogpk,
其中 p k p_k pk 为预测分布, y k y_k yk 为由真实值插值得到的软标签。上述设计使得模型在复杂背景下能够同时保证“类别可分性”和“框的几何一致性”,与本数据集中同类外观相近、遮挡严重、目标尺度变化大的特点相匹配。
实现层面,本系统将 YOLO 推理过程封装为统一的 Detector 模块,以便 UI 端仅需传入输入源与阈值即可得到结构化结果。推理流程通常包括:其一,预处理将输入图像转换为 RGB 张量并进行 LetterBox 等比例缩放到网络输入尺度(如 640×640),同时完成 [ 0 , 255 ] → [ 0 , 1 ] [0,255]\rightarrow[0,1] [0,255]→[0,1] 归一化;其二,模型前向得到多尺度预测;其三,后处理按置信度阈值过滤并执行 NMS(或在支持端到端头时采用对应的解码方式),最后将预测框按缩放比例映射回原图坐标,并输出 class id , score , x 1 , y 1 , x 2 , y 2 {\text{class id}, \text{score}, x_1,y_1,x_2,y_2} class id,score,x1,y1,x2,y2。这些结果会被进一步用于界面渲染(绘制检测框与标签)、类别计数统计以及保存导出。由于 Ultralytics 生态对 *.pt 与 *.yaml 的加载方式一致,系统也能以相同接口挂载 YOLOv5–YOLOv12 的不同权重文件,完成跨版本对比与部署验证。(Ultralytics Docs)
4. 训练策略与模型优化
本项目的训练与验证基于 Ultralytics YOLO 训练框架完成,训练端统一使用 4090 GPU(单卡)以保证迭代吞吐与实验可复现性。博主在工程实现上优先采用“预训练权重初始化 + 端到端微调”的范式:一方面,动物目标检测在低照度、强遮挡与背景复杂条件下对特征泛化能力要求较高,直接从零训练容易出现收敛慢、早期过拟合与类别偏置;另一方面,YOLO 系列在 COCO 等大规模数据上获得的通用表征能够为边缘纹理、局部形状与背景先验提供更稳健的起点,从而把主要学习能力集中在域内差异(相机陷阱视角、红外纹理、植被背景)与细粒度类别区分上。训练过程中,模型以验证集上的综合指标(如 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95 与 F1)作为选择准则,通过早停策略抑制后期过拟合,并保留最优权重用于后续测试与部署。
训练超参数采用“适度训练轮数 + 余弦退火学习率 + 预热”的组合以兼顾稳定性与收敛效率。学习率在前 3 3 3 个 epoch 进行线性 warmup,使梯度统计与 BN 动量逐步稳定,随后进入余弦退火阶段,学习率随训练进程 t ∈ [ 0 , T ] t\in[0,T] t∈[0,T] 平滑下降,典型形式可写为
l r ( t ) = l r 0 ⋅ ( l r f + ( 1 − l r f ) ⋅ 1 + cos ( π t / T ) 2 ) , lr(t)=lr_0\cdot\Bigl(lrf+(1-lrf)\cdot\frac{1+\cos(\pi t/T)}{2}\Bigr), lr(t)=lr0⋅(lrf+(1−lrf)⋅21+cos(πt/T)),
其中 l r 0 lr_0 lr0 为初始学习率, l r f lrf lrf 控制末端学习率占比。针对本数据集存在的长尾分布与小目标占比较高的特征,训练中更强调数据增强与正则化的“结构性约束”而非盲目增大模型规模:前期保持 Mosaic 等强增强以扩大尺度与背景分布覆盖,后期在收敛阶段关闭 Mosaic(close_mosaic)以减少几何扰动,促使模型回到更接近真实分布的边界框回归与分类判别,从而提升验证集指标的稳定性与可迁移性。对于类别不均衡较明显的类别集,工程上可进一步启用类别重加权(class weight)或提高难例样本的采样概率,并适当调节损失权重(如 box/cls)以避免“常见类驱动优化、稀有类被忽略”的现象;若验证集出现置信度偏高但误检较多的情况,则可通过轻度标签平滑与置信度阈值搜索降低过拟合带来的校准偏差。
本项目默认采用如下训练配置(老思在复现实验时建议保持一致,便于横向对比不同 YOLO 族模型):
| 名称 | 数值 | 说明 |
|---|---|---|
| epochs | 120 | 最大训练轮数 |
| patience | 50 | 早停耐心(验证集无提升则停止) |
| batch | 16 | 单次迭代批大小 |
| imgsz | 640 | 输入分辨率(方形) |
| pretrained | true | 加载预训练权重进行微调 |
| optimizer | auto | 由框架选择合适优化器 |
| lr0 / lrf | 0.01 / 0.01 | 初始学习率与末端比例 |
| momentum | 0.937 | 动量参数 |
| weight_decay | 0.0005 | 权重衰减(抑制过拟合) |
| warmup_epochs | 3.0 | 学习率预热 |
| mosaic | 1.0 | Mosaic 增强强度/概率 |
| close_mosaic | 10 | 训练后期关闭 Mosaic 的轮数 |
模型优化侧更偏向部署友好的“推理路径压缩与阈值校准”。在推理阶段,系统通常对置信度阈值 c o n f conf conf 与 NMS 的 IoU 阈值 i o u iou iou 做小范围网格搜索,目标是在保证召回率的同时抑制背景误检,尤其是夜间红外图像中常见的高亮噪声与植被纹理伪特征。为提升实时性,部署时建议启用半精度推理(FP16)与图优化导出(ONNX),在具备 TensorRT 环境时进一步编译为 TRT Engine,以显著降低端到端延迟并稳定帧率;若面向更低算力设备,则可在不改变 UI 交互的前提下替换为更小的 YOLO 变体或引入蒸馏训练,将大模型的分类判别能力迁移到轻量模型上,从而在精度与速度之间获得更可控的折中。整体而言,本节的策略遵循一个原则:训练端通过“强增强覆盖分布、后期回归真实”获得稳健表征,部署端通过“阈值校准与推理加速”兑现工程实时性,最终使系统在复杂野外场景下具备可复现、可移植、可维护的识别能力。
5. 实验与结果分析
为客观评估不同 YOLO 族模型在 AnimalsDet 数据集上的综合表现,老思在相同的数据划分与统一训练配置下,对轻量 n 系列(YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n)与中等规模 s 系列(YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s)进行横向对比。所有模型均以 640 × 640 640\times640 640×640 为输入分辨率进行训练/验证,训练轮数上限为 120;推理延迟统计按照 PreTime(预处理)—InfTime(前向推理)—PostTime(后处理) 三段计时给出,测试硬件为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB),便于直观反映工程端端到端耗时与实时性上限。
评价指标采用目标检测常用的 Precision、Recall、F1、 m A P @ 0.5 mAP@0.5 mAP@0.5 与 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95。其中 F1 定义为
F 1 = 2 P R P + R , F1=\frac{2PR}{P+R}, F1=P+R2PR,
P P P 与 R R R 分别对应精确率与召回率; m A P @ 0.5 mAP@0.5 mAP@0.5 关注 IoU=0.5 的检出能力, m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95 则在更严格的 IoU 阈值区间上综合衡量定位质量,因此更敏感于小目标边界、遮挡截断与框回归稳定性。训练过程的 loss 与指标演化如图 5-1 所示,可以看到 box/cls/dfl loss 在训练集持续下降,而验证集 loss 在中后期出现缓慢回升,这意味着模型在收敛后进入“性能平台期”,此阶段继续训练对 m A P mAP mAP 的增益有限但过拟合风险上升;与此同时, m A P @ 0.5 mAP@0.5 mAP@0.5 与 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95 在约 50–70 epoch 后趋于饱和,说明在当前数据规模与增强强度下,提前早停或适度缩短训练轮数通常能获得更高的训练效率而不显著损失精度(如下图所示)。
图 5-1 训练过程曲线(results.png)
图 5-2 n 系列 F1 与 mAP50 对比(AnimalsDet_n_type_comparison.png)
图 5-3 n 系列 mAP50 随 epoch 变化(AnimalsDet_n_type_metrics_mAP50(B).png)
图 5-4 n 系列平均 PR 曲线(AnimalsDet_n_type_pr_curve.png)
图 5-5 s 系列 F1 与 mAP50 对比(AnimalsDet_s_type_comparison.png)
图 5-6 s 系列 mAP50 随 epoch 变化(AnimalsDet_s_type_metrics_mAP50(B).png)
图 5-7 s 系列平均 PR 曲线(AnimalsDet_s_type_pr_curve.png)
图 5-8 归一化混淆矩阵(confusion_matrix_normalized.png)
图 5-9 F1–Confidence 曲线(F1_curve.png)
图 5-10 PR 曲线(PR_curve.png)
在 n 系列对比中(表 5-1 与图 5-2 所示),YOLOv12n 取得最高的 m A P @ 0.5 = 0.5934 mAP@0.5=0.5934 mAP@0.5=0.5934,而 YOLOv8n 在 F1(0.5951) 与 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95(0.3870) 上更占优势,体现出更均衡的“检出—定位”能力。对工程实时性而言,YOLOv8n 的端到端总耗时约 10.17 ms,对应约 98 FPS 的上限(仅按单帧端到端时间倒数估算),明显优于 YOLOv12n 的约 63 FPS;这说明在同为轻量模型时,结构差异对推理吞吐的影响可能比参数量更显著。另一个值得强调的现象是 YOLOv10n 的 PostTime 仅 0.63 ms,显著低于其他模型,这与其采用更“去后处理化”的检测头设计相吻合:后处理开销下降会直接改善端到端时延与时延抖动,对视频流实时展示更友好,但该配置下其 m A P @ 0.5 mAP@0.5 mAP@0.5 并未超过 YOLOv8n/YOLOv12n,提示“后处理减负”并不会自动带来精度收益,需要依赖数据分布与训练策略共同匹配。
表 5-1 n 系列模型综合指标与时延(RTX 3070 Laptop)
| Model | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 0.6420 | 0.5252 | 0.5777 | 0.5742 | 0.3620 |
| YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 0.6718 | 0.4440 | 0.5346 | 0.5336 | 0.3504 |
| YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 0.5912 | 0.4580 | 0.5162 | 0.5117 | 0.2714 |
| YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 0.6291 | 0.5647 | 0.5951 | 0.5861 | 0.3870 |
| YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 0.6067 | 0.5451 | 0.5742 | 0.5530 | 0.3677 |
| YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 0.6484 | 0.5217 | 0.5782 | 0.5765 | 0.3715 |
| YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 0.6324 | 0.5580 | 0.5929 | 0.5777 | 0.3773 |
| YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 0.6102 | 0.5688 | 0.5888 | 0.5934 | 0.3860 |
从曲线角度看,n 系列的 m A P @ 0.5 mAP@0.5 mAP@0.5 在训练早期波动较大而后快速收敛(图 5-3),这与 AnimalsDet 数据集中小目标占比高、背景纹理复杂、且存在长尾类别的事实一致:早期模型容易把“植被纹理、夜间高亮噪声、局部斑点”误当作前景,随着迭代推进才逐步学习到更稳定的形状与上下文线索。平均 PR 曲线(图 5-4)进一步说明,当 Recall 提升到中高区间时,各模型 Precision 开始明显分化,说明在“尽量不漏检”的约束下,误检控制能力成为区分模型优劣的关键因素。综合精度与实时性,若系统面向实时视频流展示与边缘侧部署,YOLOv8n/YOLOv11n 更接近“可用的均衡点”;若更强调 m A P @ 0.5 mAP@0.5 mAP@0.5 的上限并允许一定推理开销,则 YOLOv12n 的优势更明显(如下图所示)。
在 s 系列对比中(表 5-2 与图 5-5 所示),YOLOv7 以显著更高的模型容量换取最强精度,达到 F1=0.6399、 m A P @ 0.5 = 0.6265 mAP@0.5=0.6265 mAP@0.5=0.6265,并在 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95 上保持较高水平(0.4037),这表明更强的特征表达确实能提升遮挡场景与细粒度纹理下的定位与分类稳定性;但其推理时间约 23.62 ms、端到端约 29.52 ms,仅约 34 FPS 的上限,对实时系统而言压力明显。相比之下,YOLOv10s 在 m A P @ 0.5 = 0.6075 、 F 1 = 0.6264 mAP@0.5=0.6075、F1=0.6264 mAP@0.5=0.6075、F1=0.6264 的同时,将端到端时延压缩到约 14.19 ms(约 70 FPS 上限),体现了更好的工程折中。YOLOv9s 在 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95 上达到 0.4133,为该组最高,提示其在高 IoU 约束下的框回归质量更强,但其推理耗时明显偏大(18.66 ms),在视频流上更容易成为瓶颈。
表 5-2 s 系列模型综合指标与时延(RTX 3070 Laptop)
| Model | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 0.5807 | 0.6116 | 0.5958 | 0.5888 | 0.3745 |
| YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 0.6376 | 0.5755 | 0.6050 | 0.5845 | 0.3843 |
| YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 0.6969 | 0.5916 | 0.6399 | 0.6265 | 0.4037 |
| YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 0.6807 | 0.5511 | 0.6091 | 0.5988 | 0.3872 |
| YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 0.6657 | 0.5788 | 0.6192 | 0.6079 | 0.4133 |
| YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 0.6811 | 0.5798 | 0.6264 | 0.6075 | 0.4076 |
| YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 0.6533 | 0.5762 | 0.6123 | 0.6030 | 0.3893 |
| YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 0.6903 | 0.5539 | 0.6146 | 0.6016 | 0.4012 |
从收敛曲线(图 5-6)可以观察到,s 系列在前 30 个 epoch 内提升更快,50 个 epoch 后逐步进入平台期,说明更大的容量确实能加速“有效特征”的形成,但最终上限仍然受数据标注一致性与类别分布制约。平均 PR 曲线(图 5-7)显示,随着 Recall 逼近 1,Precision 均出现明显下滑,这符合相机陷阱场景中“背景更复杂、误检更难避免”的现实特性;因此在系统层面不宜盲目追求极高 Recall,而应结合应用需求设置更合理的阈值区间,避免误报对后续统计与告警造成干扰。
为了把“离线评测”转换为“系统可用参数”,老思进一步利用 F1–Confidence 曲线对阈值进行校准。如图 5-9 所示,全类别整体 F1 在 conf≈0.582 时达到峰值(约 0.57),该点对应的 Precision 与 Recall 达到相对均衡,适合作为 UI 默认置信度阈值的初始推荐;同时 PR 曲线(图 5-10)给出了全类别 m A P @ 0.5 ≈ 0.602 mAP@0.5\approx0.602 mAP@0.5≈0.602 的整体水平,与训练日志中的 m A P @ 0.5 mAP@0.5 mAP@0.5 平台值一致,说明评估流程稳定可信。进一步结合归一化混淆矩阵(图 5-8)可以发现,若数据集中同时存在 Bear/bear、Buffalo/buffalo、Deer/deer、Human/person 等大小写或同义标签并行的情况,模型会在这些“语义重复类”之间产生可观的互相误判,并且稀有类更容易被吸收到背景或大类中;这类问题本质上属于标注体系不一致带来的监督噪声,通常会直接拉低 m A P @ 0.5 : 0.95 mAP@0.5:0.95 mAP@0.5:0.95 并增加长尾类漏检。工程上更推荐在训练前完成类别归一化(同义合并、大小写统一、删除无意义占位类),再配合针对长尾的采样或损失重加权,从源头降低“学不会”的样本比例。
综合上述结果,如果系统目标是稳定实时检测并兼顾精度,n 系列中 YOLOv8n/YOLOv11n 往往更适合作为默认模型;若允许一定计算开销以换取更高上限,则可优先考虑 YOLOv12n(轻量但推理更慢)或 s 系列的 YOLOv10s(精度与时延折中更均衡)。在后续优化方向上,较高优先级的改进通常不是继续堆叠模型规模,而是围绕数据与阈值做“更贴近业务”的修正:统一类别体系、强化夜间与遮挡样本、提高小目标分辨率或采用多尺度训练,并将 conf≈0.58 作为默认阈值起点,通过实际误报/漏报成本进一步微调(如下图所示)。
6.系统设计与实现
6.1 系统设计思路
本系统面向“多源输入、实时检测、可视化交互与结果留存”的完整闭环需求,采用 Python 3.12 + PySide6 + SQLite 的工程组合实现。整体结构以分层解耦为核心:Ui_MainWindow 负责界面控件与布局呈现,MainWindow 作为控制中枢承接槽函数、状态机与任务调度,Detector 作为处理层完成权重加载、推理与后处理;三者通过对象组合组织模块边界,并以 Qt 信号—槽机制贯通跨线程的数据传递,从而避免推理阻塞 UI 线程,保证视频流/摄像头场景下的交互响应与帧率稳定性。
在数据流设计上,输入侧统一抽象为“帧源”,兼容图片、文件夹序列、视频文件与摄像头流,并在进入推理前完成一致的预处理(LetterBox 等比例缩放、归一化、张量化与批处理)。推理侧将模型加载与前向计算放入 Detector 的工作线程,输出结构化检测结果(类别、置信度、边界框坐标)与统计信息(类别计数、耗时、帧率估计),再由 MainWindow 接收结果并驱动界面联动更新,包括绘制检测框、刷新表格、输出日志与状态提示。交互侧允许用户在运行过程中动态调整 conf/iou、切换 YOLO 族不同权重、控制播放(暂停/继续/停止)以及修改主题样式(背景、图标、文字等),这些操作通过状态管理与信号回路重新触发推理或刷新显示,实现“参数可控、结果可追溯”的交互式检测流程。
在持久化与资源管理方面,系统将账户体系与检测结果存储统一落到 SQLite:用户表保存账号、头像、密码摘要与个性化配置,结果表记录推理时间、输入来源、模型版本、检测条目与导出路径,从而为每个用户提供相对独立的配置空间与历史记录。工程实现上,MainWindow 负责把“保存/导出”动作与数据库写入、文件导出(图像/视频帧、CSV/JSON 统计)衔接起来,使得系统既能满足实验复现(参数与结果对齐),也能支持业务化使用(按用户筛选、检索与汇总分析)。
图 系统流程图
图注:系统从初始化到多源输入,完成预处理、推理与界面联动,并通过交互形成闭环。
6.2 登录与账户管理 — 流程图

登录与账户管理模块并非孤立页面,而是将“检测系统的可用性”与“用户空间的可持续性”绑定在一起:系统启动后进入登录界面,用户可注册并写入 SQLite 的 users 表,密码以加盐哈希方式保存以降低明文泄露风险;登录时通过查询校验建立会话,并在进入主界面前加载该用户的个性化配置与历史记录,使默认模型选择、conf/iou 阈值、导出路径与历史结果能够跨次运行保持一致。进入主界面后,用户可在资料管理中更新头像或修改密码并同步写回数据库,同时支持注销与切换账号以清理会话状态并回到登录页;这种设计使多用户共用设备时的参数配置、检测结果与导出文件天然隔离,也使主检测流程能够在“身份—配置—结果”的一致约束下实现可追溯、可复现的工程闭环。
7.参考文献
1 陈诗雨, 侯金, 刘丹, 刘晶, 罗鹏, 郑伯川, 张晋东. 深度学习在野生动物图像识别分析中的应用进展[J]. 兽类学报, 2026, 46(1): 20-38. (mammal.cn)
2 Norouzzadeh M S, Nguyen A, Kosmala M, Swanson A, Palmer M S, Packer C, Clune J. Automatically identifying, counting, and describing wild animals in camera-trap images with deep learning[J]. Proceedings of the National Academy of Sciences of the United States of America, 2018, 115(25): E5716-E5725. (Experts@Minnesota)
3 Barta Z. Deep learning in terrestrial conservation biology[J]. Biologia Futura, 2023, 74: 359-367. (Springer)
4 Fennell M, Beirne C, Burton A C. Use of object detection in camera trap image identification: Assessing a method to rapidly and accurately classify human and animal detections for research and application in recreation ecology[J]. Global Ecology and Conservation, 2022, 35: e02104. (CoLab)
5 Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60: 91-110. (Springer)
6 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards real-time object detection with region proposal networks[C]//Advances in Neural Information Processing Systems. 2015, 28: 91-99. (lyzygl.com.cn)
7 Redmon J, Divvala S, Girshick R, Farhadi A. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 779-788. (CV Foundation)
8 Lin T Y, Goyal P, Girshick R, He K, Dollár P. Focal loss for dense object detection[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 2980-2988. (CVF Open Access)
9 Carion N, Massa F, Synnaeve G, Usunier N, Kirillov A, Zagoruyko S. End-to-End Object Detection with Transformers[C]//Computer Vision – ECCV 2020. Cham: Springer, 2020: 213-229. (Springer)
10 Beery S, Van Horn G, Perona P. Recognition in Terra Incognita[C]//Computer Vision – ECCV 2018. Cham: Springer, 2018: 472-489. (Springer)
11 Van Horn G, Mac Aodha O, Song Y, Cui Y, Sun C, Shepard A, Adam H, Perona P, Belongie S. The iNaturalist species classification and detection dataset[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 8769-8778. (CVF Open Access)
12 Rigoudy N, Dussert G, Benyoub A, et al. The DeepFaune initiative: a collaborative effort towards the automatic identification of European fauna in camera trap images[J]. European Journal of Wildlife Research, 2023, 69: 113. (Springer)
[13] 柯澳, 王宇聪, 胡博宇. 基于图像的野生动物检测与识别综述[J]. 计算机系统应用, 2024, 33(1): 22-36. (lyzygl.com.cn)
[14] 张雪莹, 张浩林, 韩莹莹, 等. 基于深度学习的野生动物监测与识别研究进展[J]. 野生动物学报, 2022, 43(1): 251-258. (lyzygl.com.cn)
[15] 杨铭伦, 张旭, 郭颖, 于新文, 侯亚男, 高家军. 基于YOLOv5的红外相机野生动物图像识别[J]. 激光与光电子学进展, 2022, 59(12): 382-390. (lyzygl.com.cn)
下载链接
若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件请见项目介绍及功能演示视频处给出:➷➷➷
功能效果展示视频:多种类动物识别YOLOv12-v11至v5(八个模型,含示例论文)合集(完整Python项目演示,UI界面,含论文等)
环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程;
或者环境配置视频教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境依赖配置教程
数据集标注教程(如需自行标注数据):数据标注合集
更多推荐


所有评论(0)