철도 데이터셋 구축
철도 AI 모델의 성능은 데이터셋 품질에 의해 결정된다. 국내외 공개 데이터셋을 최대한 활용하고, 현장 특수성을 반영한 커스텀 데이터셋으로 보완하는 전략이 핵심이다.
핵심 요약
| 항목 | 내용 |
|---|---|
| 국내 주요 출처 | AI Hub (철도 선로, 전차선 애자 데이터셋) |
| 해외 주요 출처 | RailFOD23, RailSem19, RailVista, Rail-5k |
| 권장 라벨링 도구 | CVAT, Label Studio, Roboflow (수동) / SAM, YOLO (자동) |
| 최소 권장 데이터량 | 클래스당 500장 이상 (소형 객체는 2,000장 이상 권장) |
| 증강 필수 항목 | 모자이크, Mixup, 수평 뒤집기, 밝기·대비 변환 |
문서 탐색
AI Hub 국내 철도 데이터셋
AI Hub(aihub.or.kr)에서 무료로 다운로드 가능한 국내 최대 규모 철도 데이터셋이다.
1) 철도 선로 상태 인식 데이터
총 151,814세트의 레일 및 주변 시설물 이미지로 구성된 대규모 데이터셋이다.
- 이미지 수: 151,814장 (훈련 121,451 / 검증 15,181 / 테스트 15,182)
- 클래스 수: 15개
- 베이스라인 성능: YOLOv5 기반 mAP 87.41%
- 어노테이션 형식: YOLO, COCO JSON, VOC XML 동시 제공
- 촬영 조건: 주간·야간, 맑음·흐림·강우, 계절별 다양
세부 클래스 목록
| 번호 | 클래스명 | 설명 |
|---|---|---|
| 1 | rail | 레일 본체 |
| 2 | rail_joint | 레일 이음매 |
| 3 | sleeper_wood | 목침목 |
| 4 | sleeper_concrete | 콘크리트 침목 |
| 5 | fastener_normal | 정상 체결장치 |
| 6 | fastener_defect | 결함 체결장치 |
| 7 | ballast | 자갈 도상 |
| 8 | switch_rail | 분기기 레일 |
| 9 | guard_rail | 가드 레일 |
| 10 | expansion_joint | 신축 이음매 |
| 11 | foreign_object | 지장물 (일반) |
| 12 | vegetation | 초목·잡초 |
| 13 | crack | 레일 균열 |
| 14 | corrosion | 부식 |
| 15 | missing_part | 부품 누락 |
2) 전차선 애자 상태 인식 데이터
고속·일반 철도 전차선 시스템의 애자 및 주변 장치를 대상으로 한 데이터셋이다.
- 이미지 수: 133,845세트
- 시설물 종류: 14종
- 촬영 방식: 드론, 고소작업차, 지상 고정 카메라 혼합
- 주요 이상 유형: 오손, 파손, 변위, 누락
전차선 시설물 클래스
| 번호 | 클래스명 | 설명 |
|---|---|---|
| 1 | insulator_disc | 현수 애자 (디스크형) |
| 2 | insulator_pin | 핀 애자 |
| 3 | insulator_strain | 인류 애자 |
| 4 | catenary_wire | 조가선 |
| 5 | contact_wire | 전차선 (접촉선) |
| 6 | dropper | 드로퍼 |
| 7 | clamp | 클램프 |
| 8 | bracket | 브래킷 |
| 9 | mast | 전주 |
| 10 | section_insulator | 섹션 절연체 |
| 11 | earth_wire | 접지선 |
| 12 | surge_arrester | 피뢰기 |
| 13 | junction_box | 접속함 |
| 14 | tension_device | 장력 조정 장치 |
해외 공개 데이터셋
| 데이터셋 | 규모 | 클래스 수 | 특징 | 링크 |
|---|---|---|---|---|
| RailFOD23 | 33,288장 | 12 (지장물 특화) | 드론 + 지상 혼합, 다국가 노선 | GitHub |
| RailSem19 | 8,500장 | 19 | 시맨틱 세그멘테이션 포함, 유럽 노선 | Web |
| RailVista | 15,000장 | 8 | 고해상도 파노라마, 선로 전방 시점 | Kaggle |
| Rail-5k | 5,000장 | 5 | 균열·부식 특화, 실험실 수준 고해상도 | IEEE DataPort |
| Roboflow Railway | 가변 | 가변 | 커뮤니티 공유 다수, 바로 사용 가능 | Roboflow Universe |
RailFOD23은 2023년 기준 가장 규모가 크고 다양한 철도 지장물 데이터셋이다. 드론 시점 이미지 비율이 높아 본 프로젝트에 가장 적합하다.
클래스 설계 예시
프로젝트 목적에 따라 대분류-세부클래스 체계를 설계해야 한다.
| 대분류 | 세부 클래스 | 탐지 우선순위 |
|---|---|---|
| 레일 | rail_normal, rail_crack, rail_break, rail_corrode | 최상 (안전 critical) |
| 체결장치 | fastener_ok, fastener_loose, fastener_missing | 상 |
| 침목 | sleeper_wood, sleeper_concrete, sleeper_crack | 중 |
| 전차선 | catenary_wire, contact_wire, wire_sag, wire_break | 최상 |
| 애자 | insulator_ok, insulator_dirty, insulator_broken | 상 |
| 신호기 | signal_green, signal_red, signal_missing | 최상 |
| 지장물 | person, vehicle, rock, debris, vegetation | 최상 (안전 critical) |
| 분기기 | switch_normal, switch_defect, switch_missing | 상 |
| 표지 | speed_sign, warning_sign, km_post | 하 |
커스텀 데이터셋 구축 파이프라인
flowchart TD A[드론 촬영] --> B[이미지 전처리<br/>노이즈 제거, 해상도 표준화, 색상 보정] B --> C{라벨링 방식} C -->|수동| D[CVAT / Label Studio / Roboflow] C -->|자동| E[SAM 자동 라벨링 + 사람 검수] D --> F[품질 검수<br/>교차 검수, IoU 일관성 확인] E --> F F --> G[형식 변환<br/>YOLO .txt / COCO .json / VOC .xml] G --> H[데이터 증강<br/>Albumentations / Ultralytics 내장] H --> I[훈련/검증/테스트 분할<br/>8:1:1 권장] I --> J[모델 학습]
라벨링 도구 비교
| 도구 | 방식 | 장점 | 단점 | 추천 용도 |
|---|---|---|---|---|
| CVAT | 수동 | 오픈소스, 팀 협업, 다양한 출력 형식 | 설치 복잡 | 대규모 팀 프로젝트 |
| Label Studio | 수동 | 설치 간단, ML 연동 지원 | UI 속도 느림 | 소규모~중간 |
| Roboflow | 수동 | 웹 기반, 증강·변환 내장 | 무료 제한 있음 | 빠른 프로토타입 |
| LabelImg | 수동 | 가장 단순, 로컬 전용 | 기능 제한 | 개인 실험용 |
| SAM 자동 라벨링 | 자동 | 수작업 불필요, 대량 처리 가능 | GPU 필요, 사람 검수 필수 | 1차 라벨 자동 생성 |
| YOLO pseudo-label | 자동 | 초고속(~2ms/장), 반복 학습 가능 | SAM 라벨 품질에 의존 | 2차+ 반복 자동 라벨링 |
자동 라벨링의 상세 구현(SAM→YOLO 반복 학습)은 3.1.3 철도 파이프라인 설계에서 다룬다.
데이터 수집 주의사항
촬영 각도 및 해상도
- 권장 드론 고도: 15~30m (레일 폭 기준 충분한 해상도 확보)
- GSD (Ground Sampling Distance): 1cm/px 이하 권장
- 촬영 각도: 수직(Nadir) 80%, 사선(Oblique) 20% 혼합
- 오버랩: 전방 80%, 측방 70% 이상 유지
계절·날씨 다양성
| 조건 | 중요도 | 비고 |
|---|---|---|
| 맑은 날 주간 | 필수 | 기본 기준 데이터 |
| 흐린 날 | 높음 | 전체 데이터의 20% 이상 포함 |
| 강우 중 | 중간 | 방수 드론 필요 |
| 야간 (조명 있음) | 높음 | 적외선 카메라 또는 조명 드론 |
| 적설 상태 | 중간 | 겨울철 특이 케이스 |
| 역광 · 강한 그림자 | 높음 | 탐지 성능 저하 주요 원인 |
철도 특수 환경 대응
주의사항:
1. 열차풍 (열차 통과 시 강한 기류 발생)
- 드론 이격 거리: 궤도 중심에서 최소 10m 이상
- 고속철도 통과 전후 30초 비행 금지
2. 전자기파 간섭 (전차선 전자기파 영향)
- 컨트롤러 2.4GHz 대역 간섭 가능
- 868MHz 또는 900MHz 대역 대체 권장
- 드론 내부 차폐 설계 필요
3. GPS 불가 구간 (터널, 지하 구간)
- LiDAR SLAM 또는 VIO(Visual-Inertial Odometry) 활용
- 사전 3D 맵 구축 후 자율 비행 적용
4. 진동 및 고속 이동
- 열차 탑재 카메라는 방진 마운트 필수
- 전자식 손떨림 보정(EIS) 필수 적용