Le guide complet de WBPP : interface, masters de calibration et pipeline d'exécution
Cet article est compilé à partir de notes prises entre 2021 et 2024 ; certains outils ou procédures ont depuis été mis à jour, gardez-le à l’esprit à la lecture. Certaines interfaces, options et certains comportements liés à la version évoqués ici (par exemple les versions 2.1.2 et 2.5) reflètent tous l’état d’alors. Quant aux erreurs et aux bugs connus que vous pouvez rencontrer à l’exécution, voyez l’article distinct « Dépannage de WBPP ».
WBPP (WeightedBatchPreprocessing) est le script de PixInsight qui exécute automatiquement, d’un bout à l’autre, « calibration, alignement et intégration » : c’est d’une commodité stupéfiante. Ces dernières années, il a été révisé fréquemment, et j’ai peu à peu écrit bon nombre de notes éparses à son sujet ; cet article les rassemble en une explication assez complète, abordée sur trois niveaux : les concepts fondamentaux qui changent peu d’une version à l’autre, le flux d’exécution actuel, et quelques changements importants au fil des versions de ces dernières années. Quelle que soit la version que vous utilisez, fixez d’abord bien les concepts et, quelle que soit la façon dont l’interface change, vous ne serez pas pris de panique.
Concept fondamental 1 : le produit intégré par WBPP n’est qu’un aperçu
C’est le point que je tiens le plus à aborder en premier, et aussi celui que le plus grand nombre néglige.
J’y suis tombé moi-même : une fois, après avoir utilisé Drizzle Integration, j’ai constaté que le centre des étoiles (les zones sursaturées) était carrément devenu noir. En remontant la piste, le coupable s’est avéré être le fait d’avoir utilisé WBPP pour faire l’intégration.
WBPP a beau être pratique, sur le master light qu’il intègre automatiquement, la position officielle est on ne peut plus claire — ce n’est qu’un aperçu commode du « résultat atteignable », à jeter une fois qu’on en a fini, et qui ne doit jamais être considéré comme un produit fini. Je reproduis ci-dessous l’extrait pertinent de la réponse officielle sur le forum :
The integrated image generated by WBPP is just a convenience preview of the achievable image, but it should always be deleted/ignored, and the integration should always be done manually with the registered frames. This is the only way to obtain an optimal integrated image with full control over the normalization, pixel rejection and noise reduction tasks.
La réponse officielle est même allée jusqu’à dire, à moitié pour plaisanter, qu’elle aimerait répéter cette phrase « n+1 fois, où n tend déjà vers l’infini » : le master light que produit WBPP ne doit pas servir à un usage sérieux, ce n’est qu’un aperçu, et le meilleur résultat ne s’obtient qu’au moyen d’une Image Integration manuelle qui optimise la réjection de pixels et le rapport signal/bruit (S/B).
Aussi mon habitude est-elle la suivante : avec WBPP, je ne vais tout au plus que jusqu’à l’étape de l’« alignement des étoiles » ; la véritable intégration, je la reconfie à une Image Integration manuelle. L’approche orthodoxe, décomposée en procédures distinctes — calibration (confiée à WBPP), alignement (Star Alignment) et intégration (Image Integration) — demande certes quelques étapes de plus, mais dès que quelque chose ne va pas, il est bien plus facile de déterminer quel maillon de la chaîne s’est brisé. C’est devenu par la suite ma conviction bien arrêtée. Ces deux vidéos tutorielles très détaillées sur WBPP réalisées aux débuts par des passionnés japonais, je les recommande également chaudement, mais il faut leur ajouter le même avertissement : ne prenez le résultat de l’intégration que comme référence.
Concept fondamental 2 : distinguer clairement quels fichiers du dossier Master sont les produits finis
Après une exécution complète de WBPP, le dossier Master par défaut se retrouve rempli d’un tas de fichiers, et bien des amis n’arrivent pas à distinguer lequel est celui qu’ils veulent vraiment. Voici quelques explications :

