← 포트폴리오 목록

해양쓰레기 AI 판정 관리 시스템

현장 작업자의 모바일 앱 촬영 이력과 PyTorch YOLOv11 추론 결과를 연동하여, 해양환경 적치장의 폐어망 봉투 수·위험지수·판정 결과를 거점·로트 단위로 조회하고 PDF 리포트로 내보내는 관리자 웹 시스템을 FastAPI + React 기반으로 설계·구현합니다.

YOLOv11 추론 API 핫스왑 구조 설계FastAPI 추론 서버에 PyTorch 모델을 로딩하고 파일 경로 교체만으로 재배포 없이 버전을 전환할 수 있는 핫스왑 구조를 설계합니다
거점·로트 3단 계층 조회 체계 구축거점→로트→판정결과 계층 쿼리를 SQLAlchemy 관계 매핑으로 구현하고 다중 조건 필터 빌더를 설계합니다
PDF 판정 리포트 자동 생성 파이프라인 구현jsPDF 기반 템플릿 엔진으로 위험지수 게이지와 상세 판정 테이블을 조합한 리포트를 자동 생성합니다
서비스 타입Web
업종데이터 분석
기술 스택
ReactTypeScriptTailwind CSSReact NativeFastAPIFlaskSQLAlchemyPyTorchPostgreSQL
주요 기능
  • AI 판정 분석 대시보드
  • 현장 촬영 이력
  • 거점·로트 조회
  • 판정 리포트
Overview

프로젝트 개요

범위: 개발, 디자인, 기획

현장 작업자의 모바일 앱 촬영 이력과 PyTorch YOLOv11 추론 결과를 연동하여, 해양환경 적치장의 폐어망 봉투 수·위험지수·판정 결과를 거점·로트 단위로 조회하고 PDF 리포트로 내보내는 관리자 웹 시스템을 FastAPI + React 기반으로 설계·구현합니다.

작업 범위

  • AI 판정 분석 대시보드: 관리자가 거점별 최근 판정 결과와 위험지수 추이를 한눈에 확인할 수 있는 통합 대시보드
  • 현장 촬영 이력: 현장 작업자가 촬영한 사진과 GPS·촬영 시각 메타데이터를 목록으로 조회
  • 거점·로트 조회: 관리자가 거점(적치장)과 작업 로트 단위로 분석 결과를 조회
  • 판정 리포트: 종합 판정 리포트를 화면으로 확인하고 PDF로 다운로드

주요 업무

  • AI 판정 분석 대시보드 화면: FastAPI 추론 API 응답을 집계해 상단 KPI와 하단 위젯 그리드로 시각화하는 구조를 구현합니다
  • 현장 촬영 이력 화면: 모바일 업로드 API가 기록한 위치·시각 정보를 관리자가 검증할 수 있는 이력 화면을 구현합니다
  • 거점·로트 조회 화면: 거점-로트-판정 결과 3단 계층 구조를 조회할 수 있는 관리자 대시보드 화면을 구현합니다
  • 판정 리포트 화면: 판정 결과를 요약 리포트 레이아웃으로 구성하고 PDF 파일로 내보내는 기능을 구현합니다
해양쓰레기 AI 판정 관리 시스템
요구사항 정의

프로젝트 핵심 과제

프로젝트 진행 시 해결한 핵심 기술 과제입니다.

PyTorch YOLOv11 모델의 입출력 포맷과 전처리 파이프라인은 계약 후 실제 모델 파일을 인수해야 정합성 검증이 가능하여

표준 추론 인터페이스로 우선 설계한 뒤 대응합니다

현장 촬영 이미지의 GPS·시각 메타데이터 누락이나 오차 가능성에 대비해 업로드 단계 검증 로직과 예외 처리 흐름을 설계할 계획입니다

정부지원사업 특성상 빠른 납기와 산출물(소스코드·설계문서·테스트) 제출 요건이 함께 요구되어

검증된 T1 스택과 문서화를 병행하는 개발 프로세스로 대응합니다

다수 거점에서 동시에 업로드되는 로트 데이터를 병합할 때 발생할 수 있는 동시성 충돌에 대비해 트랜잭션 격리 수준을 설계할 계획입니다

구현 내용

핵심 기능 상세

핵심 기능 1

AI 판정 분석 대시보드

관리자가 거점별 최근 판정 결과와 위험지수 추이를 한눈에 확인할 수 있는 통합 대시보드. FastAPI 추론 API 응답을 집계해 상단 KPI와 하단 위젯 그리드로 시각화하는 구조를 구현합니다.

  • FastAPI 추론 엔드포인트 응답(봉투 수·위험지수·판정 결과)을 PostgreSQL에 적재 후 Recharts로 시계열 시각화
  • YOLOv11 인스턴스 분할(instance segmentation) 결과를 마스크 오버레이로 렌더링하는 컴포넌트 설계
  • 거점별 위험지수 랭킹과 스파크라인을 상단 KPI 카드로 배치하는 topbar-analytics 구조 적용

PyTorch 기반 YOLOv11 모델을 FastAPI 추론 서버에 로딩해 사진 1장당 봉투 수·위험지수·판정 결과를 반환하며, 모델 상태 확인용 경량 Flask 헬스체크 API를 병행 구성하는 구조를 설계합니다.

