|
1 | | -[](https://mybinder.org/v2/gh/multi-template-matching/mtm-skimage-shapely/main?filepath=tutorials) |
| 1 | +[](https://mybinder.org/v2/gh/multi-template-matching/mtm-python-oop/main?filepath=tutorials) |
2 | 2 |
|
3 | 3 | # Multi-Template-Matching |
4 | | -Multi-Template-Matching is a package to perform object-recognition in images using one or several smaller template images. |
5 | | -This implementation relies on the packages scikit-image and shapely, but not on OpenCV contrary to the other implementation originally published. |
6 | | -It is more objcet-oriented, especially it should be easier to adapt to other shapes (detection with rectangular template but outline detected region with a non-rectangular shape), by implementing another type of Detection object. |
| 4 | +Multi-Template-Matching is an accessible method to perform object-detection in images using one or several template images for the search. |
| 5 | +The strength of the method compared to previously available single-template matching, is that by combining the detections from multiple templates, |
| 6 | +one can improve the range of detectable patterns. This helps if you expect variability of the object-perspective in your images, such as rotation, flipping... |
| 7 | +The detections from the different templates are not simply combined, they are filtered using Non-Maxima Supression (NMS) to prevent overlapping detections. |
7 | 8 |
|
8 | | -The template and images should have the same bitdepth (8,16,32-bit) and number of channels (single/Grayscale or RGB). |
9 | | -The main function `MTM.matchTemplates` returns the best predicted locations provided either a score_threshold and/or the expected number of objects in the image. |
| 9 | +The python implementations of mtm only perform the detection and filtering with NMS. |
| 10 | +For the templates, you can provde a list of images to use. You can also perform geometrical transformation (kind of data augmentation) of existing templates if you expect these transformation in the image (ex: rotation/flipping). |
10 | 11 |
|
11 | | -# Installation |
12 | | -Coming soon. |
| 12 | +This implementation relies on the packages scikit-image and shapely, but not on OpenCV contrary to the python implementation originally published (and still available). |
| 13 | +It is more object-oriented, especially it should be easier to adapt to other shapes (detection with rectangular template but outlining detected region with a non-rectangular shape), by implementing another type of Detection object. |
| 14 | +In this implementation the detection are of type `BoundingBox` which is derived from the shapely `Polygon` class. Therefore you can use all functions available for Polygon with a BoundingBox. |
| 15 | + |
| 16 | +The main function `mtm.matchTemplates` returns the best predicted locations provided a scoreThreshold and an optional number of objects expected in the image. |
13 | 17 |
|
14 | | -# Documentation |
| 18 | +The website of the project https://multi-template-matching.github.io/Multi-Template-Matching/ references most of the information, including presetnations, posters and recorded talks/tutorials. |
| 19 | + |
| 20 | +# Installation |
15 | 21 | Coming soon. |
16 | 22 |
|
17 | 23 | # Examples |
18 | | -Check out the [jupyter notebook tutorial](https://github.com/multi-template-matching/MultiTemplateMatching-Python/tree/master/tutorials) for some example of how to use the package. |
| 24 | +Check out the [jupyter notebook tutorial](https://github.com/multi-template-matching/mtm-python-oop/tree/master/tutorials) for some example of how to use the package. |
19 | 25 | You can run the tutorials online using Binder, no configuration needed ! (click the Binder banner on top of this page). |
20 | 26 | To run the tutorials locally, install the package using pip as described above, then clone the repository and unzip it. |
21 | 27 | Finally open a jupyter-notebook session in the unzipped folder to be able to open and execute the notebook. |
|
0 commit comments