YOLOv8~v12와 SpringBoot 기반의 스마트 절연체 결함 감지 시스템

시스템 개요

현대 전력망의 안정성 확보를 위해 고압 송전선로의 핵심 구성 요소인 절연체의 상태 모니터링은 필수적인 작업입니다. 기존 수동 점검 방식은 인력 집중, 위험성, 주관적 판단 등 한계가 있으며, 실시간 정밀 분석이 어렵습니다.

본 시스템은 최신 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실시간 스트림 연결 정보 및 상태

결론

본 시스템은 단순한 결함 감지 도구를 넘어, 모델 관리, 데이터 축적, 지능형 진단, 협업 분석까지 가능한 종합적인 전력 설비 디지털 트랜스포메이션 플랫폼입니다. 기술적 우수성과 실용성을 겸비해 현장에서의 적용 가능성과 확장성이 매우 높습니다.

태그: YOLOv8 YOLOv10 YOLOv11 YOLOv12 SpringBoot

7월 16일 06:33에 게시됨