top of page

CONSONANCE

Dans le cadre du cours d’Intelligence Artificielle mené par Serge Hoffman, il nous a été demandé de concevoir un projet libre impliquant l’utilisation d’outils d’IA.

Depuis plusieurs années, j'entends parler d'un concept récurrent dans certains ouvrages, documentaires ou contenus en ligne : la présence de structures mathématiques et géométriques dans la nature, une ''géométrie sacrée''. Nombre d’or, suite de Fibonacci, symétries, spirales logarithmiques, fleurs de vie ou encore solides de Platon sont souvent présentés comme les fondements invisibles de l’organisation du vivant et de notre environnement.

Une frustration personnelle a servi de point de départ au projet : malgré les nombreuses affirmations selon lesquelles ces structures seraient omniprésentes autour de nous, je ne parviens pas réellement à les percevoir.

L’idée de Consonance est née de cette question simple :

« Peut-on créer un programme capable de voir ce que moi je ne vois pas ? »

Le projet poursuivait également un second objectif : explorer jusqu’où une personne sans formation en programmation, sans budget pour accéder à des modèles payants et travaillant sur un ordinateur portable très modeste peut aller grâce aux outils d’intelligence artificielle disponibles gratuitement aujourd’hui.

747c44bbe1b46578830310c15163a01f.gif
refined_compositional_analysis.png
refined_compositional_analysis.png
refined_compositional_analysis.png

Des IA qui voient... mais qui inventent aussi

Avant même de commencer à programmer, plusieurs essais ont été réalisés à l’aide de modèles déjà existants (ChatGPT, Claude, Gemini et d’autres outils d’analyse d’images). Le constat fut immédiat : les résultats n'étaient pas reproductibles.

Une même image analysée plusieurs fois pouvait produire des interprétations différentes.

Les modèles génératifs ont tendance à compléter les informations manquantes, à imaginer des relations ou à proposer des hypothèses plausibles. Cette capacité est très utile dans de nombreux contextes, mais elle pose problème lorsqu’on cherche à réaliser une analyse géométrique rigoureuse.

Cette observation a profondément modifié l’orientation du projet.

Au lieu de demander à une IA dans un programme que j'ai codé d’interpréter une image, il est devenu nécessaire de construire d’abord un système capable de détecter objectivement les formes présentes dans l’image, puis de demander à une IA d'interpréter les résultats.

L’architecture générale du projet devient alors :

  1. Programme de détection géométrique reproductible.

  2. Analyse des relations entre les formes et interprétation assistée par IA.

Construction du programme

Le développement du projet a été réalisé en Python sous Visual Studio Code.

 

Cette phase a débuté par l’installation de l’environnement de travail:

Visual Studio Code ;Python ;PowerShell ;les bibliothèques nécessaires au traitement d’image.

Le projet a d’abord été développé avec l’aide de Codex (voir workflow en image à droite).

L’objectif était de construire progressivement un outil capable de détecter automatiquement différentes formes géométriques dans une image importée par l’utilisateur. Les premières versions se concentraient uniquement sur les cercles, avant de plus tard s’étendre aux ellipses, rectangles, triangles et lignes.

Premières versions avec Codex

Après que Codex me demande de payer pour continuer de travailler avec lui, je décide de chercher un nouvel agent de codage. Les recherches en ligne sont formelles ; les meilleurs agents sont payants.

Parmi les agents disponibles gratuits et opensource, je retiens Opencode, et reprend l'évolution par étapes successives du projet. 

Chaque nouvelles forme géométrique nécessitait la création de méthodes de détection spécifiques, ainsi qu’un important travail d’ajustement afin de limiter les faux positifs.

(vidéo ; workflow avec Opencode et VS Code)

Le défi des cercles

Les premières versions du programme étaient capables de détecter quelques formes simples sur des images très contrôlées.

 

Les résultats étaient encourageants mais rapidement limités. Des formes pourtant évidentes n'étaient pas détectées, tandis que d'autres apparaissaient alors qu'elles n'existaient pas réellement.

 

Cette phase a mis en évidence une difficulté fondamentale: Un ordinateur ne "voit" pas une image comme un être humain.

 

Là où nous reconnaissons instantanément un cercle, le programme ne voit qu'un ensemble de pixels présentant certaines variations de luminosité ou de couleur.

Capture d’écran 2026-06-11 155836
Capture d’écran 2026-06-11 160532
Capture d’écran 2026-06-11 161210
Capture d’écran 2026-06-11 185816
Capture d’écran 2026-06-11 182153
Capture d’écran 2026-06-11 184506
Capture d’écran 2026-06-11 173720
Capture d’écran 2026-06-11 170112
Capture d’écran 2026-06-11 164440
Capture d’écran 2026-06-11 161940

