智慧工地 航拍-无人机拍摄工地现场机械设施检测数据集 YOLOV11模型如何训练无人机工程车检测数据集 识别检测挖掘机 推土机 装载机 打桩机 压路机 搅拌车等的识别检测1111无人机工地现场机械设施检测数据集19929张YOLO / VOC / COCO三格式标注一、数据集简介本数据集针对无人机航拍工地现场安全监测场景构建包含大量工地、道路、施工机械、车辆、人员作业等实拍画面可用于目标检测、工地安全巡检、智能视频分析、无人机巡检系统开发等项目。数据集共包含总图像数量19929张图像尺寸640 × 640标注格式YOLO / VOC / COCO 三种格式检测类别14类适用模型YOLOv5 / YOLOv8 / YOLOv11 等目标检测模型二、数据集划分表数据集划分图像数量占比训练集13892张约69.7%验证集4022张约20.2%测试集2015张约10.1%总计19929张100%三、类别详情表| 序号 | 类别名称 | 中文说明 | 图像数 | 标注数 ||—|—|——| 0 | crane | 航吊 | 2333 | 3032 || 1 | excavator | 挖掘机 | 8516 | 12067 || 2 | pump truck | 泵车 | 1533 | 1690 || 3 | common car | 普通私家车 | 6905 | 95978 || 4 | concere mixer | 混凝土搅拌车 | 1267 | 1839 || 5 | big truck | 大型货车 | 4195 | 7388 || 6 | loader | 装载机 | 979 | 1034 || 7 | pile driving | 打桩机 | 698 | 1211 || 8 | bulldozer | 推土机 | 1030 | 1171 || 9 | roller | 压路机 | 872 | 1015 || 10 | small truck | 小型货车 | 874 | 2107 || 11 | bus | 公交车 | 1313 | 3144 || 12 | van | 厢式货车 | 676 | 1353 || 13 | oil truck | 油罐车 | 316 | 395 |四、数据集目录结构construction_site_drone_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ ├── labels/ # YOLO格式标注 │ ├── train/ │ ├── val/ │ └── test/ ├── Annotations/ # VOC格式标注 ├── coco_annotations/ # COCO格式标注 └── construction.yaml # YOLO数据集配置文件五、YOLO配置文件construction.yamlpath:./construction_site_drone_datasettrain:images/trainval:images/valtest:images/testnc:14names:0:crane1:excavator2:pump truck3:common car4:concere mixer5:big truck6:loader7:pile driving8:bulldozer9:roller10:small truck11:bus12:van13:oil truck六、训练代码YOLOv11n1. 安装依赖pipinstallultralytics opencv-python numpy2. 训练代码新建train_construction.pyfromultralyticsimportYOLOdeftrain_construction():modelYOLO(yolov11n.pt)resultsmodel.train(data./construction_site_drone_dataset/construction.yaml,epochs50,imgsz640,batch16,device0,workers4,patience10,pretrainedTrue,optimizerAdam,lr00.001,warmup_epochs3,mosaic0.8,mixup0.1,projectruns/construction_train,nameyolov11n_construction,exist_okTrue)print(训练完成)print(最优模型路径,results.save_dir/weights/best.pt)if__name____main__:train_construction()七、推理测试代码新建predict_construction.pyfromultralyticsimportYOLO modelYOLO(./runs/construction_train/yolov11n_construction/weights/best.pt)# 单张图片检测# model(test.jpg, saveTrue, conf0.3)# 文件夹批量检测model(source./test_images,saveTrue,conf0.3)# 视频检测# model(video.mp4, saveTrue, conf0.3)print(检测完成结果已保存。)八、PyQt5检测界面代码新建construction_detect_ui.pyimportsysimportcv2importosfromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QWidget,QVBoxLayout,QHBoxLayout,QPushButton,QLabel,QFileDialog,QTableWidget,QTableWidgetItem)fromPyQt5.QtCoreimportQt,QThread,pyqtSignalfromPyQt5.QtGuiimportQPixmap,QImagefromultralyticsimportYOLOclassDetectThread(QThread):result_readypyqtSignal(object)def__init__(self,model,source):super().__init__()self.modelmodel self.sourcesource self.runningTruedefrun(self):capcv2.VideoCapture(self.source)whileself.runningandcap.isOpened():ret,framecap.read()ifnotret:breakresself.model.predict(frame,conf0.3)self.result_ready.emit(res[0])cap.release()defstop(self):self.runningFalseclassConstructionDetectUI(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(无人机工地现场机械设施检测系统)self.setGeometry(100,100,1200,700)self.modelYOLO(./runs/construction_train/yolov11n_construction/weights/best.pt)self.detect_threadNoneself.init_ui()definit_ui(self):centralQWidget()self.setCentralWidget(central)main_layoutQHBoxLayout(central)left_layoutQVBoxLayout()self.label_viewQLabel(图像显示区)self.label_view.setFixedSize(640,480)left_layout.addWidget(self.label_view)right_layoutQVBoxLayout()self.btn_imgQPushButton(图片检测)self.btn_videoQPushButton(视频检测)self.btn_cameraQPushButton(摄像头检测)self.btn_saveQPushButton(保存结果)self.btn_exitQPushButton(退出)self.table_resultQTableWidget()self.table_result.setColumnCount(5)self.table_result.setHorizontalHeaderLabels([序号,文件路径,类别,置信度,坐标位置])right_layout.addWidget(QLabel(文件导入))right_layout.addWidget(self.btn_img)right_layout.addWidget(self.btn_video)right_layout.addWidget(self.btn_camera)right_layout.addWidget(QLabel(检测结果))right_layout.addWidget(self.table_result)right_layout.addWidget(self.btn_save)right_layout.addWidget(self.btn_exit)main_layout.addLayout(left_layout)main_layout.addLayout(right_layout)self.btn_img.clicked.connect(self.detect_image)self.btn_video.clicked.connect(self.detect_video)self.btn_camera.clicked.connect(self.detect_camera)self.btn_exit.clicked.connect(self.close)defdetect_image(self):path,_QFileDialog.getOpenFileName(self,选择图片,,Images (*.jpg *.png))ifnotpath:returnimgcv2.imread(path)resself.model.predict(img,conf0.3)[0]self.show_result(res,path)defdetect_video(self):path,_QFileDialog.getOpenFileName(self,选择视频,,Videos (*.mp4 *.avi))ifnotpath:returnself.start_thread(path)defdetect_camera(self):self.start_thread(0)defstart_thread(self,source):ifself.detect_thread:self.detect_thread.stop()self.detect_thread.quit()self.detect_threadDetectThread(self.model,source)self.detect_thread.result_ready.connect(lambdares:self.show_result(res,实时流))self.detect_thread.start()defshow_result(self,res,path):imgres.plot()imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB)h,w,cimg.shape qimgQImage(img.data,w,h,w*c,QImage.Format_RGB888)self.label_view.setPixmap(QPixmap.fromImage(qimg).scaled(640,480,Qt.KeepAspectRatio))self.table_result.setRowCount(len(res.boxes))fori,boxinenumerate(res.boxes):clsres.names[int(box.cls[0])]conffloat(box.conf[0])x1,y1,x2,y2map(int,box.xyxy[0])self.table_result.setItem(i,0,QTableWidgetItem(str(i1)))self.table_result.setItem(i,1,QTableWidgetItem(path))self.table_result.setItem(i,2,QTableWidgetItem(cls))self.table_result.setItem(i,3,QTableWidgetItem(f{conf:.2%}))self.table_result.setItem(i,4,QTableWidgetItem(f[{x1},{y1},{x2},{y2}]))if__name____main__:appQApplication(sys.argv)winConstructionDetectUI()win.show()sys.exit(app.exec_())2. 开头先讲“为什么这个数据集有用”3. 正文结构建议第一部分数据集概览放总数量、图像尺寸、标注格式、类别数量。第二部分类别说明放 14 个类别表让读者一眼知道能检测什么。第三部分训练代码放 YOLOv11n 训练代码。第四部分界面演示放 PyQt5 界面代码和检测效果图。第五部分适用场景例如无人机工地巡检施工机械检测车辆闯入识别工地安全监测目标检测课程设计毕设项目参考