"반려동물 감정 및 상황 해석을 위한 울음 감지 및 분석 어플리케이션" 프로젝트입니다.
201904008 곽재원, 202204174 권순우
본 프로젝트는 대한민국 반려동물 시장의 성장에 비해 반려동물에 대한 이해와 전문적 인프라가 부족한 문제를 해결하기 위해 기획되었습니다. 매년 많은 반려동물이 유기되고 보호소에서 자연사하거나 안락사되는 상황을 개선하고자, AI 기술을 활용해 반려동물의 울음소리를 실시간으로 감지하고 분석하여 감정 및 상황적 정보를 파악하는 것이 핵심 목표입니다. 이를 통해 반려인이 반려동물의 감정을 더 잘 이해하고 적절히 대응할 수 있도록 돕고, 나아가 반려동물의 건강 관리와 행동 교정에도 기여하고자 합니다. FastAPI 기반의 비동기 실시간 처리와 직관적인 스마트폰 애플리케이션을 통해 반려동물의 상태를 모니터링하고, 반려동물과 반려인 간의 소통 강화 및 복지 증진, 유기 및 학대 문제 감소를 목표로 합니다.
- App은 Android와 IOS를 동시에 개발할 수 있는 크로스 플랫폼 Flutter를 사용합니다.
- Backend과 Restful API로 통신합니다.
- Tensorflow lite를 사용하여 AI 모델을 개발합니다.
- Firebase Auth를 사용하여 소셜 로그인을 구현합니다.
- JWT를 사용하여 사용자 인증을 구현합니다.
전체 시스템 플로우는 위와 같습니다.
- 어플리케이션에서 사용자가 울음감지 버튼을 누르면 실시간으로 울음을 감지 시작합니다.
- 들은 울음을 AI 모델을 통해 반려동물의 울음소리 여부를 분석합니다.
- 만약 반려동물의 울음소리가 맞다면 Backend로 울음소리 데이터를 전송합니다.
- Backend에서 울음소리 데이터를 분석하여 반려동물의 감정 및 상황을 분석합니다.
- 분석된 결과를 어플리케이션으로 전송하여 사용자에게 감정 및 상황을 보여줍니다.
이때 울음소리가 판별될 경우 사용자의 웨어러블 디바이스로 알림을 전송하여 감지 여부를 알려줍니다.
- MVC 패턴: Model, Service, Controller로 구분하여 개발합니다.
- 에자일 방법론: 스프린트 단위로 개발을 진행합니다.
- Trunk-based Development: Main 브랜치를 기반으로 개발을 진행합니다.
- 프로젝트 기획: 프로젝트 목표 및 범위를 설정하고, 기능 명세를 작성함.
- 1주차: 프로젝트 준비 및 요구사항 정의: 고객 및 반려동물 보호자의 요구사항을 바탕으로 주요 기능 및 성능 목표 설정.
- 2~3주차: 반려동물 울음소리 데이터 수집(공개 데이터셋 활용) 및 전처리. 데이터 정제 및 필터링 작업 수행.
- 1차 중간평가: 울음 감지 모델을 어플리케이션에 탑재 및 시연.
- 4~5주차: MobileNet 기반 on-device AI 모델 개발 및 초기 테스트(on-device 구현 유효성 판단). 울음소리 감지를 위한 실시간 분류 시스템 구축.
- 6~7주차: 푸리에 변환 및 멜 필터뱅크 적용하여 울음소리 데이터를 3D 이미지로 변환. Computer Vision 기술(CNN 또는 ViT) 적용 및 훈련.
- 8주차: Flutter 기반 모바일 애플리케이션 UI/UX 설계 및 프로토타입 개발. 음성 데이터 실시간 감지 기능 통합.
- 2차 중간평가: Backend와 연동된 전체 서비스 프로토타입 시연.
- 9~10주차: FastAPI 기반 백엔드 시스템 개발. TensorFlow 또는 PyTorch와 연동해 AI 모델과 실시간 데이터 처리 연동.
- 11주차: 모바일 기기 성능 최적화 작업(발열, 지연 문제 해결). on-device AI 모델 성능 개선 및 모바일 환경에 맞춘 경량화 작업.
- 12주차: 모바일 애플리케이션과 백엔드 시스템 간의 통신 안정화. 테스트 환경에서의 통합 테스트 진행.
- 최종평가: 어플리케이션 및 Backend 서버를 배포함.
- 13~14주차: 추가 데이터 수집 및 다양한 모델 아키텍쳐 적용을 통한 성능 향상. 데이터 증강 기법을 적용해 모델의 정확도 및 세부 감정/상황 분류 성능 향상.
- 15주차: 최종 통합 및 사용자 테스트. 실사용자 피드백 반영하여 최종 버전 개선 및 배포 준비.
- 최종발표: 프로젝트 결과 및 성과를 발표함.
1차 중간평가까지는 Flutter를 이용한 App과 울음감지 모델을 연동한 Frontend 개발이 주요 목표입니다.
따라서 울음 감지 및 유저 보안 로직(JWT)를 탑재한 어플리케이션이 1차 중간평가의 프로도타입으로 제작될 예정입니다.
이에 따라 App 1차 중간평가까지 다음 내용을 개발할 예정입니다.
- 개발 환경 설정: Flutter 개발 환경 설정, Firebase 보안 세션 설정
- 사용자 인증: Firebase Auth를 통한 소셜 로그인, JWT를 이용한 사용자 인증로직 구현
- 로그인 페이지: 로그인 페이지 디자인 및 구현
- 페이지 라우팅 시스템 설정: 페이지 라우팅 시스템 설정 및 구현
- 울음 감지 페이지: 울음 감지 페이지 디자인 및 구현
- 울음 감지 모델 연동: 울음 감지 모델을 연동하여 실시간 울음 감지 기능 구현
Backend는 1차 중간평가까지 다음 내용을 개발할 예정입니다.
- 개발 환경 설정: FastAPI 개발환경 설정, MySQL 연동, Tensorflow 모델 연동, 등
- 사용자 인증: JWT를 이용한 사용자 인증 로직 구현
- 사용자 인증 API 개발: Flutter App과의 통신을 위한 API 구현
2차 중간평가까지는 Backend와 Frontend를 연동한 전체 서비스 프로토타입을 제작하는 것이 주요 목표입니다.
따라서 Backend와 연동하여 울음 분석 결과를 사용자에게 보여주는 어플리케이션이 2차 중간평가의 프로토타입으로 제작될 예정입니다.
이에 따라 App 2차 중간평가까지 다음 내용을 개발할 예정입니다.
- 데이터 전송: 울음 감지 결과를 Backend로 전송하는 API 개발
- 데이터 분석: Backend에서 울음 감지 결과를 분석하는 API 개발
- 데이터 시각화: 분석된 데이터를 사용자에게 보여주는 API 및 화면 구성
Backend는 2차 중간평가까지 다음 내용을 개발할 예정입니다.
- 울음 분석 모델 연동: Tensorflow 모델을 FastAPI와 연동
- 실시간 데이터 처리: 실시간 데이터 처리를 위한 API 개발
- 데이터 분석: 분석된 데이터를 이용한 감정 및 상황 분석 API 개발
최종평가까지는 Backend와 Frontend를 완성한 서비스를 배포하는 것이 주요 목표입니다.
따라서 배포를 위한 서버 환경 설정 및 최적화, 울음 기록 분석 및 시각화 기능을 추가한 어플리케이션 배포입니다.
이에 따라 App 최종평가까지 다음 내용을 개발할 예정입니다.
- 데이터 분석 시각화: 분석된 데이터를 사용자에게 보여주는 API 및 화면 구성
- 데이터 저장: 분석된 데이터를 저장하는 API 개발
- 데이터 불러오기: 저장된 데이터를 불러오는 API 개발
- Android, IOS 배포: Android, IOS에 배포할 수 있는 형태로 App을 배포
Backend는 최종평가까지 다음 내용을 개발할 예정입니다.
- 서버 환경 설정: 서버 환경 설정 및 최적화
- 데이터 시각화: 분석된 데이터를 이용한 시각화 API 개발
- 배포: 서비스 배포를 위한 서버 환경 설정 및 배포

