A comprehensive setup repository for WebODM installation and drone video processing workflows with GPU acceleration support. This repository contains installation scripts, Docker configurations, and utilities for processing drone imagery and videos.
β‘ NEW: Now includes GPU acceleration for 2-5x faster processing! See GPU_SETUP.md for details.
- Overview
- Screenshots
- Prerequisites
- Quick Start
- Installation
- Drone Video Processing
- Usage
- Configuration
- Troubleshooting
- Contributing
- License
WebODM is an open-source drone mapping software built on OpenDroneMap. This repository provides:
- Automated Installation Scripts for Windows, Linux, and macOS
- Docker Compose Configuration for easy deployment
- Video Processing Tools to extract frames from drone videos
- Batch Processing Scripts for multiple datasets
- Utility Scripts for common tasks
Main dashboard showing project overview and management interface
Processing interface with options and task configuration
Interactive 3D model viewer with texture mapping
Generated orthophoto map visualization
Detailed processing results and outputs
- OS: Windows 10/11, Ubuntu 20.04+, macOS 10.14+
- RAM: Minimum 8GB (16GB+ recommended)
- Disk Space: 50GB+ free space
- CPU: Multi-core processor (4+ cores recommended)
- GPU (Optional): NVIDIA GPU with 4GB+ VRAM for accelerated processing
- See GPU_SETUP.md for GPU acceleration guide
-
Docker Desktop (Windows/macOS) or Docker Engine (Linux)
- Download Docker Desktop
- Docker Compose (included with Docker Desktop)
-
Python 3.8+ (for video processing scripts)
-
Git (for cloning the repository)
# Clone the repository
git clone https://github.com/prashplus/WebODM-Setup.git
cd WebODM-Setup
# Run installation script
.\scripts\install-windows.ps1
# Start WebODM
.\scripts\start-webodm.ps1# Clone the repository
git clone https://github.com/prashplus/WebODM-Setup.git
cd WebODM-Setup
# Make scripts executable
chmod +x scripts/*.sh
# Run installation script
./scripts/install-linux.sh
# Start WebODM
./scripts/start-webodm.shAccess WebODM at: http://localhost:8000
-
Install Docker
# Windows: Download and install Docker Desktop # Ensure WSL2 is enabled for Windows
-
Clone Repository
git clone https://github.com/prashplus/WebODM-Setup.git cd WebODM-Setup -
Install Python Dependencies
pip install -r requirements.txt
-
Configure Settings (Optional)
- Edit
config/webodm-config.envfor custom settings - Adjust Docker resources in Docker Desktop settings
- Edit
-
Run Installation Script
- Windows:
.\scripts\install-windows.ps1 - Linux/Mac:
./scripts/install-linux.sh
- Windows:
The repository includes scripts to extract frames from drone videos at specified intervals:
# Basic usage
python scripts/extract-frames.py --input video.mp4 --output ./frames --fps 1
# Advanced usage with GPS data extraction
python scripts/extract-frames.py --input video.mp4 --output ./frames --fps 2 --extract-gps--input: Path to drone video file--output: Output directory for extracted frames--fps: Frames per second to extract (default: 1)--extract-gps: Extract GPS metadata from video (if available)--format: Output image format (default: jpg)--quality: JPEG quality 1-100 (default: 95)
Process multiple videos at once:
python scripts/batch-process.py --input-dir ./videos --output-dir ./frames# Windows
.\scripts\start-webodm.ps1
# Linux/Mac
./scripts/start-webodm.sh# Windows
.\scripts\stop-webodm.ps1
# Linux/Mac
./scripts/stop-webodm.sh# Windows
.\scripts\update-webodm.ps1
# Linux/Mac
./scripts/update-webodm.sh- Access WebODM at
http://localhost:8000 - Create an account (first user becomes admin)
- Click "Add Project"
- Upload your processed drone images
- Configure processing options
- Start processing
Edit config/webodm-config.env:
# WebODM Configuration
WO_PORT=8000
WO_HOST=0.0.0.0
WO_DEBUG=NO
# Processing Options
WO_DEFAULT_NODES=1
WO_BROKER_URL=redis://broker
# Storage
MEDIA_ROOT=/webodm/app/mediaAdjust in Docker Desktop Settings:
- CPUs: 4+ cores recommended
- Memory: 8GB+ recommended
- Disk: 50GB+ recommended
# Check Docker status
docker --version
docker ps
# Start Docker Desktop (Windows/Mac)
# Or start Docker service (Linux)
sudo systemctl start dockerEdit config/webodm-config.env and change WO_PORT to another port (e.g., 8080)
Increase Docker memory allocation in Docker Desktop settings
# Ensure FFmpeg is installed
ffmpeg -version
# Install if missing
# Windows: choco install ffmpeg
# Ubuntu: sudo apt install ffmpeg
# macOS: brew install ffmpegView WebODM logs:
docker-compose logs -f webappWebODM-Setup/
βββ config/
β βββ webodm-config.env
β βββ processing-presets.json
βββ scripts/
β βββ install-windows.ps1
β βββ install-linux.sh
β βββ start-webodm.ps1
β βββ start-webodm.sh
β βββ stop-webodm.ps1
β βββ stop-webodm.sh
β βββ update-webodm.ps1
β βββ update-webodm.sh
β βββ extract-frames.py
β βββ batch-process.py
βββ docker-compose.yml
βββ requirements.txt
βββ .gitignore
βββ LICENSE
βββ README.md
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- WebODM Official Documentation
- OpenDroneMap Community
- Docker Documentation
- Drone Mapping Best Practices
Prashant Piprotar
β If this repository helped you, please give it a star!