Computer vision et imagerie thermique : Comment calculer la température du corps ?

illustration de l'article

Pour calculer la température du corps humain, il existe plusieurs types des thermomètres : les thermomètres au Gallium, les thermomètres électroniques ou numériques, les thermomètres infrarouges et les caméras thermiques.

Suite à la pandémie du Covid19, les thermomètres infrarouges et les caméras thermiques sont devenus les plus utilisés, notamment dans les lieux publics (supermarchés, gares, centres commerciaux, hôpitaux…) pour le contrôle de la température du corps humain puisqu’ils sont des outils sans contact.

Nous nous intéressons dans ce qui suit sur les caméras thermiques et l’imagerie thermique en général et comment elle est utilisée pour le calcul de la température du corps humain par des techniques de vision par ordinateur.

L’imagerie thermique

L’imagerie thermique consiste à transformer les mesures du rayonnement infrarouge en une image radiométrique [1]. Le rayonnement infrarouge émis par un objet correspond à la chaleur émise par ce dernier.

Les caméras thermiques enregistrent les variations de la température des objets visés, puis attribuent à chaque température une nuance de couleur, ce qui vous permet de voir la quantité de chaleur dégagée par rapport aux objets de son environnement proche.

Les températures plus froides sont souvent associées à une teinte de bleu, de violet ou de vert, tandis que les températures plus chaudes peuvent être associées à une teinte de rouge, d’orange ou de jaune.

Figure 1. Caméra thermique de marque FLIR

