Skip to content

softeerbootcamp-7th/DE-Team3-LOV3

Repository files navigation

DE-Team3-LOV3

🚗 포트홀 조기 탐지 시스템 (Pothole Early Detection System)

차량 센서 데이터와 분산 처리를 활용한 저비용·고효율 도로 관리 솔루션

여수국가산업단지 인근 지방도 863호선을 모델로 하여, 민원 신고에 의존하던 기존 도로 관리 방식을 데이터 기반의 선제적 보수 체계로 전환합니다.

목차

  1. 프로젝트 개요
  2. 솔루션
  3. 기대 효과
  4. 데이터 프로덕트
  5. 데이터 파이프라인 설계 및 기술적 고려
  6. 기술 스택
  7. 팀원 소개

1. 프로젝트 개요

배경 및 문제점

여수공단(여수국가산업단지) 주변 지방도 863호선은 화물차 통행량이 많아 무거운 차량 하중으로 인한 도로 피로 파손 및 포트홀이 빈번하게 발생합니다.

포트홀(Pothole): 아스팔트 도로포장이 파손되어 노면 일부가 항아리(pot) 모양으로 움푹 패인 형태. 차량 파손과 교통사고를 유발하여 ’도로 위의 지뢰’ 라 불립니다.

863호선 현황

항목 내용
일간 교통량 약 5,000대 (화물차 비중 높음)
위험 요소 위험 시설물 인접, 사고 시 2차 피해 가능성
유지관리 예산 전라남도 포장도 유지관리 사업비 83.19억 원

기존 방식의 한계

지방도는 PMS(Pavement Management System) 를 예산 문제로 사용하지 못해 포트홀 발견을 민원 신고에 의존하고 있습니다.

구분 비용 한계점
정밀 장비 도입 5~9억 원 초기 투자 비용 과다
2~3년 주기 조사 약 6.8억 원 실시간 모니터링 불가
상시 운영 시 약 2,482억 원 (추정) 재정적 부담 과다

전략적 목표

24시간 조치 골든타임 확보

  • 차량 센서 데이터 수집 → 분석 → 서빙까지 24시간 이내 완료
  • 주무관이 출근 직후 전날 리포트를 확인하고 즉시 보수 팀 디스패치

한정된 자원의 효율적 배분

  • 충격 강도, 발생 빈도, 도로 등급을 결합한 보수 우선순위 자동 산정
  • 가장 위험한 곳에 자원을 먼저 투입할 수 있는 객관적 지표 제공

2. 솔루션

차량 센서 데이터를 활용하여 포트홀을 탐지합니다.

단계 설명
이상 탐지 (Stage1) 차량 센서 데이터에서 Z축 가속도 기반 충격 이벤트를 판별
공간 클러스터링 (Stage2) 50m 단위 세그먼트(s_id)별로 그룹화하여 포트홀 구간 집계
우선순위 산정 충격 강도 + 발생 빈도 + 도로 등급을 결합한 스코어링 시스템

결과물

설명
포트홀 관제 대시보드 긴급 보수가 필요한 구간을 최상단에 배치한 ‘Action List’ 제공
자동 이메일 리포트 매일 배치 완료 후 담당 주무관에게 보수 우선순위 리포트 자동 발송

포트홀 관제 대시보드

dashboard


자동 이메일 리포트

email

3. 기대 효과

관점 효과
경제적 PMS 대비 90% 이상 비용 절감, 소형 포트홀 선제 보수로 재포장 예산 절감
사회적 타이어 파손·연쇄 추돌 등 대형 사고 미연 방지, 차량 파손 배상 건수 감소
기술적 Spark 기반 수평 확장 가능, 현장 보수 결과 환류를 통한 탐지 정확도 고도화

4. 데이터 프로덕트

4-1. 데이터 흐름도

데이터 흐름도

  • 차량 센서 데이터 — 가속도, 자이로, GPS 등 주행 측정값 (S3 Parquet)
  • 방지턱 데이터 — 방지턱 위도, 경도 데이터 (CSV)
  • ITS 표준노드링크 — 863호선 도로 속성 (Shapefile)
  • 외부 API — Kakao 역지오코딩, 공공 민원 데이터

각 단계별 Input/Output 스키마는 아래 토글에서 확인할 수 있습니다.

[1] 센서 데이터 수집 및 Stage 1 이상탐지

