V1 로직(CLIP Prompt Embedding) - 100-hours-a-week/5-yeosa-wiki GitHub Wiki

0. 관련 배경 지식


1. 로직 설명

a. CLIP 기반 프롬프트 임베딩을 통해 sharp, good 두 필드의 점수를 추출하고, 아래 기준을 적용:

  • sharp 점수 ≥ 0.4880
  • good × 0.25 + sharp × 0.750.490

b. 이미지 통과 여부는 아래 4가지 중, “both”만 통과

  • both: 두 기준 모두 만족
  • sharp_only: sharp 기준만 만족
  • combined_only: 결합 기준만 만족
  • neither: 둘 다 실패

2. 기준 설정 이유

a. 두 필드의 상관관계

  • sharpgood 점수는 통계적으로 높은 상관관계를 보임
  • 하지만 완전히 동일하지 않고, 보완적인 특성을 가짐
    • sharp: 선명도 중심
    • good: 종합 품질 (색감, 구도 등도 포함)

b. 단일 기준의 한계

  • sharp_only → 선명하긴 하지만 전체 품질이 낮은 이미지가 존재
  • combined_only → 덜 선명하지만 품질은 좋은 이미지도 존재
  • 실제 실험에서 sharp_only, combined_only 케이스가 각각 확인됨

c. 결합 기준의 정당성

  • combined = good × 0.25 + sharp × 0.75는 sharp을 중심으로 하되, good이 낮을 경우 penalty를 줌
  • 이를 통해 sharp 기준만으로는 걸러내지 못하는 저품질 이미지를 필터링 가능
  • 동시에 sharp 클래스는 100% 통과하여 정상 이미지 손실 없음

3. 로직 테스트

a. 테스트에 사용한 데이터셋

  • Blur Dataset (Kaggle)

    출처: https://www.kaggle.com/datasets/kwentar/blur-dataset

  • 구성

    • sharp: 선명한 이미지

    • motion_blurred: 움직임에 의해 흐릿한 이미지

    • defocused_blurred: 초점이 맞지 않아 흐릿한 이미지

      각 클래스당 약 350장으로 균형 있게 구성됨

b. 테스트 결과

클래스 both combined_only sharp_only neither
sharp 100% 0% 0% 0%
defocused_blurred 82.3% 0.3% 2.9% 14.6%
motion_blurred 65.1% 0% 7.7% 27.1%

c. 결과 분석

  • False Positive는 없지만, 전체적으로 Recall이 낮은 상황
  • 추후 다른 로직을 사용해 보완 필요