
基于深度学习YOLOV11无人机地面垃圾检测系统 无人机地面垃圾监测数据集 航拍地面垃圾检测数据集1141张提供yolovoccoco三种标注方式图像尺寸:416*416类别数量:1类训练集图像数量:799; 验证集图像数量:228 测试集图像数量:114类别名称: 每一类图像数 每一类标注数rubbish: 1141,4185image num: 1141模型代码采用 YOLOv11n 网络训练训练轮次80 个 epoch提供全部训练 测试源代码训练精度 mAP 效果如图所示PyQt5 界面功能界面使用 PyQt5 开发提供全部源码.ui、.qrc、.py 及图标文件支持图片检测、视频检测、摄像头实时检测界面实时显示目标位置、目标总数、置信度等信息支持检测结果保存导出基于YOLOv11航拍地面垃圾检测系统 简易完整代码1. 环境安装pipinstallultralytics opencv-python PyQt5 numpy2. 数据集yaml配置rubbish.yamlpath:./rubbish_datasettrain:images/trainval:images/valtest:images/testnames:0:rubbishnc:13. 模型训练代码train.pyfromultralyticsimportYOLOif__name____main__:# 加载YOLOv11模型modelYOLO(yolo11n.pt)# 开始训练resultsmodel.train(datarubbish.yaml,epochs100,imgsz640,batch8,device0,workers0)4. 推理GUI界面代码main_gui.py简易PyQt界面图片/视频/摄像头检测importsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QPushButton,QLabel,QFileDialog,QTextEdit,QSpinBox)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQtfromultralyticsimportYOLOclassDetectorUI(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于YOLOv11航拍地面垃圾检测系统)self.resize(1200,800)self.modelYOLO(./runs/detect/train/weights/best.pt)self.img_labelQLabel(图像显示区域,self)self.img_label.setGeometry(20,20,700,600)self.result_textQTextEdit(self)self.result_text.setGeometry(750,20,400,300)self.btn_imgQPushButton(选择图片,self)self.btn_img.setGeometry(750,340,180,40)self.btn_img.clicked.connect(self.detect_image)self.btn_videoQPushButton(选择视频,self)self.btn_video.setGeometry(750,390,180,40)self.btn_video.clicked.connect(self.detect_video)self.btn_camQPushButton(摄像头检测,self)self.btn_cam.setGeometry(750,440,180,40)self.btn_cam.clicked.connect(self.detect_camera)defdetect_image(self):file_path,_QFileDialog.getOpenFileName()ifnotfile_path:returnimgcv2.imread(file_path)resself.model(img)[0]img_plotres.plot()rgb_imgcv2.cvtColor(img_plot,cv2.COLOR_BGR2RGB)h,w,crgb_img.shape qimgQImage(rgb_img.data,w,h,c*w,QImage.Format_RGB888)self.img_label.setPixmap(QPixmap.fromImage(qimg).scaled(self.img_label.size(),Qt.KeepAspectRatio))# 输出检测结果txtforboxinres.boxes:clsself.model.names[int(box.cls)]conffloat(box.conf)xyxybox.xyxy.tolist()[0]txtf类别:{cls},置信度:{conf:.2f},坐标:{xyxy}\nself.result_text.setText(txt)defdetect_video(self):path,_QFileDialog.getOpenFileName()capcv2.VideoCapture(path)whilecap.isOpened():ret,framecap.read()ifnotret:breakresself.model(frame)[0]frameres.plot()cv2.imshow(video detect,frame)ifcv2.waitKey(1)0xFFord(q):breakcap.release()cv2.destroyAllWindows()defdetect_camera(self):capcv2.VideoCapture(0)whilecap.isOpened():ret,framecap.read()ifnotret:breakresself.model(frame)[0]frameres.plot()cv2.imshow(camera detect,frame)ifcv2.waitKey(1)0xFFord(q):breakcap.release()cv2.destroyAllWindows()if__name____main__:appQApplication(sys.argv)winDetectorUI()win.show()sys.exit(app.exec_())5. 评估代码eval.py生成PR曲线fromultralyticsimportYOLO modelYOLO(./runs/detect/train/weights/best.pt)metricsmodel.val()print(fmAP0.5:{metrics.box.map50})# 运行后自动在 runs/val 文件夹生成PR曲线图片使用说明把垃圾数据集按YOLO格式划分训练/验证集修改rubbish.yaml里的路径运行train.py训练训练完成运行main_gui.py启动可视化检测系统。