ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

基于 YOLOv11 航拍农田及附着物检测系统 航拍高清农田及田内附着物检测数据集

基于 YOLOv11 航拍农田及附着物检测系统 航拍高清农田及田内附着物检测数据集 基于 YOLOv11 航拍农田及附着物检测系统 航拍高清农田及田内附着物检测数据集航拍高清农田及田内附着物检测数据集 yolo目标检测模型 航拍高清农田及田内附着物目标检测系统界面航拍高清农田及田内附着物检测数据集961张图像提供yolovoccoco三种标注方式图像尺寸: 2160 * 3840总类别数量: 2 类 图像数量统计 训练集图像总数669验证集图像总数191测试集图像总数101数据集全部图像总量961 类别完整统计 类别,训练图片数,训练标签数,验证图片数,验证标签数,测试图片数,测试标签数FDQ-附着物344,1634,87,459,45,251YC-农田532,887,148,231,74,1272模型代码采用 YOLOv11n 网络训练训练轮次80 个 epoch提供训练好的yolo11n模型全部训练 测试源代码训练精度 mAP 效果如图所示3PyQt5 界面功能界面使用 PyQt5 开发提供全部源码.ui、.qrc、.py 及图标文件支持图片检测、视频检测、摄像头实时检测界面实时显示目标位置、目标总数、置信度等信息支持检测结果保存导出操作简单直观无需命令行基于YOLOv11航拍农田及附着物检测系统完整代码1、数据集yaml配置文件farm.yaml# 类别YC-农田FDQ-附着物path:./datasettrain:images/trainval:images/valtest:images/testnames:0:YC1:FDQ2、模型训练代码train.pyfromultralyticsimportYOLOif__name____main__:# 加载YOLOv11模型modelYOLO(yolo11n.pt)# 开始训练resultsmodel.train(datafarm.yaml,epochs100,imgsz640,batch8,device0,pretrainedTrue,patience15)print(训练完成权重保存在runs/detect/train/weights/best.pt)3、单图推理代码predict.pyfromultralyticsimportYOLOimportcv2 modelYOLO(runs/detect/train/weights/best.pt)defdetect_img(img_path):imgcv2.imread(img_path)resmodel(img,conf0.25)forrinres:boxesr.boxesforboxinboxes:x1,y1,x2,y2map(int,box.xyxy[0])cls_idint(box.cls[0])conffloat(box.conf[0])cls_namemodel.names[cls_id]cv2.rectangle(img,(x1,y1),(x2,y2),(255,0,0),2)cv2.putText(img,f{cls_name}{conf:.2f},(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.6,(255,0,0),2)cv2.imwrite(result.jpg,img)returnimgif__name____main__:detect_img(test.jpg)4、PyQt5可视化界面完整代码main_ui.pyimportsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QPushButton,QFileDialog,QLabel,QTableWidget,QTableWidgetItem,QComboBox,QTextEdit)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQtfromultralyticsimportYOLOclassMainWin(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于YOLOv11的航拍农田及附着物检测系统)self.setGeometry(100,100,1240,870)self.modelYOLO(runs/detect/train/weights/best.pt)self.initUI()definitUI(self):#图片显示labelself.img_labelQLabel(self)self.img_label.setGeometry(30,120,720,520)#按钮self.btn_openQPushButton(导入图片,self)self.btn_open.setGeometry(780,160,180,40)self.btn_open.clicked.connect(self.load_image)self.btn_saveQPushButton(保存结果,self)self.btn_save.setGeometry(780,680,120,40)self.btn_exitQPushButton(退出,self)self.btn_exit.setGeometry(920,680,120,40)self.btn_exit.clicked.connect(self.close)#下拉框self.comboQComboBox(self)self.combo.addItem(全部)self.combo.setGeometry(780,420,180,30)#表格self.tableQTableWidget(self)self.table.setGeometry(30,660,720,160)self.table.setColumnCount(5)self.table.setHorizontalHeaderLabels([序号,文件路径,类别,置信度,坐标位置])self.result_imgNonedefload_image(self):fname,_QFileDialog.getOpenFileName(self,选择图片,.,Image(*.jpg *.png))ifnotfname:returnimgcv2.imread(fname)resself.model(img,conf0.25)self.table.setRowCount(0)forrinres:boxesr.boxesforidx,boxinenumerate(boxes):x1,y1,x2,y2map(int,box.xyxy[0])cls_idint(box.cls[0])conffloat(box.conf[0])cls_nameself.model.names[cls_id]cv2.rectangle(img,(x1,y1),(x2,y2),(255,0,0),2)cv2.putText(img,f{cls_name}{conf:.2f},(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.7,(255,0,0),2)#插入表格rowself.table.rowCount()self.table.insertRow(row)self.table.setItem(row,0,QTableWidgetItem(str(row1)))self.table.setItem(row,1,QTableWidgetItem(fname))self.table.setItem(row,2,QTableWidgetItem(cls_name))self.table.setItem(row,3,QTableWidgetItem(f{conf:.2f}))self.table.setItem(row,4,QTableWidgetItem(f[{x1},{y1},{x2},{y2}]))#转Qt图像img_rgbcv2.cvtColor(img,cv2.COLOR_BGR2RGB)h,w,cimg_rgb.shape qimgQImage(img_rgb.data,w,h,w*c,QImage.Format_RGB888)self.img_label.setPixmap(QPixmap.fromImage(qimg).scaled(self.img_label.size(),Qt.KeepAspectRatio))self.result_imgimgif__name____main__:appQApplication(sys.argv)winMainWin()win.show()sys.exit(app.exec_())环境安装pipinstallultralytics opencv-python pyqt5
返回列表