An Invariant Tangent-Angle Descriptor and a Band U-Net for 2D Fragment Adjacency Prediction
Organizations: Université du Québec à Trois-Rivières, Trois-Rivières, Canada
Abstract
This paper addresses the prediction of adjacency between pairs of 2D fragments based on their contours. We improved the two-stage architecture proposed in Beaulac's thesis, in which a rotation-equivariant Siamese convolutional neural network scores pairs of local image windows along the two contours of two fragments. The scores are gathered in an adjacency matrix in which a ResNet detects the partial anti-diagonal band that reveals the adjacency of two fragments. In the current work, we keep the pipeline and replace the local score by a comparison of tangent-angle profiles of contour windows, making it, by construction, invariant to fragment rotation and agnostic to the selected contour-starting point. These adaptations may be either a training-free likelihood ratio or a small one-dimensional convolutional model trained on corresponding points. We also replaced the final classifier by a band U-Net that segments the band and classifies the pair, so that the shared arc is obtained along with the decision. In the synthetic data set of the original thesis, the tangent descriptor performs as well as or better than the image-window approach in all tested configurations. The proposed pipeline reaches an accuracy of 98%, vs 93% to 95% for the original approach once its evaluation is corrected. We tested our pipeline, with models trained only on synthetic data, on the PairingNet benchmark, and obtained an AUC of 0.93. Furthermore, under the PairingNet pair-searching protocol conditions, our learned descriptor obtains a Recall@10 of 0.82 on the real set against 0.56 from the best model of the original paper.
Figures & tables
| Local model | Global classifier | Acc. | AUC |
|---|---|---|---|
| His CNN, his code | His ResNet18, as written | 0.715 0.006 | n/a a |
| Same, labels corrected | 0.939 0.010 | n/a a | |
| image windows (port) | ResNet18 | 0.936 | 0.978 |
| ResNet18, ImageNet init. | 0.945 | 0.978 | |
| ResNet18 + roll | 0.942 | 0.981 | |
| Band U-Net | 0.950 | 0.984 |
| 16-fragment images, test split | 26-fragment images, validation | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Design | First stage | ResNet18 | +pretr. | +roll | U-Net | Int. | IoU | ResNet18 | +pretr. | +roll | U-Net |
| Original | image windows | 0.935 | 0.966 | 0.984 | 0.995 | 1.00 | 0.93 | 0.705 | 0.894 | 0.943 | 0.965 |
| Tangent descriptor | 0.995 | 0.998 | 0.998 | 0.999 | 1.00 | 0.96 | 0.970 | 0.971 | 0.984 | 0.984 | |
| No frame | image windows | 0.649 | 0.900 | 0.924 | 0.965 | 0.99 | 0.87 | 0.571 | 0.875 | 0.926 | 0.960 |
| Tangent descriptor | 0.961 | 0.975 | 0.973 | 0.984 | 1.00 | 0.93 | 0.956 | 0.969 | 0.981 | 0.985 | |
| Frame kept | image windows | 0.913 | 0.916 | 0.921 | 0.949 | 0.84 | n/a | 0.888 | 0.886 | 0.893 | 0.914 |
| Model, data | Acc. | AUC | Int. |
| Published weights, our Original images | 0.674 | 0.768 | 0.656 |
| Same, every fragment rotated | 0.524 | 0.543 | 0.533 |
| Same, 16-fragment images | 0.657 | 0.803 | 0.646 |
| Published weights, their generator and protocol | 0.827 | 0.917 | 0.751 |
| Tangent pipeline, No frame | 0.985 | 0.999 | 0.999 |
| Tangent pipeline, Diverse cuts | 0.926 | 0.963 | 0.963 |
| 16-fragment | 26-fragment | ||||
| Design | First stage | U-Net | IoU | U-Net | IoU |
| Original | image windows | 0.72 | 0.34 | 0.71 | 0.34 |
| Tangent descriptor | 0.80 | 0.24 | 0.71 | 0.36 | |
| No frame | image windows | 0.75 | 0.35 | 0.64 | 0.01 |
| Tangent descriptor | 0.71 | 0.36 | 0.73 | 0.35 | |
| Frame kept | image windows | 0.58 | 0.19 | 0.57 | 0.00 |
| Set | Method | R@5 | R@10 | N@5 | N@10 | Input |
| Real | Learned tangent descriptor anti-diagonal run (ours) | 0.794 | 0.823 | 0.709 | 0.718 | Contour |
| Training-free tangent descriptor anti-diagonal run (ours) | 0.688 | 0.748 | 0.628 | 0.650 | Contour | |
| Tangent pipeline matrix (stride 3), anti-diagonal run (ours) | 0.683 | 0.713 | 0.635 | 0.646 | Contour | |
| PairingNet [ 39 ] | 0.415 | 0.564 | 0.321 | 0.369 | Contour + texture | |
| JigsawNet [ 16 ] , as reported in [ 39 ] | 0.237 | 0.326 | 0.185 | 0.213 | Image | |
| Rule-based [ 35 ] , as reported in [ 39 ] | 0.138 | 0.247 | 0.079 | 0.114 | Contour + colour |
| Synthetic | Beaulac | PairingNet | ||||
|---|---|---|---|---|---|---|
| Trained on | AUC | R@10 | AUC | R@10 | AUC | R@10 |
| Synthetic diverse cuts | 0.997 | 0.975 | 0.985 | 0.958 | 0.968 | 0.866 |
| PairingNet training split | 0.991 | 0.930 | 0.984 | 0.965 | 0.970 | 0.823 |