• Aucun résultat trouvé

Utilisation d'un casque de réalité augmentée lors de la numérisation avec un scanner 3D portable

N/A
N/A
Protected

Academic year: 2021

Partager "Utilisation d'un casque de réalité augmentée lors de la numérisation avec un scanner 3D portable"

Copied!
33
0
0

Texte intégral

(1)

Utilisation d'un casque de réalité augmentée lors de la

numérisation avec un scanner 3D portable

Mémoire

Jérome Isabelle

Maîtrise en génie électrique - avec mémoire

Maître ès sciences (M. Sc.)

(2)

Utilisation d’un casque de réalité augmentée

lors de la numérisation avec un scanner 3D

portable

Mémoire

Jérôme Isabelle

Sous la direction de :

(3)

Résumé

Un scanner 3D portable est un appareil manuel qui permet de convertir un objet réel en un modèle 3D numérique de l’objet. De nos jours, les scanners 3D portables sont utilisés dans plusieurs secteurs de notre société, comme l’industrie manufacturière, la santé, le divertissement ou l’archéologie. Pour numériser un objet, l’utilisateur doit pointer le scanner vers l’objet et le déplacer autour de l’objet afin d’acquérir l’entièreté de sa surface. Pour faciliter la tâche de l’utilisateur, la plupart des scanners 3D portables modernes comprennent une interface graphique qui offre une visualisation de la surface reconstruite en temps réel. Cette rétroaction est essentielle car elle permet à l’utilisateur d’ajuster la trajectoire du scanner en fonction de ce qui reste à numériser. Or, l’écran comporte certains inconvénients sur le plan de l’utilisabilité. Dans ce projet de recherche, nous proposons donc une alternative aux écrans en exploitant la technologie des casques de réalité augmentée. Notre solution consiste à superposer le scan directement par-dessus l’objet réel grâce au casque de réalité augmentée. Afin de valider la faisabilité de la solution proposée, nous avons développé un prototype basé sur le système de reconstruction 3D KinectFusion et sur le système de réalité virtuelle HTC Vive Pro.

(4)

Abstract

A portable 3D scanner is a handheld device that can convert a real object into a digital 3D model of the object. Nowadays, portable 3D scanners are used in many sectors of our society, such as manufacturing, healthcare, entertainment or archeology. To scan an object, the user must point the scanner at the object and move it around the object in order to acquire the entirety of its surface. To help the user accomplish this task, most modern portable 3D scanners include a graphical user interface that offers a visualization of the reconstructed surface in real time. This feedback is essential since it allows the user to adjust the trajectory of the scanner depending on what remains to be scanned. However, the computer screen has some drawbacks in terms of usability. In this research project, we propose an alternative to computer screens by using augmented reality headsets. Our solution is to superimpose the scan directly over the real object using an augmented reality headset. In order to validate the feasibility of the proposed solution, we have developed a prototype based on the KinectFusion 3D reconstruction system and the HTC Vive Pro virtual reality system.

(5)

Table des matières

Résumé ... ii

Abstract ... iii

Table des matières ... iv

Liste des figures ... vi

Remerciements ... vii

Introduction ... 1

Chapitre 1 – Description de la problématique ... 2

1.1 Scanner 3D portable ... 2 1.1.1 Définition ... 2 1.1.2 Applications ... 2 1.1.3 Principe d’utilisation ... 2 1.1.4 Interface graphique ... 3 1.2 État de l’art ... 3

1.2.1 Écran externe au scanner ... 4

1.2.3 Écran intégré au scanner ... 5

1.2.4 Réalité augmentée sur écran ... 6

1.2.5 Casque de réalité augmentée ... 6

Chapitre 2 - Description de la solution ... 8

2.1 Idée générale ... 8 2.2 Réalité augmentée ... 8 2.2.1 Définition ... 8 2.2.2 Applications ... 9 2.2.3 Technologies d’affichage ... 10 2.3 Description du prototype ... 11 2.3.1 Résultats ... 11

2.3.2 Système de réalité augmentée... 12

2.3.3 Scanner 3D portable ... 14

(6)

2.3.5 Architecture logicielle ... 16

2.3.6 Alignement du scan avec le monde réel ... 16

2.3.7 Rendu graphique et gestion des occultations ... 18

Chapitre 3 - Limitations et pistes de solution ... 19

3.1 Performances ... 19

3.2 Système de réalité augmentée ... 19

3.3 Alignement du scan avec le monde réel ... 20

3.4 Gestion des occultations ... 21

3.5 Interaction ... 22

Conclusion ... 23

(7)

Liste des figures

Figure 1: Exemple d'utilisation du scanner HandySCAN 3D [1] (image de gauche) et du scanner Artec Eva [2] (image de droite). Reproduit de [1] et [3]. ... 4 Figure 2: Exemple d’utilisation du scanner Artec Leo [4] (image de gauche) et du scanner Calibry [5] (image de droite). Reproduit de [6] et [7]. ... 5 Figure 3: Exemple d’utilisation du Structure Sensor [8] avec l’application itSeez3D [9]. Reproduit de [10]. ... 6 Figure 4: Exemple d’utilisation du système proposé par Andersen et al. [11] selon un point de vue externe (image de gauche) et selon le point de vue de l’opérateur portant le casque (image de droite). Reproduit de [11]. ... 7 Figure 5: Exemple d'utilisation du système proposé par Wu et al. [12] selon le point de vue de l'utilisateur à différents moments du processus de numérisation. Reproduit de [12]. ... 7 Figure 6: Représentation simplifiée du continuum réalité-virtualité. Reproduit de [13]. ... 9 Figure 7: Vue de l’utilisateur avant de démarrer la numérisation (image de gauche) et durant la numérisation (images du centre et de droite). ... 11 Figure 8: Point de vue externe lors de l'utilisation du système proposé. ... 12 Figure 9: Illustration du système complet de réalité virtuelle HTC Vive pro comprenant un casque, deux manettes sans fil et deux stations de base SteamVR 2.0. Reproduit de [16]. . 13 Figure 10: Schéma de la manette Vive. Adapté de [18]. ... 13 Figure 11: Vue de face (image de gauche) et de côté (image de droite) de notre scanner 3D portable personnalisé. ... 15 Figure 12: Couleur de la surface selon la distance entre le scanner et l'objet. ... 16 Figure 13: Diagramme des différents repères de coordonnées et transformations rigides impliqués dans notre système. ... 17 Figure 14: Décalage entre le scan et l'image du monde réel lors d’un mouvement de tête rapide. ... 20 Figure 15: L’occultation entre le scan et le reste de la scène n’est pas gérée. Le pot à fleurs ne devrait pas cacher les arêtes du cube. ... 21

