• Aucun résultat trouvé

Asservissement visuel trifocal

Chirurgie laser guidée par l’image

2.3. Asservissement visuel trifocal

p>00FLL= 0 (2.1) ˜ pL>L FRR= 0 (2.2) ˜ p00FR>R = 0 (2.3)

Par ailleurs, les trois contraintes ci-dessus peuvent être regroupées dans une seule transformation point-point-point régie par le tenseur trifocal associé (Hartley and Zisserman,2006). On peut écrire alors, [ ˜pL]× 3 X i=1 ˜ piTi ! [ ˜pR]× = 03×3 (2.4)

où [v] est la matrice asymétrique associée au produit vectoriel croisé (×) par v et l’ensemble des matricesT1,T2, and T3 représentent le tenseur trifocal T3×3×3. De même, il est possible d’écrire la transformation point-point-point comme suit :

[ ˜pL]×( ˜piTijk)[ ˜pR]×= 03×3 (2.5) avec i,j,k ∈ [1 ;3].

2.3. Asservissement visuel trifocal

2.3.1. Redéfinition du tenseur trifocal

Dériver une loi de commande d’asservissement visuel en prenant en compte la contrainte trifocale introduite dans (2.4) n’est pas trivial. Ceci nécessite beaucoup de manipulations mathématiques sou-vent complexes (inversions de matrices, approximations, etc.). Pour simplifier, deux idées originales ont été mises en commun dans ce travail : 1) utiliser le miroir actionné qui contrôle le déplacement du laser comme une caméra virtuelle permettant l’acquisition d’un pixel à chaque itération et 2) reformuler le tenseur trifocal sous forme vectorielle simplifiée. Pour ce faire, la Fig. 2.2 peut être représentée par la Fig.2.3.

2.3. ASSERVISSEMENT VISUEL TRIFOCAL 27

Figure2.3 – Nouvelle représentation de la géométrie à trois vues utilisant deux caméras et un miroir actionné.

Par ailleurs, notons que 0z le vecteur unitaire représentant la direction du faisceau laser qui part du miroir rotatif vers la cible (scène) et0Pla position 3D du spot laser dans la scène et ˜psa projection dans l’image virtuelle. Il est alors possible d’écrire

0P=d0z=Z ˜p0 (2.6)

où, d la distance entre le miroir actionné et la scène, et Z la profondeur (distance parallèle à l’axe optique de la caméra virtuelle).

A noter que les distances d et z sont difficiles à déterminer contrairement à 0z qui peut obtenu par triangulation. En conséquence, dans la suite, nous nous efforcerons de les supprimer dans la formulation de la loi de commande.

A partir de (2.6), il est aisé de remarquer que 0z and ˜p0 sont "projectivement" similaires. Ainsi,

0z≡ ˜p0 (2.7)

En fait, ˜p0 est la projection perspective sur un plan, tandis que 0z est la projection perspective sur une sphère. En accord avec la schéma montré Fig. 2.3, il est possible de réécrire la contrainte trifocale (2.1) et (2.7) sous la forme suivante :

hR=0FRR et hL=0FLL (2.8) ˜ pL>L FRR = 0 (2.9) 0z>0FRR = 0 (2.10) 0z>0FLL = 0 (2.11)

Laissons de côté les formulations (2.9), (2.10), et (2.11) pour introduire les notations suivantes hR et hL qui représentent respectivement les vecteurs normaux aux plans épipolaires (Fig. 2.3). Ils sont exprimés comme suit :

Par conséquent, de (2.10) et (2.11), il est trivial de constater que le produit croisé hR × hL est parallèle à 0z (c’est-à-dire 0z ∼ hR × hL). Pour éviter les problèmes d’échelle, cela peut être formulé par le produit croisé (2.13) :

0z× (hR× hL) = 0 (2.13)

Ainsi, la formulation de transformation point-point-point (tenseur trifocal) exprimé (2.5) peut être récrite sous cette forme :

00FRR×0FLL= 0 (2.14) Cette nouvelle formule représente la contrainte trifocale exprimée sous une forme algébrique à l’aide de produits vectoriels zn[0], ˜pLet ˜pR, contrairement à la formulation matricielle (2.4). Nous pouvons noter que la manipulation dans la nouvelle expression de la contrainte trifocale ne nécessite plus la manipulation de matrices (inversion, dérivée, etc.). Néanmoins, elle présente au moins un inconvé-nient par rapport à l’expression originale : l’impossibilité de calculer ˜pR lorsque 0z est coplanaire avec eL et eR (lorsque 0z franchit la baseline). Les quantités hL et hR peuvent être calculées, soit à l’aide de la position désirée du spot laser dans les deux images gauche et droite et en utilisant les matrices fondamentales0

FL et 0

FR (2.12), soit grâce aux épipôles (Fig.2.3). Sur ce dernier point, il est possible d’utiliser les expressions suivantes :

