Notes de recherche : ASLFeat : Apprentissage des caractéristiques locales de forme et de localisation précises

Cet article est basé sur une amélioration de D2-Net, avec les principales innovations suivantes :

1) Utilisation de la Convolution Déformable pour estimer des transformations denses et extraire des caractéristiques
2) Utilisation d'une pyramide de caractéristiques pour s'adapter à la résolution spatiale et utiliser des détails de bas niveau pour un positionnement précis des points caractéristiques

1 Méthodes

1.1 Prérequis

La conception du réseau dans cet article est basée sur les deux travaux suivants : DCN et D2-Net. Commençons par revoir les principales idées de ces deux travaux :

Réseaux convolutifs déformables (DCN)

La Convolution Déformable (Deformable Convolutional Networks, DCN) a pour principal objectif d'apprendre des champs réceptifs dynamiques. Pour une convolution traditionnelle, la formule est :

\begin{equation}\mathbf{y}(\mathbf{p})=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}+\mathbf{p}_{n}\right)\end{equation}
\mathbf{p} représente les coordonnées du point central de la convolution, \mathbf{p}_{n} représente le décalage dans la plage de convolution \mathcal{R}, et \mathbf{x}(\cdot) représente la valeur du pixel à ce point. Le DCN ajoute une prédiction de décalage \Delta p ainsi qu'un poids de caractéristique \Delta m :

\begin{equation}\mathbf{y}(\mathbf{p})=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}\right) \cdot \Delta \mathbf{m}_{n}\end{equation}
Comme \Delta p est généralement un nombre décimal, une interpolation non linéaire est utilisée dans l'implémentation pratique.

D2-Net

L'idée centrale de D2-Net est de fusionner le descripteur et le détecteur en un seul, describe-and-detect. En apprenant une carte de caractéristiques, les descripteurs locaux sont obtenus via la norme L2, tandis que le détecteur est obtenu en effectuant le calcul suivant sur y :

Calcul du score local :

\begin{equation}\alpha_{i j}^{c}=\frac{\exp \left(\mathbf{y}_{i j}^{c}\right)}{\sum_{\left(i^{\prime}, j^{\prime}\right) \in \mathcal{N}(i, j)} \exp \mathbf{y}_{i^{\prime} j^{\prime}}^{c}}\end{equation}
\mathcal{N}(i, j) représente la plage des pixels voisins, par exemple une convolution 3 \times 3 couvre 9 pixels voisins.

Calcul du score par canal :

\begin{equation}\beta_{i j}^{c}=\mathbf{y}_{i j}^{c} / \max _{t} \mathbf{y}_{i j}^{t}\end{equation}
Le score final du détecteur est obtenu en prenant le maximum des deux :

\begin{equation}s_{i j}=\max _{t}\left(\alpha_{i j}^{c} \beta_{i j}^{c}\right)\end{equation}

Sur cette base, cet article propose les améliorations suivantes.

1.2  DCN avec contraintes géométriques

Les auteurs estiment que la version originale de DCN a trop de degrés de liberté, ce qui peut entraîner des prédictions de déformations arbitraires. Cependant, pour la tâche de localisation visuelle, les déformations sont globales et ont un nombre limité de degrés de liberté, généralement 1) similarité, 2) affine et 3) homographie :

Ainsi, le DCN traditionnel apprend des paramètres non pertinents tout en ne garantissant pas que les contraintes géométriques soient respectées. Les auteurs ont donc amélioré le modèle en utilisant des contraintes géométriques.

DCN contraint par transformation affine

Une transformation affine comprenant une rotation et un redimensionnement est généralement définie comme suit :

\begin{equation}\mathbf{S}=\lambda R(\theta)=\lambda\left(\begin{array}{cc}\cos (\theta) & \sin (\theta) \\-\sin (\theta) & \cos (\theta)\end{array}\right)\end{equation}
Dans certains articles, comme AffNet, un coefficient de courbure est également introduit. Cet article définit donc la transformation affine comme suit :