(8)

Remerciements

Dans un premier temps, je tiens à remercier mon directeur de recherche, Denis Laurendeau, pour m’avoir donné l’opportunité d’effectuer une maîtrise dans un champ de recherche qui me passionne. Sa disponibilité, son ouverture d’esprit et ses conseils avisés ont grandement contribué au succès de mon mémoire.

Je voudrais également remercier Creaform pour avoir supporté financièrement mon programme de maîtrise ainsi que l’achat des équipements via la chaire de recherche industrielle CRSNG-Creaform sur la numérisation 3D. C’est réellement un privilège de pouvoir se concentrer sur ses études sans avoir à se soucier de ses finances.

Un merci spécial à Denis Ouellet pour les nombreuses discussions éclairantes et pour m’avoir aidé dans l’élaboration des pièces imprimées en 3D.

Enfin, je souhaite exprimer ma reconnaissance envers toute autre personne ayant contribué de près ou de loin à ce mémoire, que ce soit un chercheur, un étudiant, un membre de ma famille ou un ami.

(9)

Introduction

Un scanner 3D portable permet l’acquisition de la forme et possiblement de l’apparence d’un objet en temps réel. Dans les dernières années, cet appareil est devenu un outil essentiel dans plusieurs domaines de notre société, comme la rétro-ingénierie, la santé, l’éducation, le divertissement ou la préservation du patrimoine. Puisqu’il est opéré manuellement, un aspect primordial du scanner 3D portable est son interface utilisateur. En effet, celle-ci fournit notamment une rétroaction à l’utilisateur durant la numérisation.

De nos jours, l’interaction avec les scanners 3D portables se fait généralement via une interface graphique. Toutefois, nous pensons que ce type d’interface n’est pas parfaitement adaptée à la tâche. En effet, elle présente certaines lacunes au niveau de l’utilisabilité, notamment en ce qui concerne sa portabilité et son efficience. L’objectif de ce projet de recherche est donc de concevoir une interface mieux adaptée aux scanners 3D portables de façon à améliorer leur utilisabilité.

Dans un premier temps, nous présenterons la problématique du mémoire en introduisant le concept de scanner 3D portable et en identifiant les différents problèmes associés à l’utilisation d’une interface graphique (Chapitre 1). Par la suite, nous présenterons la solution proposée, qui est basée sur la technologie de réalité augmentée, et nous décrirons en détails le prototype développé (Chapitre 2). Enfin, nous présenterons les principales limitations du prototype tout en suggérant des pistes de solution pour chacune d’entre elles (Chapitre 3).

(10)

Chapitre 1 – Description de la problématique

1.1 Scanner 3D portable

1.1.1 Définition

Un scanner 3D est un appareil permettant de numériser des objets du monde réel en 3D. Pour ceux qui sont familiers avec l’impression 3D, on peut voir le scanner 3D comme la technologie inverse de l’imprimante 3D. En effet, l’imprimante 3D produit un objet réel à partir d’un modèle 3D virtuel, alors qu’un scanner 3D produit un modèle 3D virtuel à partir d’un objet réel. Les scanners 3D peuvent être subdivisés en deux principales catégories : les scanners 3D stationnaires et les scanners 3D portables. Les scanners 3D stationnaires permettent de numériser un objet sans intervention humaine, sauf peut-être pour repositionner l’objet devant le capteur. À l’opposé, les scanners 3D portables doivent être opérés manuellement par un utilisateur. Ces deux types de scanners ont leurs avantages et leurs inconvénients. L’utilisation de l’un ou l’autre va donc dépendre des besoins de l’utilisateur. Dans ce projet de recherche, nous nous intéressons uniquement aux scanners 3D portables.

1.1.2 Applications

De nos jours, les scanners 3D sont utilisés dans de nombreux secteurs de notre société. Par exemple, l’industrie manufacturière les utilise pour faire le contrôle de qualité des produits ou pour la rétro-ingénierie. Dans le domaine de la santé, on les exploite notamment pour la création de prothèses. En archéologie, ils permettent l’analyse, la réplication ou la préservation des artéfacts. Dans le monde du divertissement, que ce soit pour le cinéma, les jeux-vidéo ou la réalité virtuelle, ils servent à créer du contenu de façon très efficace. Ces exemples ne représentent qu’une petite partie des applications des scanners 3D.

1.1.3 Principe d’utilisation

Peu importe la technologie utilisée pour acquérir les données (triangulation laser, lumière structurée, temps de vol, etc.), le principe d’utilisation d’un scanner 3D portable reste essentiellement le même. L’utilisateur doit d’abord prendre l’appareil dans ses mains et le pointer vers l’objet. Il appuie ensuite sur un bouton pour démarrer la numérisation. À ce moment, le scanner commence à recueillir et enregistrer des données relatives à la surface

(11)

de l’objet. Ces données concernent la géométrie et possiblement la texture (couleur) de la surface. Étant donné que le scanner a un champ de vision limité, il ne sera généralement pas possible de capter la totalité de la surface de l’objet à partir d’un seul point de vue. L’utilisateur doit donc déplacer le scanner autour de l’objet afin de numériser l’entièreté de sa surface. Pendant le déplacement, le scanner recueille de nouvelles données qui sont automatiquement alignées et intégrées aux anciennes données pour construire progressivement le modèle 3D virtuel de l’objet. Pour que le processus de numérisation soit efficace, l’utilisateur doit respecter certaines contraintes en ce qui concerne la distance et l’orientation entre le scanner et la surface, ainsi que la vitesse et la trajectoire du scanner. Pour faciliter le processus, la plupart des scanners incluent une interface graphique qui fournit une rétroaction visuelle à l’utilisateur.

1.1.4 Interface graphique