hL = eL× 0z et hR = eR× 0z (2.15)

0

FLeL = 0 et 0

FReR = 0. Le signe des matrices fondamentales et celui des épipôles doivent être cohérents entre eux, c’est-à-dire exprimés comme suit :

(0FLL)>(eL× 0z) > 0 et (0FRR)>(eR× 0z) > 0 (2.16) de manière à ce que (2.12) and (2.15) soient équivalents à un scalaire strictement positif.

Par conséquent, à partir de (2.15), il est trivial d’écrire :

hR× hL = (eR× 0z)× (eL× 0z) (2.17)

En s’inspirant de la formule du triple produit vectoriel suivante :

a× (b × c) = ba>c− ca>b (2.18) Après quelques arrangements et simplifications, nous arrivons au résultat suivant :

hR× hL =−0z>(eL× eR)0z (2.19) Dans cette expression (2.19), il apparaît une distance orientée, c’est-à-dire un signe (-) devant "0z>(eL× eR)0z", entre 0z et la droite passant entre les deux épipôles (Fig.2.4). Ainsi, deux cas de figures se présentent :

— la présence d’une singularité de la contrainte trifocale se produisant, lorsque le spot laser franchit la ligne formée entre les centres de projection des deux caméras dont le résultat est que hR× hL est égal à 0.

— en dehors de cette singularité, les relations suivantes sont valables

khR× hLk = |0z>(eL× eR)| (2.20) 0z =  hR× hL

khR× hLk (2.21)

où  = - sign(0z>(eL× eR)).

Dans la suite de cette section, nous allons aborder la méthodologie de la mise en œuvre de la loi de commande pour le contrôle du spot laser dans l’image dérivée de la réécriture de la contrainte trifocale.

2.3. ASSERVISSEMENT VISUEL TRIFOCAL 29

Figure 2.4 – Problèmes de signes liés à la position de la ligne reliant les deux épipôles.

Figure 2.5 – Différents cas sur la position du spot laser par rapport à la droite (eLeR).

2.3.2. Loi de commande

A présent, tous les ingrédients nécessaires pour la mise en œuvre de la loi de commande par asser-vissement visuel sont réunis. Commençons par les contraintes cinématiques qui en découlent de la nouvelle formule du tenseur trifocal. La dérivée temporelle de la contrainte trifocale (2.13) permet d’obtenir :

0˙z× (hR× hL) + 0z× ˙hR× hL

+ 0hR× ˙hL 

= 0 (2.22)

Par ailleurs, il est possible d’écrire que ˙hR=0FR˙R et ˙hL=0FL˙L. Par conséquent, (2.22) peut être réécrite comme suit :

0˙z× (hR× hL) + 0(0FR˙R)× hL  + 0hR× (0FL˙L)= 0 (2.23) ou encore, 0˙z× (hR× hL) =−0(0FR˙R)× hL  − 0hR× (0FL˙L) (2.24) Après quelques décompositions et réorganisations, nous arrivons à la formulation suivante

0˙z× (hR× hL) = 0hL× (0FR˙R)− hR× (0FL˙L) (2.25) Dans un premier temps, si nous effectuons une division de chaque côté de (2.25) par le terme khR× hLk, il en résulte : 0˙z× hR× hL khR× hLk = 0z khR× hLk×  hL× (0FR˙R)− hR× (0FL˙L) (2.26)

Dans un second temps, en utilisant (2.21) et en inversant le produit vectoriel 0˙z×0z, nous obtenons finalement une relation cinématique, très intéressante, décrivant le lien entre les vitesses ˙˜pL et ˙˜pR du spot laser dans respectivement chacune des images IL et IR, et les vitesses angulaires du faisceau laser, c’est-à-dire 0˙z. La formule résultante est la suivante :

00˙z =− hR× hL

khR× hLk2 ×hL× (0FR˙R)− hR× (0FL˙L) (2.27) A présent, il est nécessaire de lier les vitesses du faisceau laser 0˙z à la vitesse de rotation du miroir actionné, noté ω. Sachant que 0˙zest un vecteur unitaire (c’est-à-dire 0z> 0z= 1et 0˙z> 0z= 0), on peut donc écrire

0˙z = ω× 0z (2.28)

La solution analytique est définie par

ω= 00˙z + k0z, avec k ∈ < (2.29)

Cependant, une rotation du faisceau laser autour de son axe n’est pas significative. Par conséquent, kest choisi égal à 0 et de fait, nous pouvons écrire

ω= 00˙z (2.30)

Par conséquent, en identifiant (2.27) et (2.30), nous pouvons facilement déduire l’expression de la vitesse du miroir sous forme de fonction des vitesses du point laser

: ω =− hR× hL

