深度学习基于YOLOv11明厨亮灶厨房违规检测系统 明厨亮灶-不规范行为及老鼠检测数据集
深度学习基于YOLOv11明厨亮灶厨房违规检测系统 明厨亮灶-不规范行为及老鼠检测数据集明厨亮灶-不规范行为及老鼠检测数据集7924张yolo和voc两种标注方式7类标注数量Mask: 572No_Mask: 123Phone: 3008Hat: 5069No_Hat: 83Mouse: 1300Smoke: 801image num: 7924模型代码模型训练使用yolov11n训练50个epoch训练结果map如描述图所示。qt界面运行界面采用pyqt编写本项目已经训练好模型配置好环境后可直接使用运行效果见描述图像**明厨亮灶‑厨房违规检测 YOLOv11PyQt5完整数据集yaml配置 kitchen.yamlpath:./datasets/kitchentrain:images/trainval:images/valtest:images/testnames:0:Hat1:Mask2:Mouse3:No_Hat4:No_Mask5:Phone6:Smoketrain.py训练代码fromultralyticsimportYOLOif__name____main__:modelYOLO(yolo11n.pt)model.train(datakitchen.yaml,epochs80,imgsz640,batch8,device0,workers0)PyQt5可视化界面 main_gui.pyimportsysimportcv2fromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QPushButton,QLabel,QFileDialog,QTextEdit,QComboBox)fromPyQt5.QtGuiimportQImage,QPixmapfromPyQt5.QtCoreimportQtfromultralyticsimportYOLOclassKitchenDetect(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于YOLOv11的明厨亮灶‑厨房违规检测系统)self.resize(1280,720)self.modelYOLO(./runs/detect/train/weights/best.pt)self.btn_imgQPushButton(图片检测,self)self.btn_img.move(30,20)self.btn_img.clicked.connect(self.detect_img)self.btn_videoQPushButton(视频检测,self)self.btn_video.move(130,20)self.btn_video.clicked.connect(self.detect_video)self.btn_camQPushButton(摄像头实时检测,self)self.btn_cam.move(230,20)self.btn_cam.clicked.connect(self.detect_cam)self.label_showQLabel(self)self.label_show.setGeometry(20,80,800,600)self.cb_classQComboBox(self)self.cb_class.addItem(全部)self.cb_class.setGeometry(850,80,400,30)self.log_textQTextEdit(self)self.log_text.setGeometry(850,130,400,550)defdetect_img(self):path,_QFileDialog.getOpenFileName(self,打开图片,,Image(*.jpg *.png))ifnotpath:returnresself.model.predict(path,saveFalse)imgres[0].plot()h,w,cimg.shape qimgQImage(img.data,w,h,w*c,QImage.Format_RGB888).rgbSwapped()self.label_show.setPixmap(QPixmap.fromImage(qimg).scaled(self.label_show.size(),Qt.KeepAspectRatio))textforboxinres[0].boxes:clsself.model.names[int(box.cls)]conffloat(box.conf)x1,y1,x2,y2map(int,box.xyxy[0])textf类别:{cls}置信度:{conf:.2f}xmin:{x1},ymin:{y1},xmax:{x2},ymax:{y2}\nself.log_text.setText(text)defdetect_video(self):path,_QFileDialog.getOpenFileName(self,打开视频,,Video(*.mp4 *.avi))ifnotpath:returncapcv2.VideoCapture(path)whilecap.isOpened():ret,framecap.read()ifnotret:breakoutself.model.predict(frame,saveFalse)[0].plot()cv2.imshow(视频检测,out)ifcv2.waitKey(1)0xfford(q):breakcap.release()cv2.destroyAllWindows()defdetect_cam(self):capcv2.VideoCapture(0)whilecap.isOpened():ret,framecap.read()ifnotret:breakoutself.model.predict(frame,saveFalse)[0].plot()cv2.imshow(摄像头实时检测,out)ifcv2.waitKey(1)0xfford(q):breakcap.release()cv2.destroyAllWindows()if__name____main__:appQApplication(sys.argv)winKitchenDetect()win.show()sys.exit(app.exec_())环境安装pipinstallultralytics pyqt5 opencv-python