Il serait très difficile d’obtenir un modèle 3D complet et précis d’un objet sans rétroaction en temps réel durant le processus de numérisation. En comparant la numérisation 3D avec la peinture par pulvérisation, cela reviendrait à peindre un objet à l’aveugle et à constater le résultat seulement à la fin. On ne peut certainement pas s’attendre à de bons résultats. C’est pourquoi les scanners 3D portables actuels offrent une interface utilisateur permettant de visualiser en temps réel certaines informations cruciales concernant la numérisation. Le type d’information et la façon dont elle est présentée est unique à chaque système, mais il y a tout de même certains éléments que l’on retrouve dans la plupart des cas. Par exemple, la majorité des scanners 3D portables permettent la visualisation en temps réel du scan. Cela permet à l’utilisateur de constater directement l’évolution de la numérisation afin qu’il puisse ajuster la trajectoire du scanner et ainsi numériser l’entièreté de la surface de l’objet. Une autre information qui est souvent disponible est un indicateur de la distance entre le scanner et la surface de l’objet. Pour recueillir des données précises, le scanner ne doit pas être tenu trop près ni trop loin de la surface de l’objet. L’indicateur aide l’utilisateur à respecter cette contrainte.

1.2

État de l’art

Il existe plusieurs configurations d’affichage permettant à l’utilisateur d’obtenir une rétroaction lors du processus de numérisation. Certaines sont bien établies dans l’industrie

(12)

de la numérisation 3D alors que d’autres sont encore à l’étape de la recherche. Cette section présente et analyse les différents types d’interfaces visuelles existantes.

1.2.1 Écran externe au scanner

Beaucoup de scanners 3D portables doivent être connectés à un ordinateur externe pour fonctionner. Il peut s’agir d’un ordinateur de bureau, d’un ordinateur portable ou d’une tablette électronique. Dans ce cas, c’est souvent l’écran d’ordinateur qui sert de support visuel. Pour des objets de petite taille dans des environnements adaptés, cette configuration n’est pas vraiment problématique. En effet, il suffit de placer l’ordinateur à proximité de l’objet (ou vice versa) pour que l’écran soit visible tout au long de la numérisation (voir Figure 1 (image de gauche)). Cela n’est cependant pas toujours possible pour les objets de plus grande taille ou les environnements inadaptés. Pour contourner ce problème, une première option consiste à installer un grand écran ou plusieurs écrans à proximité de l’objet. Or, cette solution diminue la portabilité du scanner, augmente le temps d’installation et nécessite de l’espace supplémentaire. Une deuxième option consiste à déplacer l’ordinateur (possiblement sur une station mobile) d’un endroit à l’autre durant la numérisation. Toutefois, cela réduit l’efficience de la numérisation et nécessite de l’espace supplémentaire pour poser l’ordinateur ou déplacer la station. Une troisième option consiste à tenir l'ordinateur dans une main (voir Figure 1 (image de droite)). Cependant, en plus d’occuper la deuxième main, cette solution peut fatiguer le bras à la longue en raison du poids de l’appareil.

Figure 1: Exemple d'utilisation du scanner HandySCAN 3D [1] (image de gauche) et du scanner Artec Eva [2] (image de droite). Reproduit de [1] et [3].

(13)

1.2.3 Écran intégré au scanner

Un deuxième type d’affichage consiste à intégrer l’écran au scanner. Cela comprend les scanners munis d’un écran dédié (voir Figure 2) ainsi que les appareils mobiles (téléphones intelligents, tablettes électroniques) munis de capteurs 3D (voir Figure 3). Contrairement aux scanners avec un écran externe, ce type de configuration ne contraint jamais l’utilisateur à déplacer un second appareil puisque l’écran est fixé au scanner. En revanche, ce type de configuration comporte aussi certains désavantages. D’abord, il peut y avoir des situations où l’écran est partiellement ou complètement invisible à l’utilisateur. Ceci est le cas par exemple lorsque l’utilisateur tient le scanner avec un angle prononcé ou s’il y a un objet entre l’écran et les yeux de l’utilisateur. Ce problème survient surtout lors de la numérisation d’objets complexes ou difficilement accessibles. De plus, le fait d’intégrer un grand écran dans le scanner alourdit l’appareil alors qu’un petit écran rend la visualisation plus difficile.

Figure 2: Exemple d’utilisation du scanner Artec Leo [4] (image de gauche) et du scanner Calibry [5] (image de droite). Reproduit de [6] et [7].

(14)

Figure 3: Exemple d’utilisation du Structure Sensor [8] avec l’application itSeez3D [9]. Reproduit de [10].

1.2.4 Réalité augmentée sur écran

Durant le processus de numérisation, l’utilisateur est souvent porté à regarder l’objet réel plutôt que l’écran, probablement pour avoir une meilleure vue d’ensemble de la scène. Cela provoque donc un changement continuel d’attention entre l’objet réel et l’écran. Pour diminuer cet effet, certains scanners sont munis d’une caméra qui permet de diffuser une image de la réalité à l’écran en plus du scan. L’image de la réalité peut être distincte de l’image du scan ou bien fusionnée au scan sous forme de réalité augmentée. Dans ce dernier cas, le scan de l’objet est alors superposé et aligné à l’image de l’objet réel (voir Figure 3).

1.2.5 Casque de réalité augmentée

Récemment, des recherches ont exploré l’utilisation d’un casque de réalité augmentée durant le processus de reconstruction 3D.

Dans leurs travaux, Andersen et al. ont présenté une nouvelle approche pour l’acquisition photogrammétrique qui se base sur un casque de réalité augmentée [11]. Le casque génère un modèle 3D brut de la scène qui est analysé en temps réel pour prédire un ensemble de points de vue permettant de couvrir la totalité de la surface. La position des points de vue

(15)

est affichée dans le casque pour guider l’opérateur de façon interactive lors du processus d’acquisition des images. La Figure 4 illustre le fonctionnement du système proposé.

Figure 4: Exemple d’utilisation du système proposé par Andersen et al. [11] selon un point de vue externe (image de gauche) et selon le point de vue de l’opérateur portant le casque (image de droite). Reproduit de

[11].

Wu et al. ont aussi proposé d’utiliser un casque de réalité augmentée pour afficher diverses informations à l’utilisateur lors du processus de reconstruction 3D [12]. Cependant, la reconstruction n’est pas effectuée en déplaçant un scanner 3D portable autour d’un objet. Le scanner (caméra RGB-D) est plutôt fixé sur le casque et c’est l’utilisateur qui doit tourner l’objet dans ses mains pour capturer la géométrie de l’objet. Cela n’est donc pas adapté aux objets lourds ou de grande taille. Puisque leur système se base sur une seule caméra pour générer la réalité augmentée, la vision du monde réel est monoculaire plutôt que binoculaire, ce qui ne permet pas une bonne perception de la profondeur. La Figure 5 illustre le point de vue de l’utilisateur à différents moments du processus de numérisation.

