资讯动态

基于深度学习 土豆病害检测 YOLOv11 (数据集 + 训练 + PyQt5 界面 土豆损害检测数据集 土豆病害检测数据集

发布时间:2026/9/8 16:11:05 来源:尧图企业网站定制
智慧农业-土豆损害检测数据集8003张有数据增强处理yolo和voc两种标注方式5类标注数量Diseased-fungal potato: 疾病菌害土豆 - 7130Potato: 土豆 - 9317Damaged potato: 受损土豆 - 4689Defected potato: 有缺陷土豆 - 3784Sprouted potato: 发芽土豆 - 4290image num: - 80032.模型代码模型训练使用yolov11n训练30个epoch训练结果map如描述图所示。3.qt界面运行界面采用qt编写本项目已经训练好模型配置好环境后可直接使用运行效果见描述图像土豆病害检测 YOLOv11完整工程代码数据集训练PyQt5界面1、yaml配置文件 potato.yamlpath:./datasets/potatotrain:images/trainval:images/valtest:images/testnames:0:Potato1:Sprouted potato2:Damaged potato3:Defected potato4:Diseased‑fungal potato2、训练脚本 train.pyfromultralyticsimportYOLO modelYOLO(yolo11n.pt)resultsmodel.train(datapotato.yaml,epochs80,imgsz640,batch8,device0,patience15)3、推理脚本 predict.pyfromultralyticsimportYOLO modelYOLO(./runs/detect/train/weights/best.pt)resmodel.predict(sourcetest.jpg,saveTrue,conf0.5)forboxinres[0].boxes:clsint(box.cls)conffloat(box.conf)xyxybox.xyxy.tolist()[0]print(f类别:{model.names[cls]},置信度:{conf:.2f},坐标:{xyxy})4、PyQt5可视化GUI完整代码 ui_main.pyimportsysimportcv2importtimefromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QPushButton,QLabel,QFileDialog,QTableWidget,QTableWidgetItem,QComboBox)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQtfromultralyticsimportYOLOclassPotatoDetect(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于YOLOv11的土豆病害检测系统)self.resize(1280,800)self.modelYOLO(./runs/detect/train/weights/best.pt)#按钮self.btn_imgQPushButton(图片检测,self)self.btn_img.setGeometry(750,100,200,40)self.btn_img.clicked.connect(self.detect_img)self.btn_videoQPushButton(视频检测,self)self.btn_video.setGeometry(750,160,200,40)self.btn_camQPushButton(摄像头检测,self)self.btn_cam.setGeometry(750,220,200,40)#图像显示区self.img_labelQLabel(self)self.img_label.setGeometry(20,80,700,520)self.img_label.setStyleSheet(border:1px solid #888;)#下拉置信度self.cmb_confQComboBox(self)self.cmb_conf.setGeometry(750,280,200,30)self.cmb_conf.addItems([0.3,0.4,0.5,0.6,0.7])#结果表格self.tableQTableWidget(self)self.table.setGeometry(20,620,1220,150)self.table.setColumnCount(5)self.table.setHorizontalHeaderLabels([序号,类别,置信度,xmin,ymin,xmax,ymax])defdetect_img(self):file_path,_QFileDialog.getOpenFileName()ifnotfile_path:returnt_starttime.time()conffloat(self.cmb_conf.currentText())resself.model.predict(sourcefile_path,saveFalse,confconf)t_costtime.time()-t_start imgres[0].plot()imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB)h,w,cimg.shape q_imgQImage(img.data,w,h,c*w,QImage.Format_RGB888)self.img_label.setPixmap(QPixmap.fromImage(q_img).scaled(700,520,Qt.KeepAspectRatio))#填充表格self.table.setRowCount(0)foridx,boxinenumerate(res[0].boxes):rowself.table.rowCount()self.table.insertRow(row)cls_nameself.model.names[int(box.cls)]conf_valf{float(box.conf):.2f}xyxy[round(float(x))forxinbox.xyxy[0]]self.table.setItem(row,0,QTableWidgetItem(str(idx1)))self.table.setItem(row,1,QTableWidgetItem(cls_name))self.table.setItem(row,2,QTableWidgetItem(conf_val))self.table.setItem(row,3,QTableWidgetItem(str(xyxy)))if__name____main__:appQApplication(sys.argv)winPotatoDetect()win.show()sys.exit(app.exec_())环境安装命令pipinstallultralytics opencv-python pyqt5

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价