# yolov8目标检测APP **Repository Path**: liu-yi-ch-en/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**: 171 - **Created**: 2025-12-10 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yolov8目标检测APP ## 项目描述 本项目是一个基于Tkinter和OpenCV的目标检测应用程序,实现了摄像头和视频文件的实时目标检测。通过YOLOv8模型进行目标检测,支持定位、分割和姿势三种模型类型,以及不同模型大小。 ## 项目结构 ``` yolov8-object-detection-app-master/ │ ├── obj_tkinterapp.py # 主程序:Tkinter图形界面应用 ├── utils.py # 工具函数:模型初始化和图像处理 ├── requirements.txt # 项目依赖包列表 ├── README.md # 项目说明文档 ├── yolov8_demo_202352320122.ipynb # Jupyter Notebook演示文件 │ ├── assets/ # 资源文件夹 │ └── video_imgs/ # 测试视频和图像(需解压) │ ├── weights/ # 模型权重文件夹(需解压weights.zip) │ ├── yolov8n.pt # Nano模型 │ ├── yolov8s.pt # Small模型 │ ├── yolov8m.pt # Medium模型 │ ├── yolov8l.pt # Large模型 │ ├── yolov8x.pt # Extra Large模型 │ ├── yolov8n-seg.pt # Nano分割模型 │ └── yolov8n-pose.pt # Nano姿势检测模型 │ ├── demo/ # 示例代码文件夹 │ ├── yolov8_smaple.py # YOLOv8基础使用示例 │ ├── yolov8_track.py # YOLOv8目标跟踪示例 │ └── yolov8.ipynb # YOLOv8 Notebook示例 │ └── datasets/ # 数据集文件夹(可选,用于自定义训练) ├── images/ # 图像数据 └── labels/ # 标注数据 ``` ## 项目运行效果截图 ### 定位效果 ![定位效果](1.png) ### 姿势效果 ![姿势效果](2.png) ## 功能 - 支持摄像头和视频文件的实时目标检测 - 支持定位、分割和姿势三种模型类型 - 支持不同模型大小 - 支持在视频上显示边界框和遮罩 - 支持暂停、播放和重新播放视频文件 - 支持目标检测的开始/停止 ## 依赖 - Python 3 - OpenCV - Tkinter - ultralytics YOLO ## 使用步骤 ### 1. 环境准备 ```bash # 克隆项目到本地 git clone <项目地址> cd yolov8-object-detection-app-master # 创建conda虚拟环境(推荐使用Python 3.8-3.11) conda create -n yolov8 python=3.9 conda activate yolov8 ``` ### 2. 安装依赖 ```bash # 方法1:使用requirements.txt安装所有依赖(推荐) pip install -r requirements.txt # 方法2:单独安装核心依赖 pip install ultralytics opencv-python pillow numpy # 方法3:如果只需要运行Tkinter应用,安装核心包 pip install ultralytics opencv-python pillow numpy # 如果需要运行Jupyter Notebook,确保安装了完整依赖 pip install -r requirements.txt ``` ### 3. 准备数据和模型 ```bash # 解压视频和图像文件 # 将 assets 目录下 的 video_imgs.zip 压缩包解压 # 下载YOLOv8预训练权重文件(如果weights目录下没有) # 方法1:使用ultralytics自动下载 python -c "from ultralytics import YOLO; YOLO('yolov8n.pt')" # 方法2:手动下载并放到weights目录 # 从 https://github.com/ultralytics/assets/releases 下载以下文件: # - yolov8n.pt # - yolov8s.pt # - yolov8m.pt # - yolov8l.pt # - yolov8x.pt # - yolov8n-seg.pt (分割模型) # - yolov8n-pose.pt (姿势检测模型) # - 滑动到界面最底部,点击Assets展开寻找对应文件下载即可 ``` ### 4. 运行Tkinter应用程序 ```bash # 运行主程序 python obj_tkinterapp.py ``` **应用程序使用说明:** - 选择模型类型:定位、分割、姿势 - 选择模型大小:n、s、m、l、x - 点击"读取摄像头"使用摄像头进行实时检测 - 点击"读取视频"选择视频文件进行检测 - 点击"识别切换"开启/关闭目标检测 - 使用"暂停"、"播放"、"重新播放"控制视频播放 ### 5. 运行Jupyter Notebook演示 ```bash # 启动Jupyter Notebook jupyter notebook # Jupyter服务器启动后会自动打开浏览器 # 如果浏览器没有自动打开,请手动复制终端显示的URL到浏览器访问 # 例如: http://localhost:8888/tree?token=xxxxx # 在浏览器中打开 yolov8_demo_202352320122.ipynb # 按顺序运行各个单元格(Shift+Enter执行单元格) # 停止Jupyter服务器:在终端按两次 Ctrl+C ``` **常见问题:** - 如果提示"拒绝访问文件",这是正常的,直接复制URL到浏览器即可 - 如果端口被占用,Jupyter会自动使用其他端口(如8889、8890等) ## 注意事项 - ⚠️ 要解压`video_imgs.zip`到assets目录 - ⚠️ 要自行下载`yolov8`的预训练权重文件到weights目录 - ⚠️ 确保摄像头可用且没有被其他应用程序占用 - ⚠️ 确保视频文件格式正确且路径合法 - ⚠️ 在选择模型类型和大小时,确保模型文件存在于项目目录的"weights"文件夹下 - ✅ Jupyter Notebook演示文件:`yolov8_demo_202352320122.ipynb` ## 个人信息 - 学号: 202352320122 - 年级: 2023 - 专业: 智能科学与技术 - 班级: 1 班