Figure 5: Exemple d'utilisation du système proposé par Wu et al. [12] selon le point de vue de l'utilisateur à différents moments du processus de numérisation. Reproduit de [12].

(16)

Chapitre 2 - Description de la solution

2.1 Idée générale

Dans le chapitre précédent, nous avons analysé l’interface utilisateur de divers scanners 3D portables modernes. Cela nous a permis d’identifier certains problèmes reliés à l’utilisation d’un écran 2D. Essentiellement, selon le type de configuration utilisé, l’écran peut :

 limiter la portabilité du scanner;

 être peu ou pas visible dans certaines situations;

 forcer l’utilisateur à alterner son attention entre l’écran et l’objet.

L’objectif de notre projet de recherche est donc de concevoir une nouvelle interface pour les scanners 3D portables qui résout ces problèmes et qui, par conséquent, améliore l’utilisabilité de l’appareil.

La façon dont nous avons approché le problème consiste à comparer le processus de numérisation 3D avec celui de la peinture en aérosol, qui est particulièrement intuitif. En effet, il y a plusieurs similarités entre ces deux activités. Le scanner est analogue à la bombe aérosol ou au pistolet pulvérisateur, la surface 3D reconstruite est analogue à la peinture appliquée et le mouvement effectué par l’utilisateur est pratiquement le même dans les deux cas. Cependant, une différence majeure entre ces deux activités est la façon dont le résultat est visualisé. Dans le cas du scanner 3D, le résultat est visualisé sur un écran selon le point de vue du scanner alors que dans le cas de la peinture en aérosol, le résultat est visible à même l’objet selon le point de vue de l’utilisateur.

Notre idée consiste donc à reproduire virtuellement le type de visualisation que l’on a avec la peinture à l’aérosol. Ainsi, l’utilisateur du scanner peut visualiser la surface reconstruite directement sur l’objet sans passer par l’intermédiaire d’un écran. La clé pour y arriver est d’utiliser un casque de réalité augmentée.

2.2 Réalité augmentée

2.2.1 Définition

Pour bien comprendre ce qu’est la réalité augmentée, il est essentiel de définir le concept de continuum virtualité, introduit par Milgram et al. [13], [14]. Le continuum

(17)

réalité-virtualité est une échelle continue ayant pour extrémités la réalité et la réalité-virtualité (voir Figure 6). La réalité définit un environnement composé uniquement d’objets réels, qui peut être observé directement à l’œil nu, ou par l’intermédiaire d’un système vidéo. À l’opposé, la virtualité définit un environnement composé strictement d’objets virtuels, donc simulés par ordinateur, et qui peut être visualisé à l’aide d’un dispositif d’affichage comme un écran ou un casque de réalité virtuelle. La réalité mixte fait référence aux environnements se situant entre ces deux extrémités, combinant à la fois des éléments du monde réel et du monde virtuel. Parmi les environnements en réalité mixte, on retrouve la réalité augmentée et la virtualité augmentée. La réalité augmentée est un environnement composé principalement d’objets réels, dans lequel sont ajouté des éléments virtuels. À l’inverse, la virtualité augmentée est un environnement à prédominance virtuelle, mais dans lequel sont ajoutés certains éléments du monde réel.

Figure 6: Représentation simplifiée du continuum réalité-virtualité. Reproduit de [13].

2.2.2 Applications

La possibilité d’ajouter du contenu virtuel à la perception du monde réel d’un observateur ouvre la porte à une multitude d’applications. Certaines d’entre elles sont déjà bien établies dans notre société alors que d’autres font actuellement l’objet de nombreuses recherches et expérimentations.

Le concept de réalité augmentée a été largement popularisé grâce au domaine du divertissement. Un premier exemple notable récent est celui du jeu-vidéo Pokémon GO, qui permet au joueur de capturer des Pokémons dans le monde réel. La réalité augmentée est aussi beaucoup exploitée lors de la diffusion d’événements sportifs pour offrir des

(18)

compléments d’information au téléspectateur. On peut penser à la ligne jaune du premier essai au football américain ou au tracé d’une balle au golf. La réalité augmentée est aussi couramment utilisée pour l’assistance à la navigation. Par exemple, il est possible de superposer de la signalisation virtuelle sur le réseau routier, comme une flèche indiquant la direction à suivre. Un principe semblable s’applique aux caméras de recul, qui affichent une estimation de la trajectoire de la voiture en fonction de l’angle des roues. Dans l’industrie de la construction, la réalité augmentée peut permettre de visualiser les détails de la structure d’un bâtiment afin de planifier des travaux. Dans l’industrie manufacturière, elle peut faciliter le processus d’assemblage en affichant les instructions directement sur l’objet plutôt que dans un manuel en papier ou électronique. Enfin, la réalité augmentée a beaucoup de potentiel dans le domaine de la santé, notamment pour la chirurgie. En effet, l’affichage du modèle 3D de l’anatomie d’un patient sur le patient lui-même permettrait de mieux guider les mouvements du chirurgien.

2.2.3 Technologies d’affichage

Les technologies d’affichage de la réalité augmentée peuvent généralement être classées dans deux catégories : les écrans et les casques [13].

Les systèmes de réalité augmentée basés sur les écrans superposent des éléments graphiques virtuels sur un flux vidéo de la réalité. Les images affichées à l’écran sont prises du point de vue de la caméra. L’observateur a donc une vision externe de la scène augmentée. De nos jours, les types d’écrans les plus répandus pour la réalité augmentée sont ceux des téléphones intelligents et des tablettes électroniques.

Les casques (ou lunettes) de réalité augmentée permettent de superposer des éléments virtuels directement dans le champ de vision de l’utilisateur, produisant ainsi une expérience immersive. Ce type de technologie peut être subdivisé en deux catégories : les casques optical through et les casques video through. Les casques optical

see-through sont généralement munis d’une surface transparente ou semi-transparente placée

devant les yeux. Cette surface laisse passer en partie la lumière provenant du monde réel tout en permettant simultanément l’affichage du contenu virtuel par divers moyens optiques plus ou moins complexes, comme des miroirs ou des guides d’ondes. Les casques video

(19)

image provenant d’un écran est projetée sur chaque œil. Pour ajouter la composante réalité augmentée, deux caméras sont placées devant les yeux et pointent vers l’extérieur pour enregistrer les images du monde réel et les diffuser sur les écrans du casque.