(Source : https://www.flir.fr)

Applications de l’imagerie thermique

L’imagerie thermique est aujourd’hui utilisée à de nombreuses fins :

  • Bâtiments et énergies : L’imagerie thermique est un moyen puissant et non invasif pour surveiller et diagnostiquer l’état d’un bâtiment et détecter les problèmes très tôt. Elle permet, entre autres de visualiser les déperditions d’énergie, de détecter les défauts d’isolation, de trouver les défauts dans les canalisations d’alimentation et le réseau de chauffage urbain ou d’identifier les problèmes électriques

  • Sécurité et surveillance : Les caméras thermiques sont un excellent outil pour détecter les intrus ou les potentielles menaces grâce au contraste thermique. Elles peuvent filmer dans l’obscurité totale. Elles permettent d’obtenir une excellente image de jour comme de nuit, et dans toutes les conditions atmosphériques.

  • Météo : Les stations météorologiques l’utilisent pour anticiper et suivre les tempêtes et les ouragans à travers leur signature thermique mais aussi pour le suivi des sécheresses et de la désertification.

  • Médecine : Utilisée pour diagnostiquer divers troubles et pathologies (détection précoce de cancer de sein [2], Analyse régulière de la glycémie pour les personnes diabétiques, Surveillance quotidienne des personnes à risques respiratoires…)

  • Maintenance préventive : L’imagerie thermique permet de quantifier et mesurer la propagation de la chaleur des machines ou des cartes électroniques, donc prévoir la surchauffe de composants.

Comment fonctionne une caméra thermique ?

Une caméra thermique enregistre l’intensité du rayonnement dans la partie infrarouge du spectre électromagnétique et la convertit en image visible.

L’existence de l’infrarouge est découverte en 1800 par l’astronome Frederick William Herschel. Voulant savoir si la lumière produit des températures différentes selon sa couleur, il utilise un prisme pour diviser un rayon de soleil. Il mesure la température de chaque couleur du spectre, et constate que les températures augmentent du violet au rouge.

La lumière infrarouge est invisible à l’œil nu : son spectre se situe entre celui de la lumière visible et des micro-ondes. Cependant, elle peut etre associée à une sensation de chaleur lorsque son intensité est suffisamment élevée. Le spectre suivant présente les différents rayonnements électromagnétiques par fréquence et longueur d’onde dans le vide ou énergie photonique.

Fig. 2. Spectre électromagnétique et rayonnement IR

Tous les objets émettent un rayonnement infrarouge qui est une conséquence de leurs températures et c’est l’un des moyens par lesquels la chaleur est transmise.

Plus un objet est chaud, plus il produit un rayonnement infrarouge intense. Les caméras thermiques peuvent capter ce rayonnement et le convertir en une image que nous pouvons ensuite visualiser sur l’écran de l’appareil, un peu comme une caméra de vision nocturne peut capturer la lumière infrarouge invisible et la convertir pour que nous puissions la visualiser.

Application : Comment calculer la température du corps à partir d’une image thermique ?

Dans cet article, nous présentons un exemple simple d’application du Computer Vision avec l’imagerie thermique pour déterminer la température du corps à travers l’analyse d’images thermiques. Ce cas d’usage est tiré d’un de nos projets actuels dans le domaine de la santé où nous utilisons l’IA et l’imagerie thermique dans le contexte de la Neuro-réanimation.

Il a été prouvé que la température du coin interne de l’œil est la plus proche de la température centrale du corps, qui est de 37 degrés Celsius [3] [4]. Comparée à la peau, cette région absorbe et émet moins de rayonnement. Afin de mesurer la temperature emise par le coin interne de l’œil, il est nécessaire que la distance entre la caméra et la personne soit minimale, sinon la lecture ne sera pas précise.

Caméra thermique FLIR Lepton 3,5 :

Pour cette application une caméra thermique Lepton de FLIR 3,5 est utilisée pour faire la capture d’une vidéo thermique et afficher la température en temps réel.

(Fiche technique : https://flir.netx.net/file/asset/22582/original/attachment )

Fig. 3. Caméra FLIR Lepton 3.5

Pourquoi une caméra FLIR ?

La caméra FLIR Lepton® est une solution de caméra LWIR OEM (longwave infrared) à capacité radiométrique. Elle s’intègre facilement dans des appareils mobiles ou autres équipements électroniques comme un capteur IR ou une caméra thermique. Ses capacités radiométriques lui permettent de capturer sans contact des données thermiques précises et calibrées, pour chaque pixel de l’image capturée [5].

Carte Nvida Jetson Nano Developper kit + Batterie 5V :

Pour traiter la vidéo capturée, nous utilisons une carte Nvidia Jetson Nano :

Fig. 4. Carte Nvidia Jetson Nano

(Source : https://developer.nvidia.com/embedded/jetson-nano-developer-kit)

Pourquoi une carte Nvidia ?

Notre choix s’est porté sur la carte Nvidia Jetson Nano pour la puissance du traitement qu’elle offre dans le contexte de notre projet en Neuro-réanimation

A noter que Nvidia propose plusieurs produits de type mini-ordinateurs puissants dédiés à des applications d’intelligence artificielle embarquées, robotique, ou IoT ( Jetson Nano, Jetson Xavier NX, Jetson AGX Xavier, Jetson AGX Orin [6]).

Librairie utilisée : OpenCV

Pour la capture et le traitement de chaque image de la vidéo, nous utilisons la bibliothèque open-source OpenCV de python. OpenCV est une bibliothèque graphique libre, initialement développée par Intel, spécialisée dans le traitement d’images en temps réel [7].

Assemblage

Après avoir fait le choix du matériel, nous passons à son assemblage. La caméra FLIR de Lepton est connectée à la carte Nvidia Jetson nano developer kit via un port USB.

Il existe plusieurs façons d’alimenter la carte, soit par un connecteur coaxial 2.1mm 5V 4A soit par un port micro USB 5V 2A. Dans notre cas, nous avons choisi d’alimenter la carte avec une batterie qui fournit une tension 5V en utilisant le connecteur coaxial.

Fig. 5. Assemblage du matériel pour l’application

Prise en main avec la Nvidia Jetson nano developper kit

La carte Nvidia Jetson Nano utilise une carte microSD comme périphérique de démarrage et de stockage principal. Il est important d’avoir une carte qui soit rapide et avec suffisamment de mémoire pour vos projets. La première étape de lancement de la carte Nvidia consiste en la préparation du système d’exploitation : on télécharge l’image de la carte SD du Jetson Nano Developer Kit, puis on grave cette image sur la carte SD [6].

Une fois que la carte microSD est prête, nous passons à la configuration du kit de développement. Il existe deux façons d’interagir avec la carte, soit en utilisant un écran, une souris et un clavier ou bien en utilisant le mode “headless mode” via un autre ordinateur. Au premier démarrage, on passe par des étapes d’acceptation de conditions d’utilisation, sélection de langage, création d’utilisateurs et du mot de passe, etc [6].

la carte est prête enfin pour l’utilisation. Nvidia fournit quelques exemples de base préinstallés sur la carte pour tester des algorithmes de Deep Learning.

Passons à la préparation de l’environnement pour exécuter notre exemple : Pour réaliser cette application nous avons besoin d’installer les versions de python et de OpenCV nécessaires, dans notre cas nous avons utilisé les versions 3.6.9 de python et 4.1.0 de OpenCV.

Application

L’étape suivante consiste à developper le code de l’application sur un éditeur de texte en donnant l’extension .py à ce fichier pour qu’il sera traité comme un code python. Ensuite, l’exécution de ce code se fait avec un terminal (invite de commande) en utilisant la commande : python3 nom_fichier.py

Fig. 6. Exécution du code

Selon ce qui précède, nous calculons la température du coin interne de l’œil qui est identifiée comme la zone la plus chaude du visage. Donc si nous prenons une image thermique du visage ou bien précisément de l’œil, la zone la plus chaude sera ce coin interne de l’œil. Notre algorithme permet d’identifier le pixel avec la plus grande valeur qui correspond à la zone la plus chaude. Ci-dessous, l’algorithme utilisé est bien détaillé avec le résultat obtenu :

Algorithme de traitement :

  • Enregistrer une vidéo thermique de l’œil et lire la vidéo frame par frame pour faire le traitement :
video = cv2.VideoCapture(video_source)
ret=True
while ret:
	ret, frame = video.read()
  • Transformer chaque image du vidéo au niveau gris :
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  • Appliquer un filtre gaussien (pour diminuer le bruit) :
gray = cv2.GaussianBlur(gray, (3,3), 0)
  • Chercher dans chaque image la valeur max et min des pixels ainsi que leurs positions avec la fonction minMaxLoc de OpenCV :
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
  • Sauvegarder la valeur Max dans une liste :
Temp.append((maxVal*38/255)) # Temp est une liste où on stocke la température max dans chaque image

Fig. 7. Liste des températures stockées

  • Afficher la moyenne des températures Max dans toutes les images de la vidéo capturée :
print(sum(Temp)/len(Temp))

La figure ci-dessous montre un exemple de l’emplacement de la zone la plus chaude dans une image avec la valeur de la température moyenne calculée :

Fig. 8. Exemple de l’emplacement de la température Max dans une image

Remarque : Dans le cas où nous augmentons la distance entre la caméra et la personne (capture de l’ensemble du visage), la précision des résultats se dégrade comme le montre le résultat suivant :

Fig. 9. Résultat

Conclusion

Dans cet article, nous avons présenté un exemple simple de prise en main de la carte Nvidia Jetson Nano avec l’utilisation de la bibliothèque OpenCV. Dans les prochains articles, nous allons plus loin dans l’utilisation de la Jetson Nano en invoquant son architecture pour passer à des applications de Deep Learning.

Références:

  • [1] Richard Taillet, Loïc Villain et Pascal Febvre, Dictionnaire de physique, Bruxelles, De Boeck, 2013

  • [2] Mambou, S. J., Maresova, P., Krejcar, O., Selamat, A., & Kuca, K. (2018). Breast Cancer Detection Using Infrared Thermal Imaging and a Deep Learning Model. Sensors (Basel, Switzerland), 18(9), 2799.

  • [3] Ferrari, Claudio et al. “Inner Eye Canthus Localization for Human Body Temperature Screening.” 2020 25th International Conference on Pattern Recognition (ICPR) (2021) 0: 8833-8840.

  • [4] Yangling Zhou, Pejman Ghassemi, Michelle Chen, David McBride, Jon P. Casamento, T. Joshua Pfefer, Quanzeng Wang, “Clinical evaluation of fever-screening thermography: impact of consensus guidelines and facial measurement location,” J. Biomed. Opt. 25(9) 097002 (12 September 2020)

  • [5] https://www.flir.fr/

  • [6] https://developer.nvidia.com/embedded/jetson-developer-kits

  • [7] https://opencv.org/

Cover Photo by Ion Fet on Unsplash

Date

Auteur

Avatar Sabri ELJ

Sabri ELJ

Stagiaire

Catégories

iot

Tags

#IoT #Imagerie thermique #Computer vision #Nvidia Jetson Nano