| --- |
| title: "Introduction" |
| description: "Automated image matching tool with state-of-the-art algorithms" |
| --- |
|
|
| # Introduction |
|
|
| Image Matching WebUI (IMCUI) is a modern tool for matching image pairs using state-of-the-art computer vision algorithms. Built with Gradio, it provides an intuitive interface for both researchers and developers. |
|
|
| <Tip> |
| <strong>Ready to get started?</strong> Jump directly to our <a href="/docs/quickstart">Quick Start</a> to begin matching images in minutes. |
| </Tip> |
|
|
|
|
| ## What It Does |
|
|
| IMCUI matches pairs of images to identify corresponding points and estimate geometric transformations. Built for: |
|
|
| - **Computer Vision Research**: Algorithm comparison and benchmarking |
| - **Image Processing**: Feature matching, image stitching, panorama creation |
| - **Education**: Learning modern matching algorithms through visualization |
| - **Development**: Integrating matching into applications |
|
|
| ## Key Capabilities |
|
|
| ### 🎯 Algorithm Diversity |
| Access 20+ matching algorithms through [vismatch](https://github.com/gmberton/vismatch) integration: |
| - **Sparse methods**: Feature-based matching with discrete keypoints |
| - **Dense methods**: Pixel-wise correlation matching |
| - **Hybrid approaches**: Combining multiple techniques |
|
|
| ### 🖥️ User Experience |
| - **Modern web interface**: Intuitive Gradio-based UI |
| - **Real-time visualization**: See matches as they're computed |
| - **Flexible input**: Local files, webcam, or batch processing |
|
|
| ### 🔧 Customization |
| - **YAML configuration**: Easy setup and sharing |
| - **Parameter tuning**: Adjust thresholds, RANSAC settings, more |
| - **GPU acceleration**: Support for CUDA-enabled systems |
|
|
| ### 🚀 Integration |
| - **Complete API**: Programmatic access to all features |
| - **CLI tools**: Command-line automation |
| - **Extensible**: Add custom matchers and features |
|
|
| ## Architecture |
|
|
| ```mermaid |
| graph LR |
| UserInput[User Input] --> CLI[CLI Interface] |
| UserInput --> WebUI[Web Interface] |
| |
| CLI --> API[ImageMatchingAPI] |
| WebUI --> API |
| |
| subgraph CoreFeatures[Core Functions] |
| API --> Matching[Matching Engine] |
| API --> Geometry[Geometry Computation] |
| API --> Visualization[Visualization] |
| end |
| |
| subgraph DataSources[Data Sources] |
| MatcherZoo[Matcher Zoo<br/>vismatch integration] |
| ModelCache[Model Cache] |
| Config[Config Files] |
| end |
| |
| API --> MatcherZoo |
| API --> ModelCache |
| API --> Config |
| |
| Output[Result Output] --> CLI |
| Output --> WebUI |
| |
| Visualization --> Output |
| |
| style UserInput fill:#4F46E5,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style CLI fill:#8B5CF6,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style WebUI fill:#8B5CF6,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style API fill:#6366F1,stroke:#ffffff,stroke-width:3px,color:#ffffff,font-size:11px |
| style Matching fill:#F59E0B,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style Geometry fill:#F59E0B,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style Visualization fill:#EC4899,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style MatcherZoo fill:#10B981,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style ModelCache fill:#D97706,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style Config fill:#059669,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style Output fill:#818CF8,stroke:#ffffff,stroke-width:2px,color:#ffffff,font-size:11px |
| style CoreFeatures fill:#374151,stroke:#6366F1,stroke-width:2px,color:#ffffff,stroke-dasharray: 5 5 |
| style DataSources fill:#374151,stroke:#6366F1,stroke-width:2px,color:#ffffff,stroke-dasharray: 5 5 |
| ``` |
|
|
| <Columns> |
| <Card title="Matcher Zoo" icon="box"> |
| Dynamically loads algorithms from vismatch package |
| </Card> |
| <Card title="Core API" icon="code"> |
| Python API for programmatic matching |
| </Card> |
| <Card title="Web Interface" icon="monitor"> |
| Gradio-based UI for interactive use |
| </Card> |
| <Card title="Configuration" icon="sliders_horizontal"> |
| YAML-based setup and parameter management |
| </Card> |
| </Columns> |
| |
|
|
| ## Getting Started |
|
|
| <Card |
| title="Start Matching Images" |
| icon="rocket" |
| href="/docs/quickstart" |
| > |
| Follow our three-step guide to install and start using Image Matching WebUI in minutes. |
| </Card> |
|
|
|
|
| ## Technical Overview |
|
|
| ### Matching Pipeline |
|
|
| 1. **Feature Detection**: Identify keypoints in source images |
| 2. **Feature Description**: Generate descriptors for each keypoint |
| 3. **Feature Matching**: Find corresponding points between images |
| 4. **Outlier Removal**: Use RANSAC to filter incorrect matches |
| 5. **Geometry Estimation**: Compute transformation matrix |
| 6. **Visualization**: Display matches and estimated geometry |
|
|
| ### Supported Geometries |
|
|
| - **Homography**: Projective transformation for planar scenes |
| - **Fundamental Matrix**: Epipolar geometry for calibrated cameras |
| - **Essential Matrix**: Camera motion for calibrated stereo |
|
|
| ### Algorithm Integration |
|
|
| All matching algorithms are maintained in the [vismatch](https://github.com/gmberton/vismatch) repository. New algorithms become automatically available as they're added. |
|
|
| ## Performance |
|
|
| <CardGroup> |
| <Card title="Speed" icon="zap"> |
| GPU-accelerated matching for large images |
| </Card> |
| <Card title="Accuracy" icon="check-circle"> |
| State-of-the-art algorithms with proven results |
| </Card> |
| <Card title="Simplicity" icon="heart"> |
| Easy to use for beginners, powerful for experts |
| </Card> |
| </CardGroup> |
| --- |
| |
| ## Project Resources |
|
|
| <CardGroup cols={2}> |
| <Card title="Installation Guide" icon="download" href="/docs/installation"> |
| PyPI, Docker, source installation options |
| </Card> |
| <Card title="Configuration" icon="file-text" href="/docs/configuration"> |
| Customize matchers and parameters |
| </Card> |
| <Card title="Algorithm Reference" icon="list" href="/docs/models"> |
| Available matching algorithms |
| </Card> |
| <Card title="API Documentation" icon="code" href="/docs/api"> |
| Programmatic usage guide |
| </Card> |
| </CardGroup> |
| |
|
|
| ## Community & Support |
|
|
| <Note> |
| <strong>Need Help?</strong> Visit our <a href="https://github.com/Vincentqyw/image-matching-webui/discussions">community discussions</a> or check the <a href="/docs/troubleshooting">troubleshooting guide</a> for common issues. |
| </Note> |
|
|