2.3 Description du prototype

2.3.1 Résultats

La Figure 7 illustre le point de vue d’un utilisateur numérisant quelques objets avec notre système et la Figure 8 présente une vue d’ensemble du système. Une courte vidéo démonstrative est également disponible sur Youtube [15].

Figure 7: Vue de l’utilisateur avant de démarrer la numérisation (image de gauche) et durant la numérisation (images du centre et de droite).

(20)

Figure 8: Point de vue externe lors de l'utilisation du système proposé.

2.3.2 Système de réalité augmentée

Pour développer notre prototype, nous avons choisi d’utiliser le système de réalité virtuelle HTC Vive Pro [16] (voir Figure 9). Ce système comprend un casque de réalité virtuelle, deux manettes sans fil et deux stations de base. Le casque et les manettes sont localisés en temps réel selon six degrés de liberté (6DDL) grâce aux stations de base SteamVR 2.0. Les stations de base sont fixées dans la pièce et envoient constamment des signaux lumineux qui sont reçues par les capteurs sur le casque et les manettes. Le système HTC Vive Pro fonctionne à l’aide d’un PC, ce qui offre une capacité de calcul bien plus grande qu’avec un casque autonome. Cet aspect est très important pour le prototype car la reconstruction 3D et le rendu graphique demandent une capacité de calcul considérable.

Bien qu’il soit généralement utilisé pour la réalité virtuelle, ce système permet également de créer des expériences en réalité augmentée. En effet, le casque est muni de deux caméras frontales qui permettent d’afficher de la réalité augmentée en video see-through stéréoscopique, mais aussi de générer une image de profondeur qui peut être utilisée pour gérer l’occultation. Ces fonctionnalités sont disponibles à travers le kit de développement logiciel Vive SRWorks SDK [17].

(21)

Dans notre prototype, nous utilisons une seule manette. Celle-ci a plusieurs fonctions dans notre système. Elle offre une poignée confortable pour manipuler le scanner 3D (voir Figure 11), donne accès à plusieurs boutons d’entrée (voir Figure 10) pour contrôler le processus de numérisation et est un élément essentiel lors du processus de calibrage.

Figure 9: Illustration du système complet de réalité virtuelle HTC Vive pro comprenant un casque, deux manettes sans fil et deux stations de base SteamVR 2.0. Reproduit de [16].

(22)

2.3.3 Scanner 3D portable

Le scanner 3D portable constitue la base de notre prototype. Afin de ne pas réinventer la roue, nous avons opté pour une solution existante. Puisque les entreprises ne fournissent généralement pas l’entièreté de leur code source, nous nous sommes plutôt tournés vers une implémentation en logiciel libre (open source). Parmi les nombreuses solutions disponibles, nous avons choisi Kinfu_remake [19], une implémentation open source (en C++) du populaire algorithme KinectFusion [20]. Plusieurs raisons motivent ce choix. D’abord, l’implémentation possède la plupart des fonctionnalités nécessaires au prototype, notamment la possibilité d’effectuer le rendu à partir d’un point de vue arbitraire. De plus, le code source est compréhensible, optimisé et ne dépend seulement que de quelques librairies externes bien connues, soit OpenCV [21], CUDA [22] et OpenNI [23]. Enfin, l’algorithme de KinectFusion a fait ses preuves dans la communauté scientifique.

KinectFusion est un système permettant la reconstruction 3D dense et en temps réel d’une scène intérieure à l’aide d’une caméra de profondeur portable à bas prix. Pour y arriver, le système estime continuellement les six degrés de liberté (6DDL) de la caméra en comparant l’image de profondeur actuelle avec une vue du scan à l’aide d’une variante de l’algorithme Iterative Closest Point (ICP). Au fur et à mesure que l’utilisateur déplace la caméra, les nouvelles données de profondeur sont intégrées dans une représentation volumétrique globale connue sous le nom de Truncated Signed Distance Function (TSDF). Enfin, un raycasting de cette représentation est effectué à chaque itération afin de générer un rendu à l’utilisateur, mais aussi pour permettre la localisation de la caméra.

Pour notre prototype, nous utilisons la caméra Primesense Carmine 1.09 [24], qui est une caméra RGB-D (voir Figure 11). Cette caméra peut générer des images de couleur et de profondeur, mais dans notre cas, uniquement l’image de profondeur est utilisée. Notons toutefois que le choix de la caméra de profondeur a peu d’importance dans notre projet, puisque ce n’est pas tant la qualité de la reconstruction qui nous intéresse, mais plutôt la fonctionnalité générale du scanner. La caméra est fixée sur une manette à l’aide d’un support personnalisé imprimé en 3D (voir Figure 11).

(23)

Figure 11: Vue de face (image de gauche) et de côté (image de droite) de notre scanner 3D portable personnalisé.

2.3.4 Cas d’utilisation

Pour commencer, l’utilisateur doit choisir la position et la taille du volume de reconstruction. Le volume de reconstruction délimite la portion du monde réel qui peut être numérisée. Tout ce qui se trouve à l’extérieur du volume est ignoré. Dans notre système, le volume de reconstruction est représenté par un cube rouge virtuel dont seules les arêtes sont visibles (voir Figure 7). La position du volume peut être modifiée en déplaçant la manette et sa taille peut être ajustée en appuyant sur le haut ou le bas du pavé tactile (voir Figure 10). Une fois que l’utilisateur est satisfait de la position et de la taille du volume, il peut démarrer la numérisation en appuyant sur la gâchette de la manette. Le volume de numérisation est alors fixé dans l’espace. Durant la numérisation, l’utilisateur peut visualiser en temps réel le scan de l’objet en reconstruction superposé sur l’objet réel. Cela lui permet d’évaluer la progression de la numérisation de façon très intuitive. De plus, la surface du scan visible par le scanner est colorée selon la distance entre la caméra et la surface. La couleur rouge signifie que le scanner est trop loin; la couleur bleue, qu’il est trop proche; et la couleur verte, qu’il est à une distance valide (voir Figure 12). À tout moment durant le processus de numérisation, l’utilisateur peut suspendre ou reprendre la numérisation en appuyant sur la gauche du pavé tactile. Il peut aussi cacher ou afficher le scan en appuyant sur la droite du pavé tactile. Ces fonctionnalités sont particulièrement utiles lorsque l’utilisateur veut évaluer la qualité du scan et le comparer avec l’objet réel. Enfin, il est possible de redémarrer complètement le processus de numérisation à l’aide des boutons de saisie sur les côtés de la manette.

