# yolov8目标检测APP **Repository Path**: cool-breeze06/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**: 169 - **Created**: 2025-12-12 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yolov8目标检测APP ## 项目描述 本项目是一个基于 Tkinter 和 OpenCV 的目标检测应用程序,集成了 YOLOv8 深度学习模型。它提供了一个图形用户界面(GUI),允许用户实时对摄像头视频流或本地视频文件进行目标检测。项目支持多种 YOLOv8 任务类型(目标检测、实例分割、姿态估计)及不同规模的模型权重。 ## 项目运行效果截图 ![输入图片说明](%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20251212091507_60_249.png)![输入图片说明](%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20251212091429_59_249.png)![输入图片说明](%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20251212091304_58_249.png)![输入图片说明](2772a33da00331e7ebeb1787605bddc4.png) ## 功能特点 - **多输入源支持**:支持实时调用本地摄像头或加载本地视频文件进行检测。 - **多任务支持**: - **定位 (Detection)**: 识别并定位图像中的物体。 - **分割 (Segmentation)**: 对图像中的物体进行像素级分割。 - **姿势 (Pose)**: 识别人体关键点和姿态。 - **多模型规模**:支持 YOLOv8 的 5 种模型规模 (n, s, m, l, x),以平衡速度与精度。 - **交互式控制**: - 视频播放控制:播放、暂停、重新播放、进度条拖动。 - 检测开关:一键开启或关闭实时检测功能。 - **可视化展示**:实时显示检测结果,包括边界框 (Bounding Box) 和分割掩码 (Mask)。 ## 依赖环境 - Python 3.8+ - OpenCV (`opencv-python`) - Tkinter (通常随 Python 安装) - Ultralytics YOLO (`ultralytics`) - NumPy (`numpy`) - Pillow (`Pillow`) ## 快速开始 ### 1. 克隆项目 ```bash git clone <项目地址> cd yolov8-object-detection-app ``` ### 2. 安装依赖 推荐使用 Conda 创建虚拟环境,并使用国内镜像源加速安装: ```bash # 创建并激活虚拟环境 (可选) conda create -n yolov8_app python=3.9 conda activate yolov8_app # 安装依赖 (使用清华源) pip install ultralytics opencv-python pillow numpy -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 3. 下载模型权重 项目需要 YOLOv8 的预训练权重文件 (`.pt`)。请将下载的文件放入 `weights/` 目录下。 **方式一:命令行下载 (推荐,使用镜像源加速)** ```powershell # 示例:下载 yolov8n (定位) 和 yolov8n-seg (分割) curl -L -o weights/yolov8n.pt https://mirror.ghproxy.com/https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n.pt curl -L -o weights/yolov8n-seg.pt https://mirror.ghproxy.com/https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-seg.pt curl -L -o weights/yolov8n-pose.pt https://mirror.ghproxy.com/https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-pose.pt ``` **方式二:手动下载** 如果命令行下载失败,请访问 [YOLOv8 Releases](https://github.com/ultralytics/assets/releases) 下载对应的 `.pt` 文件(如 `yolov8n.pt`, `yolov8s.pt` 等),并手动移动到 `weights/` 文件夹中。 ### 4. 运行项目 ```bash python obj_tkinterapp.py ``` ## 文件结构说明 ``` yolov8-object-detection-app/ ├── assets/ # 静态资源文件夹 ├── demo/ # 演示代码和脚本 ├── weights/ # 模型权重存放目录 (.pt 文件) ├── obj_tkinterapp.py # 项目主程序入口 (GUI 实现) ├── utils.py # 工具函数 (模型加载、图像处理) └── README.md # 项目说明文档 ``` ## 注意事项 - **模型文件**: 切换模型类型(如从“定位”切换到“分割”)或大小时,程序会自动寻找对应的权重文件(如 `yolov8s-seg.pt`)。请确保 `weights/` 目录下存在相应文件,否则程序可能会尝试自动下载(可能因网络问题失败)。 - **摄像头**: 确保摄像头未被其他程序占用。 - **视频路径**: 选择视频文件时,请确保路径中不包含特殊字符,以免 OpenCV 读取失败。 ## 个人信息 [TODO: 此处填写个人信息] - 学号: 202352320211 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 2 班