Introduction :
Voila, après être passé au moyen format argentique j'ai enfin fait l'acquisition d'un appareil photo numérique communément appelé APN. Mon choix c'est donc porté sur un bridge, le kodak easyshare Z1012IS pour plusieurs raisons. La première raison était que kodak fabriquait les capteurs CCD embarqué dans les dos numériques des Hasseblad mais également dans les caméras numériques de l'IGN. Un autre point fort était son zoom x12 avec une ouverture correcte qui rendait la lentille frontale très impressionnante, je m'étais dis que la qualité de l'optique Schneider au zoom minimal aurait rendu une image parfaite.
Donc pour ~200 € j'ai fait l'acquisition de cet APN en décembre 2008. En outre mon stage de fin d'études de 20 semaine je l'ai réalisé à l'IGN, au laboratoire même du LOEMI (lien ci-dessus) où j'ai étudié la netteté des images numérique (mémoire disponible). Aujourd'hui, plus d'un an après je reviens sur cet APN pour faire le point de manière objectif.
Protocole :
Afin de rester dans la logique d'achat de l'APN, le zoom pour les images servant de test sera le plus possible proche de 1. Dans le but d'avoir le plus d'information possible sur cet appareil j'ai procédé à une calibration de l'objectif avec le polygone d'étalonnage de l'ESGT en janvier 2009. Le principe est simple on prend une série de photos des points connus en Y, X et Z puis on compare les coordonnées cliché (x, y) à chaque point visible sur l'image.
Voici à quoi cela ressemble (cliquez sur l'image pour l'agrandir) f/4 1/800s f=5,8mm d'après les EXIF...
Premiers résultats
Sans m'étendre sur le sujet que peu de monde intéresserait la calibration des paramètres interne permet de connaître avec plus ou moins de précision la focale, le projeté du centre optique sur le CCD et la distorsion. Ces résultats peuvent être obtenus qu'avec une seule image cependant j'ai préférer en prendre 21 pour plus de rigueur soit 832 points saisis. Donc sans attendre voici les résultats :
Le point principal d'autocollimation soit le projeté du centre optique sur le capteur CCD à pour coordonnées X=1857.654 Y=1327.032 (coordonnées sur le CCD -> l'image) Z=3572.372 (focale). Il va sans dire que les unités sont en pixel, et là la première tentation est de connaître la taille du pixel car on connaît (EXIF) la longueur de la focale = 5,8mm d'où un pixel de 1,624 µm. Je reviendrai sur la taille du pixel plus loin. Le point principal de symétrie si je ne me trompe pas c'est le centre de la distorsion, ce point doit être proche du PPA et ces coordonnées sont dans l'image : X=1866.683 et Y=1332.606. La différence entre ces deux centres est de plus de 10 pixel ce qui traduit une mauvaise qualité d'optique. Maintenant le dernier élément à calculer est le polynôme de distorsion, équation mathématique empirique permettant de modéliser l'écart entre le pixel sur le CCD et sa position réelle sans distorsion. (La distorsion change les droites en arc de cercle sur l'image). L'équation est la suivante dr = - 1.876911e-008*r^3 + 1.242804e-015*r^5 + 9.358903e-023*r^7 où r est la distance entre le PPS et le pixel. Pour information on obtient une déviation de 45 pixels sur le milieu des bords horizontaux, 90 sur le milieu des bords verticaux (Dans le format paysage...) et de pratiquement 110 dans les coins. Pour comparer les objectifs de l'IGN (même fabricant) ont une distorsion de moins d"une dizaine de pixel en bord de champ, tout en sachant que les capteurs sont près de 40 plus grand!
FTM
Dans le cadre de mon stage j'ai effectué des mesures de fonction de transfert de modulation, plus simplement des mesures de contraste en fonction de la fréquence spatiale avec l'image d'une étoile de Siemens dont voici un exemple :
FTM
Pour simplifier les FTM sont obtenues par mesure de contraste du bord vers le centre de l'étoile dans deux directions principales, tangentielle et radiale. En ordonnée on trouve le contraste, en abscisse les fréquences spatiales normalisées suivant la fréquence de Nyquist, c'est à dire qu'a la valeur de 1 cela équivaut à un signal de période de 2 pixel : 1 blanc, 1 noir à 0,5 : 2 blancs, deux noirs etc. Ainsi on voit parfaitement le niveau de la résolution de l'objectif. De plus on trouve dans certains ouvrage que la valeur de la FTM au-delà de Nyquist est due au bruit dans l'image.
Il n'y a pas besoin d'explication pour savoir qu'il y a une grande disparité entre les deux directions, de plus le contraste est très vite limité.
PSF
Là il s'agit d'un chapitre qui nécessite quelques connaissances dans le domaine du traitement des images numériques. À partir d'une image d'une mire en étoile de Siemens on reconstitue la matrice de convolution qui va convoluer l'étoile théoriquement nette en une image, image proche de celle acquise. Ainsi il est possible de déterminer l'étalement de la tache focale et la dispersion d'un signal ponctuel situé à l'infini. Le problème de cette méthode réside dans le calcul matriciel, très coûteux en terme de calcul. En moyenne 5 minutes sont nécessaires pour la résolution d'une seule étoile. Pour ces exemples complets il faut près d'une journée entière de calcul pour un Pentium IV @ 3GHz.
Voici donc à quoi ressemble des PSF (Point spread function = Fonction d'étalement de point) d'un kodak Z1012IS, d'abord l'image originale comportant les 9 étoiles de Siemens à 36 périodes.
Maintenant les PSF (à l'échelle du pixel, rouge=100% bleu=0% Noir=-50%).
Là on remarque bien que la dispersion soit importante et même loin du centre il reste des résidus liés aux bruits dans l'image originale. De plus autour du noyau de la matrice il y a une couronne de valeurs négatives, selon moi et confirmé par des spécialistes des artefacts d'une débayerisation violente. Même si la PSF est intéressante sa principale fonction est de pouvoir déconvoluer l'image acquise, dans un sens, la rendre plus nette. Dans ce but j'ai déconvolué quelques images mais le bruit était tellement amplifié que cela rendait la manipulation dangereuse.
La taille du pixel
Pourquoi connaître la taille du pixel ? Élémentaire cher lecteur... plus un pixel est gros plus il reçoit de la lumière, plus il en reçoit plus il a d'électron et plus il y a de jus moins l'erreur due au convertisseur analogique / numérique est grande en proportion. C'est ce qu'on appel couramment le signal sur bruit. La taille d'un pixel d'un vrai capteur kodak est de l'ordre de 6 à 10 µm de coté, 1 à 3 µm de coté pour un compact ou un bridge et pratiquement de la taille de la longueur d'onde pour un téléphone portable.
Dans la documentation la taille du CCD en diagonale est de 1/2.3" soit 0,4348 pouces et donc 11,04 mm. Comme la matrice a une proportion de 4/3 on en déduit tout de suite les dimensions du CCD (pas le composant, que la surface sensible je précise...). Pythagore nous aide et donne 8,835 en largeur et 6,625 en hauteur et la dimension d'une image est de 3648 par 2736 (format paysage). La largeur d'une colonne est de 2,42 µm et la hauteur d'une ligne est aussi de 2,42 µm. Attention c'est le pitch il faut savoir qu'il y a des drains espaces vides entre chaque pixels (évite que les électrons se baladent de façon anarchique sur le CCD). Je rappel ici que l'on avait trouvé 1,624 µm avec les informations de la focale dans les EXIF. Cet écart permet d'affirmer qu'il y a une donnée d'erroné dans le problème, soit la distance focale (le plus probable) soit la taille du CCD, cependant je n'ai jamais eu la data sheet du CCD et comme je ne veux pas démonter l'un de mes 2 Z1012 (Couplé en montage stéréoscopique) la question reste ouverte.
Stratégie de réduction du bruit
Comme nous venons de le voir le bruit présent dans les images est assez gênant à notre niveau ! Pour une utilisation de salon ou de jardin, pas de problèmes mais personnellement c'est déprimant. Il est vrai qu'avec le réglage des ISO de 64 à 3200 on gère le bruit mais même à 64 ISO et une prise de vue de 2 secondes le bruit reste néanmoins bien présent. Dans le but de réduire ce bruit on peut déjà appliquer une stratégie de réduction de pixel 2*2 mais se retrouver avec un 2,5 MPix serrait assez navrant. D'un autre coté le bruit étant aléatoire si on prend N clichés et que l'on fasse la moyenne il ne resterait que théoriquement l'image avec les aléas constants du capteur (points chauds, points froids). Mais avant il faut être sûr que le sujet photographié ne bouge pas et que l'APN soit parfaitement stable.
Premier essai
Comme avec PaintShopPro 5 on ne peut faire la moyenne que de deux images le choix de programmer en C++ se fit vite sentir, il est vrai qu'un programme similaire doit bien exister mais le temps de chercher, on l'aura déjà fait. Un peu de programmation fait de mal à personne... Mon programme prend de 2 à 16 images en PGM (256 niveaux de gris sans compression) et en fait la moyenne, pour moyenner 28 images il faut faire 14 et 14 puis les deux moyennes ensemble. Pour les nombres impairs d'image supérieurs à 16 il faut les assemblé en deux parties égales... donc il y à un petit problème de cardinalité dans ces cas précisément... Comme pour vérifier que le programme utilise bien toutes les images pour en faire la moyenne, j'ai pivoté de 180° une image parmi les 6 (Ainsi pas de problèmes de dimension). Voici ci-après les miniatures des images (pas de liens vers les pleines résolutions pour certaines car il est inutile d'encombré le serveur avec des données quasi inutiles)
Cet exemple démontre parfaitement bien que le programme calcul bien comme je le souhaite, le résultat est vraiment parfait. C'est à dire que le bruit moyen est réduit voir nul, de ce que l'on peu voir à l’œil.
Second essai
Là j'ai photographié 16 fois une étoile de Siemens et j'ai directement converti les photos en niveau de gris pour effectuer la moyenne. Il en ressort que la moyenne est pratiquement sans bruit, les zones sombres sont bien uniformes comme dans la réalité. A ce niveau de bruit on remarque bien qu'il y a un phénomène de sursaut au bord des zones sombres, certainement dû aux filtres de débayerisation. Ci-après il y a un assemblage des 16 miniatures composant l'image finale.
Pour la dernière image j'ai voulu faire un trucage vieux comme la photo, la traditionnelle photo d'un spectre (fantôme) mais le poids est faible 1/16! ce qui a pour effet qu'on ne le remarque presque pas sur l'image finale.
Maintenant que l'image est faite Le programme de calcul de PSF peu calculer. Les images ci-dessous de gauche à droite représente : la partie de l'image qui à servi au calcul, l'image théorique généré par le programme, L'image théorique convoluée avec la PSF et enfin la PSF
Sur ce calcul on remarque parfaitement bien que la PSF est nette et qu"il y a peu de bruit qui vient nuire à la lecture de cette PSF, voir plus haut pour comparer.
Troisième essai
Maintenant que l'on à vue l'étendu des résultats il est tout naturel de se poser les bonnes questions. À ce stade la question qui me taraudait l'esprit, question que vous devez vous poser, l'image N+1 capture t-elle la même scène que l'image N. Pour répondre à cette question j'ai fait un zoom léger sur l'étoile de Siemens et j'ai pris une série de 22 images avec le retardateur. Ainsi lors de chaque prise de vue je me trouvais loin de l'appareil ce qui réduisait les mouvements du sol. Cependant comme il n'y a pas de télécommande pour cet appareil la pression du bouton devient donc obligatoire, ce qui entraîne une pression sur l'appareil. Dans une moindre proportion la question suivante était-elle aussi intéressante à traiter. Comme le programme de moyenne ne fonctionne qu'avec un seul canal, essayons de séparer chaque canal Rouge, Vert et bleu et de reconstruire une image couleur sans bruit.
Dans le sous programme qui calcule les PSF il y a la détection des centres avec une précision de 1/50 pixel, donc je m'en suis servi pour voir comment cela évoluait au cours de la série de prise de vue. L'image ci-dessous résume à peu près tout.
Dans le but de choisir 16 points corrects j'ai donc fait la moyenne et exclu les 6 points qui avaient leurs vecteurs d'erreur les plus importants. Comme on vient de le voir avec la résolution optique (Chapitre sur la PSF) les déplacements du centre sont bien inférieurs au 5eme de la résolution optique donc faire la moyenne n'est pas un acte de dégradation de l'image !
Maintenant que l'on s'est autorisé à faire la moyenne il faut le faire et si possible en couleur. Comme le programme de moyenne a été fait pour des calculs de PSF donc en PGM en 256 couleurs j'ai du extraire chaque canal des 16 images en faire la moyenne ! Présenté ci-dessous les trois canaux, dans l'ordre rouge, vert et bleu.
Maintenant à gauche l'une des 22 images originales et à droite l'image composite
Cette illustration représente les écarts entre les deux images situées ci-dessus, les écarts étant inférieurs à 16 une égalisation de l'histogramme à été effectuée.
Quatrième essai
Le coin de ma chambre correspondant au troisième essai était assez dépourvu de détails (hautes fréquences spatiales) alors j'ai entrepris ce dernier essai dans le coin de ma bibliothèque. Pour cette opération j'ai réalisé 20 images en couleurs, ma première étape fut de séparer chaque couche. Ensuite j'ai fait canal par canal la moyenne 10 par 10 et puis la moyenne des moyennes. Une fois chaque canal calculé j'ai assemblé les trois canaux et je l'ai comparé à une image prise au hasard dans la liste.
L'ordre est repris du 3eme essai
Déconvolution
Comme maintenant on dispose d'une image sans bruit et d'une PSF on va essayer de la déconvoluer ! Cependant le seul programme que je connaisse pour déconvoluer une image est ImageAnalyser et il n'accepte que des types de floues prédéfinis. Avec quelques essais j'ai essayé 5 valeurs d'étalement avec une matrice gaussienne, ce qui est le plus ressemblant sachant qu'il s'agit déjà d'une moyenne d'image.
Voici la première, Spread = 1,400
Voici la seconde, Spread = 1,900
Voici la Troisième, Spread = 2,400
Voici la quatrième, Spread = 1,400
Voici la cinquième, Spread = 1,400
En ce qui me concerne, celle qui est la plus nette est l'image n°1 avec un étalement de 1,4. Les autres ont un marquage à chaque bord ce qui rend l'image faussement nette. Cette dernière manipulation est vraiment à la limite des capacités de l'APN donc on va s'arrêter là dans le développement des capacités du kodak Easyshare Z1012IS.
Conclusion
Comme nous venons de le voir cet appareil photo numérique est moyennement efficace ! Même si pour 99% des utilisateurs à travers le monde il remplit son devoir sans problème pour moi il y a quelques points noirs. Pour commencer l'optique certes construite par Schneider mais qui à un gros problème de distorsion, on peut même ajouter un handicape. Le problème n'est pas la distorsion en elle-même mais la différence de distorsion entre les différents canaux, ce qui fais une aberration chromatique insupportable. La résolution de l'objectif assez limité, la tache focale est bien supérieure à la fréquence d'échantillonnage du capteur ce qui a pour principale conséquence de vendre du pixel qui ne sert jamais... Un autre problème lié à cet appareil mais pas à son CCD ni sont objectif est le temps de traitement après une prise de vue longue durée, temps de traitement pouvant atteindre 20 secondes! (mais que fait le processeur de l'APN ???). Pour le dernier problème avant que je m'arrête c'est le flash de construction, plus rapproché de l'objectif cela aurait été mieux et pendant que je le dis un flash diamétralement opposé cela aurait été la class (le top pas la classe CSS!)
Si vous êtes comme moi dans les 1% restant, je vous conseil d'économiser 6 500 € pour vous acheter un Mamiya ou un Hasselblad équipé d'un dos numérique d'occasion ou d'être très bon informaticien pour pouvoir vous le construire!
|