(24)

Figure 12: Couleur de la surface selon la distance entre le scanner et l'objet.

2.3.5 Architecture logicielle

Pour faciliter le développement du prototype, nous avons décidé d’exploiter le moteur de jeu Unity [25] plutôt que de tout programmer de façon native. L’application utilise trois plugins Unity : SRWorks SDK [17], SteamVR [26] et notre plugin de reconstruction 3D. Dans le prototype, le plugin SRWorks SDK s’occupe d’afficher la réalité augmentée en

video see-through et de gérer l’occultation. Le plugin SteamVR est utilisé pour gérer les

entrées de la manette. Enfin, le plugin de reconstruction 3D sert d’interface entre l’engin de reconstruction 3D en C++ et les scripts Unity en C#.

2.3.6 Alignement du scan avec le monde réel

La Figure 13 illustre les différents repères de coordonnées et transformations rigides impliqués dans notre système. Pour que le scan de l’objet soit correctement aligné avec l’objet réel, les mesures prises dans le repère Depth doivent être exprimées dans le même repère que le casque, c’est-à-dire le repère Monde Virtuel. Comme on peut le constater sur la Figure 13, la transformation entre le repère Depth et le repère RGB est connue grâce à une calibration d’usine de la caméra. La transformation entre le repère Manette et le repère Monde Virtuel est également connue grâce au système de localisation du Vive Pro. Le problème revient donc à estimer la seule transformation manquante, soit celle entre le repère Manette et le repère RGB. Ce problème est bien connu dans la communauté robotique sous le nom de calibrage main-œil (hand-eye calibration), car il s’applique souvent dans le contexte d’une caméra (eye) placée sur une main de robot (hand).

(25)

Figure 13: Diagramme des différents repères de coordonnées et transformations rigides impliqués dans notre système.

La première étape de la procédure de calibrage consiste à effectuer le calibrage de la caméra. Pour ce faire, une vingtaine d’images d’une cible dotée d’un échiquier (Figure 13) sont prises de différents points de vue par la caméra RGB du capteur Carmine. Pour estimer les paramètres de la caméra, nous utilisons l’implémentation d’OpenCV [21], qui est basée sur les travaux de Zhang [27] et Bouguet [28]. Simultanément, pour chaque pose (i.e. position et orientation) de caméra, nous enregistrons la transformation entre le repère Manette et le repère Monde Virtuel. Ensuite, nous utilisons la méthode de calibrage main-œil de Daniilidis [29], aussi implémentée dans OpenCV, pour estimer la transformation entre le repère Manette et le repère RGB. En bref, cette méthode exploite le concept de dual

quaternions pour résoudre de façon simultanée la translation et la rotation de la matrice de

transformation. La méthode accepte les entrées suivantes : l’ensemble des paramètres extrinsèques trouvés par le calibrage de la caméra, ainsi que les transformations enregistrées entre le repère Manette et le repère Monde Virtuel. Une fois le système calibré, les transformations Volume/Monde Virtuel et RGB/Monde Virtuel sont calculées et utilisées pour initialiser l’engin de reconstruction. La transformation RGB/Monde Virtuel est aussi utilisée pour relocaliser automatiquement la caméra lorsque la localisation basée

(26)

sur l’algorithme d’Iterative Closest Point (ICP) de Kinfu_remake est momentanément perdue.

2.3.7 Rendu graphique et gestion des occultations

Il y a trois éléments qui doivent être affichés dans le casque : le monde réel, le cube virtuel et le scan. Le monde réel et le cube virtuel sont tous les deux rendus à l’aide du moteur de rendu par défaut de Unity. Le plugin SRWorks SDK est utilisé pour activer le video

see-through stéréoscopique dans le casque. Le plugin génère aussi une carte de profondeur par

stéréoscopie qui est utilisée pour gérer l’occultation entre le monde réel et le cube virtuel. Pour ce faire, le tampon de profondeur (Z-buffer) généré lors du rendu est comparé avec la carte de profondeur. Lorsque la valeur du tampon de profondeur est inférieure à celle de la carte de profondeur, c’est le pixel associé à l’objet virtuel (i.e. le cube) qui est affiché. Dans le cas contraire, c’est plutôt le pixel associé au video see-through qui est affiché (i.e. le contenu de la scène réelle).

En ce qui concerne le rendu du scan, nous exploitons l’algorithme de KinectFusion, qui est basé sur le raycasting du volume. Cependant, plutôt que de faire le raycasting une seule fois à partir du point de vue de la caméra, nous faisons le raycasting deux fois à partir des points de vue des yeux pour produire deux images légèrement différentes. Les pixels qui correspondent à l’objet sont opaques alors que les pixels de l’arrière-plan sont transparents. Ces images sont ensuite fusionnées aux images générées par Unity par un processus de simulation de transparence. Le résultat est un scan superposé au reste de la scène (monde réel et cube virtuel) (voir Figure 7).

(27)

Chapitre 3 - Limitations et pistes de solution

3.1 Performances

Le système que nous proposons nécessite une énorme quantité de calculs. Non-seulement il faut reconstruire le modèle 3D en temps réel, mais il faut aussi calculer un rendu pour chaque œil. Habituellement, pour obtenir une expérience fluide avec le HTC Vive Pro, le nombre d’images par seconde doit être maintenu à un minimum de 90. Or, en testant le prototype sur un ordinateur équipé d’une carte graphique Nvidia GTX 1060 et d’un CPU Intel i7-3930K, nous obtenons environ 20 images par secondes pour un volume de reconstruction de 5123 voxels à la résolution déterminée automatiquement par le système de réalité virtuelle (SteamVR). Une cadence de rendu aussi basse réduit la fluidité de l’affichage, augmente la latence du système et peut, pour certains utilisateurs, engendrer un cybermalaise. Pour que le système puisse être utilisé dans un contexte réel, des optimisations matérielles et/ou logicielles seront donc nécessaires, surtout en ce qui concerne le rendu graphique. Notamment, il faudrait utiliser une carte graphique plus performante et des algorithmes de reconstruction et de rendu plus optimaux.

3.2 Système de réalité augmentée

