L’IA aide à rendre ce site meilleur

IA
USA flag 2

L’IA est le sujet de toutes les conversations en ce moment, au lieu de rédiger un énième article sur son fonctionnement ou si oui ou non c’est révolutionnaire, je vais vous exposer plusieurs cas concrets de son utilisation dans le cadre de la création ou du fonctionnement de ce site.

Les photos

Cela ne vous aura probablement pas échappé mais le le but d’Universe Photo Archive, au delà d’archiver un maximum de photos, est de mettre en avant et de sublimer les plus belles d’entre elles. Deux méthodes sont utilisées pour y parvenir :

  1. Mettre sur la page d’accueil du site les photos que je trouve les plus jolies
  2. Rédiger des articles de vulgarisation sur le thème de l’astronomie et des missions spatiales en approchant le sujet à l’aide des photos

Concernant la première méthode, j’utilise 2 applications qui ont recours à l’intelligence artificielle.

Amélioration de la qualité globale d’une photographie grâce à l’IA

Les photos d’astronomie sont rarement d’une qualité et d’une netteté parfaite ni toujours d’une résolution correcte. C’est parfaitement compréhensible étant donné la distance qui sépare le capteur photo du sujet à photographier, ou que les photo sont prisent il y a très longtemps et/ou dans des conditions assez particulières (je pense notamment aux photos prisent sur la Lune par les astronautes…).

Dans ces cas-là j’utilise le merveilleux logiciel Open Source “Upscayl“. Les résultats que j’obtiens me surprennent toujours. Voici quelques exemples (ici vous ne verrez que la différence de qualité générale mais on peux multiplier la résolution par 4)

Crédit : NASA

Crédits : NASA / SDO / Helioviewer.com

Crédit : Hubble (ESA / NASA)

Suppression de certains éléments

Sur les photos des missions Apollo présentes sur la page d’accueil du site, avant d’utiliser Upscayl pour améliorer la qualité je prends soin de supprimer les éventuelles poussières et les croix présents sur l’objectif. L’application que j’utilise pour supprimer des éléments d’une photo s’appelle “Cleanup.pictures“. L’application supprime des éléments tout en recalculant ce qui se trouve derrière en extrapolant à partir de ce qui existe sur l’image.

Pour information, ces croix servaient principalement à mesurer les tailles et les distances.

Dans l’exemple ci-dessous je supprime également d’autres éléments pour que vous vous rendiez compte mais ce n’est évidemment pas le cas d’habitude !

Crédit : NASA

Langage de programmation : ajout ou modification de code grâce à l’IA

Les galeries de ce site (l’archive principale ou celle des fonds d’écran) utilisent un programme open-source nommé h5ai. Ce programme est vraiment très abouti et fournis de très nombreuses options de configurations, malheureusement, il présente 2 lacunes que je souhaitais corriger :

  1. Les miniatures sont générées dans un seul dossier, ce qui n’est pas idéal pour de grosses galeries car s’il y a plusieurs dizaines ou centaines de milliers de miniatures dans un même dossier, cela peut affecter les performance du serveur sur lequel est hébergé le site.
  2. Il permet de générer et d’afficher des miniatures pour les images, mais pas pour les dossiers.

N’étant pas extrêmement à l’aise avec le langage PHP, j’ai demandé de l’aide à ChatGPT. Je vais vous résumer mon échange avec cette IA. Sachez qu’avant l’échange que vous allez voir, j’avais déjà fait quelques essais mais les résultats n’étaient pas concluant, mais cela m’a permis d’améliorer nettement ma demande pour que ChatGPT résolve ma problématique du premier coup dans cet échange.

Je vais te donner dans mon prochain message un code PHP qui génère des miniatures pour des images afin de les mettre en cache (le programme s’appelle h5ai). Je souhaite que tu modifie ce code en respectant plusieurs contraintes et consignes :
_les miniatures doivent se générer dans un sous-dossier du dossier “thumbs” afin d’éviter d’avoir toutes les miniatures dans le même dossier
_Faire en sorte que lorsqu’on rafraichit la page web, ce soit bien la miniature en cache qui soit affichée et qu’une nouvelle miniature ne soit pas générée s’il en existe déjà une en cache
_Faire en sorte que même avec plusieurs dizaines ou centaine de millier de miniature, se soit rapide de retrouver la miniature correspondante à l’image.