khR× hLk2 ×hL×(0FR˙R)− hR×(0FL˙L) (2.31) Pour une décroissance exponentielle de la fonction de coût e =

  ˜ pL− ˜pL ˜ pR− ˜pR  , nous introduisons, dans les deux images, un comportement du premier ordre de l’erreur, entre la position actuelle ˜pet la position désirée ˜p du spot laser

˙ ˜

pi=−λ( ˜pi− ˜pi) + ˙˜pi, avec i ∈ {L, R} (2.32) où λ est un gain positif et ˙˜pi est le terme de "feed-forward" en cas de suivi de trajectoire. Cette dernière peut être définie directement par le clinicien à travers une Interface Robot-Chirurgien (ta-blette).

En s’appuyant sur (2.32) et (2.31), il devient possible d’exprimer le vecteur des vitesses angulaires ω sous la forme suivante :

ω = λ hR× hL

khR× hLk2 ×hL× 0FR( ˜pr− ˜pR) − hR× 0FL( ˜pl− ˜pL)hR× hL

khR× hLk2 ×hL×(0FR˙R)− hR×(0FL˙L) (2.33) Rappelons que nous pouvons écrire hi =0Fii et avec l’introduction de notations h

i = 0Fii et ˙

hi =0Fi˙i, l’équation (2.33) peut être simplifiée en l’expression du contrôleur final, comme suit :

ω=−λ hR× hL khR× hLk2 ×hL×hR− hR×hL  | {z } comportement 1er ordrehR× hL khR× hLk2 ×hL× ˙hR− hR× ˙hL  | {z }

terme def eed−f orward

(2.34)

A noter que l’expression de la loi de commande définie ci-dessus (schématisée dans la Fig.2.6) est entièrement fondée sur les mesures-image. Ainsi, elle devrait présenter une convergence découplée

2.3. ASSERVISSEMENT VISUEL TRIFOCAL 31 (avec un comportement similaire) de chaque composante de la position du spot laser dans chaque image. La décroissance de l’erreur doit avoir également une forme exponentielle, qui est un com-portement typique d’un asservissement visuel classique grâce à la (pseudo) inversion de la matrice d’interaction associée. Cependant, cette particularité est moins évidente ici, du fait, que nous in-versons l’équation du mouvement (inversion exacte du mouvement) sans inversion de la matrice d’interaction, en tant que telle, et qu’aucune simplification ou approximation n’est introduite dans cette opération.

Figure 2.6 – Schéma de commande d’asservissement visuel trifocal d’un faisceau laser.

2.3.3. Validation

Figure2.7 – Séquence d’images capturées lors de la réalisation d’une tâche de positionnement (sans planification) sur une surface 3D inconnue.

La loi de commande, décrite ci-dessus, a été validée suivant plusieurs scénarios : numériques et expérimentaux. Le fonctionnement du contrôleur est le suivant : l’opérateur dispose des images gauche et droite de la scène (et du spot laser). Il clique sur l’image de gauche (ou de droite) pour définir la ou les position(s) désirée(s) du spot laser, la position correspondante géométriquement dans l’autre image est définie par à la contrainte épipolaire et par une méthode de recherche de mises en correspondance fondée sur l’autocorrélation. Un exemple de ce fonctionnement est montré sur la Fig.2.7 où plusieurs positions désirées successives ont été définies.

A souligner que la trajectoire du spot laser, entre deux points successifs dans l’image du spot laser, est quasi-rectiligne. Ceci est effectué sans aucune connaissance préalable ni estimation tridimensionnelle (par exemple, reconstruction 3D ou calcul de profondeur) de la surface sur laquelle le spot laser se déplace.

(a) caméra gauche. (b) caméra droite.

Figure2.8 – Régression des erreurs dans l’image (en pixels) versus nombre d’itérations i : (a) caméra de gauche, et (b) caméra de droite.

Comme le montre la Fig. 2.8, la décroissance de l’erreur dans les images (gauche et droite) est sous forme exponentielle comme attendue. Le contrôleur a été également validé avec succès lors de tests sur cadavre humain avec dans le rôle de l’opérateur, un chirurgien ORL. Même s’il fallait adapter l’algorithme de suivi permettant la détection du spot laser, la loi de commande trifocale a parfaitement fonctionner sur les cordes vocales (Fig.2.9).

Figure2.9 – Validation sur les cordes vocales au laboratoire d’anatomie de l’hôpital de Besan-çon.

L’implémentation de la loi de commande proposée se fait avec seulement une vingtaine de lignes de code (en C++) (Tamadazte and Andreff,2014;Andreff and Tamadazte, 2016). A cela s’ajoutent plusieurs caractéristiques fort intéressantes en commande référencée capteur. En effet, cette implé-mentation :

— ne nécessite pas d’inversion de matrice ni de manipulation de formules mathématiques com-plexes (tenseurs) ;

— fonctionne de manière similaire sur les scènes 2D et 3D sans connaissance a priori de la géométrie de la cible