无人机电力巡检|电力设施缺陷识别|智慧电网AI视觉检测数据集10092期
传统人工登塔巡检风险高、效率低、漏检频发,无人机+深度学习正成为电网智能化标配。但电力场景目标细碎、缺陷隐蔽、标注成本高,优质专用数据集一直是算法落地的核心瓶颈。

数据集总览
本数据集为无人机航拍电力设施专用目标检测数据集,覆盖正常设备与故障状态,专为电力自动化巡检、缺陷识别、智能运维开发,可直接支撑模型训练、验证、测试全流程。
检测目标(38类)
- 核心设备:电缆、塔架、变压器
- 绝缘子类:玻璃绝缘子、聚合物绝缘子、各类shackle配件
- 安全部件:避雷针悬挂装置、避雷器
- 故障状态:断缆、破损阻尼器、受损ALS等异常
数据规模
- 图像总量:9400张
- 配套资源:3个数据集文件、1个训练完成的目标检测模型
- 场景覆盖:多光照、多角度、多环境,样本多样性充足,有效降低过拟合
数据格式
- 图像:JPG/PNG等通用格式
- 标注:XML/TXT/JSON,含边界框与类别标签
- 兼容:YOLO、PyTorch、TensorFlow等主流框架
核心应用价值
- 巡检自动化:无人机自动识别设备与故障,替代人工登塔,大幅降低安全风险
- 运维提效:快速定位缺陷类别与位置,缩短排查与抢修时间
- 算法研发:为电力检测、缺陷分割、小目标识别提供高质量标注数据
- 工程落地:开箱即用,配套模型可直接集成巡检平台
深度学习代码(电力场景经验注释)
python
# ==============================
# 电力设施目标检测 · 训练配置
# 适配:电缆/塔架/绝缘子/缺陷检测
# 经验:电力小目标多,建议用yolov8m以上,conf设0.25--0.35
# ==============================
from ultralytics import YOLO
import torch
def train_power_inspection():
# 1. 加载模型(电力场景推荐m/l,兼顾精度与速度)
model = YOLO("yolov8m.pt")
# 2. 数据集配置(本数据集38类,按实际路径修改)
data_cfg = {
"train": "./data/images/train",
"val": "./data/images/val",
"nc": 38, # 电力设施38类
"names": [
"cable", "tower", "transformer",
"insulator_glass", "insulator_polymer", "shackle",
"lightning_arrester", "broken_cable", "damaged_damper", ...
]
}
# 3. 训练参数(电力航拍经验值)
train_params = {
"data": data_cfg,
"epochs": 100,
"imgsz": 640, # 航拍小目标建议640+
"batch": 16,
"device": 0 if torch.cuda.is_available() else "cpu",
"lr0": 0.01,
"lrf": 0.01,
"momentum": 0.937,
"weight_decay": 0.0005,
"warmup_epochs": 3,
"conf": 0.3, # 缺陷漏检风险高,置信度不宜过高
"iou": 0.45,
"augment": True, # 开启增强应对航拍角度/光照变化
"cache": True,
"patience": 15,
"save": True,
"plots": True
}
# 4. 启动训练
model.train(** train_params)
if __name__ == "__main__":
train_power_inspection()
python
# ==============================
# 电力巡检 · 推理与缺陷告警代码
# 经验:输出坐标+类别+置信度,直接对接平台告警
# ==============================
def predict_power_fault(model_path, img_path, save_res=True):
model = YOLO(model_path)
# 推理:电力小目标调低conf,提高召回
results = model(img_path, conf=0.25, iou=0.45, save=save_res)
for r in results:
boxes = r.boxes
if len(boxes) == 0:
print("未检测到电力设施/缺陷")
continue
for box in boxes:
cls_id = int(box.cls)
cls_name = model.names[cls_id]
conf = round(float(box.conf), 3)
x1, y1, x2, y2 = map(int, box.xyxy[0])
# 缺陷告警逻辑
if cls_name in ["broken_cable", "damaged_damper", "damaged_ALS"]:
print(f"⚠️ 发现缺陷:{cls_name} | 置信度:{conf} | 坐标:({x1},{y1},{x2},{y2})")
else:
print(f"✅ 检测设备:{cls_name} | 置信度:{conf}")
# 调用示例
predict_power_fault("./weights/best.pt", "./test.jpg")





标签
#无人机电力巡检 #智慧电网 #电力设施检测 #绝缘子缺陷识别 #电缆故障检测 #AI电力运维 #计算机视觉电力