281 lines
5.1 KiB
Markdown
281 lines
5.1 KiB
Markdown
# Installation Guide
|
|
|
|
## System Requirements
|
|
|
|
### Operating System
|
|
|
|
- Linux (Ubuntu 18.04+, CentOS 7+)
|
|
- macOS 10.14+
|
|
- Windows 10+ (with WSL2 recommended)
|
|
|
|
### Hardware Requirements
|
|
|
|
- **Memory**: Minimum 4GB RAM, recommended 8GB+
|
|
- **Storage**: 1GB free space for build and outputs
|
|
- **CPU**: Multi-core processor recommended for optimal performance
|
|
|
|
## Dependencies
|
|
|
|
### Required Dependencies
|
|
|
|
#### OpenCV (Version 3.0+)
|
|
|
|
OpenCV is the core dependency for image processing operations.
|
|
|
|
**Ubuntu/Debian:**
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install libopencv-dev libopencv-contrib-dev
|
|
```
|
|
|
|
**CentOS/RHEL:**
|
|
|
|
```bash
|
|
sudo yum install opencv-devel
|
|
# or for newer versions:
|
|
sudo dnf install opencv-devel
|
|
```
|
|
|
|
**macOS (using Homebrew):**
|
|
|
|
```bash
|
|
brew install opencv
|
|
```
|
|
|
|
**Manual Installation:**
|
|
If package managers don't provide a recent enough version:
|
|
|
|
```bash
|
|
# Download OpenCV source
|
|
git clone https://github.com/opencv/opencv.git
|
|
cd opencv
|
|
git checkout 4.x # or your preferred version
|
|
|
|
# Build and install
|
|
mkdir build && cd build
|
|
cmake -D CMAKE_BUILD_TYPE=RELEASE \
|
|
-D CMAKE_INSTALL_PREFIX=/usr/local \
|
|
-D WITH_TBB=ON \
|
|
-D WITH_V4L=ON \
|
|
-D WITH_QT=OFF \
|
|
-D WITH_OPENGL=ON \
|
|
..
|
|
make -j$(nproc)
|
|
sudo make install
|
|
```
|
|
|
|
#### CMake (Version 3.10+)
|
|
|
|
Required for building the project.
|
|
|
|
**Ubuntu/Debian:**
|
|
|
|
```bash
|
|
sudo apt install cmake
|
|
```
|
|
|
|
**CentOS/RHEL:**
|
|
|
|
```bash
|
|
sudo yum install cmake
|
|
# or: sudo dnf install cmake
|
|
```
|
|
|
|
**macOS:**
|
|
|
|
```bash
|
|
brew install cmake
|
|
```
|
|
|
|
### Optional Dependencies
|
|
|
|
#### Git (for version control)
|
|
|
|
```bash
|
|
# Ubuntu/Debian
|
|
sudo apt install git
|
|
|
|
# CentOS/RHEL
|
|
sudo yum install git
|
|
|
|
# macOS
|
|
git --version # Usually pre-installed
|
|
```
|
|
|
|
## Installation Steps
|
|
|
|
### Method 1: Clone from GitHub (Recommended)
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/xixu-me/AVM.git
|
|
cd AVM
|
|
|
|
# Make scripts executable
|
|
chmod +x scripts/*.sh
|
|
|
|
# Build the project
|
|
./scripts/build.sh
|
|
```
|
|
|
|
### Method 2: Download and Build
|
|
|
|
```bash
|
|
# Download and extract source code
|
|
wget https://github.com/xixu-me/AVM/archive/main.zip
|
|
unzip main.zip
|
|
cd AVM-main
|
|
|
|
# Make scripts executable
|
|
chmod +x scripts/*.sh
|
|
|
|
# Build the project
|
|
./scripts/build.sh
|
|
```
|
|
|
|
### Manual Build Process
|
|
|
|
If you prefer to build manually:
|
|
|
|
```bash
|
|
# Create build directory
|
|
mkdir -p build
|
|
cd build
|
|
|
|
# Configure with CMake
|
|
cmake ..
|
|
|
|
# Build (adjust -j flag based on your CPU cores)
|
|
make -j$(nproc)
|
|
|
|
# Verify build
|
|
ls bin/avm # Should exist if build successful
|
|
```
|
|
|
|
## Verification
|
|
|
|
### Test Installation
|
|
|
|
```bash
|
|
# Quick test with provided sample images
|
|
./scripts/run.sh
|
|
|
|
# Check output
|
|
ls build/stitched_result_with_su7.jpg # Should exist after successful run
|
|
```
|
|
|
|
### Expected Output Files
|
|
|
|
After successful execution, you should see:
|
|
|
|
```
|
|
build/
|
|
├── front_undis.jpg # Undistorted front view
|
|
├── back_undis.jpg # Undistorted back view
|
|
├── left_undis.jpg # Undistorted left view
|
|
├── right_undis.jpg # Undistorted right view
|
|
├── bird_front_2.jpg # Front bird's eye view
|
|
├── bird_back_2.jpg # Back bird's eye view
|
|
├── bird_left_2.jpg # Left bird's eye view
|
|
├── bird_right_2.jpg # Right bird's eye view
|
|
└── stitched_result_with_su7.jpg # Final panoramic result
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### OpenCV Not Found
|
|
|
|
```
|
|
CMake Error: Could not find OpenCV
|
|
```
|
|
|
|
**Solution:**
|
|
|
|
- Verify OpenCV installation: `pkg-config --modversion opencv`
|
|
- Set OpenCV path manually: `export OpenCV_DIR=/path/to/opencv`
|
|
- Reinstall OpenCV development packages
|
|
|
|
### Build Errors
|
|
|
|
```
|
|
error: opencv2/opencv.hpp: No such file or directory
|
|
```
|
|
|
|
**Solution:**
|
|
|
|
- Install OpenCV development headers
|
|
- Check include paths in CMakeLists.txt
|
|
- Verify compiler can find OpenCV includes
|
|
|
|
### Runtime Errors
|
|
|
|
```
|
|
error while loading shared libraries: libopencv_core.so
|
|
```
|
|
|
|
**Solution:**
|
|
|
|
- Update library path: `sudo ldconfig`
|
|
- Add to LD_LIBRARY_PATH: `export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH`
|
|
|
|
### Permission Errors
|
|
|
|
```
|
|
Permission denied: ./scripts/build.sh
|
|
```
|
|
|
|
**Solution:**
|
|
|
|
```bash
|
|
chmod +x scripts/*.sh
|
|
```
|
|
|
|
### Missing Input Images
|
|
|
|
```
|
|
[ERROR] Unable to read input image files
|
|
```
|
|
|
|
**Solution:**
|
|
|
|
- Ensure input images exist in `assets/images/`
|
|
- Check file permissions and formats (PNG/JPG supported)
|
|
- Verify image files are not corrupted
|
|
|
|
## Performance Optimization
|
|
|
|
### Build Optimizations
|
|
|
|
For maximum performance, build in Release mode:
|
|
|
|
```bash
|
|
cd build
|
|
cmake -DCMAKE_BUILD_TYPE=Release ..
|
|
make -j$(nproc)
|
|
```
|
|
|
|
### Runtime Optimizations
|
|
|
|
- Use SSD storage for faster I/O operations
|
|
- Ensure sufficient RAM to avoid swapping
|
|
- Close unnecessary applications during processing
|
|
|
|
## Next Steps
|
|
|
|
After successful installation:
|
|
|
|
1. **Read the Documentation**: Check `README.md` for usage instructions
|
|
2. **Try Custom Images**: Replace sample images with your own fisheye images
|
|
3. **Explore Configuration**: Review camera parameters in the source code
|
|
4. **Contribute**: See `CONTRIBUTING.md` for development guidelines
|
|
|
|
## Getting Help
|
|
|
|
If you encounter issues:
|
|
|
|
1. Check this troubleshooting section
|
|
2. Search existing GitHub issues
|
|
3. Create a new issue with detailed error information
|
|
4. Include your system information and build logs
|