La détection des cercles a représenté à elle seule une grande partie du temps de développement. Le programme reposait initialement sur des méthodes classiques de détection de contours.  Dans certaines situations, les résultats étaient très convaincants. Dans d'autres, des cercles parfaitement visibles pour l'œil humain passaient complètement inaperçus.​ 

Les premières versions du moteur reposaient principalement sur des techniques de détection de contours et sur la transformée de Hough afin d'identifier les structures circulaires présentes dans l'image.

Rapidement, plusieurs limites sont apparues. Certains cercles évidents restaient invisibles tandis que des faux positifs apparaissaient dans les zones de faible contraste.

Pour améliorer la robustesse du système, plusieurs méthodes ont progressivement été combinées :

  • analyse multi-canaux (gris, saturation, rouge, vert) ;

  • validation géométrique des candidats ;

  • suppression automatique des doublons ;

  • filtrage basé sur les gradients ;

  • ajustement algébrique des cercles détectés ;

  • analyse de surfaces connectées.

Cette évolution a progressivement transformé un détecteur relativement simple en un moteur de vision artificielle capable d'extraire simultanément des cercles, ellipses, rectangles, triangles et lignes à partir d'images complexes.

Chaque amélioration permettait de résoudre certains problèmes tout en en révélant souvent de nouveaux.

Voir dans le noir

L'un des principaux problèmes rencontrés concernait les zones sombres. Dans certaines images, le programme détectait des quantités importantes de formes inexistantes : rectangles, cercles ou ellipses apparaissaient dans des régions où aucun élément géométrique identifiable n'était présent. Ce phénomène provenait du fait que le système interprétait parfois du bruit visuel comme de véritables structures. limiter ce problème, plusieurs mécanismes de validation ont été ajoutés. Au lieu d'accepter automatiquement chaque forme détectée, le programme a commencé à vérifier la cohérence des contours, la qualité des transitions visuelles et la solidité géométrique des candidats proposés. Cette étape a permis de réduire fortement les faux positifs tout en conservant une bonne sensibilité aux formes réellement présentes.

L'aveugle guidant l'aveugle

 

Une difficulté s'est rendue évidente pendant ces étapes du développement. L'agent de programmation utilisé pour construire le projet était capable d'écrire du code mais incapable d'observer directement les résultats produits à l'écran. Autrement dit, il pouvait modifier les algorithmes mais ne pouvait pas voir si les détections étaient bonnes ou mauvaises. Pendant une grande partie du projet, les échanges ressemblaient à une situation où je voyais les erreurs mais où l'IA ne pouvait les comprendre qu'à travers des descriptions textuelles ; et où l'IA voyait des codes et des chiffres, que moi je ne comprenais pas. Pour contourner ce problème, plusieurs outils intermédiaires ont été testés: génération automatique d'images annotées ;numérotation des formes détectées ;export des résultats ;création de rapports détaillés. Mais ces outils n'ont pas permis de collaborer et communiquer concrètement avec OpenCode. 

Entre les problèmes ne finissant jamais de faux-positifs, de faux-négatifs, des innombrables tentatives de parametrage des systèmes d'identification, et les soucis de communication avec l'agent OpenCode ; ma frustration s'en voyait de plus en plus grandissante.

Major breakthrough

1.  À mesure que le nombre de formes détectées augmentait, un nouveau problème est apparu. Détecter cent formes géométriques n'a que peu d'intérêt si elles sont simplement listées sans contexte. Une nouvelle étape du projet a donc consisté à analyser les relations entre les éléments détectés. Le programme a commencé à rechercher :des regroupements ;des alignements ;des formes contenues dans d'autres formes ;des proximités significatives ;des structures répétitives. Cette évolution est importante car elle constitue le premier pas vers l'interprétation.Le programme ne se contente plus de dire: "Il y a dix cercles." Il commence à dire: "Ces dix cercles semblent former une structure."

2. La dernière grande avancée avant l'intégration de l'intelligence artificielle a consisté à dépasser la simple détection des contours. Jusqu'alors, le programme cherchait principalement à reconnaître les limites visibles des objets. Une nouvelle approche a été ajoutée : l'analyse des surfaces.

Plutôt que d'étudier uniquement les lignes présentes dans l'image, le programme tente également d'identifier des régions complètes susceptibles de correspondre à des formes géométriques.

Cette évolution a permis d'obtenir des résultats plus riches et plus robustes sur des images complexes.

Elle marque l'aboutissement du moteur de détection géométrique avant l'arrivée de la couche d'interprétation par intelligence artificielle.

Réflexion personnelle