- L’image dans le cadre rouge est le master light intégré et achevé que vous cherchez.
- L’image dans le cadre jaune est l’image de référence (Ref) de la Local Normalization, et non le master light : ne les confondez pas.
- Les images sans cadre sont les masters de calibration, qui comprennent ici le master flat, le master bias et le master dark.
(Cela dit, dans le prolongement de la section précédente, ce « master light » relève toujours de la nature d’aperçu de WBPP ; si l’on est exigeant, mieux vaut tout de même le réintégrer soi-même une fois.)
Le flux d’exécution actuel : le pack complet pour caméra couleur
WBPP va jusqu’au bout d’un seul clic, mais en coulisses il s’agit en réalité d’une longue série de procédures automatisées exécutées dans l’ordre. En prenant pour exemple une caméra couleur (OSC), l’ordre d’exécution complet est le suivant :

- Calibration File Integration : créer les masters de calibration
- Calibration : calibrer les images brutes (« lights »)
- Cosmetic Correction : éliminer les pixels chauds (hot pixels) ou les lignes défectueuses
- Debayer : dématriçage (séparer le RGB)
- Measurements : mesurer les images brutes et leur attribuer un poids
- Reference frame selection : choisir l’image de référence pour l’alignement
- Plate solving reference frames : effectuer le plate solving (résolution astrométrique) sur les frames de référence
- Registration : alignement des étoiles
- LN reference generation : générer l’image de référence de la Local Normalization
- Local Normalization : exécuter la Local Normalization
- Integration : intégrer les images brutes
- RGB Combination : recombiner les trois canaux RGB
Pour le dire de façon plus condensée, on peut aussi ramener cela à huit étapes : création des fichiers image de calibration → calibration des images → Cosmetic Correction → dématriçage (séparation des trois canaux RGB) → alignement des étoiles → Local Normalization → intégration des images → combinaison des trois canaux RGB.

Deux de ces étapes méritent quelques mots de plus : la séparation RGB vise à surmonter la dispersion chromatique (où les bords des étoiles semblent avoir des couleurs différentes de part et d’autre), au prix d’un temps d’exécution supplémentaire ; la Drizzle Integration, si vous y recourez, n’a pas ici pour but d’agrandir l’image, mais d’éviter les artéfacts ; elle n’a donc de sens que lorsque vous disposez d’un nombre suffisant de frames ditherées — en général, en dessous de 50 frames, vous pouvez en réalité vous en passer. Soit dit en passant, un mot sur la perception réelle du temps : j’ai un jour traité 360 frames de neuf mégapixels, de la calibration jusqu’à la Drizzle Integration 1x, et cela a tout de même pris plus d’une heure ; avec une résolution plus élevée, cela ne devient que plus « palpitant ».

Les masters de calibration : là où WBPP est astucieux
Dans le traitement des images de calibration (flats, darks, offsets [bias], etc.), WBPP dissimule bon nombre d’astuces attentionnées, de quoi mériter une section à part entière.
Les images de calibration, mieux vaut les refaire de zéro à partir des fichiers d’origine, dans WBPP. Bien des gens s’aperçoivent, après la calibration, que leurs images brutes posent problème, et la cause principale tient souvent à l’application de « fichiers Master créés par d’autres logiciels ou d’autres procédures » (master flat/bias/dark). L’approche la plus sûre consiste à jeter les fichiers d’origine de calibration dans WBPP et à le laisser recréer les Master.
De légers écarts dans le temps d’exposition ? Confiez cela à Exposure tolerance. Un passionné a un jour posé la question dans le groupe : il photographiait ses darks au moyen du contrôle par signal d’Eqmod et, à cause de problèmes de latence, ses darks de 5 secondes pouvaient en réalité tomber entre 4,980 et 5,02 secondes, si bien qu’il voulait passer à la prise de vue avec NINA. En réalité, WBPP y avait pensé depuis longtemps : les images de calibration situées dans un certain écart de temps peuvent être assignées à un même groupe, et WBPP effectue automatiquement, sur les images de calibration d’un même groupe, le traitement qui s’impose, en les appariant automatiquement avec les images brutes. Cette valeur de tolérance, c’est justement Exposure tolerance.

Des images prises des jours différents ? Réglez-les toutes en une fois avec les Grouping Keywords. Après une révision, WBPP s’est doté d’une fonction de regroupement : même des images prises à des dates différentes peuvent être jetées d’un coup et traitées ensemble — pourvu qu’on les classe dans les Grouping Keywords à l’aide d’un mot-clé (par exemple la date). Prenez mon lot de fichiers : les flats variaient d’un jour à l’autre, et pourtant WBPP parvenait à les calibrer séparément par date, automatiquement, sans que j’aie à configurer à la main l’appariement des images brutes et des flats pour chaque date différente — extrêmement commode.

