Skip to content

AI 기반 반려동물 피부질환 예측 서비스 (Android) (AI-based Pet Skin Disease Prediction Service (Android))

Notifications You must be signed in to change notification settings

aengzu/AILectureProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grinning Cat with Smiling Eyes PETKIN Grinning Cat with Smiling Eyes


AI 기반 반려동물 피부질환 예측 서비스

12월 17일 최종발표 (최신 ai 특강)

’Petkin’은 반려동물 보호자를 위한 AI 피부질환 예측 서비스입니다. 사용자는 반려동물의 피부 사진을 업로드하여 딥러닝 모델을 활용한 피부질환 분석 결과를 확인할 수 있습니다. 이 서비스는 병원 방문 전 기본적인 피부 건강 진단을 가능하게 하며, 보호자가 반려동물의 피부 상태를 기록하고 모니터링할 수 있도록 지원합니다.

소개

🔎 Background

12월 17일 최종발표 (최신 ai 특강) (3)

🎯 배경

  • 반려동물 보호자들의 반려동물 건강에 대한 관심도 증가
  • 동물병원 방문 전 기본적인 피부 상태를 확인할 수 있는 AI 기반 서비스 필요
  • 시간과 비용 문제로 인해 반려동물의 피부 상태를 자가 진단할 수 있는 도구 제공

핵심 기능

반려동물 피부 상태 분석

사용자가 반려동물 피부 사진을 업로드하면 AI가 분석하여 피부 질환 여부 및 유형을 예측합니다.

image

반려동물 건강 정보 기록

반려동물의 건강과 관련된 상태를 하루 단위로 기록할 수 있습니다.


📊 AI 모델 및 학습 방법

🔬 데이터셋 및 전처리

  • AI Hub 제공 반려동물 피부질환 데이터셋 활용🔗 데이터셋 링크

  • 데이터 구조:

    • A1: 구진, 플라크
    • A2: 비듬, 각질
    • A3: 태선화, 과다색소침착
    • A4: 농포, 여드름
    • A5: 미란, 궤양
    • A6: 결절, 종괴
    • A7: 무증상
  • 데이터 분포:

    • ⛔️ 데이터가 불균형하다

    • image
  • 데이터 전처리:

    • 이미지 데이터에 대해 Transform 적용 -> 이미지 데이터 특징 다양화

    • 학습에 사용한 Features

      age breed gender label 인 lessons
      수치형 데이터이므로, MinMaxScaling 적용 범주형 데이터 이므로, One-hot encoding 적용 범주형 데이터이므로, One-hot encoding 적용 범주형 데이터이므로, One-hot encoding 적용

🔍 모델 구조 및 학습 방식

  • EfficientNet-b1 기반 Multi Modal Model 활용 (이미지 데이터 학습이 주 목적이지만, 다른 features 을 통한 학습 성능 향상 기대)
  • Adam, AdamW 옵티마이저 사용
  • CosineAnnealingLR 스케줄러 적용
  • CrossEntropy Loss 적용
  • Hyper Parameter 조정을 통한 최적화 실험 진행

📈 실험 결과

  1. 실험 1) 데이터 불균형 해결을 위한 Undersampling 적용
    • No resample Resample
      image image
    • Loss 와 Accuracy 를 보면 Resampling 을 적용하지 않은 모델이 더 좋은 성능을 보이는 것처럼 보이지만, 평가 데이터가 불균형하기 때문에(A7이 많음) 그렇게 나타나며, 평가 데이터가 균형할때는 성능이 향상됨을 확인할 수 있다.

    • 불균형 평가데이터에 대한 혼동 행렬 비교 균형 평가 데이터에 대한 혼동행렬 비교
      image image

  1. 실험 2) Multi Modal Model 적용 시 성능 변화 분석
    • 이미지만 사용하였을 때와 멀티 모달로 다른 features 도 학습 시켰을 때를 비교하면, 극적인 차이는 없지만 Multi Modal Model 적용 시 성능이 약간 떨어진다.
      • image

  1. 실험 3) Batch Size 및 Learning Rate 변경 실험
    • batch size 를 크게 할수록 모델 성능이 향상될 것이라 예측했지만, 아주 미미한 차이만 있을 뿐 Batch size 에 따른 성능 변화는 거의 없다.
      • image