Idéalement, le système de réalité augmentée ne devrait pas nuire à la portabilité du scanner 3D portable. Or, le système utilisé dans le prototype réduit cette portabilité de deux façons. Premièrement, le HTC Vive Pro nécessite un ordinateur externe pour fonctionner. Dans sa configuration par défaut, le casque communique avec l’ordinateur via un câble, ce qui contraint les mouvements de l’utilisateur. Pour résoudre ce problème, HTC offre un adaptateur sans fil qui permet au casque de communiquer avec l’ordinateur grâce à un lien sans fil haute vitesse. Même s’il doit y avoir un ordinateur à proximité du casque, cela est un moindre mal puisque la plupart des scanners 3D portables fonctionnent aussi grâce à un ordinateur et y sont branchés avec un câble. Deuxièmement, le système de localisation du HTC Vive Pro nécessite des appareils externes, ce qui limite également la portabilité du système. Pour éviter cette limitation, il faudrait que le casque puisse se localiser de façon autonome, par exemple en analysant l’environnement extérieur à l’aide de capteurs.

(28)

Une autre limitation importante du casque est sa performance en matière de réalité augmentée. En effet, la fonctionnalité video see-through du casque présente une basse résolution (480p) et une grande latence (≈200ms), ce qui crée une expérience particulièrement inconfortable pour l’utilisateur. L’utilisation d’un casque de type optical

see-through serait l’alternative idéale puisque l’utilisateur pourrait voir le monde réel

directement, donc sans latence ni perte de résolution. Il est important de noter toutefois que la technologie optical see-through comporte aussi certains désavantages comme un champ de vision limité pour les éléments virtuels ou l’impossibilité d’afficher du noir ou des surfaces complètement opaques.

3.3 Alignement du scan avec le monde réel

Lorsque l’utilisateur garde sa tête fixe, le scan est bien aligné avec l’objet réel. En revanche, cet alignement est partiellement perdu lorsque le casque est en mouvement (voir Figure 14). Ce phénomène ne semble pas être le résultat d’un mauvais calibrage, mais plutôt la conséquence d’une désynchronisation entre les images du monde réel et le rendu du scan. Cette désynchronisation est probablement due à la grande latence du video

see-through et au manque de rapidité de l’application.

(29)

Dans le prototype actuel, l’alignement est rendu possible grâce au fait que le scanner (via la manette) et le casque sont tous deux localisés grâce au même système de localisation du Vive. Dans une situation où le scanner et le casque seraient tous deux localisés de façon indépendante et autonome, c’est-à-dire sans matériel externe, il faudrait trouver une nouvelle façon d’aligner le scan avec le monde réel, ce qui a priori n'est pas trivial.

3.4 Gestion des occultations

Actuellement, le prototype ne gère pas l’occultation entre le scan et le reste de la scène. En effet, le scan est tout simplement superposé au reste de la scène (voir Figure 15). Dans certaines situations, cela peut être une source de confusion pour l’utilisateur. Par exemple, si une partie numérisée d’un objet se retrouve derrière une partie non numérisée, l’utilisateur verra la partie numérisée plutôt que l’objet réel. Une façon de résoudre ce problème en se basant sur l’implémentation actuelle serait de tenir compte de la profondeur de la scène lors du raycasting [20]. Cette fonctionnalité est présentée dans l’article de KinectFusion, mais n’a pas été implémentée dans Kinfu_remake.

Figure 15: L’occultation entre le scan et le reste de la scène n’est pas gérée. Le pot à fleurs ne devrait pas cacher les arêtes du cube.

(30)

3.5 Interaction

Bien qu’elle soit intuitive, l’interface que nous proposons possède un inconvénient sur le plan de l’utilisabilité. Puisque la visualisation du scan est effectuée selon le point de vue de l’utilisateur, ce dernier doit absolument se déplacer pour visualiser le scan sous tous ses angles. Or, il arrive parfois qu’une partie d’un objet soit difficilement visible par l’utilisateur. Par exemple, il faut se pencher pour numériser le dessous d’une table. Une façon de résoudre ce problème serait d’ajouter un écran virtuel dans le champ de vision de l’utilisateur qui afficherait le scan selon le point de vue du scanner. L’utilisateur aurait donc le choix entre visualiser le scan directement sur l’objet ou sur un écran virtuel situé à proximité de l’objet.

(31)

Conclusion

Dans ce projet de recherche, nous avons proposé une alternative aux traditionnelles interfaces graphiques utilisées lors de la numérisation 3D à l’aide d’un scanner 3D portable. Notre solution, basée sur la technologie des casques de réalité augmentée, permet entre autres à l’opérateur du scanner de visualiser la surface numérisée directement par-dessus l’objet réel plutôt que sur un écran. Nous croyons que cette technologie peut améliorer considérablement l’utilisabilité des scanners 3D portables. Pour analyser la faisabilité de la solution proposée, nous avons développé un prototype basé sur le système de reconstruction 3D en temps réel KinectFusion et le casque HTC Vive Pro. Cela nous a permis de mieux comprendre les différents défis reliés à la réalisation d’un tel système. Des travaux futurs seront nécessaires pour améliorer les performances générales du prototype et pour le rendre viable dans un contexte réel. Des tests utilisateurs devront également être effectués afin de comparer la solution proposée avec les solutions actuelles.

Le travail présenté dans ce mémoire a fait l’objet d’une publication à la International Conference on Human Interaction and Emerging Technologies (IHIET 2020) [30].

(32)

Bibliographie

[1] Creaform, « HandySCAN 3D | [Scanner laser 3D] portable de classe métrologique ». https://www.creaform3d.com/fr/solutions-de-metrologie/scanners-3d-portables-handyscan-3d (consulté le juin 30, 2020).

[2] « EVA scanner 3D à lumière structurée pour scanner les objets en 3D », Solutions de

scan professionnelles | Artec3D.

https://www.artec3d.com/fr/portable-3d-scanners/artec-eva-v2 (consulté le juin 30, 2020).

[3] « Artec 3D Scanners », Envirolaser3D.

https://www.envirolaser3d.com/collections/artec-3d-scanners (consulté le juin 30, 2020).

[4] « Scanner 3D Portable Sans Fil | Artec Leo | Meilleure Solution Scan 3D », Solutions

de scan professionnelles | Artec3D.

https://www.artec3d.com/fr/portable-3d-scanners/artec-leo (consulté le juill. 09, 2020).

[5] « Calibry ». https://thor3dscanner.com/calibry (consulté le juill. 09, 2020).

