시스템 개요
현대 전력망의 안정성 확보를 위해 고압 송전선로의 핵심 구성 요소인 절연체의 상태 모니터링은 필수적인 작업입니다. 기존 수동 점검 방식은 인력 집중, 위험성, 주관적 판단 등 한계가 있으며, 실시간 정밀 분석이 어렵습니다.
본 시스템은 최신 YOLOv8 ~ YOLOv12 모델을 통합한 고성능 이미지 인식 엔진과 SpringBoot 기반의 백엔드, 응답형 웹 인터페이스를 결합한 종합적인 절연체 결함 감지 플랫폼입니다. 다양한 입력 형태(이미지, 영상, 실시간 카메라 스트림)에 대응하며, 각 검사 결과는 MySQL 기반의 구조화된 데이터베이스에 저장되어 추적 및 분석이 가능합니다.
핵심 기능
- 다중 모델 동적 전환: YOLOv8, v10, v11, v12 중 원하는 성능/속도 조건에 맞춰 모델을 선택하여 검사 실행.
- 다양한 입력 지원: 사진 업로드, 영상 파일 분석, 실시간 카메라 스트리밍 모두 처리 가능.
- AI 기반 보고서 생성: DeepSeek LLM을 활용해 검출 결과를 텍스트로 변환하고, 결함 원인 분석 및 유지보수 제안을 포함한 자동 보고서 생성.
- 통합 데이터 관리: 사용자 계정, 검사 기록, 결함 유형, 신뢰도 등 모든 정보를 체계적으로 저장 및 시각화.
- 접근성 및 보안 강화: 로그인/회원가입, 역할 기반 권한 설정(일반 사용자/관리자), 프로필 수정, 비밀번호 변경 기능 제공.
기술 스택
| 계층 | 기술 |
|---|---|
| 모델 | YOLOv8, YOLOv10, YOLOv11, YOLOv12 (Ultralytics 기반) |
| 백엔드 | Java, SpringBoot, REST API |
| 프론트엔드 | Vue3, Element Plus, TypeScript |
| 데이터베이스 | MySQL 8.0+ |
| AI 분석 | DeepSeek LLM (API 연동) |
| 환경 | Docker, GPU 가속 (CUDA 기반) |
모델 트레이닝 예시 코드
from ultralytics import YOLO
# 모델 경로 및 데이터셋 설정
model_path = 'models/yolo12s.pt'
data_yaml = 'data/insulator_data.yaml'
if __name__ == '__main__':
model = YOLO(model_path)
results = model.train(
data=data_yaml,
epochs=500,
batch=64,
device='cuda:0',
workers=4,
project='training_runs',
name='insulator_detection_v12',
imgsz=640
)
모델 특징 요약
- YOLOv8: 무박스 설계, 효율적인 해드 아키텍처, 빠른 실시간 처리.
- YOLOv10: NMS 제거, 일관된 이중 할당 기법으로 지연 시간 최소화.
- YOLOv11: 고정밀 + 저파라미터 설계, 다양한 시각 작업(분류, 세그멘테이션 등) 지원.
- YOLOv12: 주의 기반 아키텍처, 지역 주의 메커니즘, FlashAttention 적용으로 효율성 향상.
프론트엔드 인터페이스 예시
<template>
<div class="login-page">
<!-- 배경 애니메이션 -->
<div class="circuit-bg">
<div class="grid-lines" v-for="i in 20" :key="i"></div>
<div class="scan-line" v-for="j in 5" :key="j"></div>
</div>
<!-- 로그인 폼 -->
<div class="auth-panel">
<h1>절연체 결함 감지 시스템 <span>v5.2</span></h1>
<el-form :model="form" :rules="rules" ref="loginForm">
<el-form-item prop="id">
<el-input v-model="form.id" placeholder="사용자 아이디" />
</el-form-item>
<el-form-item prop="pw">
<el-input type="password" v-model="form.pw" placeholder="비밀번호" />
</el-form-item>
<el-button type="primary" @click="handleSubmit">로그인</el-button>
</el-form>
</div>
</div>
</template>
백엔드 서비스 예시
@RestController
@RequestMapping("/api/detect")
public class DetectionController {
@Autowired
private DetectionService detectionService;
@PostMapping("/image")
public ResponseEntity<DetectionResult> detectImage(@RequestParam("file") MultipartFile file) {
try {
return ResponseEntity.ok(detectionService.processImage(file));
} catch (Exception e) {
return ResponseEntity.status(500).build();
}
}
@PostMapping("/video")
public ResponseEntity<VideoAnalysisResult> analyzeVideo(@RequestParam("file") MultipartFile file) {
return ResponseEntity.ok(detectionService.processVideo(file));
}
}
데이터베이스 설계 요약
| 테이블명 | 설명 |
|---|---|
| users | 사용자 계정 정보 (아이디, 비밀번호 해시, 역할) |
| image_records | 이미지 검사 기록 (파일 경로, 결과, 시간, 모델) |
| video_records | 영상 검사 기록 (시작/종료 시간, 결함 수, 평균 FPS) |
| camera_streams | 실시간 스트림 연결 정보 및 상태 |
결론
본 시스템은 단순한 결함 감지 도구를 넘어, 모델 관리, 데이터 축적, 지능형 진단, 협업 분석까지 가능한 종합적인 전력 설비 디지털 트랜스포메이션 플랫폼입니다. 기술적 우수성과 실용성을 겸비해 현장에서의 적용 가능성과 확장성이 매우 높습니다.