Reconnaissance des focales

Bonjour à tous,

J’utilise (l’excellent) 24-70 VC SP de Tamron. Si les images produites sont très belles, je rencontre le problème suivant : la focale est bien reconnue par DT (24-70) mais pas la marque (c’est d’ailleurs aussi le cas avec DxO et LR, donc problement un défaut d’ID dans les exif). Du coup DT prends la première focale correspondante et non reconnue (= pas Canon ni Nikon) dans la liste par ordre alphabétique : c’est à dire le Sigma 24-70.

C’est assez pénible de devoir appliquer systématiquement une correction, surtout quand plusieurs focales sont utilisés dans une série. Du coup je cherche à éliminer le profil du Sigma. Quelqu’un sait-il ou je peut aller « touiller » ?

D’avance merci à tous, bon développement et.. Longue vie à DT !

François

C’est étrange, car j’ai cet objectif depuis 4 ans et je n’ai aucun problème.

Quand je l’ai acheté fin 2012 il était tout nouveau et bien sûr pas dans la BdD de Lensfun. Je me suis pris par la main et ai fait le travail de caractérisation. Puis je l’ai envoyé à Torsten Bronger pour qu’il soit inclut dans la BdD. Depuis cette date, je n’ai plus aucun problème…

Quelle version de darktable et de Lensfun utilises-tu ?

Dans /usr/share/lensfun/version_1 tu dois trouver un fichier slr-tamron.xml Il doit contenir la caractérisation de ton objectif. La voici, extraite du fichier :

[code]
    
        Tamron
        Tamron SP 24-70mm f/2.8 Di VC USD
        Canon EF
        Nikon F AF
        1
        
            
            
            
            
            
            
            
            
        
    
[/code]

Peux-tu vérifier tout cela ?

Bonjour jpv,

Merci pour cette réponse rapide et précise.

J’utilise la dernière version de DT 2.0.7 et j’apprends l’existence de Lensfun grâce à ton email. D’après le gestionnaire de logiciel, c’est la version 0.2.8-3 de liblensfun0 qui est installée.

Je n’ai pu trouver « /usr/share/lensfun/version_1 », en revanche dans « /usr/share/lensfun », il y a de nombreux fichiers de description de focales en xml dont « slr-tamron.xml » dans lequel je retrouve l’extrait :

Tamron Tamron SP 24-70mm f/2.8 Di VC USD Canon EF Nikon F AF 1

Ma focale a le part# « A007 » SN# 015573 et je l’acheté en remplacement du 24-70 USM de Canon le 20/11/2012. Penses-tu qu’il s’agisse d’une maj de firmware à faire?

Cdlt,

Tout à l’air OK du coté Lensfun L’absence du sous répertoire « version_1 » est normale puisque tu as la version 0.2.8.

Le problème vient peut être de libexiv2. Je ne peux regarder les versions de libexiv2, ni ce soir, ni demain. Peux tu investiguer dans ce sens ?

Il n’y a pas de MàJ de firmware à faire

Hello et merci pour ton support.

  1. Côté libexiv2

Libexiv2-14 est installé, en revanche

Libexiv2-dbg, -dev, -doc, -data, Libkexiv2-11v5, -data, -dbg, -dev, -2-15.00 et Libkfexiv2-dev ne sont pas installés.

  1. j’observe que mon 10-22 EF-S et mon EF-S 24mm STM Canon sont reconnus, en revanche le 90mm macro de Tamron n’est pas reconnu non plus (100mm Canon retenu), ce qui me laisse penser que Tamron n’est pas reconnu pas ma version de DT installée en fait…

Cdlt,

François

Ce n’est pas DT qui fait ce travail de reconnaissance, c’est libexiv2. Si les outils exiv2 sont installés essaye en ligne de commande exiv2 -pa monfichier.CR2 | grep -i lens

Interessant en effet !

fedelin@N240JU ~ $ exiv2 -pa ./161023_1301-#9813.CR2 | grep -i lens

Exif.CanonCs.LensType Short 1 Canon EF-S 24mm f/2.8 STM

Exif.CanonCs.Lens Short 3 24.0 mm

Exif.Canon.LensModel Ascii 74 EF-S24mm f/2.8 STM

Exif.Photo.LensSpecification Rational 4 24/1 24/1 0/1 0/1

Exif.Photo.LensModel Ascii 19 EF-S24mm f/2.8 STM

Exif.Photo.LensSerialNumber Ascii 11 00002064ef

./161023_1301-#9813.CR2: (No IPTC data found in the file)

fedelin@N240JU ~ $ exiv2 -pa ./161102_1751-#0041.CR2 | grep -i lens

Exif.CanonCs.LensType Short 1 Canon EF 100mm f/2.8L Macro IS USM

