MccDom1/YOLO_ObjectDetctionV1

GitHub: MccDom1/YOLO_ObjectDetctionV1

使用 YOLOv8 和 OpenCV 在消费级硬件上实现端到端实时目标检测,配备运行时性能监控与日志记录功能。

Stars: 0 | Forks: 0

# 使用 YOLOv8 进行实时目标检测 # YOLO 实时目标检测 使用 YOLOv8、OpenCV 和 MacBook 摄像头进行实时目标检测。 ## 项目资源 - 📄 IEEE 论文 - 💻 源代码 - 📊 运行时指标 - 🖼 检测示例 ![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=for-the-badge&logo=python) ![YOLOv8](https://img.shields.io/badge/YOLO-v8-00FFFF?style=for-the-badge) ![OpenCV](https://img.shields.io/badge/OpenCV-Computer%20Vision-5C3EE8?style=for-the-badge&logo=opencv) ![Ultralytics](https://img.shields.io/badge/Ultralytics-YOLO-111827?style=for-the-badge) ![Platform](https://img.shields.io/badge/Platform-macOS-black?style=for-the-badge&logo=apple) ## 概述 本项目使用 **Ultralytics YOLOv8** 模型和 **OpenCV** 实现了实时目标检测流水线。该应用程序利用网络摄像头进行实时推理,检测 COCO 数据集中的目标,叠加边界框和置信度分数,并记录运行时性能指标。 与离线图像分类示例不同,此实现侧重于端到端的部署工作流,包括: - 实时网络摄像头推理 - 多目标检测 - 自动目标标注 - 运行时性能监控 - 屏幕截图捕获 - 检测分析 - 性能日志记录 该项目展示了在现代消费级硬件上实际部署基于深度学习的目标检测。 ## 功能 - 使用 YOLOv8 进行实时目标检测 - 实时网络摄像头视频处理 - 自动生成边界框 - COCO 目标分类 - 置信度分数可视化 - FPS 监控 - 推理延迟测量 - 亮度估计 - 目标计数跟踪 - 屏幕截图捕获 - 运行时 CSV 日志记录 - 支持视频录制 - 跨平台 Python 实现 ## 检测示例 ### 瓶子检测 ![YOLOv8 检测到的瓶子](https://static.pigsec.cn/wp-content/uploads/repos/cas/4e/4e1b3052e6ade771cb0d522ac2ecf351284f3a898181aecf6d9452cdbb92a279.png) ### 手机检测 ![YOLOv8 检测到的手机](https://static.pigsec.cn/wp-content/uploads/repos/cas/ce/ceeddaf6eecf4020b579d0f1fda1ddec58491fa41130f1492e9959b4d815ec61.png) ### 时钟检测 ![YOLOv8 检测到的时钟](https://static.pigsec.cn/wp-content/uploads/repos/cas/a4/a4528e9e42a145b93b0b37f06b84c2057e3a3e586ccc9a33db4fc491041d1efd.png) ### 橙子检测 ![YOLOv8 检测到的橙子](https://static.pigsec.cn/wp-content/uploads/repos/cas/eb/eb2c665543d33fdc9786c4de37bdffb2de24ab8d603cccd4d6f03948186c4624.png) ### 人检测 ![YOLOv8 检测到的人](https://static.pigsec.cn/wp-content/uploads/repos/cas/2f/2f8cff190e786273225f4403ca838685c34c2a0025f7404dd64f5c2b058c38dd.png) ### 盆栽和花瓶检测 ![YOLOv8 检测到的盆栽和花瓶](https://static.pigsec.cn/wp-content/uploads/repos/cas/0c/0c95b9c88cd69695a519e7ff70195cd5dba67be7c086ae611cd2c887d01f1093.png) ### 遥控器检测 ![YOLOv8 检测到的遥控器](https://static.pigsec.cn/wp-content/uploads/repos/cas/b7/b7183816eb1313954db68943a5445b70a84c9762eeb4f55df0f80178755747be.png) ### 误分类示例 模型将一个青柠分类为了运动球。此示例展示了使用通用预训练 COCO 模型的局限性。 ![被分类为运动球的青柠](https://static.pigsec.cn/wp-content/uploads/repos/cas/05/05a67b3e9bd7f2de11a304fe70519d0792803edf554550fc426b845bbc4c0306.png) ## 仓库结构 ``` YOLO_Object_Detection/ │ ├── Code/ │ ├── mac_yolo_detection.py │ ├── requirements.txt │ ├── outputs/ │ ├── runtime_metrics.csv │ ├── runtime_summary.csv │ ├── screenshots/ │ ├── Figures/ │ ├── README.md │ └── LICENSE ``` ## 架构 ``` Webcam │ ▼ OpenCV Video Capture │ ▼ YOLOv8 Inference Engine │ ▼ Bounding Box Generation │ ▼ Object Classification │ ▼ Visualization Layer │ ├── FPS ├── Inference Time ├── Brightness ├── Object Count │ ▼ Runtime Metrics ``` ## 技术 | 组件 | 技术 | |------------|------------| | 语言 | Python 3 | | 深度学习 | YOLOv8 | | 框架 | Ultralytics | | 计算机视觉 | OpenCV | | 数值计算 | NumPy | | 可视化 | OpenCV | | 数据集 | COCO | | 开发环境 | Visual Studio Code | ## 安装 克隆仓库。 ``` git clone https://github.com//YOLO_Object_Detection.git cd YOLO_Object_Detection ``` 创建虚拟环境。 ``` python3 -m venv .venv ``` 激活环境。 macOS ``` source .venv/bin/activate ``` Windows ``` .venv\Scripts\activate ``` 安装依赖项。 ``` pip install -r requirements.txt ``` ## 运行项目 ``` python mac_yolo_detection.py ``` 应用程序会自动执行以下操作: - 打开网络摄像头 - 加载 YOLOv8 - 开始实时推理 - 显示实时检测叠加层 ## 控制 | 按键 | 操作 | |------|--------| | Q | 退出应用程序 | | S | 保存屏幕截图 | | R | 开始/停止录制视频 | ## 性能指标 应用程序会持续测量: - 每秒帧数(FPS) - 推理延迟 - 目标计数 - 检测置信度 - 画面亮度 指标会自动导出到: ``` outputs/runtime_metrics.csv ``` ## 检测示例 该项目成功检测了多种目标类别,包括: - 人 - 手机 - 瓶子 - 时钟 - 运动球 - 橙子 - 遥控器 - 盆栽 - 花瓶 屏幕截图会自动保存到: ``` outputs/screenshots/ ``` ## 示例输出 ``` FPS: 16.7 Inference Time: 23.5 ms Objects Detected: 3 Confidence: 0.84 Brightness: 58.2 ``` ## 模型 模型: ``` YOLOv8n ``` 数据集: ``` COCO 2017 ``` 预训练模型支持大约 80 个目标类别。 ## 性能 测试期间观察到的运行时示例: | 指标 | 结果 | |---------|--------| | 平均 FPS | ~16 FPS | | 平均推理时间 | ~23 ms | | 分辨率 | 1280×720 | | 平台 | macOS | | 检测 | 实时 | 性能会因硬件和光照条件而异。 ## 局限性 此实现使用的是预训练的 YOLOv8 模型,并未针对自定义数据集进行微调。 当前的局限性包括: - 偶尔出现误报 - 在光线不佳的情况下置信度较低 - 对小目标敏感 - 网络摄像头质量的限制 - 纯 CPU 推理 ## 未来改进 潜在的增强功能包括: - 迁移至 YOLOv11 - GPU 加速 - TensorRT 优化 - 自定义数据集训练 - 边缘 AI 部署 - 集成 Raspberry Pi - 支持 Sony IMX500 - 多摄像头推理 - 目标跟踪 - 实例分割 - 姿态估计 - 语义分割 ## 参考 - Ultralytics YOLO - YOLO:实时目标检测 - YOLO9000 - YOLOv3 - YOLOv4 - COCO 数据集 - OpenCV 文档 ## 作者 **Dominique McClaney** 软件工程师 信息技术理学学士 – 软件开发 人工智能理学硕士 兴趣: - 人工智能 - 机器学习 - 计算机视觉 - 深度学习 - 边缘 AI - 自主系统 ## 许可证 本仓库仅供教育和研究目的使用。
标签:OpenCV, YOLOv8, 实时推理, 深度学习, 目标检测, 计算机视觉, 逆向工具