智慧电力设备巡检-电力行业仪表数据集包括sf6继电器电流表电压表3类共3231张标注为xml格式可用于目标检测训练11电力行业仪表检测数据集SF6继电器电流表电压表3231张XML标注一、数据集信息表格项目详细内容数据集名称电力行业仪表检测数据集数据总量3231张检测类别3类SF6继电器、电流表、电压表标注格式XMLVOC标准格式任务类型目标检测应用场景电力巡检、仪表识别、自动读数、变电站智能监测适配模型YOLOv8 / YOLOv5 / Faster R-CNN二、环境准备conda create-npower_meterpython3.9conda activate power_meter pipinstalltorch1.9.0torchvision0.10.0 pipinstallultralytics opencv-python pillow三、数据集标准目录结构power_meter/ ├── Annotations/ # XML标注文件 ├── JPEGImages/ # 原始图片 ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/四、XML → YOLO TXT 格式转换代码importosimportxml.etree.ElementTreeasETimportcv2# 3类仪表定义classes[sf6_relay,ammeter,voltmeter]defxml_to_yolo(xml_path,img_w,img_h):treeET.parse(xml_path)roottree.getroot()labels[]forobjinroot.iter(object):cls_nameobj.find(name).textifcls_namenotinclasses:continuecls_idclasses.index(cls_name)bboxobj.find(bndbox)xminfloat(bbox.find(xmin).text)yminfloat(bbox.find(ymin).text)xmaxfloat(bbox.find(xmax).text)ymaxfloat(bbox.find(ymax).text)# 归一化坐标cx(xminxmax)/2.0/img_w cy(yminymax)/2.0/img_h w(xmax-xmin)/img_w h(ymax-ymin)/img_h labels.append(f{cls_id}{cx:.6f}{cy:.6f}{w:.6f}{h:.6f})returnlabelsif__name____main__:xml_dir./power_meter/Annotationsimg_dir./power_meter/JPEGImagessave_dir./power_meter/labels/trainos.makedirs(save_dir,exist_okTrue)forxml_fileinos.listdir(xml_dir):ifxml_file.endswith(.xml):img_pathos.path.join(img_dir,xml_file[:-4].jpg)imgcv2.imread(img_path)h,wimg.shape[:2]labelxml_to_yolo(os.path.join(xml_dir,xml_file),w,h)withopen(os.path.join(save_dir,xml_file[:-4].txt),w)asf:f.write(\n.join(label))print(✅ XML转YOLO格式完成)五、数据集配置文件power_meter.yamltrain:./power_meter/images/trainval:./power_meter/images/valnc:3names:0:sf6_relay1:ammeter2:voltmeter六、模型训练代码train.pyfromultralyticsimportYOLO# 加载YOLOv8模型modelYOLO(yolov8s.pt)# 开始训练model.train(datapower_meter.yaml,epochs100,batch16,imgsz640,patience10,device0,projectpower_meter_result,namepower_meter_detect)七、推理检测代码detect.pyfromultralyticsimportYOLOimportcv2# 加载训练好的模型modelYOLO(power_meter_result/power_meter_detect/weights/best.pt)# 单张图片测试imgcv2.imread(test.jpg)resultsmodel(img)# 保存结果cv2.imwrite(detect_result.jpg,results[0].plot())print(✅ 电力仪表检测完成)八、模型评估代码val.pyfromultralyticsimportYOLO modelYOLO(power_meter_result/power_meter_detect/weights/best.pt)metricsmodel.val(datapower_meter.yaml,imgsz640)print(*50)print(fmAP0.5:{metrics.box.map50:.4f})print(f精确率:{metrics.box.precision.mean():.4f})print(f召回率:{metrics.box.recall.mean():.4f})print(*50)