AI 판정 분석 대시보드
AI 판정 분석 대시보드 실제 화면
핵심 기능 2

현장 촬영 이력

현장 작업자가 촬영한 사진과 GPS·촬영 시각 메타데이터를 목록으로 조회. 모바일 업로드 API가 기록한 위치·시각 정보를 관리자가 검증할 수 있는 이력 화면을 구현합니다.

  • React Native 카메라 모듈과 Geolocation API로 촬영 시 GPS 좌표·타임스탬프를 자동 첨부
  • Multer 기반 이미지 업로드 API와 AWS S3 저장소 연동으로 원본 이미지 보존
  • 촬영 이력 목록에 무한 스크롤과 거점·기간 필터를 적용한 조회 UI 구현

현장 촬영부터 서버 저장까지 GPS·시각 메타데이터가 유실 없이 이어지는 업로드 파이프라인을 구현합니다.

현장 촬영 이력
현장 촬영 이력 실제 화면
핵심 기능 3

거점·로트 조회

관리자가 거점(적치장)과 작업 로트 단위로 분석 결과를 조회. 거점-로트-판정 결과 3단 계층 구조를 조회할 수 있는 관리자 대시보드 화면을 구현합니다.

  • 거점→로트→판정결과 3단 계층 쿼리를 PostgreSQL 인덱스와 SQLAlchemy 관계 매핑으로 구현
  • 다중 조건(거점·기간·위험등급) 조합이 가능한 동적 쿼리 빌더 설계
  • 테이블 뷰와 카드 뷰 전환이 가능한 반응형 데이터 그리드 컴포넌트 구현

다수 거점에서 수집되는 로트 단위 판정 데이터를 계층 구조로 정리해 관리자가 빠르게 탐색할 수 있는 조회 체계를 설계합니다.

거점·로트 조회
거점·로트 조회 실제 화면
핵심 기능 4

판정 리포트

종합 판정 리포트를 화면으로 확인하고 PDF로 다운로드. 판정 결과를 요약 리포트 레이아웃으로 구성하고 PDF 파일로 내보내는 기능을 구현합니다.

  • jsPDF 기반 리포트 템플릿 엔진으로 거점·로트별 판정 요약을 PDF로 변환
  • 리포트 상단 위험지수 게이지 차트, 하단 상세 판정 테이블 레이아웃 설계
  • 리포트 생성 이력을 별도 테이블에 저장해 재다운로드 가능한 구조 구현

정부지원사업 제출용 산출물 요건에 맞춰 판정 결과를 표준 리포트 양식의 PDF로 즉시 내보낼 수 있는 구조를 구현합니다.

판정 리포트
판정 리포트 실제 화면
구현 과정

프로젝트 진행 단계

STEP 1

해양쓰레기 판정 데이터 모델 및 추론 API 설계 · 2026.09

거점·로트·판정결과 테이블 설계, FastAPI 추론 엔드포인트 스펙 정의, YOLOv11 모델 로딩 구조 설계

STEP 2

현장 촬영 업로드 및 GPS·시각 기록 API 개발 · 2026.09

모바일 업로드 API, GPS·타임스탬프 자동 기록, AWS S3 이미지 저장소 연동 구현

STEP 3

관리자 웹 대시보드 및 리포트 개발 · 2026.09

거점·로트별 조회 화면, 위험지수 차트, jsPDF 기반 판정 리포트 생성 기능 구현

STEP 4

통합 테스트 및 배포 준비 · 2026.09

추론 API-웹 연동 검증, 권한별 접근 제어 테스트, 배포 스크립트 구성

프로젝트 성과

주요 성과

YOLOv11 추론 API 핫스왑 구조 설계FastAPI 추론 서버에 PyTorch 모델을 로딩하고 파일 경로 교체만으로 재배포 없이 버전을 전환할 수 있는 핫스왑 구조를 설계합니다
거점·로트 3단 계층 조회 체계 구축거점→로트→판정결과 계층 쿼리를 SQLAlchemy 관계 매핑으로 구현하고 다중 조건 필터 빌더를 설계합니다
PDF 판정 리포트 자동 생성 파이프라인 구현jsPDF 기반 템플릿 엔진으로 위험지수 게이지와 상세 판정 테이블을 조합한 리포트를 자동 생성합니다
현장 업로드 GPS·시각 메타데이터 검증 로직 설계촬영 시점의 위치·시각 정보를 서버 저장 전 검증해 누락·오차를 걸러내는 로직을 설계합니다
Highlights

기술적 주안점

  • PyTorch 기반 YOLOv11 모델을 FastAPI 추론 서버에 로딩해 사진 1장당 봉투 수·위험지수·판정 결과를 반환하며, 모델 상태 확인용 경량 Flask 헬스체크 API를 병행 구성하는 구조를 설계합니다
  • 현장 촬영부터 서버 저장까지 GPS·시각 메타데이터가 유실 없이 이어지는 업로드 파이프라인을 구현합니다
  • 다수 거점에서 수집되는 로트 단위 판정 데이터를 계층 구조로 정리해 관리자가 빠르게 탐색할 수 있는 조회 체계를 설계합니다

유사한 프로젝트를 기획하고 계신가요?

FIRSTPIP이 개발 범위와 로드맵을 함께 정리해드립니다

무료 상담 시작하기