# yolov8目标检测APP **Repository Path**: li-kun-zhe/yolov8-object-detection-app ## Basic Information - **Project Name**: yolov8目标检测APP - **Description**: 本项目是一个基于Tkinter和OpenCV的目标检测应用程序,实现了摄像头和视频文件的实时目标检测。通过YOLOv8模型进行目标检测,支持定位、分割和姿势三种模型类型,以及不同模型大小。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 181 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yolov8目标检测APP ## 项目描述 本项目是一个基于Tkinter和OpenCV的目标检测应用程序,实现了摄像头和视频文件的实时目标检测。通过YOLOv8模型进行目标检测,支持定位、分割和姿势三种模型类型,以及不同模型大小。 ## 项目运行效果截图 ![运行效果图](运行效果图.png) ## 功能 - 支持摄像头和视频文件的实时目标检测 - 支持定位、分割和姿势三种模型类型 - 支持不同模型大小 - 支持在视频上显示边界框和遮罩 - 支持暂停、播放和重新播放视频文件 - 支持目标检测的开始/停止 ## 依赖 - Python 3 - OpenCV - Tkinter - ultralytics YOLO ## 使用 1. 克隆项目到本地 2. 创建conda虚拟环境 3. 安装依赖 4. 运行项目 `python obj_tkinterapp.py` ### 新增功能 - 加载训练模型按钮:在模型尺寸单选按钮同一行新增“加载训练模型”按钮,点击后从 `weights/best.pt` 加载训练后的权重。 - 默认优先权重:当选择“定位 + s”时,若存在 `weights/yolov8s-custom.pt`,应用将优先加载该自训权重,其次回退到 `weights/yolov8s.pt`。 ### 颜色通道修复 - 推理阶段保持帧为 BGR 输入模型,仅在显示前转换为 RGB,避免红帽/蓝帽被互相误判的问题。 ### 离线训练(仅使用本地模型与数据) 文件:`demo/train_yolov8s.py` - 仅使用本地预训练权重:`weights/yolov8s.pt`(不存在则直接报错,不会下载)。 - 数据集结构要求: - `datasets/images/{train,val,test}` - `datasets/labels/{train,val,test}`(YOLO txt 标签) - 类别来源:自动从 `datasets/labels/README.md` 解析类别并生成 `datasets/ppe.yaml`(`path` 为数据集绝对路径)。 - AMP 关闭:训练时 `amp=False`,避免内部尝试加载其他在线模型。 - OOM 退让:若显存不足,batch 会从 16 自动降为 8 再试。 ### 运行应用 ```bash python obj_tkinterapp.py ``` - 选择模型类型与尺寸,点击“识别切换”开始/停止检测。 - “加载训练模型”按钮位于模型尺寸单选按钮同一行。 启动训练: ```bash python demo/train_yolov8s.py ``` 安装依赖(CUDA 12.1 示例): ```bash pip install --upgrade pip pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install ultralytics opencv-python pillow ``` ### 训练产物位置 - 原始最佳权重:`runs/detect/detect-train-yolov8s/weights/best.pt` - 自动复制方便应用使用:`weights/yolov8s-custom.pt` - 应用内一键加载训练权重:点击“加载训练模型”按钮加载 `weights/best.pt` ## 注意 - 要解压`video_imgs.zip` - 要自行下载`yolov8`的预训练权重文件 - 确保摄像头可用且没有被其他应用程序占用 - 确保视频文件格式正确且路径合法 - 在选择模型类型和大小时,确保模型文件存在于项目目录的“weights”文件夹下 ### 常见问题 - 红/蓝帽识别颠倒:已修正为推理用 BGR、显示前转 RGB。如仍异常,请检查训练时的类别顺序是否与数据集一致。 - 仅本地不下载:若缺少 `weights/yolov8s.pt` 或数据集结构不完整,脚本会直接报错,请按上文准备文件。 ## 个人信息 - 学号: 202352320206 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 2 班