Exif.CanonCs.Lens Short 3 90.0 mm

Exif.Canon.LensModel Ascii 74 TAMRON SP 90mm F/2.8 Di VC USD MACRO1:1 F004

Exif.Photo.LensSpecification Rational 4 90/1 90/1 0/1 0/1

Exif.Photo.LensModel Ascii 45 TAMRON SP 90mm F/2.8 Di VC USD MACRO1:1 F004

Exif.Photo.LensSerialNumber Ascii 11 0000000000

./161102_1751-#0041.CR2: (No IPTC data found in the file)

fedelin@N240JU ~ $ exiv2 -pa ./161022_1051-#6645.CR2 | grep -i lens

Exif.CanonCs.LensType Short 1 Sigma 24-70mm f/2.8 IF EX DG HSM

Exif.CanonCs.Lens Short 3 24.0 - 70.0 mm

Exif.Canon.LensModel Ascii 74 24-70mm

Exif.Photo.LensSpecification Rational 4 24/1 70/1 0/1 0/1

Exif.Photo.LensModel Ascii 8 24-70mm

Exif.Photo.LensSerialNumber Ascii 11 0000000000

Il y a discrepance entre le LensType et le Lensmodel pour le 90mm. Le 24-70 quant à lui n'est pas reconnu. Et comme tu le mentionnais, DT affiche exactement le résultat de exiv2. C'est donc là que réside le pb, si pb il y a... J'avais déjà été voir sur le forum exiv2 mais c'est très orienté developpement ce que je ne fais plus depuis 30 ans...

What's next? touiller avec gedit dans l'un des fichiers data ?

Bonjour, il me semble que beaucoup d’objectifs tiers (tous ?) n’ont pas le Lens ID codé dans les EXIF mais dans les XMP de la photo, avec exiftool il doit y avoir la possibilité d’y remédier (mais je ne sais pas comment…)

Sinon, apparemment si le SIGMA 24-70 est choisi alors pour le test ça peut valoir le coup de renommer/déplacer temporairement /usr/share/lensfun/slr-sigma.xml pour voir si ce serait pas alors /usr/share/lensfun/slr-tamron.xml qui serait pris en compte puisque c’est le fichier suivant contenant 24-70…

J’ai loupé quelque chose en route ? Au début tu nous as parlé du TAMRON 24-70 SP et maintenant on parle du SIGMA 24-70 ?

Sinon, ce que je vois dans ce que tu à posté (après avoir un peu nettoyé le texte ;-)), c’est que les trois fichiers ont bien un objectif reconnu par exiv2, puisque le nom est affiché en clair dans le champ LensType. La même chose chez moi avec un fichier utilisant le TAMRON donne :

[code]jpv@penguin:~/Photos/2016/10/06/Groupes> exiv2 -pa SPUL_002926.NEF 2>&- | grep -i lens
Exif.Nikon3.LensType                         Byte        1  D G VR
Exif.Nikon3.Lens                             Rational    4  24-70mm F2.8
Exif.Nikon3.LensFStops                       Undefined   4  6
Exif.NikonLd3.LensIDNumber                   Byte        1  Tamron SP 24-70mm F/2.8 Di VC USD
Exif.NikonLd3.LensFStops                     Byte        1  F6.0[/code]

Les nom des champs diffèrent puisqu’on est dans une partie des EXIFs liée au constructeur.

Je n’ai jamais regardé le code d’exiv2, mais ce que j’ai compris, c’est que cette librairie est codée en ‹ C › à la différence d’exiftool qui elle est en PERL. Et qu’il semble qu’exiv2 ne s’appuie pas sur des fichiers de caractérisation comme Lensfun, mais que tout est codé dans le source. (tout ça, sous réserve de ce que j’ai dis au début du paragraphe). Il n’est donc pas possible de modifier quoi que ce soit soi-même. La seule solution, si on est certain d’un dysfonctionnement, c’est d’ouvrir un ticket de bug chez eux.

Oui dans son tout 1er post, François indique : [quote]la focale est bien reconnue par DT (24-70) mais pas la marque (c’est d’ailleurs aussi le cas avec DxO et LR, donc problement un défaut d’ID dans les exif). Du coup DT prends la première focale correspondante et non reconnue (= pas Canon ni Nikon) dans la liste par ordre alphabétique : c’est à dire le Sigma 24-70. C’est assez pénible de devoir appliquer systématiquement une correction, surtout quand plusieurs focales sont utilisés dans une série. Du coup je cherche à éliminer le profil du Sigma.[/quote]

Pour tester ça peut valoir le coup de virer le fichier qui concerne les cailloux sigma. Ou pas. :slight_smile:

Hello,