Pendant de nombreuses heures, j’ai tenté de corriger les détections afin que le programme voie exactement les mêmes formes que moi. Je m’énervais lorsqu’il détectait des structures qui me semblaient inexistantes et lorsqu’il ignorait des formes qui me paraissaient évidentes. Puis une contradiction est apparue. Le projet était né d’une volonté simple :« Créer un programme capable de voir ce que moi je ne vois pas. » Pourtant, je passais désormais mon temps à essayer de lui imposer ma propre vision. Cette réalisation a profondément changé mon regard sur le projet. J ’ai commencé à accepter que le programme puisse parfois détecter des structures différentes de celles que j’identifie intuitivement. Les résultats n’étaient peut-être pas toujours corrects, mais ils constituaient précisément l’objet de l’expérience.

Implémentation IA

Une fois le système de détection jugé suffisamment avancé, l’étape suivante consistait à ajouter une IA capable d’interpréter les résultats. Pour cela, une solution entièrement locale a été choisie : Ollama ; Moondream ; base documentaire personnalisée.

 

L’objectif n’était plus seulement de détecter des formes, mais également de les mettre en relation avec une bibliothèque de références consacrées à la géométrie sacrée.

Les premiers résultats obtenus montrent que l’IA est capable de décrire correctement le contenu général d’une image. En revanche, elle ne parvient pas encore à exploiter efficacement les informations géométriques détectées par le programme.

 

Plusieurs modifications ont alors été apportées afin: d’intégrer la base documentaire ;de transmettre les informations géométriques détectées ;de rechercher des motifs complexes ;d’établir des liens entre la documentation et l’image analysée.

 

Malheureusement, les limites matérielles de mon propre ordinateur n’ont pas permis de tester pleinement ces améliorations.

Une fois le programme fonctionnel, il a été transformé en application Windows distribuable. Cette étape a été réalisée grâce à PyInstaller.

PyInstaller rassemble :

  • le code Python ;

  • les bibliothèques ;

  • les dépendances ;

  • l’interpréteur Python.

Le résultat est un fichier exécutable (.exe) pouvant être utilisé sur un autre ordinateur sans nécessiter l’installation préalable de Python. Cette étape marque la transition entre un projet de développement et un véritable logiciel utilisable par d’autres personnes.

État actuel du programme

À l'heure actuelle, Consonance dispose d'un moteur de vision artificielle capable d'analyser une image et d'y détecter plusieurs types de primitives géométriques : cercles, ellipses, rectangles, triangles et lignes. Le système combine plusieurs approches complémentaires de Computer Vision, notamment la détection de contours (Canny Edge Detection), la Transformée de Hough, l'analyse multi-canaux (niveaux de gris, saturation et canaux colorimétriques), la détection de blobs, l'ajustement géométrique de formes (ellipse fitting) ainsi qu'une détection basée sur les surfaces connectées (Connected Components Analysis). Les résultats sont ensuite filtrés par différents mécanismes de validation visant à éliminer les faux positifs : suppression des doublons, vérification des gradients, analyse de cohérence géométrique et filtrage du bruit dans les zones sombres. Les formes détectées sont finalement regroupées dans une couche d'analyse structurelle capable d'identifier certaines relations spatiales telles que les alignements, proximités, inclusions et regroupements de formes, constituant ainsi la base nécessaire à une future interprétation assistée par intelligence artificielle.

Perspectives futures

Consonance demeure aujourd'hui un prototype expérimental dont de nombreuses évolutions restent envisageables. Du côté du moteur de détection, il serait possible d'améliorer davantage la reconnaissance des formes existantes, mais surtout d'étendre l'analyse à des structures géométriques plus complexes telles que les spirales logarithmiques, les constructions basées sur le nombre d'or, la Vesica Piscis, le Cube de Métatron ou encore certaines configurations associées aux solides de Platon. L'analyse structurelle pourrait également être enrichie afin d'identifier automatiquement des symétries, ratios, répétitions et réseaux géométriques complexes. Du côté de l'intelligence artificielle, des tests sur une machine plus performante permettraient enfin d'évaluer réellement la qualité du système d'interprétation local et d'affiner les prompts, la base documentaire et les méthodes de raisonnement utilisées. Enfin, l'interface utilisateur pourrait être entièrement repensée afin de se rapprocher davantage de la vision initiale du projet : une expérience moderne, immersive et inspirée des représentations cosmologiques et de l'esthétique associée à la géométrie sacrée.

TRY IT YOURSELF

Consonance est disponible sous forme d’application Windows. Vous pouvez télécharger la version actuelle du projet et tester vos propres images afin d’explorer les structures géométriques détectées par le programme. Les résultats obtenus ne constituent pas une vérité absolue mais une invitation à observer différemment les formes qui nous entourent.

 

Peut-être révèlent-ils simplement les limites de notre perception.

Peut-être révèlent-ils quelque chose d’autre.

bottom of page