Vous voulez seulement fabriquer les masters de calibration ? Nul besoin de mettre des images brutes. Voici un usage que beaucoup ignorent : en l’absence de toute image brute, jetez dans WBPP vos darks, offsets, flats et dark flats, et il transformera intelligemment, en suivant les étapes correctes, ces images de calibration en masters de calibration, qu’il exportera dans le dossier que vous indiquez — vous épargnant la corvée de les fabriquer à la main avec toutes sortes de procédures différentes.

Les options de la page Light et les astuces d’accélération
La page Light de WBPP présente une rangée d’options que l’utilisateur peut cocher selon ses besoins. Par défaut, hormis subframe weighting, toutes sont décochées.

Puisque ces étapes se laissent inclure ou exclure, une question pratique se pose : en désactivant les traitements dont on n’a pas besoin, combien de temps peut-on gagner ? J’ai fait un test réel sur un jeu de données librement téléchargeables venu de l’étranger — 372 frames de seize mégapixels en tout — et, une fois retirés les traitements superflus, cela a tourné environ 7 à 8 fois plus vite (25 min 03 s contre 03 min 30 s), tandis que la qualité de l’image n’a subi qu’une légère perte — environ 15 % d’écart sur ma machine locale, et quasi impossible à distinguer une fois l’image compressée et envoyée par le réseau. Pour les situations où l’on court après une échéance ou que l’on veut simplement se faire une idée d’ensemble, ce compromis est bien avantageux.

Quant à savoir quelles étapes consomment le plus de temps et lesquelles il est le plus efficace de désactiver, j’y reviendrai dans l’article « Dépannage de WBPP ».
Les changements de version : ceux-ci sont arrivés plus tard
Ces dernières années, WBPP a ajouté bien des choses ; je récapitule quelques jalons importants, pour que vous puissiez les comparer à la version que vous avez en main :
Quelques points de la version 2.1.2. À partir de cette version, trois points méritent l’attention : premièrement, si les images brutes posent problème après la calibration, c’est souvent parce que des fichiers Master créés en externe s’y sont mêlés (voir plus haut) ; deuxièmement, la Dark frame optimization sert principalement lorsque les durées des images brutes et des darks ne concordent pas (par exemple une brute de 20 minutes associée à un dark de 30 minutes) ; elle donne le meilleur avec de longues expositions et plusieurs frames, et l’option n’apparaît qu’en cliquant sur un fichier d’image brute ; troisièmement, ceux qui utilisent un CCD voient apparaître peu à peu, à l’usage, des defects, en particulier des column defects, qu’il fallait autrefois retirer en construisant une defect map, ce qui était très chronophage, et WBPP a fourni la Linear Pattern Subtraction pour aider à les gérer.

Execution Monitor (fenêtre de surveillance de l’exécution). Après une mise à jour vers une version plus récente, WBPP fait apparaître pendant son exécution une fenêtre WBPP Execution Monitor qui vous indique à quelle étape il en est et quels travaux il a accomplis ; le contenu peut même être parcouru et déplacé de haut en bas. Dans les anciennes versions, l’utilisateur, hormis fixer la console du moment, n’avait absolument aucun moyen de connaître la progression : il ne pouvait qu’attendre que tout ait fini de tourner, ou que cela s’arrête sur une erreur, pour enfin vérifier via la console.

La fonction Cache (à partir de la version 2.5). C’est une amélioration très décisive. Après avoir fait tourner le pack complet, si vous découvrez une erreur ou quelque chose qui n’est pas à la hauteur de vos attentes et que vous modifiez certains réglages, faut-il vraiment refaire tourner l’ensemble ? Non. Le cache de WBPP fait le tri : tant que les réglages modifiés n’affectent pas les images, il réutilise directement les résultats mis en cache de la fois précédente ; seule la portion d’images réellement concernée est retraitée, si bien que la durée de la seconde exécution s’en trouve considérablement raccourcie.