@Manu
Merci pour l’input, c’est une bonne idée mais cela ne fonctionne pas car en passant la commande exiv2 mentionnée par jpv, j’observe que la photo est déjà attribuée à une focale Sigma, du coup lensfun/DT affiche toujours « Sigma 24-70 » mais avec la mention « fichier de description non trouvé ».

@pjv
Désolé pour le texte verbeux, merci d’avoir pris le temps de trier.
C’est bien lors du processus d’interprétation des Exif par exiv2 que se produit le problème donc. Ou plus précisément lensfun/DT utilise le champs « Lenstype » et non « LensModel ».

Exemple pour le 90mm macro :
fedelin@N240JU ~ $ exiv2 -pa ./161102_1751-#0041.CR2 | grep -i lens
Exif.CanonCs.LensType Short 1 Canon EF 100mm f/2.8L Macro IS USM
Exif.CanonCs.Lens Short 3 90.0 mm
./161102_1751-#0041.CR2: (No IPTC data found in the file)
Exif.Canon.LensModel Ascii 74 TAMRON SP 90mm F/2.8 Di VC USD MACRO1:1 F004
Exif.Photo.LensSpecification Rational 4 90/1 90/1 0/1 0/1
Exif.Photo.LensModel Ascii 45 TAMRON SP 90mm F/2.8 Di VC USD MACRO1:1 F004
Exif.Photo.LensSerialNumber Ascii 11 0000000000

ou encore pour le 24-70m :
fedelin@N240JU ~ $ exiv2 -pa ./161016_1101-#6575.CR2 | grep -i lens
Exif.CanonCs.LensType Short 1 Sigma 24-70mm f/2.8 IF EX DG HSM
Exif.CanonCs.Lens Short 3 24.0 - 70.0 mm
Exif.Canon.LensModel Ascii 74 24-70mm
Exif.Photo.LensSpecification Rational 4 24/1 70/1 0/1 0/1
Exif.Photo.LensModel Ascii 8 24-70mm
Exif.Photo.LensSerialNumber Ascii 11 0000000000

J’observe dans ta capture Nikon que tu n’as pas cette erreur d’interprétation au niveau du Lenstype
Si le codage des focales est en dur, c’est clairement perdu en ce qui me concerne, je reste quand même dubitatif quant à l’énormité potentiel du bug et ose croire encore que le pb est local.
Peut-être qu’une désinstall/reinstall d’exiv2 ou à défaut comme tu le suggère l’ouverture d’un case…

Ce problème de non reconnaissance est similaire à un problème que j’ai actuellement, pas avec DT, mais avec mon boitier dans la correction d’AF.

Ainsi lorsque je monte mon SIGMA 500 f4, la correction d’AF le reconnaît comme mon TAMRON 70 - 300 dont j’avais déjà rentré les valeurs. Si j’efface le Tamron de la liste, je peux entrer les valeurs de correction et il reconnaît bien le Sigma, MAIS si ensuite sans rien toucher, je remonte le Tamron, celui-ci est reconnu comme le Sigma. Pour palier à ce problème, j’ai mis le Tamron dans la liste, et la valeur pour le Sigma est la valeur par défaut lorsqu’on désactive la correction d’AF.

Par contre lorsque je traite avec DT les photos de l’un ou de l’autre, les Exifs indiquent bien l’objectif qui a pris la photo.

J’en ai conclu que pour certain objectifs, Sigma et Tamron utilisent un même « code » qui perturbe l’identification.

Si ça peut aider à trouver un début d’explication…

Hello mimi85 (Vendée?)
Merci pour la contribution, j’ai par ailleurs lu que d’autre utilisateurs rencontraient des pb similaires avec LR sur Windows et j’avais le même souci quand j’utilisais DxO sur un MAC. Il est fort probable que le problème n’ait pas de solution et que c’est bien les focales qui ne fournissent pas d’ID. Pourtant jpv y arrive de son côté… J’ai ouvert un case chez exiv2, à suivre.

Si maintenant on cherche un Workaround « DT », j’ai créé un style « Sigma-Tamron » que j’applique à la série de photos importés, c’est cool. Le hic c’est que lors de ma dernière sortie « paysage », j’ai alterné grand angle Canon et 24-70 Tamron pour les pano. Du coup à l’importation je dois corriger le profil photo par photo.
Peut-être que finalement, la meilleure solution c’est d’ignorer la correction de focale… Dommage quand même.

Le case est déjà supporté : http://dev.exiv2.org/boards/3/topics/2782?r=2784
Une solution proche de celle de jpv est exposée. Je vais la tester

Hello,

