form-analyzer
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.6%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: khanhvu0
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 171 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Tennis Serve Analysis
A web application for analyzing tennis serves using computer vision and pose estimation. The application processes front and side view videos of tennis serves to detect key moments and ball positions.
Features
- Upload and process front and side view videos of tennis serves
- Detect key moments in the serve motion (e.g., ball release, trophy position, impact)
- Track tennis ball position throughout the serve
- Visualize key moments and ball positions on a timeline
- Interactive video playback with moment markers
Prerequisites
- Python 3.8 or higher
- Node.js 14 or higher
- CUDA-capable GPU (recommended for faster processing)
Installation
- Clone the repository:
bash
git clone https://github.com/yourusername/tennis-serve-analysis.git
cd tennis-serve-analysis
- Install Python dependencies:
bash
pip install -r requirements.txt
- Install frontend dependencies:
bash
cd analyzer/frontend
npm install
- Build the frontend:
bash
npm run build
Usage
- Start the Flask backend:
bash
cd analyzer
python main.py
Open your web browser and navigate to
http://localhost:5000Upload your front and side view videos of a tennis serve
Wait for the processing to complete
Use the video player controls to navigate through the serve and view key moments
Project Structure
form-analyzer/
analyzer/
frontend/ # React frontend
src/
components/
VideoUpload.tsx
VideoPlayer.tsx
App.tsx
package.json
main.py # Flask backend
video_processor.py # Video processing logic
key_moment_detector.py # Key moment detection
uploads/ # Temporary storage for uploaded videos
requirements.txt # Python dependencies
API Endpoints
POST /api/upload: Upload front and side view videosGET /api/video/<filename>: Get processed video fileGET /api/moments/<video_name>: Get key moments for a videoGET /api/balls/<video_name>: Get ball detections for a video
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Owner
- Name: Khanh Vu
- Login: khanhvu0
- Kind: user
- Repositories: 1
- Profile: https://github.com/khanhvu0
GitHub Events
Total
- Watch event: 2
- Member event: 5
- Push event: 28
- Create event: 5
Last Year
- Watch event: 2
- Member event: 5
- Push event: 28
- Create event: 5
Dependencies
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v1.0.14 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v1.0.14 composite
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- pytorch/pytorch ${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel build
- loguru ==0.6.0
- numpy ==1.21.6
- onnxruntime ==1.14.1
- onnxruntime-gpu ==1.8.1
- albumentations >=0.3.2
- numpy *
- torch >=1.8
- docutils ==0.16.0
- markdown *
- myst-parser *
- sphinx ==4.5.0
- sphinx_copybutton *
- sphinx_markdown_tables *
- urllib3 <2.0.0
- mmcv >=2.0.0,<3.0.0
- mmdet >=3.0.0,<3.3.0
- mmengine >=0.4.0,<1.0.0
- requests *
- shapely ==1.8.4
- mmcv >=2.0.0rc4
- mmengine >=0.6.0,<1.0.0
- munkres *
- regex *
- scipy *
- titlecase *
- torch >1.6
- torchvision *
- xtcocotools >=1.13
- chumpy *
- json_tricks *
- matplotlib *
- munkres *
- numpy *
- opencv-python *
- pillow *
- scipy *
- torchvision *
- xtcocotools >=1.12
- coverage * test
- flake8 * test
- interrogate * test
- isort ==4.3.21 test
- parameterized * test
- pytest * test
- pytest-runner * test
- xdoctest >=0.10.0 test
- yapf * test
- 374 dependencies
- @eslint/js ^9.21.0 development
- @types/react ^19.0.10 development
- @types/react-dom ^19.0.4 development
- @vitejs/plugin-react ^4.3.4 development
- autoprefixer ^10.4.21 development
- eslint ^9.21.0 development
- eslint-plugin-react-hooks ^5.1.0 development
- eslint-plugin-react-refresh ^0.4.19 development
- globals ^15.15.0 development
- postcss ^8.5.3 development
- tailwindcss ^3.4.17 development
- typescript ~5.7.2 development
- typescript-eslint ^8.24.1 development
- vite ^6.2.0 development
- @emotion/react ^11.14.0
- @emotion/styled ^11.14.0
- @fontsource/inter ^5.2.5
- @heroicons/react ^2.2.0
- @mui/icons-material ^7.0.0
- @mui/material ^7.0.0
- axios ^1.8.4
- framer-motion ^12.6.2
- react ^19.0.0
- react-dom ^19.0.0
- react-player ^2.16.0
- Pillow >=8.0.0
- flask ==2.2.3
- flask-cors ==4.0.0
- numpy >=1.20.0
- opencv-python >=4.5.0
- torch >=1.8.0
- torchvision >=0.9.0
- ultralytics >=8.0.0
- werkzeug ==2.2.3