智能变电巡检:AI检测新突破

变电智能巡视目标检测平台

人物识别

调阈值


视频识别


文件夹推理

目录结构设计

text 复制代码
power_detection_platform/
│
├── main.py                    # 程序入口
├── ui_main_window.py          # 主窗口UI设计
├── detection_worker.py        # 检测工作线程
├── yolo_detector.py          # YOLO检测器封装
├── utils.py                   # 工具函数
├── config.py                  # 配置文件
├── styles.py                  # 样式文件
│
├── models/                    # 模型文件目录
│   └── yolov13n.pt           # 默认模型
├── assets/                    # 资源文件
│   ├── logo.png              # 默认logo
│   └── icons/                # 图标文件
├── logs/                      # 日志目录
│   └── 20241217_143022.log   # 时间戳命名的日志文件
├── results/                   # 检测结果保存目录
└── temp/                      # 临时文件目录

示例代码文件

1. config.py

python 复制代码
"""
配置文件 - 定义常量、路径和默认配置
"""

import os
from datetime import datetime

# 项目根目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

# 颜色配置 - 国网绿色主题
COLORS = {
    "国网绿": "#1A8C3A",
    "深国网绿": "#0D5A25",
    "淡绿色": "#F0F9F0",
    "白色": "#FFFFFF",
    "边框绿": "#C8E6C9",
    "文字灰": "#333333",
    "浅灰": "#F5F5F5",
    "按钮绿": "#1A8C3A",
    "按钮悬停": "#146C2E",
    "按钮按下": "#0D4D21"
}

# 路径配置
PATHS = {
    "models": os.path.join(BASE_DIR, "models"),
    "assets": os.path.join(BASE_DIR, "assets"),
    "logs": os.path.join(BASE_DIR, "logs"),
    "results": os.path.join(BASE_DIR, "results"),
    "temp": os.path.join(BASE_DIR, "temp")
}

# 默认配置
DEFAULT_CONFIG = {
    "model": "yolov13n.pt",
    "confidence": 0.25,
    "iou": 0.45,
    "save_results": True
}

# 创建必要的目录
for path in PATHS.values():
    os.makedirs(path, exist_ok=True)

# 日志文件路径
LOG_FILE = os.path.join(PATHS["logs"], f"{datetime.now().strftime('%Y%m%d_%H%M%S')}.log")

2. styles.py

python 复制代码
"""
样式文件 - 定义UI组件的样式
"""

from config import COLORS

# 主窗口样式
MAIN_STYLE = f"""
QMainWindow {{
    background-color: {COLORS['白色']};
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    font-size: 12px;
}}

QWidget {{
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    font-size: 12px;
}}
"""

# 标题样式
TITLE_STYLE = f"""
QLabel {{
    background-color: {COLORS['国网绿']};
    color: {COLORS['白色']};
    font-size: 20px;
    font-weight: bold;
    padding: 12px;
    text-align: center;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
}}
"""

# 左侧面板样式
LEFT_PANEL_STYLE = f"""
QFrame {{
    background-color: {COLORS['淡绿色']};
    border: 1px solid {COLORS['边框绿']};
    border-radius: 6px;
    margin: 5px;
    padding: 8px;
}}
"""

# 组框样式
GROUP_BOX_STYLE = f"""
QGroupBox {{
    background-color: {COLORS['淡绿色']};
    border: 1px solid {COLORS['边框绿']};
    border-radius: 5px;
    margin-top: 10px;
    padding-top: 12px;
    font-weight: bold;
    color: {COLORS['文字灰']};
    font-size: 12px;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
}}

QGroupBox::title {{
    subcontrol-origin: margin;
    subcontrol-position: top center;
    padding: 0 6px;
    background-color: {COLORS['淡绿色']};
}}
"""

# 按钮样式
BUTTON_STYLE = f"""
QPushButton {{
    background-color: {COLORS['按钮绿']};
    color: {COLORS['白色']};
    border: none;
    border-radius: 4px;
    padding: 6px 12px;
    font-weight: bold;
    font-size: 11px;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    min-height: 28px;
}}

QPushButton:hover {{
    background-color: {COLORS['按钮悬停']};
}}

QPushButton:pressed {{
    background-color: {COLORS['按钮按下']};
}}

QPushButton:disabled {{
    background-color: #CCCCCC;
    color: #999999;
}}
"""

# 工具栏按钮样式
TOOLBAR_BUTTON_STYLE = f"""
QPushButton {{
    background-color: {COLORS['按钮绿']};
    color: {COLORS['白色']};
    border: none;
    border-radius: 4px;
    padding: 8px 12px;
    font-size: 11px;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    min-height: 32px;
}}

QPushButton:hover {{
    background-color: {COLORS['按钮悬停']};
}}

QPushButton:pressed {{
    background-color: {COLORS['按钮按下']};
}}
"""

