Interface GraXpert
Astuce
La première interface GraXpert était écrite en C et se contentait d'appeler l'exécutable GraXpert. Cependant, pour diverses raisons, cette approche s'est révélée peu fiable pour une minorité significative d'utilisateurs, et avec Siril 1.4.0-beta2, une interface mise à jour a été publiée sous forme de script Python. Celle-ci s'interface directement avec les fichiers de modèle GraXpert et offre de bien meilleures performances et intégration, et comme elle s'appuie sur la manière dont l'interface Python utilise la bibliothèque de modules PyPI native pour installer les versions correctes des dépendances pour la machine de chaque utilisateur, elle devrait être plus fiable et mieux à même de tirer parti des différents types de GPU.
En raison de la manière dont GraXpert distribue ses modèles d'IA depuis une instance Amazon S3, une copie du programme GraXpert doit être disponible afin de télécharger les fichiers de modèle. Les fichiers de modèle que vous pouvez télécharger dépendent de la version de GraXpert installée ; il est donc recommandé d'installer la 3.1.0-RC2, qui donne accès aux modèles de déconvolution stellaire et d'objets de fond, ainsi qu'aux modèles de débruitage et d'extraction de fond disponibles depuis la version 3.0.0.
L'ancienne interface GraXpert a été marquée comme obsolète dans la 1.4.0-beta2 et a depuis été retirée de la base de code. Cette documentation couvre la nouvelle interface basée sur Python.
Siril fournit une interface vers les modèles d'IA proposés par l'outil tiers GraXpert. Il s'agit d'un logiciel tiers libre et open source qui fournit des routines sophistiquées de suppression de fond et de débruitage. Il existe une longue histoire de collaboration entre Siril et GraXpert, et l'algorithme RBF utilisé dans la fonction principale de suppression de fond de Siril a été fourni par les développeurs de GraXpert il y a plusieurs années.
Pour être utilisé, le chemin vers l'installation fonctionnelle de GraXpert doit être défini dans .
Installation et configuration
Le script GraXpert-AI.py peut être installé de la manière habituelle, en allant dans le menu Scripts -> Obtenir des scripts et en cochant la case à côté du script dans la liste.
Pour configurer le script, vous devez indiquer à Siril où se trouve votre installation de GraXpert. Pour ce faire, allez dans Préférences -> Divers et sélectionnez l'exécutable GraXpert à l'aide du sélecteur de fichier approprié.
Aspects généraux du GUI
L'interface graphique est présentée ci-dessous :
Interface du script GraXpert, montrant les options de débruitage.
La barre de titre change pour afficher l'opération actuellement sélectionnée, et en haut de la fenêtre se trouvent le titre du script et son numéro de version. Un menu déroulant vous permet de sélectionner l'opération que vous souhaitez effectuer. La façon dont ce menu déroulant est rempli dépend de la version de GraXpert dont vous disposez. Il proposera toujours Débruitage et Extraction de fond, même si aucun modèle local n'est disponible (voir la section sur le gestionnaire de modèles pour savoir comment télécharger des modèles). Si vous disposez de modèles de déconvolution localement, ou si vous avez défini l'emplacement d'une version de GraXpert prenant en charge la déconvolution, vous verrez également Déconvolution (Étoiles) et Déconvolution (Objets), mais si ces modèles ne sont pas disponibles localement et que vous ne disposez pas d'une version de GraXpert capable de les télécharger, ils ne seront pas affichés.
Suit ensuite une zone pour les paramètres spécifiques à l'opération. Si vous sélectionnez Débruitage, vous trouverez un widget pour contrôler l'intensité ; si vous sélectionnez Extraction de fond, vous trouverez des widgets pour le lissage et le type d'extraction de fond à effectuer, etc. Ceux-ci sont décrits plus en détail ci-dessous.
Le paramètre Avancé permet de contrôler la taille de lot d'inférence et d'activer ou non l'accélération GPU. Il est généralement judicieux de laisser la taille de lot à sa valeur par défaut : elle définit combien de portions de l'image peuvent être traitées en parallèle, et l'augmenter peut entraîner des erreurs de mémoire insuffisante.
Astuce
Les modèles GraXpert utilisent ONNX pour effectuer l'inférence. Il s'agit d'un framework de Machine Learning indépendant du matériel, qui fournit divers runtimes ciblant différents types de matériel d'accélération. Il existe un runtime NVidia spécifique, un runtime DirectML fournissant une accélération GPU générique sous Windows, un runtime MacOS et des runtimes Linux pour les GPU NVidia, AMD et Intel. Le script tentera automatiquement d'installer le runtime le plus adapté à votre matériel ; toutefois, si cela ne fonctionne pas, il existe toujours un runtime CPU vers lequel se replier - désactivez simplement la case d'accélération GPU et veuillez soumettre un rapport de bogue, car il s'agit d'une nouvelle fonctionnalité et nous sommes particulièrement intéressés par tout problème lié à la sélection du runtime ONNX.
Enfin, l'interface fournit des boutons Appliquer et Fermer qui effectuent les fonctions attendues, ainsi qu'un bouton Gestionnaire de modèles qui ouvre un outil permettant de découvrir et de télécharger des versions des modèles d'IA.
Lors de l'ouverture de l'interface graphique, celle-ci détectera si une image unique ou une séquence est chargée. Si une image unique est chargée, elle sera traitée et le résultat sera mis à jour dans Siril, tandis que si une séquence est chargée, toutes les images sélectionnées de la séquence seront traitées et une nouvelle séquence sera créée avec un préfixe dépendant de l'opération effectuée.
Avertissement
Dans Siril 1.4, le scripting Python ne peut pas s'abonner aux notifications d'événements de Siril, il n'est donc pas possible pour le script de détecter si l'image a été fermée ou si un changement entre une image unique et une séquence se produit après l'ouverture de l'outil. Par conséquent, si vous faites cela, vous devez fermer et rouvrir l'interface graphique du script.
Extraction de gradient
Le modèle d'IA d'extraction de fond de GraXpert propose deux paramètres :
Lissage - ceci détermine la douceur du modèle de fond généré.
Type de correction - ceci détermine le type de correction appliqué : vous pouvez choisir entre soustraction ou division.
Notez que le script GraXpert ne fournit pas d'interface vers les algorithmes classiques de suppression de fond proposés par GraXpert. RBF est déjà disponible nativement dans Siril, et Spline et Kriging n'offrent généralement pas de meilleures performances que RBF.
Déconvolution
À partir de la version 3.1, GraXpert prend en charge la déconvolution. Une fois les modèles téléchargés, Siril prend en charge les deux modes proposés par GraXpert :
Déconvolution d'objets
Déconvolution stellaire
Ces modes peuvent être sélectionnés à l'aide du menu déroulant Opération.
Les deux modes de déconvolution ont deux paramètres, Intensité, qui prend des valeurs entre 0.0 (pas de déconvolution) et 1.0 (déconvolution maximale), et FWHM de l'image (en pixels), qui prend également des valeurs entre 0.0 (privilégie la préservation des structures fines) et 10.0 (privilégie la capacité de déconvolution). Si vous le réglez sur zéro, vous pouvez constater un effet très (trop) faible sur l'image traitée ; si c'est le cas, augmentez-le.
Débruitage
Pour utiliser le modèle d'IA de débruitage de GraXpert, sélectionnez Débruitage dans le menu déroulant des opérations. Cette opération n'a qu'un seul paramètre, Intensité, qui prend des valeurs entre 0.0 (pas de débruitage) et 1.0 (débruitage maximal).
Le débruitage peut prendre un certain temps, en particulier pour les images de grande taille et/ou si vous utilisez un CPU pour l'inférence. Cependant, une fois le débruitage effectué, l'image débruitée est mise en cache, de sorte qu'expérimenter avec différentes intensités est extrêmement rapide.
Gestionnaire de modèles
Le script fournit un gestionnaire de modèles pour découvrir et télécharger des versions de modèles. Alors que l'inférence se fait directement dans le script, le téléchargement des modèles nécessite l'utilisation du programme GraXpert lui-même, car les modèles sont stockés dans une instance Amazon S3 et GraXpert stocke ses identifiants en interne. Le gestionnaire de modèles affichera des boutons radio pour chaque modèle que la version installée de GraXpert est capable de télécharger. Pour la v3.0.x, cela signifie débruitage et extraction de fond ; pour la v3.1.0-rcx, cela ajoute également la déconvolution stellaire et d'objets.
La liste des modèles disponibles à distance est affichée. Si vous souhaitez découvrir des modèles pour une autre opération d'IA, changez le bouton radio pour l'opération pour laquelle vous voulez un modèle et cliquez sur Actualiser. Un modèle peut être téléchargé en le sélectionnant dans la liste et en cliquant sur Télécharger le modèle sélectionné. Notez que le téléchargement peut prendre un certain temps dans le cas de modèles volumineux ou de connexions réseau lentes, et GraXpert fournit peu de retour, alors soyez patient. Les modèles sont stockés dans le répertoire de données utilisateur de GraXpert.
Avertissement
Ne déplacez pas les modèles GraXpert de la structure de répertoire de données GraXpert où ils sont enregistrés par le gestionnaire de modèles. C'est là que le script s'attend à les trouver, et il ignorera les modèles placés à tout autre emplacement.
Une fois un modèle téléchargé, il sera automatiquement ajouté au menu déroulant des versions de modèle dans l'interface principale lorsque l'opération d'IA correspondante est sélectionnée.
Interface de script GraXpert, affichant le gestionnaire de modèles.
Scripts
Le script GraXpert-AI.py fournit une interface en ligne de commande destinée aux scripts. Celle-ci utilise la commande pyscript comme indiqué ci-dessous.
Ligne de commande Siril
pyscript scriptname.py [script_argv]
Paramètres d'opération
Les paramètres suivants permettent de définir l'opération à effectuer :
-denoise spécifie le débruitage
-deconv_obj spécifie la déconvolution d'objet
-deconv_stellar spécifie la déconvolution d'étoile
-bge spécifie l'extraction du fond de ciel
Paramètres Générales
Les paramètres suivants sont reconnus dans tous les modes :
-h / --help affiche l'aide dans la console Siril et quitte
-model spécifie la version du modèle à utiliser (par exemple -model="3.0.2"). Si cet argument est omis, la dernière version disponible est utilisée par défaut.
-batch spécifie la taille de lot de l'IA
-gpu spécifie l'utilisation du GPU (ceci est l'option par défaut)
-nogpu spécifie d'utiliser uniquement l'interface CPU
-listmodels demande au script de lister les versions de modèle disponibles pour l'opération spécifiée, puis de quitter
Astuce
Notez que ce script ne fournit pas de paramètre -seq car il s'attend à travailler sur une séquence déjà chargée dans Siril. En script, cela peut être réalisé en utilisant d'abord la commande load_seq pour charger la séquence souhaitée.
Paramètres de l'extraction du fond de ciel
-smoothing= cette option définit le paramètre de lissage, entre 0.0 et 1.0
-correction= cette option définit le type de correction et peut être soit « subtraction » soit « division »
-keep-bg cette option spécifie que le fond modélisé doit également être enregistré. Pour un nom de fichier tel que myfile.fit, le fond sera enregistré sous le nom myfile_bg.fit
Paramètre de débruitage
-strength= Cette option définit l'intensité du paramètre, entre 0,0 et 1,0
Paramètre de déconvolution
Les mêmes paramètres sont disponibles pour la déconvolution stellaire et la déconvolution d'objet :
-strength définit la force de la déconvolution, entre 0.0 et 1.0
-psfsize cette option définit la taille de la PSF, comme décrit ci-dessus
Exemples
pyscript GraXpert_AI.py -denoise -model='3.0.1'
Ou, si vous l'appelez depuis un autre script Python :
siril.cmd("pyscript", "GraXpert-AI.py", "-denoise", "-model='3.0.1'")