Le script reproductible dans le dossier log. Après son exécution, la version la plus récente de WBPP conserve dans le dossier log un log détaillé et un script d’exécution. Une fois le script lu avec le Script Editor de PI, compilé puis exécuté, un Process Container apparaît, renfermant toutes les icônes de processus du sous-menu Pipeline de la fenêtre principale de WBPP, chacune pouvant être ouverte individuellement dans PI. C’est extrêmement commode pour le débogage — si par exemple vous voulez comprendre pourquoi la Cosmetic Correction ne s’est pas exécutée correctement ou n’a eu aucun effet, vous pouvez ouvrir cette étape depuis ici et vérifier s’il s’agit d’un problème de paramètres ou d’un bug du programme. Autre usage : celui qui n’est pas familier du prétraitement peut, par ce moyen, extraire chaque étape procédurale et chaque paramètre utilisés par WBPP, pour en faire un modèle de référence lorsqu’il exécute le tout à la main lui-même.

La première chose à faire en ouvrant WBPP n’est en réalité pas de charger des fichiers
Pour finir, revenons au point le plus élémentaire — et pourtant le plus facile à rater. La première chose à faire après avoir ouvert WBPP n’est pas de se précipiter pour « charger les fichiers de brutes, de darks, de flats et d’offsets ».
WBPP est l’un des rares scripts qui conservent le contenu de la dernière utilisation. Si vous l’avez déjà utilisé auparavant, tous les réglages sont encore là. La première étape devrait donc être de vider la liste des fichiers ; quant à savoir s’il faut effacer les autres paramètres en même temps, cela dépend de vos besoins.
Et la deuxième étape s’oublie facilement, et beaucoup de vidéos tutorielles ne la mentionnent pas non plus — appuyer sur Purge Cache. J’ai évoqué plus haut l’avantage du cache (à partir de la version 2.5) : quand vous ne modifiez qu’une partie des paramètres, WBPP n’exécute que les endroits modifiés et réutilise le cache pour le reste. Mais à l’inverse, lorsque vous avez déjà effectué une exécution et que vous n’avez plus besoin de ce contenu en cache, il faut l’effacer entièrement, sinon, à l’exécution de nouveaux fichiers, la duplication du contenu en cache risque de provoquer des erreurs imprévisibles.

Les réglages préalables de l’environnement pour les utilisateurs Windows
Si vous faites tourner WBPP sous Windows, il y a deux réglages d’environnement qu’il vaut mieux régler dès le départ : ils vous épargneront tout un tas d’erreurs incompréhensibles par la suite (pour les messages d’erreur et le diagnostic correspondants, voyez en détail « Dépannage de WBPP ») :
Activer la prise en charge des chemins longs. Après une certaine mise à jour, WBPP sous Windows s’est mis à afficher souvent un avertissement de chemin long, disant qu’il ne pouvait pas générer de chemin de plus de 256 caractères. Il m’est déjà arrivé que, à cause d’un chemin trop long, les fichiers produits par WBPP soient endommagés (parce que le fichier ne pouvait pas être enregistré). La solution consiste à rechercher regedit dans la barre des tâches pour ouvrir l’Éditeur du Registre, à trouver l’emplacement correspondant et à changer la valeur de LongPathsEnabled en 1 ; après avoir redémarré PixInsight, cet avertissement ne réapparaîtra plus.

Éviter les chemins contenant des caractères non ASCII (par exemple chinois). C’est aussi la raison pour laquelle je déconseille d’utiliser des caractères non ASCII, comme le chinois, dans les chemins de fichiers. Sous Windows, si le programme d’ouverture par défaut est PI, il suffit de double-cliquer sur un fichier dont le chemin contient des caractères non ASCII pour qu’un message d’erreur apparaisse : ces caractères illisibles ne sont autres que le texte chinois. Le contournement : sans modifier le chemin, faites directement glisser le fichier dans PI, et il s’ouvrira.

En assemblant tout ce qui précède, le tableau d’ensemble de WBPP devient à peu près clair : c’est un puissant moteur de prétraitement automatisé, mais vous devez vous rappeler que son produit d’intégration n’est qu’un aperçu, savoir comment regrouper la calibration, comment tirer bon parti du cache, ainsi que ce qu’il faut effacer et quel environnement configurer avant de commencer. Une fois les concepts bien en place, le reste n’est qu’une question de pratique.