alors je vais peut être dire une grosse boulette mais tant pis, je me lance. J’ai le même problème avec mes Tamron récents et pas avec les Canon ancien. De ce que j’ai pu comprendre, sur mon boitier (Eos 50D) il ne sont pas reconnu du fait du dernier firmware plus vieux que les objos. Une piste? Ou vraiment pas?

Hello Roger,
Les focales canon ont toutes un ID differents alors que les Sigma et les Tamron n’ont ont visiblement pas. Je t’invite à lire le case ouvert sur le sujet (cf. ci-dessus). j’ai le même pb sur mon 7D et mon 5D que sur ton 50D, etc…
En attendant la release exiv2 qui va bien, je vais appliquer la technique suivante :

  • Une carte SD ou CF differente par focale (en evitant de changer à chaque clichés :slight_smile: )
  • Création dans DT des styles du genre Sigma2470-Tamron2470
  • upload et application du style ad hoc par cartouche
    Cdlt,

La bonne réponse est donc B « ou vraiment pas » ?

C’est fou ce apprend sur ce forum ?

Je tente de configurer un préréglage qui reconnaitrait que $(EXIF.LENS) correspond à un 24-70mm et qu’il faudrait donc appliquer une correction de focale correspondant au Tamron 24-70mm. J’ai créé un préréglage et coché l’application automatique puis indiqué dans le champ « objectif » la valeur « 24-70mm » mais cela ne fonctionne pas. Quelau’un a-t’il déjà une expérience dans l’automatisation de telle procédure ?

Je crois que ça ne peut pas fonctionner, car justement, l’indication dans les données EXIF est exactement la même pour les deux objectifs.

Explication : le champ EXIF qui contient l’information d’identification de l’objectif est un simple chiffre. Voici la consultation de ce champ avec exiv2 pour un fichier NEF Nikon, mais c’est à peu près la me chose pour un CR2 Canon, au moins quant à l’espace alloué à ce champ : c’est juste un octet (byte)

Exif.NikonLd3.LensIDNumber                   Byte        1  Sigma 85mm F1.4 EX DG HSM

Note au passage qu’il s’agit d’une donné privée du fabricant. Pas d’une donnée EXIF générale.

Avec un octet on peut identifier exactement 256 valeurs différentes. Ça paraît suffisant si on se contente uniquement de la gamme de chaque constructeur , mais c’est sans compter avec les fabricants d’objectifs tiers…

Chaque fabricant fait un peu ce qu’il veut avec ce chiffre. Bien sûr Canon, Fuji, Leica, Olympus, Panasonic, Nikon ou Sony, n’ont pas deux objectifs portant le même chiffre dans leur gamme. De leur coté, Sigma, Tamron, Tokina, Samyang ou Zeiss, n’ont pas non plus, chacun dans leur gamme, d’objectifs portant un numéro identique, mais, et c’est là où ça coince, il y a forcément des numéros identiques entre les différentes gammes.

En fait ce chiffre est inscrit quelque part dans l’objectif. Il est transmis au boîtier qui le retranscrit dans les EXIFS. Les objectifs envoient au boitier quelques autres valeur : la focale, l’ouverture maxi, l’ouverture de travail, etc. Mais rien qui permette d’identifier le fabricant de l’objectif !

Les développeurs doivent se débrouiller avec ça et tenter d’identifier exactement les objectifs en croisant toutes les informations disponible. Par exemple, le numéro, la focale, l’ouverture max… Mais il arrive parfois que ce soit très difficile ! Comment distinguer deux 24-70mm f/2.8 qui ont le même numéro… Il faut fouiller dans toutes les données possibles pour trouver une petite différence. Quand il y arrivent, ils fournissent alors une information beaucoup plus complète, avec le nom complet de l’objectif. À partir de là, plus de problème

Donc je doute vraiment que tu puisses y arriver uniquement avec ce numéro.

Salut jpv,

Merci pour ces explication circonstanciées qui complètent bien celle que j’avais pu obtenir dans l’incident ouvert chez exiv2. Dans mon cas

  • je n’ai pas de focale identique de marque différente, par exemple le 24-70 de Sigma ET celui de Tamron

  • chaque focale retourne toujours la même valeur, donc DT propose toujours le même caillou, par ex le 90mm de Tamron retourne toujours le 100mm de Canon.

Donc une macro qui ne s’appuierait que sur le numéro pourrait résoudre mon problème particulier (mais cela ne pourrait être généralisé, c’est trop bidouille et imprévisible comme tu l’as écrit).

J’ai finalement résolu le problème de la manière suivante : j’importe les clichés puis dans le filtre de collection je sélectionne le Sigma 24-70 par exemple et applique le style qui change la correction en Tamron 24-70 et ainsi de suite pour toutes les focales concernées. C’est manuel mais au moins c’est fiable car simple à faire…