本项目是一个综合型鸟类识别系统融合图像目标检测与音频语音识别两大能力。系统提供完整的桌面级可视化操作界面支持图片、视频、本地摄像头的实时检测以及鸟类鸣叫声的音频识别与播放并内置模型管理、数据指标可视化与检测历史记录管理功能。核心技术栈编程语言Python深度学习框架PyTorch图像检测Ultralytics YOLOv8 (实例分割网络 YOLOv8n-seg)音频识别ResNet18 Mel 频谱图GUI 界面框架PyQt6图像/视频处理OpenCV (cv2), NumPy音频处理librosa, soundfile数据可视化Matplotlib本地持久化存储SQLite系统功能特点图片目标检测支持主流图片格式拖拽上传识别。检测完成后实时生成包含总检测数、平均置信度、检测框坐标X/Y以及面积的详细表格。根据识别结果自动绘制目标置信度分布直方图。视频逐帧识别支持针对.mp4、.avi等视频文件的逐帧实例分割检测。界面实时展示视频进度与动态目标类别分布情况。实时摄像头识别动态调用设备本地摄像头支持实时帧捕获与推流预测。附带快捷截图保存功能记录感兴趣的帧画面。语音识别鸟类鸣声支持 MP3、WAV、FLAC、OGG 等音频格式的鸟类鸣叫声识别。支持音频播放、音量调节可先试听再识别。基于 ResNet18 Mel 频谱图输出识别结果及各类别概率分布。灵活的模型与参数管理允许在图形界面动态切换不同的权重文件.pt。可实时拖动滑块调整置信度阈值Confidence和IoU阈值实现检测精度的即时反馈调优。检测历史持久化与导出所有识别记录图片、视频、摄像头会话均被自动保存至内置的 SQLite 数据库。支持通过关键字或类别进行记录检索一键导出历史检测记录为 CSV 表格。训练指标数据分析看板读取并解析训练生成的results.csv。系统动态绘制多维度指标曲线如Box Loss、Mask Loss、mAP0.5、精确率等。数据集说明图像数据集目标检测本项目针对各种常见鸟类构建了多边形实例分割数据集数据总量共计 10,146 张标注图像。划分比例训练集 9,004 张 / 验证集 742 张 / 测试集 400 张识别类别35种橡树啄木鸟、安氏蜂鸟、蓝松鸦、雪雁、木鸭等。音频数据集语音识别数据总量约 2,300 个 MP3 音频文件。鸟类种类23 种乌鹃、四声杜鹃、大鹰鹃、斑头鸺鹠、栗背短脚鹎等。目录结构datasets/下按鸟类名称分文件夹存放每类约 100 个样本。模型训练过程与参数图像检测模型YOLOv8架构YOLOv8n-seg 实例分割预训练权重yolov8n-seg.pt训练轮次100 |批次大小16 |输入尺寸640×640运行python train.py音频识别模型ResNet18架构ResNet18 Mel 频谱图输入5 秒音频 → Mel 频谱图 → 224×224训练轮次50 |批次大小32 |学习率1e-3运行python train_audio.py输出runs/bird_audio/train_YYYYMMDD_HHMMSS/含 best.pt、results.csv、混淆矩阵等训练可视化图表含义系统内自动集成了相关的训练结果分析表其核心含义如下Loss 曲线 (Box / Seg / Cls)包含训练集与验证集的损失曲线。Box代表边界框定位损失Seg代表像素级掩码分割损失Cls代表类别预测损失。曲线随Epoch下降并趋于平缓说明模型逐步收敛。Confusion Matrix混淆矩阵横轴代表模型预测出的类别纵轴代表真实的类别。对角线越亮说明模型将真实目标预测正确的概率越高其余非对角线区域的高亮则代表模型容易混淆的类别对。P-R Curve精确率-召回率曲线反映模型 Precision查准率和 Recall查全率之间的制约关系。曲线越靠近右上方即曲线下方面积 mAP 越接近 1说明模型综合检测性能越好。F1-Confidence 曲线衡量了综合评价指标 F1 分数在不同置信度阈值下的表现。曲线的最高点对应的数值即为系统能够取得精确率与召回率最佳平衡的“最优置信度阈值”。项目结构c132/ ├── app.py # 系统主运行入口 ├── train.py # 图像检测模型训练YOLOv8 ├── train_audio.py # 音频识别模型训练ResNet18 ├── Bird identification.yolov8/ # 图像数据集images, labels, data.yaml ├── datasets/ # 音频数据集按鸟类分文件夹MP3 格式 ├── runs/ │ ├── bird_detect/ # 图像检测训练结果best.pt 等 │ └── bird_audio/ # 音频识别训练结果best.pt 等 ├── core/ │ ├── auth.py # 用户认证 │ ├── bird_names.py # 中英文鸟类名称映射 │ ├── database.py # SQLite 数据库 │ ├── detector.py # YOLOv8 推理封装 │ └── audio_classifier.py # 鸟类音频分类器ResNet18 └── ui/ ├── styles.py # 全局 QSS 样式 ├── login_window.py # 登录界面 ├── main_window.py # 主窗口与侧边栏导航 └── pages/ ├── image_page.py # 图片检测 ├── video_page.py # 视频检测 ├── camera_page.py # 摄像头检测 ├── audio_page.py # 语音识别播放 识别 ├── history_page.py # 检测历史 ├── model_page.py # 模型管理 └── metrics_page.py # 训练指标运行方式# 安装依赖 pip install -r requirements.txt # 启动系统 python app.py首次使用语音识别功能前需先运行python train_audio.py训练音频模型。