🛠 개발 내용

🔧 서비스 아키텍처 구조도

Frame 7


🔧 기술 스택

Frontend Backend AI Model Deployment

🎬 시연 영상

📺 시연 영상 보기


개발 세부 내용

  1. ERD 설계서 erd petkin

  2. API 문서

    1. 🏠 회원 API (Customer Controller)

      회원 API (Customer Controller) 설명 엔드포인트 메서드
      카카오 토큰 갱신 리프레시 토큰을 이용해 새로운 액세스 토큰을 발급 /api/customers/token/refresh POST
      카카오 로그인 Oauth 제공자(KAKAO) 로그인 후, 액세스 및 리프레시 토큰 반환 /api/customers/oauth/login/{oauthProvider} POST
      내 정보 조회 로그인한 회원의 닉네임 반환 /api/customers/me GET
    2. 🧑‍⚕️ 질병 예측 API (Prediction Controller)

      기능 엔드포인트 메서드 상태 설명
      질병 분석 (Client → Server) /predict/disease POST ✅ 완료 서버에서 AI 서버로 질병 분석 요청
    3. 📖 건강 기록 API (Health Record Controller)

      기능 엔드포인트 메서드 상태 설명
      특정 반려동물 건강 기록 조회 /api/pets/{pet_id}/health-records/ GET ✅ 완료 특정 반려동물의 모든 건강 기록 조회
      건강 기록 생성 /api/health-records POST ✅ 완료 로그인된 사용자가 건강 기록 생성
      건강 기록 조회 /api/health-records/{record_id} GET ✅ 완료 특정 건강 기록 세부 정보 조회
      건강 기록 수정 /api/health-records/{record_id} PUT ✅ 완료 특정 건강 기록 내용 수정
      건강 기록 삭제 /api/health-records/{record_id} DELETE ✅ 완료 특정 건강 기록 삭제
      특정 날짜 건강 기록 조회 /api/pets/{pet_id}/health-records?date={date} GET ✅ 완료 특정 날짜의 건강 기록 조회
      특정 달 건강 기록 조회 /api/pets/{pet_id}/health-records?month={month} GET ✅ 완료 특정 달의 건강 기록 조회

      📌 사전 정의된 건강 기록 아이템

      ItemType Item Name
      1 📷 Photo (사진 기록)
      2 🛁 Bath (목욕)
      3 🚶 Walk (산책)
      4 🍖 Snack (간식)
      5 💊 Medicine (약)
      6 💉 Vaccination (예방 접종)
      7 🏥 Hospital (병원 방문)
      8 📝 Memo (메모)
    4. 🐶 반려동물 API (Pet Controller)

      기능 엔드포인트 메서드 상태 설명
      반려동물 등록 /api/pets POST ✅ 완료 새로운 반려동물을 등록하고 고유 ID 반환
      반려동물 정보 조회 /api/pets/{pet_id} GET ✅ 완료 등록된 반려동물 조회
      반려동물 정보 수정 /api/pets/{pet_id} PUT ✅ 완료 등록된 반려동물 정보 수정
      반려동물 삭제 /api/pets/{pet_id} DELETE ✅ 완료 등록된 반려동물 삭제
      회원 반려동물 목록 조회 /api/pets/mine GET ✅ 완료 로그인된 회원의 반려동물 목록 조회

팀원

aengzu
@aengzu
@choisieun Heewon Choi
@o4e3

About

AI 기반 반려동물 피부질환 예측 서비스 (Android) (AI-based Pet Skin Disease Prediction Service (Android))

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •