Notice illustrée sur la manière de calibrer les objectifs pour lensfun

Jean-Pierre Bucciol

12 novembre 2011, 9 juin 2014, 20, 23 juin 2018, dernière mise-à-jour: 22 avril 2019

Cette notice explique comment "calibrer" un objectif pour lensfun, afin de corriger automagiquement lors du dématriçage les aberrations chromatiques, le vignetage et la distorsion. Les logiciels hugin et nufraw sont utilisés. lensfun, hugin et nufraw sont des logiciels libres.

1 Correction de la distorsion et du vignetage à l'aide de hugin

hugin est un logiciel libre permettant de raccorder plusieurs images pour en créer une seule, typiquement un panorama. Pour raccorder les images de la manière la plus transparente possible, hugin calcule, parmi bien d'autres valeurs, la distorsion et le vignetage de l'objectif utilisé.

1.1 Les images nécessaires

Pour chaque diaphragme de la focale à calibrer, réaliser trois images avec de très larges parties qui se chevauchent. Les images doivent être faites en mode d'exposition manuelle en gardant l'exposition constante, en mode de mise au point manuelle et sans modifier la mise au point, et sans changer la position de l'appareil photo.

S'il s'agit de fichiers brut (raw), convertir les images en TIF sans autoriser aucune correction, par exemple avec le logiciel dcraw et la commande: dcraw -T monficher.

180225-s04027-250-j 180225-s04028-250-j 180225-s04029-250-j

Lancer hugin et choisir dans le menu Interface l'élément Avancé.

1.2 Chargement des images et caractéristiques de l'objectif

Dans hugin:

Onglet: Photos
Bouton: Ajouter des images...
Clic droit sur l'image 1: choisir cette image comme référence de position
Clic droit sur l'image 1: choisir cette image comme référence d'exposition
Section Optimisation / Géométrique : choisir Paramètres personnalisées
Section Optimisation / Photométriques : choisir Paramètres personnalisées
image-01-j

Les choix Paramètres personnalisés créent deux onglets supplémentaires: Optimisation et Exposition.

Dans l'onglet Optimisation et la section Paramètres de l'objectif, cocher uniquement les cases a, b et c:

image-02-j

Dans l'onglet Exposition et la section Données de l'appareil et de l'objectif, cocher uniquement les cases Vb, Vc et Vd:

image-03-j

Il est possible lors du chargement des images que hugin demande des informations sur l'objectif, en particulier le coefficient multiplicateur de focale:

image-09-j

Le coefficient multiplicateur de focale est le facteur de conversion du capteur (cropfactor) sur lequel est monté l'objectif, relativement à un capteur 24×36. Ici le facteur est 1, puisque l'appareil possède un capteur 24×36. Il serait de 1,6 pour un Canon APS-C, de 1,5 pour un APS-C non Canon, de 2 pour un Olympus, et encore plus grand pour un capteur de compact.

1.3 Création des points de contrôle

Revenir à l'onglet Photos, et cliquer sur le bouton Créer des points de contrôles.

Les points de contrôle sont des points choisis et jugés communs aux parties des images qui se chevauchent. Leur comparaison va permettre d'aligner les images pour permettre leur raccordement, et accessoirement de calculer la distorsion et le vignettage de l'objectif. La création automatique de ces points est évidemment facile à réaliser, mais pose des problèmes de précision que l'on va éliminer de façon statistiques.

1.4 Alignement des images

Dans l'onglet Optimisation, cliquer sur le bouton Optimiser maintenant !

image-04-j

L'idée est d'utiliser les fonctions statistiques de hugin pour optimiser le raccordement. Cliquer sur l'icône Afficher les points de contrôle. En cliquant deux fois sur Distance, on ordonne les distances dans l'ordre décroissant. Cliquer sur Sélectionner par distance puis Supprimer.

image-05-j

On élimine ainsi les points de contrôle qui sont statistiquement les plus déviants de la valeur moyenne. L'onglet des points de contrôle est alors mis en avant:

image-06-j

Vérifier que les barres d'alignement optimal, en haut à droite de chaque image, soient bien vertes. Elles vont du rouge au vert, en passant par l'orange et le vert pâle. Si ce n'est pas le cas, recommencer à supprimer les points de distances les plus grandes, jusqu'à ce que les barres soient vertes. Si le nombre de points de contrôle devient trop petit, typiquement inférieur à 15, créer de nouveaux points de contrôles et recommencer la procédure. Une fois les barres devenues bien vertes, on peut considérer que l'alignement des images est suffisamment bon.

1.5 Correction de la distorsion

Revenir à l'onglet Optimisation et lire alors les valeurs de distorsion a, b et c:

0.005; -0.022; 0.015

Les reporter dans le fichier de calibrage (voir section 6 plus bas):

<distortion model="ptlens" focal="50" a="0.005" b="-0.022" c="0.015" />

Ces valeurs de distorsion sont indépendantes du diaphragme et ne doivent figurer qu'une seule fois dans le fichier de calibrage. On aura sans doute intérêt à les mesurer aux diaphragmes les plus « performants » de l'objectif pour ne pas augmenter l'influence d'autres aberrations, typiquement f/5,6 ou f/8.

1.6 Correction du vignetage

Dans l'onglet Exposition, cliquer sur le bouton Optimiser maintenant !

image-07-j

hugin va alors choisir des points aléatoirement dans les parties communes des images, mesurer leur différence de luminosité et en déduire les valeurs du vignetage de l'objectif.

Les trois valeurs de vignetage Vb, Vc et Vd que l'on lit alors:

-2,232 4,504 -3,214

devraient être les valeurs cherchées. Mais on a sans doute à faire à un bug de hugin et on tombe souvent, comme dans l'exemple ci-dessus, sur des valeurs énormes ! Heureusement, on peut contourner le problème: si l'on Sauvegarde le projet puis qu'on le réouvre, enfin qu'on reclique sur le bouton Optimiser maintenant ! dans de l'onglet Exposition, on obtient d'autres valeurs, bien meilleures:

-1,385 1,3 -0,721
image-08-j

Il s'agit sans doute d'un bug de hugin. Je n'ai pas cherché plus loin. On peut en tout cas reporter maintenant ces valeurs dans le fichier de calibrage:

<vignetting model="pa" focal="28" aperture="4" distance="1" k1="-0.385" k2="1.3" k3="-0.721" />

Cette opération doit être répétée pour chaque diaphragme.

2 Calibrage de la distorsion à l'aide de nufraw

Pour vérifier et affiner si nécessaire avec nufraw les paramètres obtenus à l'aide de hugin, choisir une image avec une longue ligne droite bien marquée le long du plus long côté: horizon marin, ligne horizontale d'un immeuble, etc.

image-10-j

Dans nufraw:

Onglet: Correction de l'objectif
Onglet: Distorsion de l'objectif
Modèle: PanoTools lens model

Régler individuellement les paramètres a, b et c pour que la ligne soit bien droite:

image-11-j

Les reporter dans le fichier de calibrage.

3 Calibrage des aberrations chromatiques à l'aide de nufraw

Choisir une image avec des lignes verticales ou horizontales contrastées sur les bords: grilles, réverbères, fenêtres, que l'on charge dans nufraw:

image-12-j

Régler le zoom à 1:1 (100%). Si l'objectif présente des aberrations chromatiques:

ac2-j

Dans nufraw:

Onglet: Correction de l'objectif
Onglet: Aberration chromatiques latérales
Modèle: Linéaire

Régler individuellement les paramètres kr et kb pour faire disparaître les aberrations chromatiques:

ac2-corr-j

Puis les reporter dans le fichier de calibrage:

<tca model="linear" focal="20" kr="+1.00080" kb="+1.00000" />

4 Liens

La documentation de hugin pour le calibrage d'objectifs (en anglais): Hugin tutorial - Simple lens calibration.

Il existe aujourd'hui (22 avr 2019) de nombreux outils permettant d'automatiser la procédure: Andreas Schneider a écrit (en anglais) un tutorial ultra complet sur le sujet. C'est très technique, très intéressant, bien plus long et bien plus précis que la procédure décrite dans cet article.

Torsten Bronger propose un service de calibration gratuit: il suffit de lui envoyer des images réalisées selon une certaine procédure et M. Bronger vous renvoie quelques jours après le fichier de calibration rempli par ses soins ! Ces calibrations seront aussi versées dans la base de la prochaine version de lensfun et tout le monde pourra en profiter.

5 Exemples de correction du vignetage

Les exemples ci-dessous sont des cas extrêmes pour ce qui concerne le vignetage: sujet très lumineux avec des coins très clairs, à très grande ouverture de diaphragme, sur des capteurs grands formats, les objectifs sont plutôt grands angles, et certains ont une quarantaine d'années. De plus, la petite taille des images accentue encore plus les différences de luminosité.

À gauche, les images sans correction; à droite, avec:

Pentax SMC Pentax M 40mm f2.8, à f/2,8 :
exemples/180416-161539-Pentax_SMC_Pentax-M_40mm_f2.8-f2.8-nocor-j exemples/180416-161539-Pentax_SMC_Pentax-M_40mm_f2.8-f2.8-zcor-j
Canon nFD 50mm f1.4, à f/1.4 :
exemples/180226-143002-Canon_nFD_50mm_f1.4-f1.4-nocor-j exemples/180226-143002-Canon_nFD_50mm_f1.4-f1.4-zcor-j
Canon nFD 24mm f2.8, à f/2,8 :
exemples/171027-120919-Canon_nFD_24mm_f2.8-f2.8-nocor-j exemples/171027-120919-Canon_nFD_24mm_f2.8-f2.8-zcor-j
Voigtlander Ultron 35mm f1.7, à f/2,8 :
exemples/170820-141933-Voigtlander_Ultron_35mm_f1.7-f2.8-nocor-j exemples/170820-141933-Voigtlander_Ultron_35mm_f1.7-f2.8-zcor-j
Voigtlander Ultron 35mm f1.7, à f/2 :
exemples/170816-144337-Voigtlander_Ultron_35mm_f1.7-f2-nocor-j exemples/170816-144337-Voigtlander_Ultron_35mm_f1.7-f2-zcor-j
Minolta MD 50mm f1.7, à f/2 :
exemples/170717-103810-Minolta_MD_50mm_f1.7-f2-nocor-j exemples/170717-103810-Minolta_MD_50mm_f1.7-f2-zcor-j
Sigma 35mm f1.4 DG HSM, à f/2,5 :
exemples/160715-173325-Sigma_35mm_f1.4_DG_HSM-f2.5-nocor-j exemples/160715-173325-Sigma_35mm_f1.4_DG_HSM-f2.5-zcor-j
Canon EF 28mm f1.8 USM, à f/1,8 :
exemples/140502-122137-EF28mm_f1.8_USM-f1.8-nocor-j exemples/140502-122137-EF28mm_f1.8_USM-f1.8-zcor-j
Canon EF 35mm f2, à f/2 :
exemples/140309-131449-EF35mm_f2-f2-nocor-j exemples/140309-131449-EF35mm_f2-f2-zcor-j
Canon EF 20-35mm f3.5-4.5 USM, à f/5,6 :
exemples/120822-094616-EF20-35mm_f3.5-4.5_USM-f5.6-nocor-j exemples/120822-094616-EF20-35mm_f3.5-4.5_USM-f5.6-zcor-j
Canon EF 24mm f2.8, à f/4 :
exemples/110504-113740-EF24mm_f2.8-f4-nocor-j exemples/110504-113740-EF24mm_f2.8-f4-zcor-j

6 Annexe 1: fichier de calibrage vierge

Ce fichier de calibrage vierge est utilisable pour une focale fixe. Pour un zoom, il faut multiplier les lignes pour chaque focale du zoom calibrée:

Ce fichier est à placer dans le répertoire ~/.local/share/lensfun/ sur une machine Unix / Linux / MacOs X. Sur une machine Windows, je ne sais pas.

7 Annexe 2: calcul du vignetage maximal en diaphragmes

On utilise les valeurs Vb, Vc et Vd issus de l'interpolation de Pablo d'Angelo calculée avec hugin: T(x)=1+V_b*r^2+Vc*r^4+Vd*r^6. T(1)=1+Vb+Vc+Vd est le coefficient de transmission de la lumière à l'extrémité de la diagonale du capteur. On calcule la perte correspondante en diaphragme avec la formule

D = -ln T(1) / ln 2.

Voici les 18 plus grandes valeurs de vignetage des objectifs que j'ai mesurés sur un capteur 24x36 (sur 178 mesures).

Objectif Focale f/ T(1) Diaph
Voigtlander Nokton Classic 35mm f/1,4 35 1,4 0,135 -2,9
Voigtlander Ultron 35mm f/1,7 35 1,7 0,166 -2,6
Canon EF 20-35mm f/3,5-4,5 USM 20 3,5 0,198 -2,3
Canon nFD 50mm f/1,4 50 1,4 0,208 -2,3
Voigtlander Ultron 35mm f/1,7 35 2 0,208 -2,3
Voigtlander Nokton Classic 35mm f/1,4 35 2 0,218 -2,2
Canon EF 20-35mm f/3,5-4,5 USM 20 4 0,228 -2,1
Minolta MD 24mm f/2,8 24 2,8 0,233 -2,1
Sigma 35mm f/1,4 DG HSM 35 1,4 0,235 -2,1
Revuenon Auto Revuenon MC 28mm f/2,8 28 4 0,236 -2,1
Canon EF 35mm f/2 35 2 0,242 -2,0
Revuenon Auto Revuenon MC 28mm f/2,8 28 2,8 0,242 -2,0
Industar I-61 52mm f/2,8 52 2,8 0,247 -2,0
Canon EF 24mm f/2,8 24 2,8 0,272 -1,9
Minolta MD 50mm f/1,7 50 1,7 0,28 -1,8
Canon EF 28mm f/1,8 USM 28 1,8 0,282 -1,8
Canon nFD 24mm f/2,8 24 2,8 0,285 -1,8
Industar I-50 50mm f/3,5 50 3,5 0,288 -1,8
  • Une curiosité: pour l'objectif Auto Revuenon MC 28mm f/2,8, la perte en diaphrame est plus grande pour f/4 que pour f/2,8, ce qui est paradoxal. En fait l'ouverture de cet objectif ne varie pas entre f/2.8 et f/4 ! Ouverture défectueuse ou triche du constructeur ? La différence de 0,1 diaphragme constatée est de toute façon largement dans les tolérances des mesures et des interpolations.
  • D'où vient la fomule T(x)=1+k₁x^2+k₂x^4+k₃x^6 de Pablo d'Angelo ? La perte en vignetage d'un objectif idéal est en cos^4 α, où α est l'angle du rayon lumineux entrant dans l'objectif. Pour une focale f et r la distance entre le centre du capteur et le point du capteur où tombe le rayon lumineux, on a tan α = r/f, soit α = atan r/f. Ainsi cos^4 α = cos^4 atan r/f. Si on développe en séries, on obtient T(r)=1-2(r/f)^2+3(r/f)^4-4(r/f)^6.... Ainsi k₁=-2/f^2, k₂=3/f^4 et k₃=-4/f^6. Évidemment aucun objectif n'est idéal.

8 Annexe 3: un patch pour lenfun

La version 0.2.8 de lenfun n'accepte que les valeurs de vignettage compris entre -1 et +2. Or il n'est pas rare que pour des grands angles en plein format à grande ouverture, on ait des valeurs plus petites que -1. lenfun corrige en remplaçant ces valeurs trop petites par -1, ce qui conduit quelquefois à de mauvaises correction du vignettage. Ce patch autorise des valeurs comprises entre -2 et +2:

lensfun-0.2.8-lens.patch

Je préfère vraiment à l'ancienne, par courrier électronique à l’adresse jpsmail(at)free.fr. Antispam : penseras-tu à remplacer (at) par @ dans l’adresse ? Que cela ne te prive pas d'ajouter un commentaire :

Nom :

Commentaire :

2 commentaires
jp
-
23 août 2014 à 22 h 54 min
Il n’y a pas de raisons que la distorsion change avec le diaphragme ni que les corrections calculées ne fonctionnent pas dans le réel. Pour réussir une bonne calibration, il faut que les photos de départ soient faciles à superposer. Il vaut mieux aussi placer les points de contrôles à la main, c’est plus fiable que le logiciel. Regardez les « distances » que vous obtenez et enlever les plus grandes si nécessaire. Relancer l’optimisation. Cela dit, le 14mm Samyang est déjà dans la base de lensfun depuis la version 0.2.8.
Leon91
-
9 août 2014 à 14 h 51 min
bonjour et merci pour le tuto…
par contre j’ai fait plusieures séries de photos pour un objectif samyang AE 14mm et je trouve des résultats différents dès lors que j’utilise des photos pourtant je fais le calcul des points de controles via cpfind pour etre reproductif et je mets mon pied bien à l’horizontal.
et les distortions ne sont pas les memes pour chaque ouverture de diaph pour le meme objectif et la meme série de photos (mais peut etre que les angles le sont différents entre chaque photo)
merci de votre réponse.
↑ Retour en haut de la page