[6] « Artec Leo 3D Scanner: Review the Specs », All3DP, oct. 04, 2019. https://all3dp.com/1/artec-leo-review-3d-scanner-specs-price/ (consulté le juin 30, 2020).

[7] « Calibry Handheld 3D Scanner », Polyga. https://www.polyga.com/calibry-handheld-3d-scanner/ (consulté le juin 30, 2020).

[8] « Structure by Occipital - Give Your iPad 3D Vision ». https://structure.io/structure-sensor (consulté le juill. 09, 2020).

[9] « #1 Mobile 3D Scanner App for iPad | itSeez3D ». https://itseez3d.com/ (consulté le juill. 09, 2020).

[10] « itSeez3D 3D Scanner iPad App Review », 3D Scan Expert, nov. 14, 2016. https://3dscanexpert.com/structure-sensor-review-part-2-itseez3d/ (consulté le juin 30, 2020).

[11] D. Andersen, P. Villano, et V. Popescu, « AR HMD Guidance for Controlled Hand-Held 3D Acquisition », IEEE Trans. Vis. Comput. Graph., vol. 25, no 11, p. 3073‑3082, nov. 2019, doi: 10.1109/TVCG.2019.2932172.

[12] Y.-C. Wu, L. Chan, et W.-C. Lin, « Tangible and Visible 3D Object Reconstruction in Augmented Reality », dans 2019 IEEE International Symposium on Mixed and

Augmented Reality (ISMAR), oct. 2019, p. 26‑36, doi: 10.1109/ISMAR.2019.00-30.

[13] P. Milgram, H. Takemura, A. Utsumi, et F. Kishino, « Augmented reality: A class of displays on the reality-virtuality continuum », Telemanipulator Telepresence

Technol., vol. 2351, janv. 1994, doi: 10.1117/12.197321.

[14] P. Milgram et F. Kishino, « A Taxonomy of Mixed Reality Visual Displays », IEICE

(33)

[15] « Utilisation d’un casque de réalité augmentée lors de la numérisation avec un scanner 3D portable », août 14, 2020. https://www.youtube.com/watch?v=AKI0f1G2Zz8 (consulté le août 18, 2020).

[16] « VIVE Enterprise | Professional Grade VR ». https://enterprise.vive.com/fr/product/vive-pro/ (consulté le juill. 24, 2020).

[17] « Intro to VIVE SRWorks SDK », VIVE Developer Resources.

https://developer.vive.com/resources/knowledgebase/intro-vive-srworks-sdk/ (consulté le mai 11, 2020).

[18] « À propos des contrôleurs VIVE ». https://www.vive.com/ fr/support/vive/category_howto/about-the-controllers.html (consulté le août 13,

2020).

[19] A. Baksheev, Nerei/kinfu_remake. 2020.

[20] S. Izadi et al., « KinectFusion: real-time 3D reconstruction and interaction using a moving depth camera », dans Proceedings of the 24th annual ACM symposium on

User interface software and technology, Santa Barbara, California, USA, oct. 2011,

p. 559–568, doi: 10.1145/2047196.2047270.

[21] « OpenCV ». https://opencv.org/ (consulté le mai 11, 2020).

[22] « CUDA Toolkit », NVIDIA Developer, juill. 02, 2013. https://developer.nvidia.com/cuda-toolkit (consulté le août 13, 2020).

[23] « Structure by Occipital - Give Your iPad 3D Vision ». https://structure.io/openni (consulté le août 13, 2020).

[24] « Primesense Carmine 1.09 ». http://xtionprolive.com/primesense-carmine-1.09 (consulté le août 25, 2020).

[25] U. Technologies, « Unity Real-Time Development Platform | 3D, 2D VR & AR Visualizations ». https://unity.com/ (consulté le mai 11, 2020).

[26] « SteamVR Plugin | Integration | Unity Asset Store ». https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647

(consulté le mai 11, 2020).

[27] Z. Zhang, « A flexible new technique for camera calibration », IEEE Trans. Pattern

Anal. Mach. Intell., vol. 22, no 11, p. 1330‑1334, nov. 2000, doi: 10.1109/34.888718.

[28] « Camera Calibration Toolbox for Matlab ». http://www.vision.caltech.edu/bouguetj/calib_doc/ (consulté le mai 11, 2020).

[29] K. Daniilidis, « Hand-Eye Calibration Using Dual Quaternions », Int. J. Robot. Res., vol. 18, no 3, p. 286‑298, mars 1999, doi: 10.1177/02783649922066213.

[30] J. Isabelle et D. Laurendeau, « A Mixed Reality Interface for Handheld 3D Scanners », dans Human Interaction, Emerging Technologies and Future

Figure

Figure 1: Exemple d'utilisation du scanner HandySCAN 3D [1] (image de gauche) et du scanner Artec Eva  [2] (image de droite)
Figure 2: Exemple d’utilisation du scanner Artec Leo [4] (image de gauche) et du scanner Calibry [5] (image  de droite)
Figure 3: Exemple d’utilisation du Structure Sensor [8] avec l’application itSeez3D [9]
Figure 5: Exemple d'utilisation du système proposé par Wu et al. [12] selon le point de vue de l'utilisateur à  différents moments du processus de numérisation
+7

Références

Documents relatifs

Le modèle LowPoly est une version avec un nombre réduit de polygones qui est destiné à être importé dans le moteur temps réel.. C’est ce modèle que va calculer le

PH patients) step length ratio (B) and stance phase duration ratio (C) across targets and visual 3. conditions (same color code as

Nous avons étudié la capacité de cellules endothéliales issues de progéniteurs (PDECs pour progenitor-derived endothelial cells) à coloniser des matrices de colle de fibrine ou

2012 : Quelques applications en réalité augmentée au service du patrimoine : Cluny-Vision (visite inédite de la cité médiévale), Culture Clic (voyage virtuel dans le temps),

Interannual temperature variability generally involves circulation changes that alter air mass transport, vapor source regions, and condensation history; this advective

We present just below numerical results about the convergence of the projected gradient method for the American options using the same finite elements as in the European case

Que l’on pense ici aux nombreuses œuvres annoncées mais jamais écloses évoquées dans les romans d’Alphonse Daudet, de Raymond Roussel ou de Montherlant;

The aim of the present work is to study the influ- ence of relative humidity of air on deposition rate, composition of chromium oxynitride thin films de- posited on carbon and