DISPOSITIF D'OBSERVATION ENDOSCOPIQUE
La présente invention concerne un dispositif d'observation endoscopique d'un champ en trois dimensions (3D) destiné, notamment, et non exclusivement à la chirurgie.
Le but de la présente invention est de permettre la détermination à haute fréquence vidéo (c'est-à-dire à plus de 25 Hz) de la distance séparant un outil chirurgical des différents éléments constituant la zone opératoire et de fournir ainsi au chirurgien les données spatiales nécessaires à une bonne exécution des gestes opératoires.
L'abord endoscopique est une technique chirurgicale qui prend chaque jour plus d'importance. Le principe de cette approche, dite approche "minimale invasive", consiste à pratiquer de courtes incisions au travers desquelles, via un dispositif adapté, on fait pénétrer dans le corps du patient les outils nécessaires à l'intervention ainsi qu'une caméra ou endoscope fournissant sur un écran les images qui permettent la vision du champ opératoire. Cette technique a un tel potentiel de diminuer les traumatismes opératoires et, du même coup, les coûts associés au séjour hospitalier que tous les secteurs de la chirurgie s'y intéressent: chirurgie digestive, gynécologie, ORL, cardiologie, chirurgie osseuse,...
Un des plus grands problèmes liés aux techniques endoscopiques est que l'environnement de travail est visualisé en deux dimensions (2D) alors que les gestes opératoires s'exécutent dans un espace tridimensionnel (3D). Plusieurs tentatives ont été faites, à ce jour, pour capter et fournir en temps réel (25 Hz) au chirurgien les informations tridimensionnelles nécessaires à l'exécution d'une procédure chirurgicale. Une première approche connue consiste à utiliser des bras mécaniques à l'extrémité desquels les outils sont fixés. Elle est pénalisée par une trop grande restriction des mouvements autorisés et un important encombrement
de la zone opératoire, en particulier quand plusieurs outils sont mis en œuvre simultanément.
Une deuxième approche est le suivi optique qui consiste à fixer sur les instruments des éléments actifs (LED) monitorés par des caméras. Toutefois, la présence de câbles, l'inflexibilité angulaire et les problèmes de stérilisation ont fait que cette méthode a été peu diffusée.
Une troisième approche est le suivi passif qui consiste à monter sur les outils des repères (en général, trois sphères) qu'un système de vision poursuit. Les problèmes d'encombrement sont certes réduits, mais ils subsistent. En outre, il n'est pas possible d'éliminer complètement le risque de perdre des informations de position en raison d'une obstruction du champ visuel "caméras - repères" suite, par exemple, à un geste des intervenants dans la zone opératoire.
Inspirées par les développements des interfaces utilisées en réalité virtuelle pour pouvoir visualiser en 3D des environnements infographiques, de nouvelles approches ont été proposées. Utilisant différents types de lunettes (passives ou actives), elles exploitent la capacité du cerveau humain à reconstituer la notion de profondeur en présentant des images avec une parallaxe pour l'oeil droit différente de celle pour l'œil gauche. Des problèmes d'inconfort associé au port des lunettes, d'interruption potentielle du signal de synchronisation dans le cas des lunettes actives et, surtout, la restitution d'une image subjective ont, dans ce cas également, limité la diffusion de telles approches.
Un autre dispositif, similaire, est décrit dans le brevet US 4935 810. Il comporte deux appareils de prise de vue et deux écrans sur lesquels apparaissent les images respectives des appareils de prise de vue. En sélectionnant, sur les écrans, des points particuliers, il est possible de calculer la distance qui les sépare. Une telle solution permet de de connaître, dans un champs opératoire, la distance qui sépare un objet, par exemple un bistouri, d'un organe à opérer. Malheureusement, comme les opérations de prise de vue, de sélection des points considérés et de calcul des distances se fait de
manière séquentielle, il n'est pas possible de suivre en permanence le champ opératoire. Il en résulte des risques non négligeables d'erreurs de manipulation.
La présente invention a pour but de fournir un dispositif d'observation endoscopique exempt des inconvénients et limitations des dispositifs actuellement connus.
De façon plus précise, le dispositif selon l'invention est caractérisé en ce qu'il comporte:
- au moins deux caméras vidéo (18a, 18b) associées chacune à une optique permettant d'appréhender un espace commun du champ à observer et délivrant un signal électrique représentatif des images saisies,
- une électronique (20) de traitement des signaux fournis par les deux appareils, - des moyens de mise en mémoire de représentations d'objets susceptibles d'apparaître dans ledit champs,
- des moyens de suivi pour identifier automatiquement au moins deux points P1 et P2 communs aux images saisies, l'un au moins étant associé à l'une desdites représentations, et pour produire une information relative à la position de ces points dans un espace à trois dimensions,
- des moyens de calcul (26c) pour déterminer, à partir de ladite information, une valeur représentative de la distance séparant iesdits points, - des moyens de traitement (32) pour transformer ladite valeur représentative en signaux, et
- des moyens de communication (22) pour fournir à un opérateur, à partir des signaux issus des moyens de traitement, des informations relatives à cette distance. De préférence, les deux optiques sont rigidement associées l'une à l'autre pour former un endoscope stéréoscopique. Par ailleurs, elles ont des axes
parallèles, espacés l'un de l'autre d'une distance D, des distances focales f égales et des plans focaux coplanaires. L'information produite par les moyens de suivi est alors, pour chacun des deux points, constituée par les coordonnées xL, xR et y de son image dans le plan focal de l'optique correspondante, xL étant l'abscisse de l'image du point dans l'espace gauche, xR l'abscisse de l'image du point dans l'espace droit et y l'ordonnée de l'image du point dans les espaces gauche et droit.
Les moyens de calcul sont avantageusement agencés pour effectuer les opérations de: - calcul des coordonnées Xp,, Yp, et Zp, du point P, et Xp2, Yp2 et
Zp2 du point P2dans un espace cyclopéen selon les formules: X = (D / Δ) . (xL + xR) Y= D . y / Δ Z= D . f / Δ avec Δ = xL - xR
- calcul des différences:
Yp, - Yp
2
- détermination, à partir de ces trois différences, de la distance séparant les deux points dans un espace à trois dimensions par la formule: d
12 = [(X
P1 - Xp
2)
2 + (Y
1 - Yp
2)
2 + (Z
P1 - Zp
2)
2]
1'
2
Selon un mode de réalisation préféré, le dispositif selon l'invention présente encore les caractéristiques suivantes:
- les moyens de communication comportent un écran vidéo permettant d'afficher une image du champ observé;
- les moyens de traitement sont agencés pour générer une image signifiante de ladite valeur représentative et la superposer sur l'écran vidéo à une image du champ observé;
- cette image signifiante peut être, parmi de nombreuses solutions possibles, un index ou une zone présentant un gradient de couleurs;
- il comporte, en outre: . des moyens pour synchroniser les images des deux caméras,
. un convertisseur analogique-numérique interposé entre chaque caméra et l'électronique de traitement,
. une mémoire pour le stockage des signaux issus des convertisseurs, . des moyens de sélection, faisant partie de l'électronique de traitement, pour ne prendre en considération qu'une part des informations issues d'au moins l'un des convertisseurs, afin de réduire le volume d'informations traitées,
. des moyens de correction pour traiter les images de manière à réduire l'effet des aberrations des caméras, et
. un commutateur permettant de limiter l'information affichée sur l'écran à l'image issue de l'une des caméras.
D'autres caractéristiques de l'invention ressortiront de la description qui va suivre, faite en regard du dessin annexé, dans lequel: - la figure 1 illustre, schématiquement, un ensemble comportant un dispositif selon l'invention appliqué à une opération chirurgicale;
- la figure 2 présente la structure générale du dispositif selon l'invention;
- la figure 3 montre, de manière plus détaillée, une partie de la structure de la figure 2;
- la figure 4 illustre le principe de calcul de la distance entre deux points dans un espace tridimensionnel;
- les figures 5a, 6a, 7a et 8a représentent des diagrammes de classes, respectivement le diagramme principal de l'application et les diagrammes relatifs à l'acquisition, la stéréo et le suivi d'outils, alors que les figures 5b, 6b, 7b et 8b sont des diagrammes des
séquences correspondant aux diagrammes de classes portant le même numéro.
La figure 1 montre, de manière très schématique, les moyens mis en œuvre, selon l'invention, pour une opération chirurgicale utilisant un dispositif d'observation endoscopique. L'opération se déroule dans un champ opératoire 10 interne à un organisme et permet une intervention sur un organe 11 au moyen d'un outil 12 introduit dans l'organisme par une incision 14a. La surface de l'organe 11 est munie de marques 11 a constituées, par exemple, de points réalisés au moyen d'une encre biocompatible, des pastilles adhérentes, ou encore de certaines parties de l'organe lui-même qui ont un aspect particulier. Des marques 12a, généralement formées de pastilles de couleur, sont avantageusement disposées sur l'outil 12, de manière à faciliter son identification et, comme cela sera expliqué plus loin, à calculer sa position. Dans le dispositif selon l'invention, l'observation du champ opératoire 10 se fait au moyen d'un endoscope conventionnel 16 à double optique, associé à une source de lumière (non représentée) et introduit dans l'organisme par une autre incision 14b. L'endoscope 16 est relié à un dispositif de saisie d'images 18 comportant deux caméras 18a et 18b, appelées respectivement caméra gauche L et caméra droite R, qui reçoivent le rayonnement lumineux capté par les deux optiques, de manière à pouvoir traiter les images de manière stéréoscopique, comme cela sera expliqué plus loin.
Les caméras 18a et 18b transforment, de manière classique, le rayonnement lumineux provenant du champ opératoire 10 en un signal électrique qui est appliqué, par deux voies distinctes L et R, à une électronique de traitement 20. Un écran vidéo 22, tenant lieu de dispositif de communication, affiche à une fréquence de 25 Hz les images reçues par les caméras 18a et 18b, avant ou après traitement par l'électronique 20. Un commutateur 23 permet de sélectionner l'une ou l'autre des caméras 18a et 18b ou encore une image obtenue après traitement par l'électronique 20.
Comme décrit plus loin, le dispositif selon l'invention permet de définir la distance entre deux marques 11a et/ou 12a visibles dans le champ opératoire 10, mais également entre tous points identifiables par leur forme, leur couleur, etc. On se référera maintenant à la figure 2 qui représente la structure générale du dispositif selon l'invention. On y retrouve le champ opératoire 10 avec l'organe à traiter 11 , l'outil d'intervention 12, l'endoscope 16, le dispositif de saisie d'images 18, ainsi que différents modules constituant l'électronique de traitement 20. Le champ 10 est attaché à un référentiel cartésien dont l'axe Z est parallèle aux axes des caméras.
Le dispositif de saisie d'images 18 comporte, en plus des deux caméras gauche 18a et droite 18b, un circuit de synchronisation des images 18c et deux convertisseurs analogique-numérique 18d et 18e.
Le circuit de synchronisation 18c permet de gérer les images provenant des deux caméras de manière à ce qu'elles soient parfaitement synchrones, ce qui facilite leur comparaison, comme cela sera expliqué plus loin, et améliore la qualité des informations relatives à la troisième dimension.
Les deux convertisseurs analogique-numérique 18d et 18e transforment les signaux issus du circuit de synchronisation 18c, de type analogique, en des signaux de type numérique.
La sortie du dispositif 18 est reliée à l'entrée d'un enregistreur vidéo numérique 24 qui peut assurer l'enregistrement de tout ou partie de l'opération. Dans une variante non représentée au dessin, il est aussi possible d'utiliser un enregistreur analogique qui est alors connecté à l'entrée des convertisseurs 18d et 18e.
La sortie du dispositif 18 est également appliquée à l'électronique de traitement 20 avantageusement constituée par un ordinateur dans lequel les différents modules sont définis par un ensemble de programmes et de sous- programmes décrits en référence aux figures 5 à 8. Cet ordinateur comporte
des moyens de commande conventionnels, non représentés au dessin, tels qu'un clavier et/ou une souris.
En variante, l'électronique 20 pourrait être réalisée au moyen de différents modules électroniques. Cette deuxième solution offre toutefois moins de souplesse d'utilisation.
Afin de faciliter la compréhension, le dispositif selon l'invention sera décrit, en référence aux figures 2 et 3, sur la base d'une construction modulaire dans laquelle chaque module assure une fonction particulière. Les figures 5 à 8 permettront ensuite de mieux comprendre la structure du logiciel commandant le dispositif.
L'électronique de traitement 20 est agencée de manière à traiter en parallèle les signaux issus des deux caméras. Toutefois, pour alléger le dessin, chacun des modules ou systèmes n'est représenté qu'une fois.
Le coeur de l'électronique 20 est constitué par un module de traitement des signaux 26, qui comprend des systèmes de suivi des objets 26a et 26b, destinés à suivre les éventuels déplacements des objets (outils et organes) auxquels les marques 1 1 a et 12a sont liées, ainsi qu'une unité de calcul 26c de la distance séparant, dans un espace à trois dimensions, au moins deux points associés à ces marques. Ces dernières sont sélectionnées, par exemple, au moyen de la souris de l'ordinateur, parmi un ensemble de représentation d'objets, mis en mémoire, susceptible d'apparaître dans le champ opératoire. Elle sont identifiées par les systèmes de suivi des objets 26a et 26b.
Le module 26 permet, à lui seul, de déterminer la position dans l'espace de points d'intérêts identifiés par l'opérateur grâce aux marques 1 1 a et 12a, ainsi que la distance les séparant. Toutefois, afin de conférer au dispositif une plus grande souplesse d'utilisation et une précision optimale, l'électronique 20 comporte, de plus:
- un module d'acquisition des images 28 comportant une interface 28a et une mémoire 28b;
- un module de correction 30, comprenant un circuit de filtrage 30a des signaux issus d'au moins l'un des convertisseurs 18d et 18e, en vue d'en sélectionner une partie, et un circuit de correction 30b des aberrations des caméras; et - un module de commande 32 de l'écran, qui comprend un système de combinaison d'images 32a et une commande d'écran 32b.
Le module d'acquisition 28 est relié, par son entrée, à la sortie du dispositif de saisie d'images 18. Il permet de stocker des informations et peut ainsi jouer un rôle de boîte noire, enregistrant dans sa mémoire 28b, dont le contenu ne peut être altéré, tout ou partie des informations relatives au déroulement de l'opération. Son interface 28a permet de transformer les informations reçues pour les mettre dans une forme compatible avec les caractéristiques de la mémoire 28b.
Le module de correction 30 est relié, par son entrée, à la sortie du module d'acquisition 28. Son circuit de filtrage 30a permet de traiter les images pour les rendre plus lisibles. En leur appliquant un algorithme adéquat, on peut ne garder que le contour des objets présents dans le champ 10 ou, encore, ne représenter qu'une des couleurs des images, renforcer le contraste, etc. Cela permet d'avoir un regard différent sur le champ opératoire et ainsi de mieux saisir certains détails. Quant au circuit de correction 30b, il a pour fonction de corriger les aberrations de l'optique de l'endoscope. Cette correction est indispensable pour pouvoir disposer d'une bonne image. En effet, les optiques des endoscopes sont de très petites dimensions. Il en résulte une forte distorsion des images. Pour pallier cet inconvénient, on établit une transformation plane permettant de trouver des correspondances entre les points de l'image idéale et de l'image déformée. Cette méthode est décrite de manière détaillée dans "Digital Image Warping, George Wolberg, IEEE Computer Society Press Monograph, 1994".
Les signaux disponibles à la sortie du module 30 présentent ainsi des caractéristiques permettant d'afficher, sur l'écran vidéo 22, des informations plus faciles à interpréter par le chirurgien. Ces signaux sont introduits dans le
module de traitement 26 qui sera décrit de manière plus détaillée en référence à la figure 3.
Enfin, le module de commande 32 assure la gestion des informations affichées par l'écran vidéo 22, combinant ou non les images du champ opératoire 10 avec des informations concernant la position des différents objets présents dans le champ 10. Le système de combinaison d'images 32a, appelé "multimage", par contraction des mots "multiple" et "image", ou, en anglais, "overlay". Il a son entrée reliée à la sortie du module 26 et traite les signaux fournis par celui-ci en même temps que les signaux produits par la caméra 18a ou 18b. La commande d'écran 32b, connectée à la sortie du système 32b, est reliée par sa sortie à l'écran vidéo 22 qui permet de visualiser le champ opératoire 10 ainsi que des informations relatives aux organes et aux outils, notamment les informations relatives aux distances.
L'indication des distances peut se faire de différentes manières. La valeur de la coordonnée Z de la distance entre l'outil 12 et une marque 11a sélectionnée peut être affichée sous forme numérique ou, encore, par exemple, à l'aide de deux index en V. Il est également possible de représenter la distance entre un point donné, par exemple l'extrémité de l'outil 12, et tout ou partie du champ 10 par un dégradé de couleurs, ie bleu correspondant, par exemple, aux zones très éloignées et le rouge au contact.
Dès lors que l'outil 12 doit s'approcher avec précaution d'un point particulier, ce point étant identifié, il est également possible de faire apparaître une part de l'outil 12 dans une couleur correspondant à la distance mesurée.
Le choix de l'une ou l'autre solution, réalisable en tout temps, se fera en fonction des problèmes auxquels le chirurgien est confronté, donnant plus ou moins d'importance aux informations relatives à la valeur de la composante Z, ou au contraire au champ opératoire.
Il est également possible d'ajouter des images complémentaires, provenant d'une banque de données non représentée au dessin et facilitant un diagnostic, par exemple des réticules, des masques ou tout autre image
susceptible de faciliter le travail du chirurgien. La manière de procéder pour obtenir cette superposition d'images sera précisée en référence à la figure 5.
Pour déterminer la distance entre deux marques appartenant à des objets disposés dans le champ 10, il est nécessaire d'établir une corrélation entre les différents objets visibles sur les deux images captées par les caméras 18a et 18b. Comme les prises de vues se font de deux points distincts, il en résulte que les distances entre les projections de deux marques sur les plans des caméras, transposées dans un référentiel commun, sont différentes. En calculant la différence des coordonnées de ces projections dans le référentiel commun, il est possible de calculer la distance séparant ces marques dans l'espace à trois dimensions.
La figure 3 permet de mieux comprendre la manière de procéder. Elle représente le détail de l'unité de calcul 26c qui comporte, connectées en série, une entité de correction géométrique 260 destinée à traiter les images en géométrie épipolaire, une entité de détection du contour 262, une entité de corrélation 264, une entité de détermination de la distance 266 et un filtre 268.
L'entité de correction géométrique 260 permet de traiter les images en géométrie épipolaire. Pour bien comprendre cette géométrie, on se référera avantageusement à l'article de Zhengyou Zhang intitulé "Determining the Epipolar Geometry and its Uncertainty: A Review" et publié dans Journal of Computer Vision, 1998.
L'entité de détection des contours 262 permet de sélectionner, d'identifier et de suivre les marques 11a et 12a, ainsi que des zones particulières des objets se trouvant dans le champ 10. Le dispositif peut ainsi reconnaître les différents objets présents dans le champ et les suivre dans les images successives. Les moyens mis en oeuvre pour effectuer cette reconnaissance sont décrits de manière complète dans la publication de Kurt Konolige intitulée "Small Vision : Hardware Implementation" et publiée dans les annales de "Eight International Symposium on Robotics Research, Hayama, Japan 1997".
A partir des informations obtenues par l'entité de détection des contours 262, il est possible d'examiner deux mêmes points sur les deux images, de définir la distance qui les sépare sur l'une et l'autre de ces images et de faire la différence entre ces deux distances. Cette différence, appelée disparité, est définie par l'entité de corrélation 264.
En connaissant les caractéristiques des optiques et la disparité, il est possible d'établir une relation entre la disparité et la distance entre les deux points. Cette opération est effectuée dans l'entité de détermination de la distance 266 et sera décrite plus en détail en référence à la figure 4. Enfin, le filtre 268 assure l'élimination d'inexactitudes, par exemple en appliquant une méthode d'interpolation spatiale et temporelle, telle que celle définie dans le rapport de recherche 2013 de l'INRIA (1993) intitulé "Real-time correlation-based stereo : algorithm, implementations and applications", établi par Olivier Faugeras. La figure 4 permet de comprendre la manière de déterminer les coordonnées de deux points communs aux images saisies par les caméras, puis de calculer la distance qui les sépare. Cette figure montre deux optiques L (gauche) et R (droite), de même distance focale f, dont les axes optiques sont parallèles entre eux et distants d'une valeur D. De plus, leurs plans focaux sont coplanaires. On voit, en outre, un point P appartenant au champ 10 et dont il s'agit de déterminer la position.
A cet effet, on dispose de deux référentiels plans, l'un gauche et l'autre droit, dont les abscisses respectives, alignées sur un même axe, sont xL et xR et dont l'ordonnée est y. La distance entre les origines de ces référentiels est égale à D. Ils permettent respectivement de définir la position pL de l'image du point P vue par la caméra gauche et sa position pR vue par la caméra droite. Il est ainsi possible de mesurer la coordonnée des images du point P dans les référentiels gauche et droit et ainsi définir ses coordonnées xLp, xRp et yp.
On relèvera que la détermination des coordonnées dans les référentiels gauche et droit se fait tout simplement en identifiant les pixels des caméras sur lesquels l'image des points considérés se forme. Les unités de xL, xR et y sont donc des pixels. La distance focale f doit également être exprimée dans cette unité.
Pour définir la position du point P dans le champ, on fait appel à un troisième référentiel dont les axes X, Y et Z définissent un espace appelé cyclopéen. Le plan X-Y est parallèle au plan xL/xR-y disposé à l'avant, à une distance égale à f. L'axe Z est parallèle aux axes optiques et disposé dans le même plan, en position médiane.
Pour calculer les coordonnées du point P dans l'espace cyclopéen, on commence par définir la disparité Δ de ses images selon la formule: Δ = xL - xR
On peut alors définir les coordonnées du point P dans l'espace cyclopéen selon les formules:
Xp = (D/2Δ) . (xL + xR) Yp = D . y/Δ Zp = D . f/Δ
Lorsqu'il s'agit de calculer la distance entre deux points P- et P2, on doit donc déterminer, tout d'abord, selon la méthode ci-dessus, les coordonnées Xp.,, Yp., et Zp, du point P, et les coordonnées Xp2, Yp2 et Zp2 du point P2. La distance d12 qui les sépare est alors obtenue par la formule: d12 = [(Xp, - Xp2)2 + (Y l - Yp2)2 + (ZP1 - Zp2)2]1'2
Si, dans les formules ci-dessus, D et exPrimé en mm, les valeurs de X, Y et Z le seront également.
Dans le dispositif selon l'invention qui vient d'être décrit, les caméras 18a et 18b assurent en permanence la saisie des images du champ opératoire 10, au travers de l'endoscope 16. Ces images sont synchronisées par le circuit 18c et converties du mode analogique en mode numérique par les convertisseurs 18d et 18e. Les signaux sont ensuite adressés à l'enregistreur
24 pour mémoriser l'opération et au module d'acquisition des images 28 qui permet, d'une part, de les modifier au moyen de l'interface 28a en jouant, par exemple, sur le contraste, la luminosité, etc. et, d'autre part, de les mémoriser dans la mémoire inviolable 28b, pouvant tenir lieu de boîte noire. Les signaux ainsi obtenus sont appliqués au module de correction 30 qui réalise l'élimination de certains défauts affectant la qualité des images. Ils sont ensuite envoyés au module de traitement 26 qui effectue le calcul des distances et le suivi des organes puis au module de commande 32 qui réalise la superposition des images avant de commander l'écran vidéo 22. Comme cela a été expliqué plus haut, les fonctions essentielles du dispositif selon l'invention peuvent être assurées par un logiciel, avantageusement rédigé dans un langage orienté objets. Ce logiciel est schématiquement représenté au moyen d'un diagramme de classes sur la figure 5a et d'un diagramme des séquences de la boucle principale sur la figure 5b. Ces diagrammes font appel à l'analyse par la méthodologie UML décrite dans "UML, la notation unifiée de modélisation objet, application en Java" de Michel Lai, InterEditions 1997, ISBN 2-7296-0659-9 et exécutable à l'aide du logiciel "Rational Rose" proposé par la firme Rational Software.
Dans la suite de la description, on appellera "image" un ensemble de signaux qui, dûment traités, permettent de former une image sur un écran. Par ailleurs, on appellera "multimage" une approche permettant de superposer des images, tandis que le terme "suivi" désignera la partie du programme qui permet de suivre un organe et un outil tant qu'il se trouve dans le champ 10, pour pouvoir déterminer la distance les séparant. Sur le diagramme de la figure 5a, le logiciel est structuré en classes formant, par un lien de référence, l'application qui est, elle-même, une classe et porte la référence 40. Chaque classe est corrφosée d'o érations et d'attributs. Sur ce diagramme, on eut voir une classe acquisition 41 , qui sera décrite de manière Plus Précise en référence à la figure 6 et des classes affichage 42, conversion 44, image 46, Interface utilisateur 48, "multimage" 50, "multimage" relatif 52 et "multimage" absolu 54, stéréo 56, "suivi" d'organes 58, et "suivi"
d'outils 60. Les classes stéréo 56 et "suivi" d'outils 60 sont respectivement représentées de manière plus détaillée aux figures 7 et 8.
Dans certaines des classes mentionnées ci-dessus, il est possible d'ajuster, de manière automatique ou volontaire, un ou plusieurs paramètres que comportent les attributs, ce qui confère au dispositif une grande souplesse d'utilisation.
Les différents attributs et opérations contenus dans les classes sont formulés en langage Java, dans la notation UML citée précédemment.
La classe acquisition 41 contient l'opération aP elée "nouvelleslmages (droite: Image, gauche: Image)" qui permet de traiter les images provenant des caméras 18a et 18b. Cette opération assure l'acquisition des images gauches et droites de manière synchrone, les corrige et les stocke. Elle sera décrite de manière plus précise en référence à la figure 6.
La classe affichage 42 contient l'opération "afficher (entrée : Image)" qui permet de commander l'écran d'affichage à partir des signaux provenant des différentes classes composant l'application.
La classe conversion 44 contient les opérations:
- "RGBenYδ (entrée: Image, sortie: Image)" qui permet de convertir une image couleur au format RGB en image noir et blanc au format Y8, - "RGBenHLS (entrée: Image, sortie: Image)" qui permet de convertir une image RGB en image HLS (Hue, Luminance, Saturation), et
- "réduire (facteur: float, entrée: Image, sortie: Image)" dont le facteur mentionné définit un taux de réduction de la résolution d'une image.
La classe image 46 contient les informations relatives à une image. Elle a pour attributs:
- "format: Formatlmage", qui contient les informations du format interne de l'image, soit:
- le format Y8 (tons de gris)
- le format RGB (couleur 16, 24 ou 36 bits), et - le format HLS (couleur 36 bits)
- "largeur : int", qui permet de définir la largeur de l'image,
- "hauteur : int", qui permet de définir la hauteur de l'image, et
- "tableau : Byte*" qui tient lieu de pointeur sur les pixels de l'image.
Concernant les formats RGB et HLS, on se référera avantageusement à la publication de Ken Fishkin & San Rafaël intitulée "A fast HLS-To-RGB Transform", publiée dans Graphics GEMS, 1990, pages 448-449.
La classe interface utilisateur 48 contient l'opération "modifierParamètres (nouveauxParams: ParamètresSystème)" qui permet de gérer l'interaction entre l'utilisateur et les différents périphériques d'entrée du système (clavier, souris, reconnaissance vocale,...). Cette opération modifie, sur ordre de l'opérateur, les paramètres de la stéréo, du suivi d'organes, notamment l'identification des points à suivre, du suivi d'outils et des "multimages" absolus et relatifs, qui seront décrits ultérieurement en références aux classes 50, 52, 54, 58 et 60. La classe "multimage" 50 contient l'opération "calculer (outils: ListeOutils, marques: ListeMarques, entréelmage: Image, entréeStéréo: Image, sortie: Image)". Deux sous-classes, appelées "multimage" relatif 52 et "multimage" absolu 54, sont dérivées de la classe "multimage" 50.
La classe 50 permet le calcul de la superposition des images en mode absolu ou relatif en fonction de paramètres choisis, comme cela sera expliqué ci- dessous, et plus particulièrement d'assurer le mélange des images de type 2D, correspondant une vision habituelle du champ 10 et d'y adjoindre des images représentatives de la troisième dimension. Dans le cas du "multimage" relatif, les distances sont définies entre deux marques présentes dans le champ 10, alors que dans le "multimage" absolu, les distances sont définies par rapport à l'endoscope.
La sous-classe "multimage" relatif 52 contient l'opération "calculer (outils:
ListeOutils, marques: ListeMarques, entréelmage: Image, entréeStéréo:
Image, sortie: Image)" qui permet de calculer la superposition des images en mode relatif en fonction des paramètres s'y rapportant. Elle a pour attributs
les paramètres "ParamètresMultimageRel" qui sont le choix du type et les variables relatives à ce type. Avec cette classe, il est possible de superposer à l'image du champ des informations complémentaires en créant une ou plusieurs sphères creuses et virtuelles centrées sur l'extrémité des outils, par exemple, et en représentant le lieu géométrique de leurs intersections avec le ou les organes visibles dans le champ 10 par une modification du ton et/ou de la saturation des pixels correspondants sur l'image. L'extrémité de l'outil peut aussi être munie d'une lumière virtuelle orientée dans le prolongement de celui-ci, qui modifie la luminosité, le ton ou la saturation du champ 10. Il est également possible d'afficher la distance entre un outil et une marque définie par l'utilisateur au moyen d'une information numérique, de curseurs ou de tout autre moyen, tel qu'un dégradé de couleur.
La classe "multimage" absolu 54 contient l'opération "calculer (outils: ListeOutils, marques: ListeMarques, entréelmage: Image, entréeStéréo: Image, sortie: Image)" qui permet de calculer la superposition d'images en mode absolu tel que défini ci-dessus. Elle a pour attributs les paramètres "ParamètresMultimageAbs" qui sont la position et la résolution du "multimage" ainsi que le dégradé de couleurs.
La classe stéréo 56 sera décrite de manière plus détaillée en référence à la figure 7. Il peut toutefois déjà être précisé qu'elle contient les opérations de:
- "calculer (entréeDroite: Image, entréeGauche: Image, sortie: Image)" qui permet le calcul de l'image stéréo, appelée aussi "range image", en fonction des paramètres ci-dessous,
- "fusionner (petiteEntrée: Image, grandeEntrée: Image, sortie:lmage)" qui permet la fusion de deux images de disparité n'ayant pas la même résolution.
La classe 56 a pour attributs les paramètres "ParamètresStéréo" qui sont les suivants:
- Paramètre de la géométrie du système pour la conversion de l'image de disparité en image de distance, - Paramètres pour la correction de la géométrie épipolaire,
- Offsets de correction de la position respective des deux images,
- Espace de recherche de disparités,
- Taille des fenêtres de recherche pour la reconnaissance de formes,
- Seuil de confiance,
- Paramètres pour la multi-résolution (position et résolution respectives des différentes images), et
- Paramètres pour le post-filtrage.
Dans la présente description, on appelle "reconnaissance de formes" une méthode permettant d'établir des correspondances entre les points équivalents des deux images, gauche et droite. Cette méthode est décrite dans la publication de Kurt Konolige déjà citée.
La classe "suivi" d'organes 58 contient les opérations "ajouterMarqueASuivre (entrée: Image, marque: Position2D)" et "suivreMarques (entrée: Image) : listeMarques", qui permettent à l'utilisateur d'ajouter des marques 11a à suivre. Elle a pour attribut les paramètres "ParamètresSuiviOrg" qui sont les suivants:
- Nombre de marques à suivre,
- Forme des marques à suivre,
- Position précédente des marques à suivre, et
- Position courante des marques à suivre. La classe "suivi" d'outils 60 sera décrite de manière plus détaillée en référence à la figure 8. On peut toutefois déjà relever qu'elle contient l'opération: "chercher (entrée: Image) : listeOutils" ayant pour fonction de chercher les outils dans l'image. Elle a pour attribut les paramètres: "ParamètresSuiviOut" qui sont les suivants: - Nombre maximum d'outils dans le champ, et
- Types d'outils possibles.
Dans le logiciel, l'interaction des instances de classes définies ci-dessus est mise en oeuvre par l'application de ses opérations, selon une procédure séquentielle rePrésentée sur le schéma logique de la figure 5b. Les classes sont rePrésentées en abscisse et portent les mêmes références que sur la figure 5a, ainsi que leur nom. Les opérations permettant d'effectuer
l'application sont représentées en ordonnée, identifiées par le nom des paramètres permettant de les réaliser écrits au-dessus d'une flèche reliant l'application 40 à la classe contenant ce paramètre.
La séquence représentée débute par l'acquisition d'une nouvelle image, définie par l'opération "nouvelleslmages (Image, Image)" contenue dans la classe acquisition 41. L'opération "RGBenYδ (Image, Image)" convertit les images reçues dans le format Y8, puis l'opération "réduire (float, Image, Image)" permet de choisir la résolution de l'image. Ces deux opérations de mise en forme dans la perspective du traitement subséquent sont contenues dans la classe conversion 44. La classe stéréo 56 permet, par l'opération "calculer (Image, Image, Image)" de calculer une image de profondeur et, par là, les distances entre les différentes marques présentes dans le champ 10.
Les deux opérations suivantes, "suivreMarque (Image)" et "chercher (Image)", contenues respectivement dans les classes "suivi" d'organes 58 et "suivi" d'outils 60, permettent le suivi de marques dans le champ, associées respectivement aux organes et aux outils qui s'y trouvent.
Les opérations"RGBenHLS (Image, Image)" et "calculer (ListeOutils, ListeMarques, Image, Image, Image)", contenues respectivement dans les classes conversion 44 et "multimage" 50, permettent de créer une image qui, superposée à l'image du champ 10, donne une information relative aux distances séParant les marques associées aux organes et aux outils.
Finalement, IOPération "afficher (Image)", contenue dans la classe affichage 42, transmet à l'écran les informations Permettant de voir le chamP 10 embrassé Par les caméras 18a et 18b, ainsi que les informations relatives aux distances.
Comme le montre la figure 6a, la classe acquisition 41 contient elle-même des classes aPPelées correction o tique 411 , filtrage 412, stockage 413, PériPhérique d'acquisition 414 et synchronisateur 415. La classe PériPhérique d'acquisition 414 est reliée à la classe acquisition 41 au travers de la classe 415.
La classe correction optique 411 contient l'opération "corriger (entrée: Image, sortie: Image)" qui permet de corriger les erreurs dues à l'optique de l'endoscope. Elle a pour attribut les paramètres "ParamètresCorrection". Au travers de cette classe, les informations provenant des caméras 18a et 18b sont traitées de manière à ce que leurs coordonnées en x et y soient corrigées en fonction des caractéristiques optiques des endoscopes, sur la base d'un algorithme de correction de distorsions oPtiques décrit dans la publication Intitulée "Digital Image Processing (second édition)", IEEE ComPuter Society Press Monograph, 1994, de Wiliam K. Pratt. La classe filtrage 412 contient l'opération "filtrer (entrée: Image, sortie: Image)". Elle a pour attributs les paramètres "ParamètresFiltre". Cette opération assure le traitement des images issues des caméras 18a et 18b, élimine les parasites liés aux lignes paires et impaires et corrige l'intensité lumineuse. L'image obtenue, après que soient appliquées les opérations de ces deux classes, est ainsi de qualité idoine pour la suite de son traitement.
La classe stockage 413 contient l'opération "enregistrer (entrée: Image)" qui enregistre tout ou partie des images sur un support numérique, en leur état avant et/ou après traitement par les opérations des classes 411 et 412. Il est également possible de mémoriser les différents états du système, les positions successives des outils et les interactions avec le système de différents partenaires, notamment du chirurgien. Cette mémorisation permet de conserver les images en cas de problème. De manière avantageuse, la mémoire destinée à les recevoir est de type permanent, de manière que son contenu ne puisse être modifié et qu'il puisse ainsi tenir lieu de preuve. La classe périphérique d'acquisition 414 contient l'opération "acquérir (): Image". Elle a pour attributs les paramètres "ParamètresDuPériphérique" qui sont les suivants:
- type de signal,
- format de l'image, et - résolution et position de l'image.
Le signal vidéo, initialement de ty e analogique, est transformé en mode numérique Par l'opération contenue dans cette classe.
La classe synchronisateur 415 contient l'opération "acquérir2lmages (gauche: Image, droite: Image)" qui garantit une acquisition synchrone des images gauches et droites obtenues aPrès traitement Par les instances de la classe Péri hérique d'acquisition 414 et délivre les images ainsi acquises à la classe acquisition 41.
Le diagramme des séquences de l'acquisition des données est rePrésenté à la figure 6b, selon le même rinci e que celui appliqué à la figure 5b. Il définit le détail de la séquence qui se déroule entièrement autour de la classe d'acquisition 41. On notera que les images provenant respectivement des caméras de droite et de gauche sont acquises simultanément, mais traitées successivement. Ce détail n'est toutefois pas représenté sur cette figure.
Après que l'opération "nouvelleslmages(lmage, Image)" a été effectuée, les instances de la classe acquisition 41 effectuent l'opération "aquérir2lmages(lmage, Image)" et donnent l'ordre aux instances de la classe synchronisateur 415 d'effectuer l'opération "acquérir()", tant pour la caméra de droite que celle de gauche, et cela en synchronisme. Ces images sont ensuite mises en mémoire par l'opération "enregistrer(lmage)" contenue dans la classe stockage 413, puis leur géométrie est corrigée par l'opération "corriger(lmage, Image)". Elles sont enfin filtrées par l'opération "fιltrer(lmage, Image)". Le programme retourne alors à la boucle principale de la figure 5b pour effectuer l'opération "RGBenY8(lmage, Image)".
La figure 7a montre les classes dérivées de la classe stéréo 56, et plus particulièrement les classes correction épiσolaire 561 , détection de contours 562, corrélation 563 et conversion stéréo 564.
La classe correction épipolaire 561 contient l'opération "corriger (entrée:
Image, sortie: Image)" qui transforme les lignes épipolaires en des lignes parallèles. Elle a pour attributs les paramètres "ParamGéomEpip" nécessaires pour assurer une correction des images au moyen de la géométrie épipolaire,
soit les matrices de transformation spécifiques à une o tique donnée. Toutes les informations utiles à ce ProPos se trouvent dans l'ouvrage "Determining the EPiPolar Geometry and its Uncertainty: A Review", cité Plus haut.
La classe détection de contours 562 contient l'opération "filtrerLOG (entrée: Image, sortie: Image)" qui filtre l'image ar la méthode connue sous le nom de LOG (La lacian of Gaussian) décrite dans la publication intitulée "A computation theory of human stereo vision", Proceeding Royal Society B-204- 1979, de Marr D. et Poggio T. Cette classe a pour attributs les paramètres "ParamètresFiltres" qui sont les coefficients du filtre LOG. La classe corrélation 563 contient l'opération "corréler (droite: Image, gauche: Image, sortie: Image)" qui permet de définir la correspondance entre les pixels de l'image de droite et ceux de l'image de gauche, et de construire une image de disparité. Elle a pour attributs les paramètres "ParamètresCorrélation" qui sont les suivants: - offsets de correction de la position respective des images gauche et droite qui permettent d'ajuster ces images de manière à pouvoir assurer la corrélation entre elles,
- espace de recherche de la disparité, confiné à la seule zone pour laquelle elle est utile, permettant ainsi d'éviter des calculs inutiles, - taille des fenêtres de recherche pour la "reconnaissance de formes", permettant également de réduire le volume des informations traitées, et
- seuil de confiance, qui offre la possibilité de définir un seuil minimum pour la qualité des mesures de distances.
La classe conversion stéréo 564 contient l'opération "disparitéEnDistance (entrée: Image; sortie: Image)" qui transforme la disparité en distance millimétrique, en prenant en compte la géométrie de l'optique du système. Elle a pour attributs les paramètres "ParamGéomOptique" qui sont les paramètres de la géométrie de l'optique du dispositif pour la conversion de l'image de disparité en image de distance.
La figure 7b montre le diagramme des séquences pour le calcul de la stéréo, structuré selon les mêmes principes que pour les figures 5b et 6b. Sur cette figure, les opérations effectuées sur les images gauche et droite ont été représentées de manière spécifique, afin de mieux différencier les opérations relatives aux images gauche et droite des opérations communes.
L'application accède à la classe stéréo 56 par l'ordre "calculer(lmage, Image)". L'opération "corriger(lmage, Image)" de la classe correction épipolaire 561 transforme l'image gauche en coordonnées épipolaires. L'opération "filtrerLog (Image, Image)" de la classe détection de contours 562 permet de définir les contours des différents objets présents dans le champ 10 et visibles sur l'image gauche. Les mêmes opérations sont ensuite effectuées sur l'image droite. L'opération "corréler(lmage, Image, Image) de la classe corrélation 563 assure ensuite la corrélation entre différents points des images gauche et droite. L'opération "disparitéEnDistance (Image, Image)" de la classe conversion stéréo 564 détermine les distances à partir des valeurs de disparités. Le programme se poursuit ensuite dans la boucle principale, telle que représentée aux figures 5a et 5b.
La figure 8a montre les classes complémentaires dérivées de la classe suivi d'outils 60. On peut y voir les classes détection 601 , filtrage suivi 602, outils 603 et marques 604.
La classe détection 601 effectue les opérations "détecterMarques (entrée: Image) :listeMarques" qui permet de définir la position des marques dans les images filtrées en utilisant les informations relatives à la géométrie et aux couleurs des outils et des marques, et "détecterOutils (marques : listeMarques) : listeOutils". Par cette opération, le programme détermine les différents points significatifs présents dans le champ 10 et représentatifs d'un outil. Il corrige leur alignement et calcule la position et l'orientation de l'outil dans l'espace pour le représenter. Il peut, en outre, réguler la position de l'extrémité de l'outil, pour pouvoir disposer d'une image plus stable. La classe détection 601 a pour attributs les outils "listeOutils", définis dans la classe 603 et qui seront examinés plus tard.
La classe filtrage suivi 602 effectue l'opération "filtrer (entrée: Image, sortie: Image)" qui permet de ne conserver que les images relatives aux marques et aux outils mais d'effacer le fond. Ce filtrage s'effectue en format HLS. Elle a également pour attributs les outils "listeOutils". La classe outils 603 contient toutes les informations permettant d'identifier les différents outils présents dans le champ 10. Elle a pour attributs les paramètres suivants:
- "type: TypeOutil" qui comporte toutes les informations relatives aux outils, telles que leur géométrie et leur marquage, - "orientation: Orientation 3D" relatif aux informations permettant de définir l'orientation de l'outil dans l'espace,
- "position : Position3D" contenant les informations relatives à la position de chacun des outils dans l'espace, et
- "extrémité: Position 3D" permettant de définir la position de l'extrémité des outils dans l'espace.
La prise en compte de l'extrémité des outils de manière spécifique permet de travailler avec un maximum de précision. Cela est particulièrement important avec les bistouris.
La classe marque 604 a pour attributs les paramètres suivants: - "centre : Position 2D", donnant les informations relatives au centre de gravité des marques présentes dans le champ 10,
- "surface : int" qui définit la surface de chacune des marques,
- "géométrie : Géométrie" qui contient les informations relatives à la forme de chacune des marques, et - "couleur : Couleur" dans lequel les couleurs de chacune des marques sont mémorisées.
Si l'on se réfère à la figure 8b, on constate qu'on accède à la classe suivi d'outils 60 par l'ordre "chercher (Image)". La classe filtrage suivi 602 contient l'opération "filtrer (Image, Image)" qui permet d'avoir une image sur laquelle ne se trouvent plus que les outils et les marques. La classe détection 601 contient les opérations "détecterMarques(lmage)" et
"détecterOutils(Listemarques)", puis le programme revient à la boucle principale.
Le dispositif selon l'invention, tel qu'il vient d'être décrit, permet des opérations chirurgicales par technique endoscopique offrant un maximum d'informations pouvant être appelées à la demande, sans pour autant nécessiter des équipements entravant le travail du chirurgien et de son équipe. Il est également utilisable dans le domaine de la chirurgie orthopédique.
Le même concept n'est absolument pas limité au domaine médical. Il s'applique à de nombreuses autres situations telles que l'inspection de canalisations, la détermination de la position exacte d'objets fixes ou mobiles dans un espace donné difficile d'accès, etc.
Il peut encore être noté qu'en plus de l'indication d'informations relatives à la troisième dimension, d'autres informations peuvent être associées à l'image affichée, sans pour autant sortir du cadre de l'invention.
Dans une variante non représentée, les informations relatives à la troisième dimensions peuvent être transmises par voie sonore plutôt qu'optique, le dispositif modifiant, par exemple, la fréquence d'un signal émis, ou encore donnant l'information en clair. Dans une autre variante, un réseau réticulé est projeté en lumière infrarouge sur le champ opératoire, invisible pour l'oeil, mais que les caméras peuvent détecter. Un tel réseau peut être utilisé pour améliorer la précision des mesures, le nombre de marques étant ainsi considérablement augmenté.