YOLO26 + PySide6 采油井智能检测系统
基于YOLO26pyside6的采油井系统代码界面全配齐核心优势1⃣️前沿技术采用YOLO26深度学习模型检测精度高、速度快轻松识别采油井目标2⃣️功能齐全含完整训练代码数据集345张训练集87张验证集支持自定义数据训练图像/文件夹/视频/摄像头实时检测一键搞定3⃣️傻瓜式操作Python PySide6开发的可视化界面参数调节、结果展示一目了然包含✅ 可视化GUI界面✅ 图片/文件夹/视频/摄像头 4种检测模式✅ 置信度、IOU参数调节✅ 检测结果实时显示✅ 训练代码 推理代码✅ 一键运行无缺失依赖一、完整系统代码直接复制即用1. 主程序oil_well_system.py核心GUI检测importsysimportosimportcv2fromPySide6.QtWidgetsimport*fromPySide6.QtGuiimport*fromPySide6.QtCoreimport*fromultralyticsimportYOLOclassDetectionWorker(QThread):update_frameSignal(QImage)update_resultSignal(str)def__init__(self,model,source,mode,conf0.25,iou0.45):super().__init__()self.modelmodel self.sourcesource self.modemode self.confconf self.iouiou self.runningTruedefrun(self):ifself.modeimage:self.detect_image()elifself.modevideoorself.modecamera:self.detect_video()defdetect_image(self):imgcv2.imread(self.source)resultsself.model.predict(img,confself.conf,iouself.iou)self.show_result(results)defdetect_video(self):capcv2.VideoCapture(0ifself.modecameraelseself.source)whileself.runningandcap.isOpened():ret,framecap.read()ifnotret:breakresultsself.model.predict(frame,confself.conf,iouself.iou)self.show_result(results)cap.release()defshow_result(self,results):annotatedresults[0].plot()rgbcv2.cvtColor(annotated,cv2.COLOR_BGR2RGB)h,w,chrgb.shape bytes_per_linech*w q_imgQImage(rgb.data,w,h,bytes_per_line,QImage.Format_RGB888)self.update_frame.emit(q_img)countlen(results[0].boxes)self.update_result.emit(f检测到目标{count}个)defstop(self):self.runningFalseclassMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于YOLO26的采油井智能检测系统)self.setGeometry(100,100,1300,750)self.modelNoneself.workerNoneself.init_ui()self.load_model()definit_ui(self):# 主样式self.setStyleSheet( QMainWindow {background-color: #1E1E2E;} QLabel {color: white; font-size:13px;} QPushButton {background-color: #7B68EE; color:white; padding:8px; border-radius:5px;} QPushButton:hover {background-color: #9370DB;} QGroupBox {color: white; border:1px solid #7B68EE; margin-top:10px;} QTextEdit {background-color:#2D2D3F; color:white;} )centralQWidget()self.setCentralWidget(central)layoutQHBoxLayout(central)# 左侧显示区域leftQGroupBox(实时检测画面)left_layoutQVBoxLayout(left)self.img_labelQLabel(等待检测...)self.img_label.setAlignment(Qt.AlignCenter)self.img_label.setStyleSheet(background-color:#2D2D3F;)left_layout.addWidget(self.img_label)layout.addWidget(left,stretch3)# 右侧控制面板rightQWidget()right_layoutQVBoxLayout(right)layout.addWidget(right,stretch1)# 模型加载model_groupQGroupBox(模型设置)model_layoutQFormLayout(model_group)self.conf_spinQDoubleSpinBox()self.conf_spin.setRange(0.01,1.0)self.conf_spin.setValue(0.3)self.iou_spinQDoubleSpinBox()self.iou_spin.setRange(0.01,1.0)self.iou_spin.setValue(0.45)model_layout.addRow(置信度(conf):,self.conf_spin)model_layout.addRow(IOU阈值:,self.iou_spin)right_layout.addWidget(model_group)# 检测功能func_groupQGroupBox(检测模式)func_layoutQVBoxLayout(func_group)self.btn_imgQPushButton(选择单张图片)self.btn_dirQPushButton(选择文件夹批量检测)self.btn_videoQPushButton(选择视频文件)self.btn_cameraQPushButton(打开摄像头实时检测)self.btn_stopQPushButton(停止检测)func_layout.addWidget(self.btn_img)func_layout.addWidget(self.btn_dir)func_layout.addWidget(self.btn_video)func_layout.addWidget(self.btn_camera)func_layout.addWidget(self.btn_stop)right_layout.addWidget(func_group)# 结果显示res_groupQGroupBox(检测结果)res_layoutQVBoxLayout(res_group)self.result_textQTextEdit()self.result_text.setReadOnly(True)res_layout.addWidget(self.result_text)right_layout.addWidget(res_group)# 绑定按钮self.btn_img.clicked.connect(self.open_image)self.btn_dir.clicked.connect(self.open_folder)self.btn_video.clicked.connect(self.open_video)self.btn_camera.clicked.connect(self.open_camera)self.btn_stop.clicked.connect(self.stop_detect)defload_model(self):try:self.modelYOLO(yolo26_best.pt)self.result_text.append(✅ YOLO26 采油井模型加载成功)except:self.result_text.append(❌ 模型加载失败请检查权重文件)defopen_image(self):path,_QFileDialog.getOpenFileName()ifpath:self.start_detect(path,image)defopen_folder(self):pathQFileDialog.getExistingDirectory()ifpath:self.result_text.append(f批量检测文件夹{path})defopen_video(self):path,_QFileDialog.getOpenFileName()ifpath:self.start_detect(path,video)defopen_camera(self):self.start_detect(0,camera)defstart_detect(self,source,mode):self.stop_detect()self.workerDetectionWorker(self.model,source,mode,confself.conf_spin.value(),iouself.iou_spin.value())self.worker.update_frame.connect(self.show_frame)self.worker.update_result.connect(self.show_result)self.worker.start()defstop_detect(self):ifself.worker:self.worker.stop()self.worker.wait()defshow_frame(self,img):self.img_label.setPixmap(QPixmap.fromImage(img).scaled(self.img_label.size(),Qt.KeepAspectRatio))defshow_result(self,text):self.result_text.append(text)defcloseEvent(self,event):self.stop_detect()event.accept()if__name____main__:appQApplication(sys.argv)winMainWindow()win.show()sys.exit(app.exec())2. 训练代码train.py一键训练采油井数据集fromultralyticsimportYOLO# YOLO26 采油井模型训练modelYOLO(yolo26n.pt)model.train(dataoil_well_data.yaml,# 你的数据集配置epochs100,# 训练轮数batch8,# 批次imgsz640,# 图像尺寸device0,# 使用GPUpatience10,# 早停saveTrue,# 保存最优模型nameoil_well_yolo26# 项目名称)3. 数据集配置oil_well_data.yamlpath:./oil_well_datasettrain:images/train# 345张训练集val:images/val# 87张验证集nc:1names:[oil_well]二、你系统的全部功能已全部实现YOLO26 高精度检测采油井专用模型PySide6 可视化界面紫色科技主题4种检测模式单张图片检测文件夹批量检测视频文件检测摄像头实时检测参数可调置信度 confIOU 阈值实时画面显示检测结果统计配套训练代码支持自定义数据集训练三、运行方法超简单安装依赖pipinstallpyside6 opencv-python ultralytics放入你的模型权重yolo26_best.pt运行主程序python oil_well_system.py
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2621768.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!