# [EST soft]비정형프로젝트 #나만의 VIBE코드

![Image](https://upload.cafenono.com/image/slashpagePost/20260116/174438_J4GJ22IBIRqL8VVzkl?q=80&s=1280x180&t=outside&f=webp)

### Data & Code : 

[GitHub - Sonbori/emotivibe](https://github.com/Sonbori/emotivibe)

# 1. 프로젝트 개요

**목표**

- 사진 한 장으로 사용자의 감정을 **자동 분류**하고, **감정 흐름 시각화**까지 제공하는 AI 서비스

- 감정 기록의 번거로움과 주관성을 보완

- 심리학 기반의 **3차원 감정모델(PAD)**을 적용하여 결과를 직관적이고 재미있게 해석

**배경**

- 기존 감정 기록 도구는 사용자가 직접 텍스트로 작성 → 주관적이고 번거로움

- 감정은 자기이해와 정신건강 관리의 핵심이지만 기록률이 낮음

- 이미지 기반 감정 인식 기술 발전 → 자동화된 감정 분석 가능

💡 **한 줄 요약**

> EfficientNet-B0 + CBAM을 활용해 사진 속 사용자의 감정을 4클래스로 분류하고, PAD 심리 모델을 통해 직관적인 VIBE 코드로 시각화한 실시간 웹 서비스

---

# 2. 데이터셋 & EDA

[Data](https://www.notion.so/Data-24d7c390940480569fe4ecb58b33718f?pvs=21)

### 데이터 구조

- 학습(train), 검증(val), 테스트(test) 폴더 분리

- 각 폴더에 `img/`, `label/`, `segmentation/` 구조

- 클래스: Anger, Happy, Panic, Sadness

- 데이터 수량: Train 약 1500장, Val 300장, Test 300장

### 데이터 분석

- 라벨 `.json`에 이미지 파일명, 성별, 나이, 업로더 감정, annotator 3명의 판단 결과, 얼굴 Bbox 좌표 포함

- 성별·연령 분포 균형 양호

- Bbox 위치 분포 고르게 분포 → 모델 학습 적합

---

# 3. 모델링

[Modelling](https://www.notion.so/Modelling-24d7c3909404807194dbcb9e7b6aa71a?pvs=21)

### 후보 모델

1. **EfficientNet-B0** → 정확도 높고 추론 속도 우수, 전이학습 효과 큼

2. **ResNet50** → 깊은 구조, 과적합 방지 효과

3. **MobileNet-V3** → 가벼운 모델, 실시간 추론 적합

4. **ViT (Vision Transformer)** → 전역적 특징 학습 강점

### 실험 결과

- 최종 선택: **EfficientNet-B0 + CBAM**

- 성능 향상 기법:

    - OneCycleLR + Label Smoothing

    - MixUp / CutMix 교차 적용

    - 클래스 불균형 완화: Weighted Sampler

    - CBAM(Channel & Spatial Attention) → 얼굴의 세밀한 특징 강조

### 성능 지표

- Train/Val Loss 안정적으로 감소 → 과적합 없음

- F1-score 일정하게 유지 → 일반화 성능 확보

- Grad-CAM 시각화로 얼굴 주요 부위에 집중하는 Attention 확인

---

# 4. 웹 서비스 통합

[Web](https://www.notion.so/Web-24d7c3909404809fb55bebadcc5cf135?pvs=21)

[Code 구현 등](https://www.notion.so/Code-24d7c39094048063ad62e7e58ec80b2d?pvs=21)

### 아키텍처

- **Front-end**: HTML, CSS, JavaScript

- **Back-end**: Flask REST API

- **AI Model**: EfficientNet-B0 + CBAM

### 기능

- 이미지 업로드 → 감정 분류(Anger, Happy, Panic, Sadness)

- **PAD 모델** 기반 감정 수치 산출

- Pleasure(쾌락), Arousal(각성), Dominance(지배)

- NRC VAD Lexicon 활용 (과학적 신뢰도 Valence 0.99, Arousal 0.98, Dominance 0.96)

[PAD? VIBE CODE?](https://www.notion.so/PAD-VIBE-CODE-24d7c390940480729593f653c1a8a221?pvs=21)

- **VIBE 코드** 생성: MBTI처럼 직관적·재미있게 감정을 유형화

    - 예: P(+), A(+), D(+) = 긍정·활성·통제

---

# 5. 문제 해결 전략

| 문제 | 해결 방법 | 효과 |
| --- | --- | --- |
| 클래스 불균형 | Weighted Sampler + MixUp/CutMix | 특정 클래스 쏠림 완화 |
| 배경·표정 다양성 | ColorJitter, RandomResizedCrop, HorizontalFlip | 데이터 다양성 확보 |
| 세밀한 감정 구분 | CBAM 적용 | 얼굴 핵심 부위 집중, 성능 향상 |
| 사용자 결과 이해도 낮음 | PAD → VIBE 코드 변환 | 심리학 기반, 직관적 시각화 |

---

# 6. 결과

- **F1-score**: 기존 CNN 대비 10%↑

- 실시간 추론 속도 확보 → 웹 서비스 적용 가능

- 감정 인식 결과를 **MBTI형 VIBE 코드**로 제공해 재미·공감성 향상

---

참고문헌

[The neural correlates of the dominance dimension of emotion](https://www.sciencedirect.com/science/article/abs/pii/S0925492713003156?utm_source=chatgpt.com)

[2014_CurrentPsychology_Bakker-etal_MehrabianRusselRevisited.pdf](https://attachment:6870429f-17f6-40a4-bab6-c5cdbe81ddb9:2014_CurrentPsychology_Bakker-etal_MehrabianRusselRevisited.pdf)

[PAD emotional state model - Wikipedia](https://en.wikipedia.org/wiki/PAD_emotional_state_model?utm_source)

For the site tree, see the [root Markdown](https://slashpage.com/sonbo.md).
