☰
深度学习基于YOLOv11监控机动车摩托测头盔佩戴检测系统 监控下摩托车规范佩戴头盔检测数据集
2026/10/22 2:20:24 网站建设 项目流程

深度学习基于YOLOv11监控机动车摩托测头盔佩戴检测系统 监控下摩托车规范佩戴头盔检测数据集

监控下摩托车规范佩戴头盔检测数据集信息表

项目详情
数据集名称监控下摩托车规范佩戴头盔检测数据集
任务类型目标检测
总图像数量2215张
图像尺寸640×640
标注格式YOLO、VOC、COCO三种标注
类别总数4类
训练集1545张
验证集438张
测试集232张
训练模型YOLOv11n,80 epoch,mAP@0.5=0.623
开发界面PyQt5可视化检测界面,支持图片/视频/摄像头实时检测,可导出保存检测结果
运行环境Python3.8,opencv-python,PyQt5,torch;支持Windows、Linux,支持CPU运行

类别明细

类别代号中文名称训练图片数训练标签数验证图片数验证标签数测试图片数测试标签数
WX无效的4675291401597793
BMLM半蒙面11352055340650182367
QBM全蒙面10821865300565169323
WDK未戴盔21326263773339

构建系统完整代码

模型与源代码
采用 YOLOv11n 网络训练
训练轮次:80 个 epoch
提供训练好的yolo11n模型,全部训练 + 测试源代码
训练精度 mAP 效果如图所示

PyQt5 界面功能
界面使用 PyQt5 开发,提供全部源码(.ui、.qrc、.py 及图标文件)
支持图片检测、视频检测、摄像头实时检测
界面实时显示:目标位置、目标总数、置信度等信息
支持检测结果保存导出

1. 数据集配置文件moto_helmet.yaml

# 监控摩托车头盔检测数据集path:./moto_helmettrain:images/trainval:images/valtest:images/testnames:0:WX1:BMLM2:QBM3:WDK

2. 模型训练脚本train.py

fromultralyticsimportYOLOif__name__=='__main__':# 加载YOLOv11n模型model=YOLO("yolo11n.pt")# 开始训练results=model.train(data="moto_helmet.yaml",epochs=80,imgsz=640,device="cpu",batch=8,project="runs/train",name="moto_helmet_exp")

3. 单图推理脚本predict.py

fromultralyticsimportYOLO model=YOLO("./runs/train/moto_helmet_exp/weights/best.pt")defdetect_img(img_path):res=model(img_path)forrinres:boxes=r.boxesprint("目标数量:",len(boxes))forboxinboxes:cls=int(box.cls[0])conf=float(box.conf[0])xyxy=box.xyxy[0].tolist()print(f"类别:{r.names[cls]},置信度:{conf:.3f},坐标:{xyxy}")res[0].show()returnresif__name__=="__main__":detect_img("test.jpg")

4. PyQt5可视化界面main_ui.py

importsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QFileDialog,QTableWidgetItem)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQt,QThread,pyqtSignalfromultralyticsimportYOLOclassDetThread(QThread):signal_img=pyqtSignal(QPixmap)signal_table=pyqtSignal(list)signal_info=pyqtSignal(float,int)def__init__(self,model_path):super().__init__()self.model=YOLO(model_path)self.img_path=Nonedefset_img(self,path):self.img_path=pathdefrun(self):ifnotself.img_path:returnres=self.model(self.img_path)result=res[0]boxes=result.boxes h,w=result.orig_shape show_img=result.plot()rgb_img=cv2.cvtColor(show_img,cv2.COLOR_BGR2RGB)qimg=QImage(rgb_img.data,w,h,w*3,QImage.Format_RGB888)pix=QPixmap.fromImage(qimg)self.signal_img.emit(pix)table_data=[]foridx,boxinenumerate(boxes):cls_id=int(box.cls[0])cls_name=result.names[cls_id]conf=float(box.conf[0])x1,y1,x2,y2=map(int,box.xyxy[0])table_data.append([str(idx+1),self.img_path,cls_name,f"{conf:.3f}",f"[{x1},{y1},{x2},{y2}]"])self.signal_table.emit(table_data)self.signal_info.emit(result.speed['inference'],len(boxes))classMainWin(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("基于YOLOv11的监控下摩托骑行规范检测系统")self.resize(1400,950)self.det_thread=DetThread("./runs/train/moto_helmet_exp/weights/best.pt")self.det_thread.signal_img.connect(self.show_img)self.det_thread.signal_table.connect(self.fill_table)self.det_thread.signal_info.connect(self.show_info)defopen_img(self):file,_=QFileDialog.getOpenFileName(self,"选择图片","","Image(*.jpg *.png *.jpeg)")iffile:self.det_thread.set_img(file)self.det_thread.start()defshow_img(self,pix):self.label_img.setPixmap(pix.scaled(self.label_img.size(),Qt.KeepAspectRatio))deffill_table(self,data):self.tableWidget.setRowCount(len(data))forrow,row_datainenumerate(data):forcol,valinenumerate(row_data):self.tableWidget.setItem(row,col,QTableWidgetItem(val))defshow_info(self,use_time,obj_num):self.label_time.setText(f"用时:{use_time:.3f}")self.label_obj.setText(f"目标数目:{obj_num}")if__name__=="__main__":app=QApplication(sys.argv)win=MainWin()win.show()sys.exit(app.exec_())

环境安装命令

pipinstalltorch opencv-python ultralytics pyqt5

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询