\begin{equation}\begin{aligned}\mathbf{A} &=\mathbf{S} A^{\prime}=\lambda R(\theta) A^{\prime} \\&=\lambda\left(\begin{array}{cc}\cos (\theta) & \sin (\theta) \\-\sin (\theta) & \cos (\theta)\end{array}\right)\left(\begin{array}{ll}a_{11}^{\prime} & 0 \\a_{21}^{\prime} & a_{22}^{\prime}\end{array}\right)\end{aligned}\end{equation}

DCN contraint par homographie

L'homographie est généralement résolue à partir de 4 paires de points. Cet article suit l'approche de l'article « Unsupervised deep homography » en utilisant un solveur linéaire différentiable pour calculer la matrice H. Une équation linéaire est généralement définie comme suit : \mathbf{M h}=\mathbf{0}, où \mathbf{M} \in \mathbb{R}^{8 \times 9}. \mathbf{h} est un vecteur de dimension 9 représentant les 9 paramètres de la matrice \mathbf{H}, avec les contraintes \mathbf{H}_{33}=1 et \mathbf{H}_{31}=\mathbf{H}_{32}=0, ce qui réduit le nombre de paramètres à 6. L'équation linéaire est réécrite comme suit : \hat{\mathbf{M}}_{(i)} \hat{\mathbf{h}}=\hat{\mathbf{b}}_{(i)}, où \hat{\mathbf{M}}_{(i)} \in \mathbb{R}^{2 \times 6}, et pour chaque paire de points correspondants (u_i, v_i) et (u_i', v_i'), nous avons :

\begin{equation}\hat{\mathbf{M}}_{(i)}=\left[\begin{array}{cccccc}0 & 0 & -u_{i} & -v_{i} & v_{i}^{\prime} u_{i} & v_{i}^{\prime} v_{i} \\u_{i} & v_{i} & 0 & 0 & -u_{i}^{\prime} u_{i} & -u_{i}^{\prime} v_{i}\end{array}\right]\end{equation}

Et :

\begin{equation}\hat{\mathbf{b}}_{(i)}=\left[-v_{i}^{\prime}, u_{i}^{\prime}\right]^{T} \in \mathbb{R}^{2 \times 1}\end{equation}

L'équation linéaire finale est donc :

\begin{equation}\hat{\mathbf{M}} \hat{\mathbf{h}}=\hat{\mathbf{b}}\end{equation}

En utilisant un solveur linéaire différentiable (tf.matrix solve), nous pouvons résoudre pour obtenir \mathbf{h}.

En pratique, nous utilisons les quatre décalages {(−1, −1),(1, −1),(1, 1),(−1, 1)}, que nous multiplions par \mathbf{H} pour obtenir de nouveaux décalages.

En définissant toutes les transformations géométriques ci-dessus, le décalage final avec contrainte géométrique est obtenu par la formule suivante :

\begin{equation}\triangle \mathbf{p}_{n}=\mathbf{T} \mathbf{p}_{n}-\mathbf{p}_{n}, \text { où } \mathbf{p}_{n} \in \mathcal{R}\end{equation}

1.3 Détection sélective et précise des points caractéristiques

Mesure de la netteté des points caractéristiques

Dans D2-Net, le score du détecteur est obtenu en combinant les réponses spatiales et par canal. Lors du calcul du score par canal, un ratio par rapport au maximum est utilisé, ce qui peut affaiblir la corrélation avec la distribution réelle sur le canal. Sur cette base, les auteurs ont amélioré les deux scores comme suit (principalement pour utiliser le pic comme critère de score du détecteur) :

\begin{equation}\beta_{i j}^{c}=\operatorname{softplus}\left(\mathbf{y}_{i j}^{c}-\frac{1}{C} \sum_{t} \mathbf{y}_{i j}^{t}\right)\end{equation}

De même :

\begin{equation}\alpha_{i j}^{c}=\operatorname{softplus}\left(\mathbf{y}_{i j}^{c}-\frac{1}{|\mathcal{N}(i, j)|} \sum_{\left(i^{\prime}, j^{\prime}\right) \in \mathcal{N}(i, j)} \mathbf{y}_{i^{\prime} j^{\prime}}^{c}\right)\end{equation}

La fonction d'activation softplus est définie comme suit :

\begin{equation}f(x)=\ln \left(1+e^{x}\right)\end{equation}

Détection multi-niveaux des points caractéristiques (MulDet)

