우리 집 고양이는 무슨 생각을 하고 있을까? (내부 컨퍼런스 우수상)

2025. 2. 12. 14:35·빅데이터 연합 동아리 비타민

2024년 2학기부터 서울권 내 대학생들이 모여 활동하는 빅데이터 연합 동아리 비타민에서 활동을 시작하게 되었다. 그 동안 빅데이터와 AI를 진로 목표로 삼으면서 어떻게 활동을 시작해야 할 지 고민이 많이 들었는데, 또래 및 선배들과 이야기 하면서 목표를 구체화 시키고 성장할 수 있었으면 좋겠다.

 

비타민은 1년이라는 기간동안 방학/학기에 걸쳐 총 4번의 프로젝트를 진행한다. 막연히 자율 주행 자동차와 챗 GPT가 파일을 인식하여 대답을 출력해 주는 것을 보고 이 기술이 나에게 많은 도움이 될 것이라고 생각하여 컴퓨터 비전(CV) 분야 프로젝트를 선택하게 되었다.


1. 주제 선정 및 목표

  • 귀여운 반려동물이 과연 무슨 생각을 할까?
  • 기존 유머 앱에서는 그저 감정을 랜덤 으로 출력
  • 딥러닝의 CV 기술과 결합하여 신빙성 있는 방식으로 문제를 풀어가고자 함

2. 데이터셋 설명

가. YOLO를 통해 바운딩 박스를 생성하기 위해 사용한 데이터 셋

  • 🐶Pet's Facial Expression Image Dataset😸
  • roboflow에서 바운딩 박스가 라벨링된 이미지 868장을 사용

나. Keypoint를 이용해 고양이의 감정을 분석하기 위해 사용한 데이터 셋

  • Face expression recognition dataset Cat Facial Landmarks in the Wild (CatFLW)
  • 고양이 얼굴의 48개의 주요 랜드마크
  • 얼굴에 대한 바운딩 박스를 라벨링

3. 모델 소개

가. 분류 모델 스터디

나. YOLO + Efficient Net 모델 활용

  • 프로젝트에서는 YOLO v8을 사용하였지만, 기초적인 이해를 위해 YOLO v1을 기반으로 설명
  • Grid Cell 생성 → 각각의 Cell 별로 Class 확률을 예측

  • Cell들 끼리 동일한 객체를 예측하는 문제 → IOU를 계산 값을 바탕으로 선택
  • 모델과 파라미터 따라서 n,s,m,l등으로 구분되는 것이 특징입니다.

다. Keypoint 모델 활용

  1. Region Proposal Network(RPN) ➜ 객체의 위치 예측
  2. ROI-Align ➜ 각 객체를 동일한 크기의 feature map으로 변환➜ 객체의 클래스와 위치를 예측
  3. Keypoint R-CNN Branch 추가
  4. keypoint Head를 통해 각 사람의 신체 부위별로 keypoint를 예측하는 것

4. 모델 구축 과정

가. 데이터 수집, 전처리

  1. Kaggle과 Roboflow에서 고양이 얼굴에 바운딩 박스가 설정된 데이터 셋을 사용할 수 있었음
  2. Roboflow 플랫폼에서 YOLO 모델을 활용해 바운더리 박스 좌표 추출
  3. YOLOv8n < YOLOv8s < YOLOv8m < YOLOv8m < YOLOv8m
  4. YOLOv8 모델을 통해 얻은 좌표를 바탕으로 OpenCV를 활용해 이미지 크롭
  5. 데이터셋 YOLO 모델 결과

 

나. Efficient Net 분류 모델

  1. 얼굴 영역을 추출하기 위해 yolo v8 m 모델로 바운딩 박스를 잡는 작업을 진행 (epoch : 50)
  2. 분류기 학습데이터를 대상으로 cv2 모듈을 이용해서 예측한 바운딩 박스의 좌표 값대로 영역을 추출하여 잘라내고, 분류기에 사용할 수 있도록 저장
  3. EfficientNet으로 감정을 행복, 우울, 혐오, 놀람, 화남, 두려움, 기타의 7가지로 분류하는 모델을 훈련

 

다. Key point 분류 모델

파이프 라인 구성

 

keypoint 다양한 pretrain 실험

  • PT1 : Rescale, Nomalize, ToTensor 기본 전처리
  • PT2 : 기본 전처리 + RandomCrop & RandomHorizontalFlip
  • PT3 : OpenCV의 CascadeClassifier
  • PT4 : dlib 라이브러리
  • PT5 : CascadeClassifier + 기본 전처리 + RandomCrop & RandomHorizontalFlip

 

Inference 결과

→ 각각 키포인트가 위와 왼쪽 방향으로 치우친 것을 확인할 수 있었음


5. 프로젝트 결과 및 한계점

  • 겨울 방학 동안 준비하여 참가하는 내부 컨퍼런스 데이에서 우수상에 뽑혔다!!
  • 빅데이터 연합동아리 비타민에서 진행한 첫 프로젝트였는데, 머신러닝 프로젝트 경험만 있었던 지라 CV, NLP, 추천 시스템 등에 대한 사전 지식이 너무 적어서 적응하기 힘들었던 것 같다. 방학 동안의 프로젝트는 학기 중과 다르게 시간이 짧은 편인데, VGGNet, YOLO, CNN과 RNN등의 논문들을 공부하는데 시간이 많이 소모되었다.
  • pre-training 모델마다 너무 달랐던 결과
  • 고양이의 얼굴을 파악할 때 keypoint를 활용하고자 하였습니다. 결과가 좋다면 감정 라벨을 분류하는 작업까지 진행하고자 하였고, 연결까지는 성공하였지만, 어떤 keypoint 가중치 데이터를 사용하는 지에 따라 결과가 상이하게 달라 아쉬웠다. 학습 데이터의 양과 다양성을 늘려 모델이 다양한 얼굴 각도와 표정을 잘 반영할 수 있도록 하고 하이퍼 파리미터 조정을 해준다면 더 좋은 성능을 보이리라 생각됩니다.

'빅데이터 연합 동아리 비타민' 카테고리의 다른 글

2025 MixUP Datathon 후기  (0) 2025.05.18
2025 비타민 홈커밍 파티 후기  (0) 2025.02.12
Doc2Scheme : 문서 내 시각자료 추출 및 요약 (내부 컨퍼런스 최우수상)  (0) 2025.02.12
'빅데이터 연합 동아리 비타민' 카테고리의 다른 글
  • 2025 MixUP Datathon 후기
  • 2025 비타민 홈커밍 파티 후기
  • Doc2Scheme : 문서 내 시각자료 추출 및 요약 (내부 컨퍼런스 최우수상)
youn9._.hon9
youn9._.hon9
  • youn9._.hon9
    youn9._.hon9
    youn9._.hon9
    • 분류 전체보기 (18) N
      • 카카오테크 부트캠프 (3)
      • 빅데이터 연합 동아리 비타민 (4)
      • 교내 팀프로젝트 (2)
      • 논문 리뷰 스터디 (3)
      • 공모전 & 자격증 (5)
      • 배움일기 (1) N
  • 태그

    프로젝트
    자격증
    논문리뷰
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
youn9._.hon9
우리 집 고양이는 무슨 생각을 하고 있을까? (내부 컨퍼런스 우수상)
상단으로

티스토리툴바