2026/3/29 22:35:59
网站建设
项目流程
做网站 对方传销,wordpress固定链接设置技巧,全国企业信息公开系统,wordpress支付通道基于深度学习 YOLOv8➕pyqt5的西红柿成熟度检测系统#xff0c;
完整源码源文件已标注的数据集训练好的模型环境配置教程程序运行说明文档
可以替换自己训练的模型#xff0c;实现检测目标自定义
blog.csdnimg.cn/direct/31c61653310648458126c961a01fd682.png)
以下文章及示…基于深度学习 YOLOv8➕pyqt5的西红柿成熟度检测系统完整源码源文件已标注的数据集训练好的模型环境配置教程程序运行说明文档可以替换自己训练的模型实现检测目标自定义blog.csdnimg.cn/direct/31c61653310648458126c961a01fd682.png)以下文章及示例代码仅供参考基于深度学习 YOLOv8 PyQt5 的西红柿成熟度检测系统附完整代码 项目背景在智慧农业中果蔬的自动分级与成熟度识别是提升采摘效率和商品价值的关键环节。传统人工分拣成本高、效率低而基于计算机视觉的自动化检测系统正成为研究热点。本文将带你从零搭建一个 基于 YOLOv8 和 PyQt5 的西红柿成熟度检测系统支持图像/视频实时推理并提供友好的图形界面适合科研、教学或小型农业项目部署。 技术栈介绍YOLOv8Ultralytics 推出的新一代 YOLO 系列模型精度高、速度快支持分类、检测、分割等任务。PyQt5Python 下流行的 GUI 开发框架用于构建桌面应用界面。OpenCV用于图像/视频处理。PyTorchYOLOv8 的底层深度学习框架。 项目结构tomato-ripeness-detector/├── models/│ └── best.pt # 训练好的 YOLOv8 模型├── ui/│ └── main_window.ui # Qt Designer 设计的界面可选├── utils/│ └── inference.py # 推理逻辑封装├── main.py # 主程序入口└── requirements.txt 环境配置bashpip install ultralytics opencv-python pyqt5 numpy pillow注意YOLOv8 依赖 PyTorch请确保 CUDA 或 CPU 环境已正确安装。 数据准备与模型训练简要说明我们使用自建的西红柿数据集包含三类标签unripe未成熟绿色half_ripe半熟黄红相间ripe成熟红色使用 YOLOv8 的官方训练命令bashyolo detect train datatomato.yaml modelyolov8n.pt epochs100 imgsz640训练完成后得到 best.pt 模型文件放入 models/ 目录。 PyQt5 界面设计我们使用纯代码方式构建简洁 UI包含图像显示区域QLabel文件选择按钮打开图片/视频实时摄像头检测按钮检测结果信息展示main.py 核心代码pythonimport sysimport cv2from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget, QFileDialogfrom PyQt5.QtGui import QImage, QPixmapfrom PyQt5.QtCore import QTimer, Qtfrom ultralytics import YOLOimport numpy as npclass TomatoDetector(QMainWindow):definit(self):super().init()self.setWindowTitle(“ 西红柿成熟度检测系统 - YOLOv8 PyQt5”)self.setGeometry(100, 100, 1000, 700)加载模型self.model YOLO(“models/best.pt”)初始化UIself.init_ui()视频/摄像头相关self.cap Noneself.timer QTimer()self.timer.timeout.connect(self.update_frame)def init_ui(self):central_widget QWidget()self.setCentralWidget(central_widget)layout QVBoxLayout()self.image_label QLabel()self.image_label.setAlignment(Qt.AlignCenter)self.image_label.setMinimumSize(800, 600)layout.addWidget(self.image_label)btn_layout QVBoxLayout()self.btn_open_img QPushButton(“ 打开图片”)self.btn_open_video QPushButton(“ 打开视频”)self.btn_camera QPushButton(“ 启动摄像头”)self.btn_stop QPushButton(“⏹ 停止”)self.btn_open_img.clicked.connect(self.open_image)self.btn_open_video.clicked.connect(self.open_video)self.btn_camera.clicked.connect(self.start_camera)self.btn_stop.clicked.connect(self.stop_media)btn_layout.addWidget(self.btn_open_img)btn_layout.addWidget(self.btn_open_video)btn_layout.addWidget(self.btn_camera)btn_layout.addWidget(self.btn_stop)layout.addLayout(btn_layout)central_widget.setLayout(layout)def detect_and_display(self, frame):results self.model(frame)annotated_frame results[0].plot() # 自动绘制检测框和标签self.display_image(annotated_frame)def display_image(self, img):h, w, ch img.shapebytes_per_line ch wq_img QImage(img.data, w, h, bytes_per_line, QImage.Format_BGR888)self.image_label.setPixmap(QPixmap.fromImage(q_img).scaled(self.image_label.width(), self.image_label.height(),Qt.KeepAspectRatio, Qt.SmoothTransformation))def open_image(self):path, _ QFileDialog.getOpenFileName(self, “选择图片”, “”, “Image Files (.png .jpg .jpeg)”)if path:img cv2.imread(path)self.detect_and_display(img)def open_video(self):path, _ QFileDialog.getOpenFileName(self, “选择视频”, “”, “Video Files (.mp4 .avi)”)if path:self.cap cv2.VideoCapture(path)self.timer.start(30)def start_camera(self):self.cap cv2.VideoCapture(0)if not self.cap.isOpened():print(“无法打开摄像头”)returnself.timer.start(30)def update_frame(self):if self.cap and self.cap.isOpened():ret, frame self.cap.read()if ret:self.detect_and_display(frame)else:self.stop_media()def stop_media(self):if self.timer.isActive():self.timer.stop()if self.cap:self.cap.release()self.image_label.clear()ifname “main”:app QApplication(sys.argv)window TomatoDetector()window.show()sys.exit(app.exec_())️ 效果展示✅ 优势与应用场景高精度YOLOv8 在小目标和密集场景下表现优异。跨平台PyQt5 支持 Windows/Linux/macOS。易扩展可轻松替换模型用于其他果蔬检测如苹果、草莓。实用性强适用于智能分拣机、农业机器人、教学演示等。 获取完整代码文章底部获取完整代码包含完整源码源文件已标注的数据集训练好的模型环境配置教程程序运行说明文档 结语通过 YOLOv8 强大的检测能力与 PyQt5 的灵活界面开发我们成功构建了一个实用的西红柿成熟度检测系统。未来可集成到边缘设备如 Jetson Nano实现田间实时检测。如果你觉得这篇文章对你有帮助欢迎点赞、收藏、转发也欢迎在评论区交流改进意见或分享你的项目成果关注我获取更多 AI 农业 GUI 实战项目