# 控制按钮样式
CONTROL_BUTTON_STYLE = f"""
QPushButton {{
    background-color: {COLORS['按钮绿']};
    color: {COLORS['白色']};
    border: none;
    border-radius: 5px;
    padding: 10px 16px;
    font-weight: bold;
    font-size: 12px;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    min-height: 36px;
}}

QPushButton:hover {{
    background-color: {COLORS['按钮悬停']};
}}

QPushButton:pressed {{
    background-color: {COLORS['按钮按下']};
}}

QPushButton:disabled {{
    background-color: #CCCCCC;
    color: #999999;
}}
"""

# 滑块样式
SLIDER_STYLE = f"""
QSlider::groove:horizontal {{
    border: 1px solid {COLORS['边框绿']};
    height: 6px;
    background: {COLORS['浅灰']};
    margin: 1px 0;
    border-radius: 3px;
}}

QSlider::handle:horizontal {{
    background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 {COLORS['国网绿']}, stop:1 {COLORS['深国网绿']});
    border: 1px solid {COLORS['深国网绿']};
    width: 16px;
    margin: -2px 0;
    border-radius: 8px;
}}
"""

# 表格样式
TABLE_STYLE = f"""
QTableWidget {{
    border: 1px solid {COLORS['边框绿']};
    border-radius: 4px;
    gridline-color: {COLORS['边框绿']};
    background-color: {COLORS['白色']};
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    font-size: 10px;
}}

QTableWidget::item {{
    padding: 4px;
    border-bottom: 1px solid {COLORS['边框绿']};
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
}}

QHeaderView::section {{
    background-color: {COLORS['国网绿']};
    color: {COLORS['白色']};
    padding: 6px;
    border: none;
    font-weight: bold;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    font-size: 10px;
}}
"""

# 标签样式
LABEL_STYLE = f"""
QLabel {{
    color: {COLORS['文字灰']};
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    font-size: 11px;
}}
"""

# 状态栏样式
STATUS_STYLE = f"""
QStatusBar {{
    background-color: {COLORS['淡绿色']};
    color: {COLORS['文字灰']};
    border-top: 1px solid {COLORS['边框绿']};
    padding: 6px;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
    font-size: 10px;
}}
"""

# 显示区域样式
DISPLAY_STYLE = f"""
QLabel {{
    border: 1px solid {COLORS['边框绿']};
    background-color: {COLORS['浅灰']};
    color: {COLORS['文字灰']};
    border-radius: 4px;
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
}}
"""

# 进度条样式
PROGRESS_STYLE = f"""
QProgressBar {{
    border: 1px solid {COLORS['边框绿']};
    border-radius: 5px;
    text-align: center;
    background-color: {COLORS['浅灰']};
    font-family: "Microsoft YaHei UI", "微软雅黑", sans-serif;
}}

QProgressBar::chunk {{
    background-color: {COLORS['国网绿']};
    border-radius: 5px;
}}
"""

启动说明

  • 环境要求

bash

pip install PyQt5 opencv-python numpy

  • 启动命令

bash

python main.py

  • 控制台输出示例
text 复制代码
2024-12-17 14:30:22 - __main__ - INFO - 启动变电智能巡视目标检测平台...
2024-12-17 14:30:22 - __main__ - INFO - ============================================================
2024-12-17 14:30:22 - __main__ - INFO - 变电智能巡视目标检测平台启动成功
2024-12-17 14:30:22 - __main__ - INFO - 日志文件位置: /path/to/logs/20241217_143022.log
2024-12-17 14:30:22 - __main__ - INFO - 平台功能:
2024-12-17 14:30:22 - __main__ - INFO -   - 支持图片、视频、摄像头、文件夹多种输入源
2024-12-17 14:30:22 - __main__ - INFO -   - 可调节置信度和交并比参数
2024-12-17 14:30:22 - __main__ - INFO -   - 实时显示检测结果和统计信息
2024-12-17 14:30:22 - __main__ - INFO -   - 支持暂停、继续、停止检测操作
2024-12-17 14:30:22 - __main__ - INFO - ============================================================

代码后续开源!!!!

相关推荐
InfiSight智睿视界2 小时前
AI 技术助力汽车美容行业实现精细化运营管理
大数据·人工智能
没有钱的钱仔3 小时前
机器学习笔记
人工智能·笔记·机器学习
听风吹等浪起3 小时前
基于改进TransUNet的港口船只图像分割系统研究
人工智能·深度学习·cnn·transformer
化作星辰3 小时前
深度学习_原理和进阶_PyTorch入门(2)后续语法3
人工智能·pytorch·深度学习
boonya4 小时前
ChatBox AI 中配置阿里云百炼模型实现聊天对话
人工智能·阿里云·云计算·chatboxai
8K超高清4 小时前
高校巡展:中国传媒大学+河北传媒学院
大数据·运维·网络·人工智能·传媒
老夫的码又出BUG了4 小时前
预测式AI与生成式AI
人工智能·科技·ai
AKAMAI4 小时前
AI 边缘计算:决胜未来
人工智能·云计算·边缘计算
flex88884 小时前
输入一个故事主题,使用大语言模型生成故事视频【视频中包含大模型生成的图片、故事内容,以及音频和字幕信息】
人工智能·语言模型·自然语言处理