| --- |
| title: "Matching Algorithms" |
| description: "Choose the right algorithm for your image matching needs" |
| --- |
|
|
| |
|
|
| Image Matching WebUI supports 20+ state-of-the-art algorithms through the [vismatch](https://github.com/gmberton/vismatch) library. Each algorithm is designed for specific use cases and image types. |
|
|
| <Tip> |
| <strong>Recommendation:</strong> Start with <code>superpoint-lightglue</code> for general-purpose matching. It's fast, accurate, and works well on most image types. |
| </Tip> |
|
|
|
|
| |
|
|
| |
|
|
| Best for: Feature matching, object detection, real-time applications |
|
|
| | Algorithm | Speed | Accuracy | Best For | |
| |-----------|-------|----------|----------| |
| | **superpoint-lightglue** | Fast | High | General purpose | |
| | **sift-lightglue** | Medium | Very High | High-quality features | |
| | **disk-lightglue** | Fast | High | Efficient matching | |
| | **omniglue** | Medium | High | Cross-domain images | |
| | **aliked** | Very Fast | Medium | Real-time applications | |
|
|
| |
|
|
| Best for: Depth estimation, 3D reconstruction, photogrammetry |
|
|
| | Algorithm | Speed | Accuracy | Memory | |
| |-----------|-------|----------|--------| |
| | **roma** | Slow | Very High | High | |
| | **tiny-roma** | Medium | High | Medium | |
| | **loftr** | Medium | Very High | High | |
| | **xoftr** | Slow | Very High | Very High | |
| | **duster** | Fast | Medium | Low | |
|
|
| |
|
|
| Best for: Balance between speed and accuracy |
|
|
| | Algorithm | Speed | Accuracy | Use Case | |
| |-----------|-------|----------|----------| |
| | **aspanformer** | Slow | Very High | Large baselines | |
| | **matchformer** | Medium | High | General matching | |
| | **eloftr** | Fast | High | Real-time matching | |
|
|
|
|
| |
|
|
| <CardGroup cols={2}> |
| <Card title="Speed Priority" icon="zap"> |
| **aliked** or **disk-lightglue** for fastest results |
| </Card> |
| <Card title="Accuracy Priority" icon="check-square"> |
| **roma** or **superpoint-lightglue** for best quality |
| </Card> |
| <Card title="Low Memory" icon="hard-drive"> |
| **duster** or **aliked** for limited GPU memory |
| </Card> |
| <Card title="General Purpose" icon="star"> |
| **superpoint-lightglue** works well on most tasks |
| </Card> |
| </CardGroup> |
|
|
|
|
| |
|
|
| |
|
|
| **Best for**: General-purpose image matching |
|
|
| Select `superpoint-lightglue` from the matcher dropdown in the web interface. |
|
|
| **Advantages**: |
| - Fast and accurate |
| - Works with various image types |
| - Robust to scale and rotation changes |
|
|
| |
|
|
| **Best for**: Wide-baseline matching, texture-poor images |
|
|
| Select `loftr` from the matcher dropdown in the web interface. |
|
|
| **Advantages**: |
| - Excellent for large viewpoint changes |
| - Works well with low-texture images |
| - Dense matching for comprehensive coverage |
|
|
| |
|
|
| **Best for**: High-precision geometric tasks |
|
|
| Select `roma` from the matcher dropdown in the web interface. |
|
|
| **Advantages**: |
| - Highest accuracy |
| - Good for 3D reconstruction |
| - Robust to extreme viewpoint changes |
|
|
|
|
| |
|
|
| |
|
|
| 1. **Choose faster algorithms**: `aliked`, `disk-lightglue` |
| 2. **Reduce image resolution**: Set lower resize values |
| 3. **Limit keypoints**: Decrease `max_keypoints` |
| 4. **Use CPU for testing**: Fallback to CPU when GPU unavailable |
|
|
| |
|
|
| 1. **Use state-of-the-art**: `roma`, `superpoint-lightglue` |
| 2. **Enable RANSAC**: Set high confidence levels |
| 3. **Higher thresholds**: Adjust `setting_threshold` |
| 4. **Preprocessing**: Grayscale conversion often improves results |
|
|
| |
|
|
| 1. **Use semi-dense algorithms**: `loftr`, `aspanformer` |
| 2. **Reduce batch size**: Process images sequentially |
| 3. **Lower resolution**: Resize images before matching |
|
|
|
|
| |
|
|
| <AccordionGroup defaultOpenAll> |
| <Accordion title="Sparse vs Dense vs Semi-Dense"> |
| <div class="space-y-4"> |
| <div> |
| <div class="font-semibold">Sparse</div> |
| <div class="">Fast, memory-efficient, good for feature-based tasks</div> |
| </div> |
| <div> |
| <div class="font-semibold">Dense</div> |
| <div class="">Comprehensive matching, high accuracy, memory-intensive</div> |
| </div> |
| <div> |
| <div class="font-semibold">Semi-Dense</div> |
| <div class="">Balanced speed and accuracy, good for most applications</div> |
| </div> |
| </div> |
| </Accordion> |
| <Accordion title="When to Use Each Category"> |
| <div class="space-y-2"> |
| <div><strong>Sparse:</strong> Feature matching, object detection, real-time</div> |
| <div><strong>Dense:</strong> 3D reconstruction, depth estimation, photogrammetry</div> |
| <div><strong>Semi-Dense:</strong> General matching, medical imaging, document processing</div> |
| </div> |
| </Accordion> |
| </AccordionGroup> |
|
|
|
|
| |
|
|
| List all available algorithms via Python: |
|
|
| ```python |
| from imcui.ui import get_available_model_names |
| print(get_available_model_names()) |
| ``` |
|
|
| <Note> |
| <strong>New algorithms:</strong> All matching algorithms are maintained in the <a href="https://github.com/gmberton/vismatch">vismatch</a> repository. New algorithms become automatically available when added to the collection. |
| </Note> |
|
|