PhotoNester: AI 기반 사진 정리 앱 개발 기술 요약
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
- iOS 개발자, on-device ML 기술 적용자, Swift/SwiftUI 및 Core ML 프레임워크 사용자
- 난이도: 중급 이상 (Core ML 모델 최적화, CLIP 활용, App Store 검수 대응 포함)
핵심 요약
- CLIP 모델 활용: OpenAI의 CLIP을 사용해 이미지의 semantic embedding을 생성하여 사진 분류 (예:
CLIP
모델) - Core ML + Swift 구현:
SwiftUI
인터페이스와Core ML
기반의 unsupervised clustering (예:k-means
알고리즘) - 개인정보 보호 기술: on-device processing으로 클라우드 전송 없이 실행 (예:
MLModelConfiguration().computeUnits = .all
설정)
섹션별 세부 요약
1. **The Spark: Organizing Chaos**
- 사용자의 사진 정리 곤란을 해결하기 위한 AI 기반 분류 앱 개발 목적
- Apple Memories, 제3자 앱 등 기존 솔루션의 한계 (예: privacy violation, low control)
2. **Choosing the Brains: CLIP as My Visual Engine**
- CLIP 모델 선택 이유: 이미지의 semantic embedding 생성 가능
- Core ML로 PyTorch 모델 변환 (
coremltools
사용) 및 on-device performance 최적화 - 다양한 이미지 세트 (여행, 문서 등)에 대한 embedding 일관성 테스트
3. **Core ML and Swift: The Technical Build**
- SwiftUI + Core ML 기반 앱 구조
- Batch processing (100개 이미지 단위 처리) 및 progress tracking 구현
- k-means clustering으로 분류된 앨범 생성 (예: "Travel", "Pets" 등)
4. **Keeping It Private**
- on-device processing으로 클라우드 전송 없이 실행 (예: privacy 보장)
- performance 개선 (즉시 결과 제공, 데이터 소유권 보장)
5. **The App Store Hurdles**
- iPadOS 18.5 버전에서 MPSGraph backend 문제로 앱 거부
- MLModelConfiguration().computeUnits = .all 설정으로 CPU/GPU fallback 활성화
- App Store 메타데이터, 기능 시각화 완료 후 재제출
6. **What PhotoNester Does Now**
- 자동 분류 기능: "Travel", "Food", "Documents" 등 앨범 생성
- 오프라인 작동, privacy 보장, 빠른 처리 속도
7. **What’s Next**
- 커스텀 카테고리, 시간 기반 필터, 스마트 태깅 등 기능 확장 계획
결론
- Core ML + CLIP 모델 활용 시
computeUnits
설정으로 iPadOS 호환성 확보 필요 - on-device processing은 privacy와 performance를 동시에 달성
- SwiftUI + Core ML 기반 앱 개발은 모바일 AI 앱 개발의 핵심 전략