PieNet: Personalized Image Enhancement
1. Intro
자동으로 img enhancement를 수행하는 것이 어려운 이유
- in, output간 비선형적 관계
- 개인의 취향은 주관적 (딥러닝 기반 img enhancement의 -)
제안 : 개인화된 img enhancement를 위한 딥러닝 기반 방법
- preference vector
- PieNet : preference vector를 적용
2. Related Work
Img enhancement
기존 방법
- 규칙 기반
- hist eq
- retinex method
- img는 반사 × 조명으로 표현 가능하다는 가정
- 밝기 문제는 조명에 있다고 보고, 이를 조정해서 보정
- 데이터 기반
- MIT-Adobe 5K dataset을 회귀 기반 학습
- 비선형 mapping 학습 불가
- 딥러닝 기반
Personalization
Kang et al. [24]
- 사용자에게 25장의 대표 이미지를 파라미터 조절해서 직접 보정하게 함
- 새로운 이미지가 들어오면:
- 입력 이미지와 가장 유사한 대표 이미지 찾고
- 해당 대표 이미지의 파라미터를 그대로 적용
Caicedo et al. [7]
- 위의 방식을 확장해서 Collaborative filtering 도입 → 비슷한 취향을 가진 다른 유저의 보정 결과 참고
- 개인화 + 집단화(비슷한 사람끼리 취향 공유)
문제점
- 사용자가 직접 보정해야 하는 부담
- 여전히 파라미터 기반 : 비선형 아님, 단순한 매핑
차별점
- 사용자 노력 최소화
- first deep learning algorithm for personalized image enhancement를 통한 비선형 매핑
Metric learning
목표 : 비슷한 것은 가깝게, 다른 것은 멀게
기존 손실 함수
- Contrastive loss ([4,10,17])
- 같은 클래스 → 거리 최소화
- 다른 클래스 → 거리를 margin 이상으로 분리
- Triplet loss ([37])
- Anchor-Positive 거리는 가깝게
- 단순 contrastive loss보다 더 정교
- 기존 Personalization 알고리즘([7],[24])에서 Metric Learning은
- 보정 파라미터가 비슷한 이미지들을 embedding 공간에서 가깝게 모으는 게 목표
- vs 이 논문에서는 보정 파라미터가 아닌 사용자가 실제로 선호한 img 자체를 metric learning에 사용
3. Proposed Algorithm
3.1 Preference vector
Fig.3: Metric learning for the embedding space of preference vectors.
- 목표 : 임베딩 공간 안에서 사용자별 preference vector가 형성되도록 학습한다.
- Setting : N개의 학습 이미지에 대해 K명의 사용자 label vector가 있음 (p/n, 1/0)
- Triplet Sampling
- 두 img를 twin embedding network (ResNet-18 기반, 파라미터 공유)에 넣어 512차원 feature vector 뽑음
fk가 각 사용자 k의 preference vector/오른쪽은 loss (1)
3.2 PieNet architecture
Fig.4: Architecture of PieNet
- 사용자 k에 대해:
- Preference vector: fk (앞에서 metric learning으로 학습한 사용자 취향 벡터)
- 입력 이미지: I (원본 이미지)
- GT enhanced image: Ik (사용자 k가 선호하는 보정 결과)
- PieNet 출력:
- 직접 보정 이미지를 예측하지 않고, delta image ΔIk을 예측
- 최종 보정 결과는:
3.3 PieNet training
- Loss
- Color loss : 픽셀 단위 차이를 줄여 정확한 색/밝기 매칭
- Perceptual loss : 단순 픽셀 값이 아니라 고차원 feature 공간에서도 gt와 유사하게
- Total Variation loss : delta image ΔIk가 공간적으로 매끄럽게
loss (6)
3.4 Personalization for new users
- 핵심 : Scalability, 얼마나 쉽게 새로운 사용자 취향을 반영할 수 있는가?
- 아이디어 :
- 이미 학습된 embedding space와 PieNet은 그대로 두고
- 새로운 사용자에 대해 preference vector만 새로 정하자
- Positive + Negative 이미지 제공
- Positive 이미지만 제공 : feature vector들의 평균값을 preference vector로
4. Experiments
4.1 Evaluation on MIT-Adobe 5K
Dataset and metrics
- MIT-Adobe 5K dataset (5000/4500/500)
- 5000장의 사진을 각각 5명의 전문가가 보정
1. Embedding Network + Preference Vector Training
- Dataset : 원본 + A/B/C/D/E 보정본
- Positive/Negative 설정:
- ex. 사진작가 A의 preference vector 학습 시
- Positive = A의 보정 이미지
- Negative = 원본 이미지 & 다른 작가(B~E)의 보정 이미지
- 동일한 방식으로 B, C, D, E 각각 처리
- Loss: Triplet loss (loss (1))
- Optimizer: Adam, learning rate = 10^-4
- Training details:
- Iteration = 25,000 mini-batches
- Mini-batch size = 64 triplets
- Data augmentation = 90° 단위 랜덤 회전
- Margin = 0.2
- 결과: 학습된 embedding network + 5명의 사진작가별 preference vector
2. PieNet Training
- Dataset: A/B/C/D/E의 모든 image pairs (원본 - 보정본)
- 학습 목적: (입력 이미지, preference vector) → personalized enhanced image 생성
- Loss: loss (6) = Color loss + ρ·Perceptual loss + τ·Total variation loss (ρ=0.4, τ=0.01 고정)
- Optimizer: Adam, learning rate = 10^-4
- Training details:
- Iteration = 100,000 mini-batches
- Mini-batch size = 8
- Data augmentation = 90° 단위 랜덤 회전
- Preference vector perturbation = 노이즈 n 추가
- n은 hypersphere에서 샘플링
- ∥n∥2=0.1
- 목적: PieNet이 작은 벡터 변동에도 robust하게 동작하도록
Results
Table 1
- vs non-personalized image enhancement를 위한 conventional algorithms
1. Single User Test
- Settings
- C의 img를 gt로
- 공정한 비교를 위해 PieNet도 C의 보정 img로만 training
- vs
- WB [19], D&R [35]: unpaired data 사용해서 -
- DPE [9], Deep Bilateral [14], Retinex-based [42]: supervised (input-enhanced data 사용)
- 결과
- PieNet이 supervised 방식들보다도 +
- 이유
- encoder-decoder nw 구조+ preference vector
- loss의 조합(Color + Perceptual + TV)
- 특히 Perceptual loss Lp (embedding network 기반)가 PSNR + 크게 기여
2. Multiple User Test
- Settings
- PieNet : 각 사용자 preference vector만 바꿔서 personalized 결과 생성
- vs : 모든 입력에 대해 동일한 output 생성 (personalization 불가)
- 평가 방법
- 사용자별로 GT와 비교해 PSNR, SSIM 산출
- 5명 평균 → mPSNR, mSSIM
- 결과
- 기존
- C에 대해서만 최적화되어 있음 → 다른 사용자(A/B/D/E)와 비교하면 성능 -
- 새로운 사용자 스타일을 반영하려면 새로 학습 필요
- PieNet:
- 약간의 성능 저하는 있지만, 전반적으로 높은 PSNR/SSIM
- 오히려 multiple user 테스트에서 PieNet이 conventional single user보다 더 +
Fig.5 : Qualitative comparison of enhanced images
- HDR, DPE, DUPE → Photographer C 스타일과 비슷한 톤만 냄
- PieNet은 B,C 모두 preference vector만 바꿔서 만들어냄
4.2 Personalization
Dataset and metrics
- 문제점 : personalization 성능을 테스트하려면 새로운 사용자(=새로운 보정법)가 필요한데, 현실적으로 새로운 사람에게 5000장 retouch를 맡기는 건 불가능
- 해결 : 28개의 보정 방식을 new user로 취급 (MIT-Adobe 5K + Adobe Lightroom preset + conventional algo)
새로운 사용자에 대한 personalization generalization을 평가하기 위해 :
- Training (20 users)
- 11 Lightroom presets + 5 convetional [2,3,6,12,43] + A/B/C/D
- 각 방법마다 4,500쌍 (입력 - 보정 img)
- Test (8 users)
- 4 Lightroom presets + 3 conventional [13,16,30] + E
- 각 방법마다 500쌍
Implementation details
- Train
- 20명 데이터로 embedding space + PieNet training
- Test
- 각 사용자(method)에 대해 preference vector 계산:
- Triplet loss minimization
- 그 method의 enhanced img는 P / 나머지는 N으로
- Feature vector avg
- 그 method의 enhanced img만 P로 → feature 평균으로 preference vector 계산
Results
Fig 6
Fig 7
Fig 8: Visualization of the embedding space
5. Conclusion
결론 : PieNet은 사용자별 취향을 반영한 personalized image enhancement를 최초로 딥러닝 기반으로 제안했으며, 소량의 preferred images만으로도 강력한 성능을 보임
댓글 영역