AUTOMATISATION D’ANALYSES DE DONNEES BIOLOGIQUES
Franck DELAVOIE Université Paul SabaBer Département Biologie et Géosciences Laboratoire de biologie moléculaire eucaryote Bât. IBCG – CNRS
franck.delavoie@biotoul.fr L2S4
AUTOMATISATION D' ANALYSES DE DONNEES BIOLOGIQUES
IMAGES QUANTIFICATION
Nombre
Dimensions
Intensité signal RépéBBf
ReproducBble Beaucoup
de data
ORDINATEUR ELECTRONIQUE
AUTOMATE Rapidité
IMAGES QUANTIFICATION
ORDINATEUR + +
AUTOMATISATION D' ANALYSES DE DONNEES BIOLOGIQUES
=
TRAITEMENT &
ANALYSE ACQUISITION
ConsBtuBon d’un système de vision
Caméra Traitement InterprétaBon
Analyse AcquisiBon
ApplicaBon scène
Système visuel humain idenBque à celui d’un système arBficiel ?
ACQUISITION IMAGES
Prise rapide d’image
Vision artificielle au moins identique à celle de l’œil humain
+ Système visuel humain vs ordinateur
objecBf Capteur
La cornée: membrane transparente focalisaBon principale L’iris: membrane colorée (pigments protecteurs) : diaphragme contrôlant la quanBté de lumière qui pénètre dans l’œil.
Le cristallin: lenBlle biconvexe molle qui permet de focaliser grâce à sa capacité à modifier sa courbure.
La ré/ne: Tissu nerveux, parBe photosensible qui conBent les cônes (fovéa) et les bâtonnets (extra-‐
fovéa)
Le nerf op/que : Prolongement de la réBne, transport de l’informaBon par 100 000 neurones
L’œil humain
Système visuel humain vs ordinateur
• Grande dynamique d'éclairements percepBbles => sensibilité exprimée en lux
105 lux (feuille blanche au soleil)
10-‐3 lux (nuit étoilée)
SaturaBon
Pas assez de lumière
Système visuel humain vs ordinateur
Temps d’idenBficaBon d’une image = 100 ms
Capacité mémoire ≈ 60 000 à 100 000 images
SignificaBon
Supériorité de la vision humaine ?
On devine des formes qui n'existent pas dans l'image
11
• La percepBon du cerveau peut être faussée par le contexte
• Le cerveau "voit" de la significaBon InterprétaBon
du cerveau InterprétaBon
de l’ordinateur
≠
Le système optique chez l’Homme et la machine peuvent avoir quelques défauts !
Vision pathologique chez l’Homme
Cataracte
Hypermétropie Myopie AsBgmaBsme PresbyBe
Daltonisme Perte de la vision périphérique
Limite de la résolution
&
aberrations optiques
Diffraction et disque de Airy
17
Limite de la résolution
&
aberrations optiques
Aberrations optiques
► AberraBon chromaBque
Plan image observé
→ Produit une image floue aux contours irisés Aberrations optiques
► AberraBon chromaBque
Aberrations optiques
► AberraBon sphérique
Plan image observé
objet image
lenBlle
Disque de moindre confusion
Aberrations optiques
► AberraBon sphérique
→ DiminuBon du contraste et de la résoluBon (image floue).
Constitution d’un système de vision artificielle
Caméra Traitement InterprétaBon
Analyse AcquisiBon
ApplicaBon scène
Acquisition d’image
Quelle type d’image ? Image matricielle
Une image matricielle est composée de pixel.
Qu'est ce qu’une image numérique matricielle ?
Pixel est la contraction de PIcture Element.
Le pixel est la plus petite unité de surface d’une image.
Carré Taille idenBque Une valeur
? Une couleur
154 200 45 89 87 4 20
10 100 45 122 145 47 45
123 124 156 123 123 123 120
154 147 168 168 220 223 225
226 200 100 50 20 30 35
24 25 26 28 65 69 64
20 52 22 63 123 135 146
Image Matrice
x y
(x,y) = valeur
Exemple : (5,3) = 20 20
RésoluBon image matricielle
Nb de pixel par image
Nb de couleur possible par pixel
Problème ZOOM
Résolution spatiale : nombre pixel / image
65536 pixels
4096 pixels 1024 pixels
Résolution tonale : nombre couleur / pixel
64 niveaux gris
8 niveaux gris noir ou blanc
Un pixel peut être codé par un seul bit (noir = 0 ou blanc = 1) mais le plus souvent par 8, 16, 24 et 32 bits.
• 16 niveaux gris : 4 bits
• 256 niveaux gris : 8 bits
• 65 536 niveaux gris : 16 bits Codage d’une image matricielle
Nb de niveau de gris = 2nb bit
=> 256 niveaux gris = 28
• Image binaire donc codage 1 bit => 21= 2 donc soit blanc soit noir
1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
= 1
= 0
Image Matrice
3 1 1 1 0 0 0 3 3 3 3 0 0 0 0 0 0 3 3 3 0 0 0 0 2 2 3 0 0 0 0 0 0 3 0 0 0 0 0 0 3 3 2 0 0 0 0 0 3
• Image codée en 2 bits (22 = 4 niveaux de gris).
= 3
= 2
= 0
= 1
• Image en niveaux de gris codée entre 0 et 255 (8 bits = 28 valeurs)
Image Matrice
"code"
191 191 191
LUT jaune LUT niveau de gris
LUT verte LUT (Look-Up Table)
0 0
255 255
Image couleur ?
ou 16-‐color paleye 20-‐color paleye
1 2 3
20
1 2 3
1 2 3
16
16
Une image couleur corresponds à une superposiBon de 3 plans : Rouge / Vert / Bleu (RGB = Red / Green / Blue)
Image couleur = codage RGB
=
8bits
8bits
8bits +
+
RGB = 24bits 24 bits => 224 = 16 777 216 couleurs (TrueColor)
=
(0,0) = (35,35,35) (2,4) = (132,140,140)
Acquisition d’image
Quelle type d’image ? Image matricielle
NumérisaBon ?
(nb de pixel et codage) ÉchanBllonnage et QuanBficaBon
• Échan/llonnage : Découpage homogène du signal
Image
Nombre total de pixel
Vidéo
+ Découpage en tranches temporelles
Rythme de découpage (fréquence d’échanBllonnage)
• Échan/llonnage
80 X 60 320 X 240
Quan/fica/on : AyribuBon d’une valeur (nombre enBer) pour chaque pixel de l'image et de définir le nombre de niveaux gris uBlisé (codage)
46 La fréquence d'échanBllonnage d'un signal doit être égale ou supérieure au double de la fréquence maximale contenue dans ce signal.
Théorème de Nyquist-Shannon
Ex: L’oreille humaine peut capter les sons jusqu'à 20 kHz. La fréquence d'échanBllonnage du signal audio doit être au moins égale à 40 kHz (norme CD audio = 44,1 kHz)
En imagerie, la taille du pixel doit être strictement inférieure à la résoluBon voulue.
Ex: Pour une image avec une résoluBon de 1 micron, l’échanBllonnage doit être au moins de 2 pixels / micron.
Théorème de Nyquist-Shannon
Acquisition d’image
Quelle type d’image ? Image matricielle
NumérisaBon ? ÉchanBllonnage et quanBficaBon
Quel type de capteur ? CCD
Constitution d’un système de vision artificielle
Caméra Traitement InterprétaBon
Analyse AcquisiBon
ApplicaBon scène
AutoFocus AutoContraste
Bruit
AutoFocus
Mesure de contraste
Histogramme
AutoContraste
Ajustement dynamique
Histogramme d’une image
Distribution des niveaux gris de l’image.
Compter le nombre de pixel possédant un même niveau de gris.
Histogramme d’une image
8 bits => 28 niveaux de gris = 256
Dynamique des niveaux de gris
Histogramme d’une image
16 bits => 216 niveaux de gris = 65536
Dynamique des niveaux de gris
Histogramme d’une image RGB ?
Contraste
+ la différence entre les valeurs des pixels sombres et clairs est importante + l’image est contrastée
56
• Pour avoir une image bien contrastée, l’histogramme doit présenter une distribution uniforme des niveau gris => grande dynamique
• Pour améliorer le contraste d’une image : étirement de l’histogramme.
AutoContraste
AutoContraste AutoFocus -‐ Mesure de contraste
Plus une image est floue, moins elle est contrastée
Constitution d’un système de vision artificielle
Caméra Traitement InterprétaBon
Analyse AcquisiBon
ApplicaBon scène
Problèmes d’acquisiBon AutoFocus
AutoContraste
Bruit
60
Le bruit dans une image
• Bruit quanBque lié à l'émission de photons distribuée suivant une loi de Poisson.
Ex : Zone sombre 100 photons ± 10 (10%) -‐ Zone claire 10000 photons ± 100 (1%).
Bruit quanBque
• Bruit quanBque lié à l'émission de photons distribuée suivant une loi de Poisson.
Ex : Zone sombre 100 photons ± 10 (10%) -‐ Zone claire 10000 photons ± 100 (1%).
• Bruit thermique lié à l'électronique du capteur (bruit aléatoire).
Le bruit dans une image
CCD N&B CCD couleur
• Bruit quanBque poissonien lié à l'émission de photons distribuée suivant une loi de Poisson.
Ex : Zone sombre 100 photons ± 10 (10%) -‐ Zone claire 10000 photons ± 100 (1%).
• Bruit thermique gaussien lié à l'électronique du capteur (bruit aléatoire).
• Bruit impulsionnel lié aux parasitage des lignes de transmissions entre composants électroniques.
Le bruit dans une image
Bruit impulsionnel
Comment limiter le bruit
• Augmenter le temps d’acquisiBon ⇒ augmenter le nombre moyen de photons (bruit quanBque).
• Effectuer plusieurs acquisiBons à la suite de la même image et générer une image moyenne (bruit impulsionnel).
• Refroidir le capteur ⇒ réduire le bruit thermique.
Au moment de l’acquisi/on :
-‐6°c 4°c
15°c 25°c
Refroidir le capteur
Filtre numérique Après l’acquisi/on :
Comment limiter le bruit
69
► Filtre médian ► Filtre médian
Autres filtres …
► Filtre Laplace
Détection des contours d'une image
Simuler du relief
► Filtre Emboss ► Filtre Skeleton
► Filtre Sharpness
Accentuer les traits
Constitution d’un système de vision artificielle
Caméra Traitement InterprétaBon
Analyse AcquisiBon
ApplicaBon scène
TRAITEMENT & ANALYSE
Procédure rapide
Apprendre à l’ordinateur Reconnaissance d’objet
154 200 45 89 87 4 20
10 100 45 122 145 47 45
123 124 156 123 123 123 120
154 147 168 168 220 223 225
226 200 100 50 20 30 35
24 25 26 28 65 69 64
20 52 22 63 123 135 146
Objet ?
Segmentation
La segmentation permet de séparer les régions d'intérêt du fond, d'isoler les objets sur lesquels doit porter l'analyse.
Segmentation
Seuillage Texture
La segmentaBon d'images est l'un des problèmes phares du traitement d'images
Croissance Région Ondeleye
Transformée de Hough Seuillage
Texture Croissance Région
Split & Merge
81
SegmentaBon d’image en régions homogènes
Segmentation par texture Segmentation par texture
Segmentation par croissance de région (region growing)
1. On iniBalise la région R à un pixel un groupe de pixels (seed).
2. On ajoute à R tous les pixels voisins de R qui sont suffisamment semblables à R
Split & Merge (Séparation & regroupement)
Split
Région homogène
Split
Région homogène
Split
Merge
Segmentation par seuillage
8 bits => 256 niveaux gris
Objets ? Fond ?
Objets => Pixel noir Fond => Pixel blanc
154 200 45 89 87 4 20
10 100 45 122 145 47 45
123 124 156 123 123 123 120
154 147 168 168 220 223 225
226 200 100 50 20 30 35
24 25 26 28 65 69 64
20 52 22 63 123 135 146
650 X 515 pixels = 334750 pixels
1bit => Noir ou Blanc
86
• Le seuillage consiste à mettre à zéro tous les pixels ayant un niveau de gris inférieur à une certaine valeur (appelée seuil, en anglais treshold) et à la valeur 1 les pixels ayant une valeur supérieure.
image binaire contenant des pixels noirs et blancs (binarisation).
seuil blanc noir
Segmentation par seuillage
Segmentation par seuillage
Pixels « objet » Pixels « fond »
10 143 162 100 45 10 135 200 136 46 122 125 155 135 120 15 111 145 52 33 21 12 133 45 10
Seuil = 50
10 143 162 100 45 10 135 200 136 46 122 125 155 135 120 15 111 145 52 33 21 12 133 45 10
Objet Fond Seuil = 40
10 143 162 100 45 10 135 200 136 46 122 125 155 135 120 15 111 145 52 33 21 12 133 45 10 Seuil = 110
10 143 162 100 45 10 135 200 136 46 122 125 155 135 120 15 111 145 52 33 21 12 133 45 10 Segmentation par seuillage
89
« Valide » Segmentation par seuillage
Image binaire
Noir = objet
Blanc = fond
155 143 162 100 45 189 135 200 136 46 122 125 45 14 23 15 12 50 56 33 21 12 26 45 10 155 143 162 100 45
189 135 200 136 46 122 125 45 14 23 15 12 53 56 51 21 12 26 45 10
Seuil 55 Faux positif
3 objets
155 143 162 100 145 189 135 122 136 146 122 55 45 46 63 151 66 53 47 57 210 120 66 65 60
Seuil 55 Trou
155 143 162 100 145 189 135 122 136 146 122 55 45 46 63 151 66 53 47 57 210 120 66 65 60
Filtrage morphologique
• Erosion : Elimine les pixels isolés et érode les contours des objets
• DilataBon : Elimine les trous isolés dans les objets et dilate les contours des objets
Image iniBale
Erosion DilataBon
Seuillage Binarisation
Erosion Fill holes
Analyse
particles Superposition
des masques
Est ce que la segmentation est bonne ?
101 Erosion +
watershed + analyse
Est ce que la segmentation est bonne ? Watershed
1) Ultimate eroded points 2) Dilate as far as possible
3) Until the edge touches a region of another
Imagerie du vivant de la molécule à l’homme
Superposition des masques
Est ce que la segmentation est bonne ?
MACRO
C’est quoi ?
Un script (ou programme) permet d’automaBser l’exécuBon de plusieurs acBons successives à parBr d’un logiciel
Exemple : Macro « changement_texte » dans Word
Taille police de 12
Police en gras
Remplacer les points par des virgules
Il pleut. c’est nul. changement_texte Il pleut, c’est nul,
MACRO
Pourquoi ?
• AutomaBser les tâches répéBBves
• Documenter ce que vous avez fait
• Partager des procédures communes
MACRO : Quelques notions
• Les foncBons => AcBons déjà prédéfinis dans le logiciel
Ex: -‐ changement taille police -‐ Appliquer filtre médian
• Les variables : nombre ou texte qui défini un état ou une caractérisBque d’une foncBon
Ex: -‐ changement taille police (foncBon) en 12 (variable) -‐ cube = 1024; (variable cube a qui on assigne variable 1024) -‐ error_message = " t’est vraiment naze ";
108
• Commentaire
Vous voulez comprendre ce que le code fait et pourquoi. Pour cela, vous pouvez ajouter des commentaires, le texte est ignoré par ImageJ quand il exécute la macro
// Ceye variable conBent le rayon du cercle à dessiner r = 15;
MACRO : Quelques notions
• Bloc condiBonnel (Si ….. alors ….)
Exemple 1 : Parfois, vous avez besoin d'exécuter une certaine parBe du code si et seulement si une certaine condiBon est remplie.
// If the image is not binary, abort if (!is(“binary”)) {
exit(“You need a binary image for this macro!”);
}
MACRO : Quelques notions
Exemple 2 : UBlisaBon de la condiBon else
if (is("binary")) {
write("The current image is binary");
} else {
write("The current image is not binary");
}
MACRO : Quelques notions
• Bloc condiBonnel (Si ….. alors ….sinon …..)
Si condiBon « binaire » => oui Alors écrire « …. »
Sinon
Ecrire « …. »
Pour répéter les instrucBons à plusieurs reprises MACRO : Quelques notions
• Boucle
for (i = 0; i < 10; i++) { run("Dilate");
} L’iniBalisaBon: une variable compteur est iniBalisé, dans ce cas, i à la valeur zéro
la condiBon: aussi longtemps que ceye condiBon est remplie (ici i <10), le bloc de code est exécuté,
L'incrémentaBon: ceye instrucBon est exécutée après le bloc de code, juste avant de tester à nouveau si le bloc doit être exécuté de nouveau.
{ ……. } => bloc de code à exécuter
Les macros ne sont pas écrites à parBr de zéro, mais enregistrés en uBlisant l'enregistreur de macros
MACRO : Quelques notions