시민이 웹 인터페이스를 통해 공공기물 파손을 쉽게 신고할 수 있는 AI 기반 스마트 신고 시스템입니다.
- 가로등 파손, 도로 파손, 도로 안전 펜스 파손 시 신고의 번거로움
- 기존 신고 시스템의 낮은 사용성
- 민원센터 전화 신고의 불편함
- 웹 기반 채팅형 인터페이스를 통한 간편한 신고
- AI 객체 탐지로 자동 손상 유형 분류
- 위치 정보 자동 추출
- 부서별 자동 연계
- 실시간 처리 상태 업데이트
- 이미지 객체 탐지: Hugging Face YOLO 모델 사용
- 손상 유형 자동 분류: 가로등, 도로파손, 안전펜스, 불법주정차 등
- 긴급도 AI 판단: 텍스트 키워드 분석 기반 긴급도 계산 (1-5단계)
- 군집 신고 탐지: DBSCAN 알고리즘으로 동일 지역 다중 신고 탐지
- 채팅형 UI: 카카오톡과 유사한 직관적인 인터페이스
- 사진 업로드: 클릭으로 간편 업로드
- 실시간 상태 확인: 신고 처리 과정 실시간 모니터링
- 손상 유형 선택: AI 추천 + 사용자 선택 옵션
- 지도 기능: 위치 확인 및 신고 현황 시각화
- EXIF 위치 추출: 사진에서 GPS 정보 자동 추출
- 실시간 대시보드: 신고 현황 및 통계 모니터링
- 필터링 기능: 긴급도, 손상 유형, 상태별 필터링
- 페이지네이션: 신고 내역 10개씩 조회
- 상세보기: 개별 신고 상세 정보 조회 및 관리
- 상태 관리: 신고 상태 업데이트 (접수 → 검토중 → 처리중 → 완료)
- 신고 삭제: 신고 삭제 기능
- 군집 신고 관리: 동일 지역 다중 신고 우선 처리
- 긴급 알림 시스템: 긴급도 4-5단계 신고 즉시 알림
- 실시간 지도: 신고 위치 군집 시각화
- FastAPI: 고성능 비동기 웹 프레임워크
- Python 3.8+: 메인 개발 언어
- SQLite: 경량 데이터베이스
- Hugging Face Transformers: 객체 탐지 모델 (YOLO)
- OpenCV: 이미지 처리
- scikit-learn: 군집 분석 (DBSCAN)
- PyTorch: 딥러닝 프레임워크
- PIL: 이미지 처리 및 EXIF 데이터 추출
- HTML5/CSS3/JavaScript: 반응형 웹 UI
- 카카오톡 스타일 디자인: 친숙한 사용자 경험
- Leaflet 지도: 위치 시각화
vandalism/
├── main.py # 메인 서버 (고급 기능 포함)
├── advanced_features.py # AI 고급 기능 모듈
├── cluster.py # 군집 분석 모듈
├── geocoding.py # 지오코딩 모듈
├── requirements.txt # Python 의존성
├── run.sh # 실행 스크립트
├── reports.db # SQLite 데이터베이스
├── .gitignore # Git 제외 파일 목록
├── static/ # 정적 파일
│ ├── index.html # 기본 사용자 인터페이스
│ ├── index_with_map.html # 지도 기능 포함 인터페이스
│ └── admin.html # 관리자 대시보드 (필터링, 페이지네이션, 상세보기)
├── uploads/ # 업로드된 이미지 저장 (Git 제외)
├── screenshots/ # 프로젝트 스크린샷 (직접 추가)
└── venv/ # 가상환경 (Git 제외)
git clone <repository-url>
cd vandalismpython3.10 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txt# 방법 1: 실행 스크립트 사용
./run.sh- 사용자 인터페이스: http://localhost:8000
- 관리자 대시보드: http://localhost:8000/admin
- API 문서: http://localhost:8000/docs
POST /api/upload- 이미지 업로드 및 AI 분석POST /api/report- 신고 접수GET /api/report/{report_id}- 신고 상태 조회GET /api/report/{report_id}/detail- 신고 상세 정보 조회GET /api/damage-types- 손상 유형 목록
GET /api/reports?limit={limit}&offset={offset}- 신고 목록 조회 (페이지네이션 지원)GET /api/statistics- 신고 통계GET /api/clusters- 군집 신고 현황POST /api/report/{report_id}/status- 신고 상태 업데이트DELETE /api/report/{report_id}- 신고 삭제GET /api/map- 군집 지도 데이터
- 객체 탐지: 사진만으로 손상 유형 자동 분류 (선택적)
- 긴급도 판단: 텍스트 키워드 분석으로 정확한 긴급도 계산
- 군집 탐지: 동일 지역 다중 신고 자동 탐지 및 우선 처리
- 카카오톡 스타일 UI: 친숙한 채팅 인터페이스
- 간편한 신고: 사진 업로드 → AI 분석 → 자동 신고
- 실시간 피드백: 처리 과정 실시간 업데이트
- 스마트 대시보드: 실시간 현황 모니터링
- 자동 우선순위: 긴급도 및 군집 기반 자동 우선순위 설정
- 예측 분석: 처리 시간 예측 및 리소스 최적화
사용자 → 웹 인터페이스 → FastAPI 서버 → AI 분석 엔진
↓
관리자 대시보드 ← SQLite DB ← 부서 연계 시스템
- http://localhost:8000 접속
- 사진 업로드 또는 텍스트 입력
- AI가 자동으로 손상 유형 분석
- 손상 유형 확인 및 확인
- 신고 완료
- http://localhost:8000/admin 접속
- 대시보드에서 전체 현황 확인
- 필터로 원하는 신고만 조회
- 페이지네이션으로 전체 내역 확인
- 상세보기로 신고 관리