D’accord, je vous attends pour me fournir le code PHP d’origine. Une fois que vous l’avez envoyé, je vais le modifier selon vos contraintes et consignes.

** Dans ce message je vous épargne les 150 lignes de codes PHP que j’ai fournis à ChatGPT **

Voici les modifications à apporter au code original :
1 : Ajoutez la méthode get_subdir dans la classe Thumb pour créer et retourner un sous-dossier basé sur les 2 premiers caractères du hash :
private function get_subdir($hash) {
$subdir = substr($hash, 0, 2);
$path = $this->thumbs_path . '/' . $subdir;
if (!is_dir($path)) {
@mkdir($path, 0755, true);
}
return $subdir;
}

2 : Modifiez la méthode thumb_href pour utiliser le sous-dossier dans les chemins et URL des miniatures :
private function thumb_href($source_path, $width, $height) {
if (!file_exists($source_path)) {
return null;
}

$hash = sha1($source_path);
$subdir = $this->get_subdir($hash);
$name = 'thumb-' . $hash . '-' . $width . 'x' . $height . '.jpg';
$thumb_path = $this->thumbs_path . '/' . $subdir . '/' . $name;
$thumb_href = $this->thumbs_href . '/' . $subdir . '/' . $name;

// Le reste de la méthode reste inchangé
}

3 : Modifiez la méthode capture pour utiliser le sous-dossier dans les chemins des fichiers de capture :
private function capture($cmdv, $source_path) {
if (!file_exists($source_path)) {
return null;
}

$hash = sha1($source_path);
$subdir = $this->get_subdir($hash);
$capture_path = $this->thumbs_path . '/' . $subdir . '/capture-' . $hash . '.jpg';

// Le reste de la méthode reste inchangé
}

Ces modifications permettront de stocker les miniatures dans des sous-dossiers pour éviter d’avoir toutes les miniatures dans le même dossier et de les retrouver rapidement. Le code vérifie également si une miniature existe déjà en cache et ne la régénère pas si c’est le cas.

Je vous épargne ma discussion avec ChatGPT pour le deuxième problème mais ce fût similaire : j’ai rédigé une demande très claire et complète avec tous les éléments dont elle avait besoin et j’ai eu le résultat très rapidement, 100% fonctionnel après quelques demandes de rectifications.

Évidemment ce n’est pas magique et dans le cas présent une bonne connaissance des langages de programmation en général et en informatique est nécessaire pour aiguiller la demande correctement mais c’est un outil très pratique.

Télécharger les modifications pour le programme h5ai

Pour ceux qui serais tombé sur cet article uniquement pour résoudre les mêmes problématiques que moi concernant h5ai à savoir rajouter des miniatures aux dossiers et générer des miniatures dans plusieurs dossier, voici des précisions sur ces deux fonctionnalités et les fichiers modifiés :

_Pour les miniatures des dossiers, voila comment cela fonctionne : il suffit de placer une image de 175×175 pixels dans le dossier et de la nommer “folder.jpg” (si vous ne voulez pas que ce fichier se vois vous pouvez masquer les fichiers qui portent ce nom dans les options d’h5ai). Le dossier prendras alors cette image comme miniature. Si aucune image n’est détecté, l’icône par défaut s’affichera.

_Pour la génération des miniatures dans plusieurs dossiers, comme expliqué par ChatGPT, le code va se baser sur le hash fichier, créer un dossier qui porte les deux premiers caractères du hash et créer la miniature dedans. 256 dossiers maximum seront créés et les images seront réparties dedans.

IMPORTANT : CES MODIFICATIONS ONT ÉTÉ FAITES SUR LA VERSION 0.30.0 de H5AI

Miniatures sur les dossier

Remplacez le fichier script.js situé à cet emplacement : /_h5ai/public/js/ par le fichier du même nom situé ci-dessous.

Génération des miniatures dans plusieurs dossiers

Remplacez le fichier class-thumb.php situé à cet emplacement : /_h5ai/private/php/ext/ par le fichier du même nom situé ci-dessous. (Pensez à renommer le fichier class-thumb.php.txt en class-thumb.php)

https://universe-photo-archive.eu/files/h5ai/

Mercury false color
Prev Fausses couleurs sur les photos d'astronomie
Next AI helps make this site better
IA

Comments are closed.