Input — 차량 센서 데이터 (S3 Parquet)

컬럼 타입 설명
timestamp TIMESTAMP 센서 수집 시각
trip_id STRING trip 식별자
vehicle_id STRING 차량 식별자
accel_x/y/z DOUBLE 3축 가속도 (m/s²)
gyro_x/y/z DOUBLE 3축 자이로스코프 (°/s)
velocity DOUBLE 주행 속도 (km/h)
lon, lat DOUBLE GPS 경·위도
hdop DOUBLE GPS 수평 정밀도 저하율
satellites INT GPS 수신 위성 수

Output — 이상탐지 결과

컬럼 타입 설명
timestamp TIMESTAMP 센서 수집 시각
lon, lat DOUBLE GPS 경·위도
impact_score DOUBLE 정규화 센서값 기반 충격 점수
is_pothole INT 포트홀 여부 (1, 0)
[2] Stage 2 공간 클러스터링 (Stage 1 결과 + 도로망 조인)

Input 1 — Stage 1 이상탐지 결과 (위 Output과 동일)

Input 2 — 도로 세그먼트 (build_segments.py · 50m 분할)

컬럼 타입 설명
s_id STRING 세그먼트 ID
start_lon, start_lat DOUBLE 시작점 GPS 좌표
end_lon, end_lat DOUBLE 끝점 GPS 좌표

Output — UPSERT → pothole_segments

컬럼 타입 설명
s_id VARCHAR(50) 세그먼트 ID
centroid_lon, centroid_lat DOUBLE 세그먼트 중심 좌표
date DATE 집계 날짜
impact_count INTEGER 포트홀 탐지 횟수
total_count INTEGER 전체 포인트 수
[3] 사전 구축 및 데이터 로더 (PostgreSQL 적재)

build_road_grade.pysegment_road_grade

컬럼 타입 설명
s_id VARCHAR(50) 세그먼트 ID
link_id VARCHAR(50) ITS 링크 ID
road_grade INTEGER 도로 위험도 등급 (1~5)

complaint_loaderpothole_complaints

컬럼 타입 설명
create_dt DATE 민원 접수일
event_lon, event_lat DOUBLE 민원 좌표
nearest_s_id VARCHAR(50) 500m 이내 매칭 세그먼트
distance_m DOUBLE 매칭 거리

reverse_geocodingsegment_address

컬럼 타입 설명
s_id VARCHAR(50) 세그먼트 ID
road_name VARCHAR(200) 도로명
district VARCHAR(100) 시군구
[4] Materialized Views 집계 및 Dashboard 서빙
테이블/뷰 설명
pothole_segments 세그먼트별 일간 포트홀 집계 (Fact, 월별 파티션)
segment_address 세그먼트 주소 — Kakao 역지오코딩 (Dimension)
segment_road_grade 도로 위험도 등급 1~5
pothole_complaints 공공데이터 포트홀 민원 (500m 매칭)
Materialized Views heatmap · 우선순위 스코어 · 주간 통계

4-2. 인프라 아키텍처

인프라 아키텍처

4-3. 모듈 설명

각 모듈의 상세 내용은 개별 문서를 참고해 주세요.

모듈 역할
ingestion_service 863호선 가상 센서 데이터 생성 및 S3 적재 (Parquet)
road_network_builder 863호선 도로망 50m 세그먼트 분할 + 도로 위험도 등급 산출
processing_service Spark 2단계 배치 처리 (이상탐지 → 공간 클러스터링)
serving_service S3 → PostgreSQL 적재, MV 기반 대시보드, 우선순위 스코어링
infra Spark Standalone 클러스터 구성, EC2 온디맨드 기동/종료
airflow_service 4개 TaskGroup으로 구성된 일간 배치 파이프라인 DAG

5. 데이터 파이프라인 설계 및 기술적 고려

5-1. 기술적 고려사항

5-2. 비즈니스 로직 고려 사항

5-3. 운영 고려 사항

6. 기술 스택

Data Processing

Python PySpark PostgreSQL

Visualization

Streamlit Plotly Folium

Infrastructure

AWS EC2 AWS S3 Docker

Orchestration / CI·CD

Airflow GitHub Actions

7. 팀원 소개

라연 장현우 조현우
라연 장현우 조현우
DE DE DE

About

DE-Team3-LOV3 repo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors