Sonbolog
Subscribe
📚 Project & TIL
Project [Personal]
2
Event-to-Metric Data Platform (Batch + Streaming)
Project [Personal]
Jaenoo
SONTAROT
Project [Personal]
Jaenoo
Project [EST soft]
3
[EST soft]정형프로젝트 #KBO 프로야구
Project [EST soft]
Jaenoo
[EST soft]시계열프로젝트 #녹조현상
Project [EST soft]
Jaenoo
[EST soft]비정형프로젝트 #나만의 VIBE코드
Project [EST soft]
Jaenoo
Python
4
Basic Python
Python
Jaenoo
Intermediate Python
Python
Jaenoo
Advanced Python
Python
Jaenoo
Numpy
Python
Jaenoo
SQL
1
Untitled
SQL
Data
1
What is data engineering?
Data
Jaenoo
JAVA
3
Basic JAVA
JAVA
Jaenoo
Intermediate JAVA
JAVA
Jaenoo
Advanced JAVA
JAVA
Jaenoo
Scala
1
Untitled
Scala
Go
1
Untitled
Go
[EST soft]비정형프로젝트 #나만의 VIBE코드
Status
Project [EST soft]
Assignee
Jaenoo
Created by
Jaenoo
Data & Code :
GitHub - Sonbori/emotivibe
Contribute to Sonbori/emotivibe development by creating an account on GitHub.
github.com
1. 프로젝트 개요
목표
•
사진 한 장으로 사용자의 감정을
자동 분류
하고,
감정 흐름 시각화
까지 제공하는 AI 서비스
•
감정 기록의 번거로움과 주관성을 보완
•
심리학 기반의 **3차원 감정모델(PAD)**을 적용하여 결과를 직관적이고 재미있게 해석
배경
•
기존 감정 기록 도구는 사용자가 직접 텍스트로 작성 → 주관적이고 번거로움
•
감정은 자기이해와 정신건강 관리의 핵심이지만 기록률이 낮음
•
이미지 기반 감정 인식 기술 발전 → 자동화된 감정 분석 가능
💡
한 줄 요약
EfficientNet-B0 + CBAM을 활용해 사진 속 사용자의 감정을 4클래스로 분류하고, PAD 심리 모델을 통해 직관적인 VIBE 코드로 시각화한 실시간 웹 서비스
2. 데이터셋 & EDA
Data
데이터 구조
•
학습(train), 검증(val), 테스트(test) 폴더 분리
•
각 폴더에
img/
,
label/
,
segmentation/
구조
•
클래스: Anger, Happy, Panic, Sadness
•
데이터 수량: Train 약 1500장, Val 300장, Test 300장
데이터 분석
•
라벨
.json
에 이미지 파일명, 성별, 나이, 업로더 감정, annotator 3명의 판단 결과, 얼굴 Bbox 좌표 포함
•
성별·연령 분포 균형 양호
•
Bbox 위치 분포 고르게 분포 → 모델 학습 적합
3. 모델링
Modelling
후보 모델
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
Code 구현 등
아키텍처
•
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?
•
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
Emotion has been conceptualized as a dimensional construct, while the number of dimensions – two or three – has been debated. Research has consistentl…
sciencedirect.com
2014_CurrentPsychology_Bakker-etal_MehrabianRusselRevisited.pdf
PAD emotional state model - Wikipedia
en.wikipedia.org
Made with Slashpage