ojo
도로 사진 한 장으로 손상을 분석하고 점검 리포트 초안까지 만드는 점검 보조 플랫폼
Problem담당자가 직접 순찰하며 육안으로 판단하는 방식이라 시간이 많이 들고 사람마다 판단 기준이 달라 점검 결과를 믿기 어려움
Built데이터셋 구조·클래스 ID 표준화 · 품질 검증 스크립트 · 탐지 결과 화면 · 후보 모델 비교로 세그멘테이션 모델 채택
Result캡스톤디자인 경진대회 장려상
구조
손상 유무만 표시하는 데서 끝내지 않고 분할 결과를 면적·위치 지표로 바꾼 뒤 리포트 초안까지 이어지게 만들었습니다.
초록 칸은 모델 추론과 지표 계산이고 파란 칸만 LLM을 호출합니다. AI는 판단을 보조하고 최종 결정은 담당자가 합니다.
핵심 결정
박스 탐지 → 픽셀 단위 분할
Before제가 제안한 YOLO 계열 박스 탐지는 얇은 균열이나 경계가 불규칙한 포트홀의 면적을 재기 어려움
After후보 모델을 함께 파인튜닝해 비교한 뒤 팀원이 제안한 LiteRaceSegNet(Semantic Segmentation)을 채택 · 저는 학습 데이터 파이프라인과 프론트엔드를 맡는 것으로 역할을 다시 나눔
Why손상 면적과 위치를 숫자로 뽑아야 보수 우선순위를 객관적으로 정할 수 있음
데이터셋 구조 표준화
Before모은 데이터셋마다 폴더 구조와 클래스 ID가 달라 그대로 학습에 넣을 수 없음
Afterorganize.py로 폴더 구조와 클래스 ID를 하나로 맞추고 validate.py로 이미지·마스크 품질을 검증하는 단계를 만듦
Why모델을 바꾸거나 데이터를 추가해도 같은 형식으로 바로 학습에 투입하기 위해서
시각화에서 리포트 초안까지
Before현장 사진을 사무실로 가져와 정리하고 보고서를 손으로 작성함
After원본과 분석 결과를 한 화면에 나란히 보여주고 손상 비율·유형·위치(카카오 지도 핀)를 바탕으로 LLM이 리포트 초안을 생성 · PDF로 다운로드
Why반복되는 문서 작업을 줄이고 점검 기록의 형식을 일정하게 유지하기 위해서
결과
팀 모델 LiteRaceSegNet은 mIoU 0.8072와 Precision 0.8864를 기록했고 파라미터 0.125M으로 이미지 한 장을 3.097ms에 처리합니다. 캡스톤디자인 경진대회에서 장려상을 받았습니다.
0.8072mIoU
0.8864Precision
장려상캡스톤디자인 경진대회
핵심 인사이트
- 구조 요소를 하나씩 뺀 비교에서 LiteASPP를 제거했을 때 mIoU가 0.0222로 가장 크게 떨어졌습니다. 문맥 정보가 도로 표면과 그림자를 구분하는 핵심이라는 뜻입니다.
- 기존 연구의 아이디어(MobileNet · ASPP · Boundary-aware Segmentation)를 출처와 함께 밝히고 도로 손상에 맞춘 경량 재구성이라는 점을 기여 범위로 구분했습니다.
- 데이터: train 2,400쌍 · val 10쌍 · test 10장 (AWS 검증 환경) · 검증 표본이 작아 일반화 해석은 보수적으로 봐야 합니다.
한계와 다음 단계
- Boundary IoU 0.3212 · Recall 0.3350으로 작은 균열과 약한 경계는 놓치는 경우가 많음 → 경계 recall 개선이 다음 과제
- 그림자나 도로 질감을 손상으로 잘못 검출할 가능성이 있음
- 데이터 정리·검증 스크립트를 실제 포트홀 데이터로 다시 돌려 결과를 정리할 예정
- 사진을 올리는 주체를 담당자 → 시민 → CCTV 자동 탐지로 넓혀도 같은 분석 파이프라인이 동작하도록 확장 구상