La précision de localisation des points caractéristiques dans D2-Net est insuffisante, car la détection est effectuée à partir d'une carte de caractéristiques de faible résolution. Il existe plusieurs méthodes pour restaurer la résolution spatiale (comme illustré ci-dessous), telles que l'apprentissage d'un décodeur de caractéristiques supplémentaire ou l'utilisation de convolutions dilatées. Cependant, ces méthodes augmentent soit le nombre de paramètres à apprendre, soit la consommation de mémoire GPU ou de puissance de calcul.

Les auteurs proposent une solution simple et efficace qui ne nécessite pas de poids d'apprentissage supplémentaires, en exploitant les niveaux de caractéristiques pyramidales inhérents au réseau convolutif, en combinant la détection à partir de plusieurs niveaux de caractéristiques, c'est-à-dire une méthode de fusion hiérarchique des échelles.

\begin{equation}\hat{\mathbf{s}}=\frac{1}{\sum_{l} w_{l}} \sum_{l} w_{l} \mathbf{s}^{(l)}\end{equation}

Le score final est calculé en effectuant une somme pondérée des scores à la même position dans chaque niveau.

1.4 Cadre d'apprentissage

Architecture du réseau

La conception finale du réseau est illustrée ci-dessous :

Comme dans la conception de VGG, chaque échelle comporte deux convolutions. Dans la dernière couche, trois convolutions déformables sont utilisées (conv6, conv7 et conv8), et la partie MulDet utilise les caractéristiques des couches conv1, conv3 et conv8.

Dans la formule 14, w_{i}=1,2,3, et dans la formule 3, \mathcal{N}(i, j)=3,2,1.

Conception de la perte

Soit \mathcal{C} l'ensemble des paires de points caractéristiques correspondants dans les images (I, I^{\prime}). La perte est définie de manière similaire à D2-Net comme suit :

\begin{equation}\mathcal{L}\left(I, I^{\prime}\right)=\frac{1}{|\mathcal{C}|} \sum_{c \in \mathcal{C}} \frac{\hat{s}_{c} \hat{s}_{c}^{\prime}}{\sum_{q \in \mathcal{C}} \hat{s}_{q} \hat{s}_{q}^{\prime}} \mathcal{M}\left(\mathbf{f}_{c}, \mathbf{f}_{c}^{\prime}\right)\end{equation}

\hat{S}_{k} et \hat{S}_{k}^{\prime} représentent les scores du détecteur pour (I et I^{\prime}), et \mathbf{f}_{k} et \mathbf{f}_{k}^{\prime} représentent les descripteurs. \mathcal{M}(\cdot, \cdot) représente la perte de classement (ranking loss), qui remplace la perte de triplet la plus difficile (hardest-triplet loss) utilisée dans D2-Net. Ici, \mathcal{M} est définie comme suit :

\begin{equation}\begin{array}{l}\mathcal{M}\left(\mathbf{f}_{c}, \mathbf{f}_{c}^{\prime}\right)=\left[D\left(\mathbf{f}_{c}, \mathbf{f}_{c}^{\prime}\right)-m_{p}\right]_{+}+ \\\quad\left[m_{n}-\min \left(\min _{k \neq c} D\left(\mathbf{f}_{c}, \mathbf{f}_{k}^{\prime}\right), \min _{k \neq c} D\left(\mathbf{f}_{k}, \mathbf{f}_{c}^{\prime}\right)\right)\right]_{+}\end{array}\end{equation}

D(\cdot, \cdot) représente la distance euclidienne. m_p et m_n sont respectivement 0,2 et 1,0.

2 Expériences

2.1 Appariement d'images

Les résultats expérimentaux sont les suivants :

2.2 Comparaisons avec d'autres méthodes

Les résultats expérimentaux sont les suivants :

2.3 Reconstruction 3D

Les résultats expérimentaux sont les suivants :

2.4 Localisation visuelle

Les résultats expérimentaux sont les suivants :

Article & Code source

Article
https://arxiv.org/abs/2003.10071

Code source
https://github.com/lzx551402/ASLFeat

Références

[1] https://blog.csdn.net/phy12321/article/details/106040545
[2] https://www.jianshu.com/p/c184c2efbecc

Add a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *