릴리스 제목
v1.0.0 - Pitching 발표 영상 처리 엔진 초기 릴리스
설명
발표 영상 처리 엔진은 영상 데이터로부터 자세, 제스처, 시선 등의 피드백을 생성하여 사용자에게 제공합니다. 본 시스템은 AI 기반 Computer-vision & Vision-Language 모델과 Prompt Engineering 기술을 활용하여 사용자 맞춤형 피드백을 생성하며, 클라이언트와 서버 간 연결을 위해 FastAPI 기반 RESTful API를 제공합니다.
주요 기능
-
영상 처리 엔진 (Video Processing Engine)
- 영상 프레임 추출 및 학습: OpenCV와 사용하여 입력 영상에서 프레임 데이터를 추출하고, FPS 및 영상 길이를 계산합니다.
- AI 기반 피드백 생성: Computer VIsion 라이브러리인 Mediapipe에서 문제 행동을 탐지후, OpenAI의 GPT-4o-mini Vision API를 활용하여 영상 프레임 분석 후 피드백을 제공합니다.
- Prompt Engineering: Few Shot Learning 및 Chain of Thought 기법을 활용하여 명확하고 사용자 맞춤형 피드백을 생성합니다.
-
클라이언트 연결
- FastAPI API:
- POST
/upload-video
: 클라이언트에서 영상을 업로드받아 처리합니다. - GET
/send-feedback
: 업로드된 영상에 대해 분석된 피드백을 JSON 형식으로 반환합니다.
- POST
- FastAPI API:
-
데이터 구조화 및 전달
- Pydantic 활용: 피드백 데이터를 구조화하여 JSON 형식으로 제공합니다.
- 영상 피드백 결과를 JSON으로 클라이언트에 전달하여 후속 작업에 활용 가능하도록 설계되었습니다.
-
의존성 관리 및 배포
requirements.txt
를 통한 Python 패키지 관리.- Git Flow Branch 전략을 활용하여 체계적인 버전 관리 및 안정된 배포를 지원.
-
문제 해결(Troubleshooting)
- GPU 비용 관리: 클라우드 환경에서 발생하는 GPU 비용을 줄이기 위한 API 호출 최적화.
- 정확도 향상: 피드백 정확도를 높이기 위해 Prompt 설계 및 추가 지침 제공.
-
프로젝트 관리
- GitHub Issue와 Jira Ticket을 활용하여 작업(Task)을 티켓 단위로 분할 및 관리.
데이터 파이프라인 설계
발표 영상 처리(VLM) 모델 Data Pipeline 설계
-
Video Processing Engine
- OpenCV, Mediapipe를 활용하여 영상 프레임을 추출하고, FPS와 영상 길이를 계산합니다.
- OpenAI Vision API를 통해 피드백을 생성하며, Prompt Engineering 기법을 사용하여 더욱 정교한 분석 결과를 도출합니다.
-
Client(FE, BE) 연결
- FastAPI API를 통해 클라이언트와 서버 간 영상 데이터 전송 및 피드백 결과 반환을 수행합니다.
- API는 클라이언트 요청에 따라 업로드된 영상을 분석한 후 결과 데이터를 JSON 형식으로 제공합니다.
-
JSON 피드백 데이터 구조화
- Pydantic을 활용하여 구조화된 데이터를 생성하며, JSON 형식으로 클라이언트에 전달합니다.
폴더 구조
-
vlm_model
:- API 라우터, 데이터 처리 유틸리티, 모델 설정 관련 모듈 포함.
-
Research
:- Vision-Language 모델 및 Mediapipe 연구를 위한 Jupyter 노트북.
-
tests
:- API와 유틸리티를 테스트하기 위한 단위 테스트 코드 포함.
-
storage
:- 입력 영상(
input_video
)과 출력 피드백(output_feedback_frame
) 저장 디렉터리.
- 입력 영상(
설치 및 실행 방법
-
의존성 설치:
pip install -r requirements.txt
-
FastAPI 서버 실행:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload --log-config logging_config.json
-
API 테스트:
- POST
/upload-video
: 클라이언트에서 영상 업로드. - GET
/send-feedback
: 업로드된 영상에 대한 피드백 반환.
- POST
-
테스트 실행:
pytest --cov=vlm_model tests/
의존성
-
핵심 라이브러리
openai
,pillow
,tqdm
,opencv-python
,mediapipe
,numpy
-
FastAPI 관련
fastapi
,uvicorn
,python-multipart
-
로깅 및 모니터링
python-json-logger
,colorlog
,sentry-sdk[fastapi]
-
테스트 도구
pytest
,pytest-cov
,pytest-mock
,httpx
추가 정보
- 버전 관리 전략: Git Flow를 사용하여 안정성과 개발 편의성을 확보하였습니다.
- 프로젝트 관리 도구: GitHub Issue와 Jira를 활용하여 작업을 분할하고 진행 상황을 체계적으로 추적합니다.