AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

자율주행 차량의 이미지 세분화 시스템 개발

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인공지능

대상자

자율주행 차량 개발 담당 AI 엔지니어 및 소프트웨어 개발자

  • 난이도: 중간 수준 (딥러닝, 이미지 처리 기술 필요)

핵심 요약

  • MobileNetV2-UNet 아키텍처 사용: MobileNetV2 (가벼운 인코더) + UNet (세분화 디코더) 결합
  • Cityscapes 데이터셋 활용: 30개 이상의 클래스를 8개 주요 카테고리로 축소
  • 실시간 성능을 위한 224×224 이미지 리샘플링데이터 증강 (수평 플립, 밝기 변조)

섹션별 세부 요약

1. 데이터 탐색 및 준비

  • Cityscapes 데이터셋 분석: 5,000개 이미지 (2,975개 학습, 500개 검증, 1,525개 테스트)
  • 리샘플링: 원본 2048×1024 → 224×224 (MobileNetV2 최적화)
  • 데이터 증강:

- 수평 플립 (50% 확률)

- 밝기 변조 (±0.1)

- def augment_data(image, mask): 함수 구현

2. 모델 개발

  • 아키텍처:

- 인코더: MobileNetV2 (가중치 고정: base_model.trainable = False)

- 디코더: UNet의 U형 구조 (skip connection, upsampling)

- 최종 레이어: Conv2D(8, 1x1, activation='softmax') (8개 클래스 확률 출력)

  • 학습 전략:

- Transfer Learning: ImageNet 사전 학습 가중치 사용

- Batch NormalizationReLU 활성화 함수 적용

3. 모델 배포

  • REST API: FastAPI로 구축 (모델 추론 엔드포인트 제공)
  • 프론트엔드: Next.js로 웹 애플리케이션 개발 (실시간 세분화 시연)
  • 배포: Heroku (API) 및 Vercel (프론트엔드)

4. 평가 및 문서화

  • 성능 검증:

- 정확도, F1-Score 지표 평가

- 데이터 누수 방지를 위해 원본 train 분할 (80% 학습, 20% 검증), val 데이터셋 사용 (테스트)

  • 문서화:

- 기술 노트 작성 (GitHub: https://github.com/DavidScanu/oc-ai-engineer-p08-images-systeme-voiture-autonome)

결론

  • 실무 적용 팁: MobileNetV2-UNet은 실시간 처리가 필요한 자율주행 시스템에 적합하며, 데이터 증강 및 클래스 축소 전략을 통해 리소스 제약을 극복할 수 있음.
  • 모델 최적화: 가중치 고정, 리샘플링, skip connection을 통해 계산 효율성과 세분화 정확도 균형 달성.