• Aucun résultat trouvé

Constitution d’un système de vision artificielle

N/A
N/A
Protected

Academic year: 2022

Partager "Constitution d’un système de vision artificielle"

Copied!
19
0
0

Texte intégral

(1)

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  

(2)

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 !

(3)

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

(4)

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  

(5)

 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

(6)

•  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  

(7)

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  

(8)

•   É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  

(9)

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 ?  

(10)

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%).  

(11)

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  :  

(12)

-­‐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

(13)

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  ?  

(14)

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  

(15)

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

(16)

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

(17)

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

(18)

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

(19)

•   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

Références

Documents relatifs

La balise de lien &lt;a&gt; , étant un élément de type en ligne, ne peut pas contenir d’éléments de type bloc comme &lt;h1&gt;. Ceci exclut donc la

Elle est d’autant plus importante que la masse de la charge est grande et s’oppose à la mise en mouvement. Elle est caractérisée par le moment d’inertie J, qui s’exprime en

Les différents graphes représentant les niveaux du contraste et de la brillance des images traitées pour évaluer l’uniformité de la distribution de la lumière au niveau de

Les différents graphes représentant les niveaux du contraste et de la brillance des images traitées pour évaluer l’uniformité de la distribution de la lumière au niveau de la

[r]

Les différents graphes représentant les niveaux du contraste et de la brillance des images traitées pour évaluer l’uniformité de la distribution de la lumière au niveau du

Le projet de budget primitif 2022 du Conseil régional Occitanie / Pyrénées-Méditerranée s’inscrit, en cette fin d’année 2021, dans un contexte financier qui n’a jamais

Le système binaire est un système de numération utilisant uniquement deux chiffres (le 0 et le 1) appelés bit. Les ordinateurs codent leurs informations en binaire, par paquet de 8