
深度学习YOLOV11渣土车篷布覆盖检测系统-渣土车盖顶覆盖情况检测数据集2112张yolovoccoco三种标注方式图像尺寸:640*640类别数量:3类训练集图像数量:875; 验证集图像数量:622 测试集图像数量:615类别名称: 每一类图像数 每一类标注数In-progress 未覆盖 180,252Half covered 半覆盖 250,250Completed 已完工 |1602,1610image num: 2112模型代码采用 YOLOv11n 网络训练训练轮次80 个 epoch提供全部训练 测试源代码训练精度 mAP 效果如图所示PyQt5 界面功能界面使用 PyQt5 开发提供全部源码.ui、.qrc、.py 及图标文件支持图片检测、视频检测、摄像头实时检测界面实时显示目标位置、目标总数、置信度等信息支持检测结果保存导出操作简单直观无需命令行渣土车顶部覆盖情况检测数据集数据集信息表项目参数数据集名称渣土车顶部覆盖情况检测数据集总图像2112张图像尺寸640×640标注格式YOLO、VOC、COCO类别数3类训练集875张验证集622张测试集615张类别统计序号英文标签中文标签含该类图像数标注实例数0In‑progress未覆盖1802521Half covered半覆盖2502502Completed已完工全覆盖16021610yolo配置文件 dustcar.yamltrain:./train/imagesval:./val/imagestest:./test/imagesnc:3names:0:In‑progress1:Half covered2:Completed关键词渣土车密闭检测、工地渣土车、扬尘管控、城市环境监管、YOLOv11目标检测、交通摄像头渣土车识别、未覆盖渣土车识别标签#渣土车检测数据集#扬尘监管#工地视觉检测#YOLOv11应用场景城市道路渣土车智能监管道路摄像头自动识别渣土车未覆盖、半覆盖、全覆盖状态对未密闭车辆告警抑制渣土抛洒扬尘。建筑工地出入口智能抓拍工地出入口摄像头自动检测出场渣土车篷布覆盖状态违规车辆自动记录存档。智慧城市交通运维平台接入监控流批量统计渣土车违规次数辅助环保城管执法。算法科研实验用于目标检测算法训练、对比消融实验。嵌入式边缘设备部署部署到工地AI摄像头实现本地实时检测无需上传视频流。YOLOv11n训练代码 train_dustcar.pyfromultralyticsimportYOLOif__name____main__:modelYOLO(yolo11n.pt)resultsmodel.train(datadustcar.yaml,epochs80,imgsz640,batch8,device0,workers2)model.val()model.predict(sourcetest.jpg,saveTrue)推理代码 infer_dustcar.pyfromultralyticsimportYOLO modelYOLO(best.pt)defdust_car_detect(img_path):resmodel.predict(img_path,conf0.25)forrinres:forboxinr.boxes:cls_namemodel.names[int(box.cls)]conffloat(box.conf)x1,y1,x2,y2map(int,box.xyxy[0])print(f类别:{cls_name}置信度:{conf:.2f}坐标:[{x1},{y1},{x2},{y2}])res[0].save(dustcar_result.jpg)if__name____main__:dust_car_detect(test.jpg)PyQt5完整系统代码 dustcar_gui.py图片/视频/摄像头检测结果导出importsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QWidget,QVBoxLayout,QHBoxLayout,QPushButton,QLineEdit,QTableWidget,QTableWidgetItem,QFileDialog,QLabel,QComboBox,QMessageBox)fromPyQt5.QtGuiimportQPixmap,QImagefromPyQt5.QtCoreimportQt,QThread,pyqtSignalfromultralyticsimportYOLOclassDetectThread(QThread):sig_resultpyqtSignal(list)sig_imgpyqtSignal(QImage)def__init__(self,model,source):super().__init__()self.modelmodel self.sourcesource self.runningTruedefrun(self):forresinself.model.predict(self.source,conf0.25,streamTrue):ifnotself.running:breakbox_list[]forboxinres.boxes:clsself.model.names[int(box.cls)]conffloat(box.conf)xyxylist(map(int,box.xyxy[0]))box_list.append([cls,conf,xyxy])img_cvres.plot()h,w,cimg_cv.shape qimgQImage(img_cv.data,w,h,c*w,QImage.Format_BGR888)self.sig_img.emit(qimg)self.sig_result.emit(box_list)defstop(self):self.runningFalseclassDustCarWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于YOLOv11的渣土车顶部覆盖情况检测系统)self.resize(1300,850)self.modelYOLO(best.pt)self.detect_threadNoneself.init_ui()definit_ui(self):centralQWidget()self.setCentralWidget(central)main_layoutQHBoxLayout(central)left_widgetQWidget()left_layoutQVBoxLayout(left_widget)self.label_showQLabel(图像显示区域)self.label_show.setMinimumSize(700,550)left_layout.addWidget(self.label_show)self.tableQTableWidget()self.table.setColumnCount(5)self.table.setHorizontalHeaderLabels([序号,类别,置信度,xmin,ymin,xmax,ymax])left_layout.addWidget(self.table)right_widgetQWidget()right_layoutQVBoxLayout(right_widget)right_layout.addWidget(QLabel(文件导入))self.line_imgQLineEdit()self.btn_imgQPushButton(选择图片)self.btn_img.clicked.connect(self.open_image)h1QHBoxLayout()h1.addWidget(self.line_img)h1.addWidget(self.btn_img)right_layout.addLayout(h1)self.line_videoQLineEdit()self.btn_videoQPushButton(选择视频)self.btn_video.clicked.connect(self.open_video)h2QHBoxLayout()h2.addWidget(self.line_video)h2.addWidget(self.btn_video)right_layout.addLayout(h2)self.btn_camQPushButton(开启摄像头)self.btn_cam.clicked.connect(self.open_camera)right_layout.addWidget(self.btn_cam)right_layout.addWidget(QLabel(检测结果))self.label_timeQLabel(用时0 s | 目标数目0)self.label_confQLabel(置信度--)self.label_posQLabel(xmin:-- ymin:-- xmax:-- ymax:--)self.combo_selectQComboBox()self.combo_select.addItems([全部])right_layout.addWidget(self.label_time)right_layout.addWidget(self.label_conf)right_layout.addWidget(self.label_pos)right_layout.addWidget(self.combo_select)h_btnQHBoxLayout()self.btn_saveQPushButton(保存结果)self.btn_exitQPushButton(退出)self.btn_exit.clicked.connect(self.close)h_btn.addWidget(self.btn_save)h_btn.addWidget(self.btn_exit)right_layout.addLayout(h_btn)main_layout.addWidget(left_widget,stretch3)main_layout.addWidget(right_widget,stretch2)defopen_image(self):f,_QFileDialog.getOpenFileName(filter图片(*.jpg *.png *.jpeg))iff:self.line_img.setText(f)self.run_detect(f)defopen_video(self):f,_QFileDialog.getOpenFileName(filter视频(*.mp4 *.avi))iff:self.line_video.setText(f)self.run_detect(f)defopen_camera(self):self.run_detect(0)defrun_detect(self,source):ifself.detect_threadisnotNone:self.detect_thread.stop()self.detect_thread.wait()self.table.setRowCount(0)self.detect_threadDetectThread(self.model,source)self.detect_thread.sig_img.connect(self.show_image)self.detect_thread.sig_result.connect(self.fill_table)self.detect_thread.start()defshow_image(self,qimg):self.label_show.setPixmap(QPixmap.fromImage(qimg).scaled(self.label_show.size(),Qt.KeepAspectRatio))deffill_table(self,box_list):self.table.setRowCount(0)self.label_time.setText(f用时0.134 s | 目标数目{len(box_list)})foridx,iteminenumerate(box_list):cls,conf,xyxyitem rowself.table.rowCount()self.table.insertRow(row)self.table.setItem(row,0,QTableWidgetItem(str(idx1)))self.table.setItem(row,1,QTableWidgetItem(cls))self.table.setItem(row,2,QTableWidgetItem(f{conf*100:.2f}%))self.table.setItem(row,3,QTableWidgetItem(f{xyxy[0]},{xyxy[1]}))self.table.setItem(row,4,QTableWidgetItem(f{xyxy[2]},{xyxy[3]}))iflen(box_list)0:c,cf,posbox_list[0]self.label_conf.setText(f置信度{cf*100:.2f}%)self.label_pos.setText(fxmin:{pos[0]}ymin:{pos[1]}xmax:{pos[2]}ymax:{pos[3]})defcloseEvent(self,event):ifself.detect_thread:self.detect_thread.stop()self.detect_thread.wait()event.accept()if__name____main__:appQApplication(sys.argv)winDustCarWindow()win.show()sys.exit(app.exec_())环境依赖pip install ultralytics torch opencv‑python pyqt5将训练得到的best.pt放到代码同级目录直接运行dustcar_gui.py支持图片、视频、摄像头实时检测表格输出目标类别、置信度、坐标。