1 points par GN⁺ 2025-08-24 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Les caméras line-scan sont particulièrement adaptées à la prise de vue de sujets en mouvement comme les trains, en haute résolution et sans distorsion
  • Le traitement d’image nécessite divers algorithmes et techniques, comme la détection de région d’intérêt, l’estimation de vitesse et le rééchantillonnage
  • Les opérations d’amélioration de la qualité, comme la suppression des bandes horizontales et verticales et la réduction du bruit, sont importantes
  • L’implémentation inclut le traitement de gros volumes de données, l’usage de Python, numpy et diverses améliorations expérimentales
  • La comparaison avec des exemples de photos line-scan d’autres auteurs permet d’obtenir des éclairages supplémentaires

Aperçu des caméras line-scan

  • Une caméra line-scan balaie l’image à très grande vitesse avec une seule ligne de pixels (ou deux)
  • La caméra reste fixe, et le train qui passe devant elle permet d’enregistrer sa forme complète
  • L’arrière-plan statique se répète dans toutes les colonnes verticales de l’image, créant un effet de bandes caractéristique
  • Cette méthode permet de prendre des photos haute résolution sans distorsion sur toute la longueur du train, ce qui est aussi utile pour des loisirs comme la modélisation ferroviaire
  • Les caméras à bande sur film fonctionnent selon un principe similaire, mais avec la différence qu’il faut ajuster manuellement la vitesse du film en raison de problèmes de sensibilité

Équipement photo

  • Le modèle utilisé est [Alkeria Necta N4K2-7C], doté d’un capteur d’image à matrice de Bayer double de 4096×2
  • Les données brutes sont stockées sous forme de tableau binaire 16 bits
  • Les prises de vue ont été réalisées dans divers environnements, notamment dans le métro urbain

Détection de la région d’intérêt (ROI)

  • Lors de scans de longue durée, une grande quantité de données d’arrière-plan est générée, d’où la nécessité d’un algorithme de détection automatique des segments contenant un objet en mouvement
  • Une fonction d’énergie (basée sur le gradient) est combinée avec la valeur maximale des pixels pour distinguer les structures verticales (mouvement) des structures horizontales (arrière-plan)
  • L’image est divisée en plusieurs chunks, et un score est calculé à partir du 99e percentile d’énergie de chaque chunk
  • Les chunks dont le score est au moins 1,5 fois supérieur au minimum sont considérés comme des zones contenant un objet en mouvement
  • Les approches précédentes ne se généralisaient pas bien ; la méthode actuelle fonctionne plus efficacement dans des situations variées

Estimation de la vitesse

  • Quand le sujet se déplace, un échec de l’estimation de vitesse entraîne des distorsions où l’image est étirée ou comprimée
  • La vitesse de déplacement est calculée chunk par chunk en comparant les deux canaux verts (Green) de la caméra
  • Pour chaque chunk, on applique de petits décalages de -7 à +7 puis on calcule la valeur absolue de la différence entre les deux canaux afin de produire un cost array
  • Pour trouver un pic subpixel, une interpolation de type [mean shift] basée sur une gaussienne est utilisée, puis la variation globale est corrigée par spline
  • Les valeurs de spline extraites représentent l’intervalle d’échantillonnage dans la série temporelle d’origine, utilisé pour corriger la distorsion de l’image

Rééchantillonnage

  • De nouvelles images sont extraites en calculant les positions d’échantillonnage selon la spline
  • Les cas particuliers sont pris en compte, comme une inversion gauche-droite si la spline est négative, ou une erreur si elle est proche de 0
  • Pour chaque position d’échantillonnage, on stocke aussi l’information de largeur d’échantillon ; l’usage de fonctions de fenêtrage adaptées comme la fenêtre de Hann améliore les performances d’anti-aliasing
  • Une simple sélection de colonnes ou une fenêtre rectangulaire ne conviennent pas, car elles produisent des artefacts grossiers en suréchantillonnage

Dématriçage

  • Un dématriçage personnalisé est nécessaire, par exemple avec une interpolation bilinéaire tenant compte du décalage spatial de la matrice de Bayer à 2 colonnes
  • Après l’estimation de vitesse, une interpolation linéaire est utilisée pour corriger des effets comme le fringing
  • Du fait de la différence entre les deux jeux de données des canaux verts, il pourrait être possible d’obtenir une restitution couleur complète meilleure qu’avec une matrice de Bayer classique

Suppression des bandes verticales

  • Des bandes verticales apparaissent dans l’image à cause du jitter d’horloge (stripes) et des variations de luminosité du sujet
  • Les bandes sont corrigées via une fonction de correction par colonne utilisant une régression linéaire et des poids gaussiens (iteratively reweighted least squares)
  • Ces fonctions de correction forment une structure de groupe mathématique, et pour éviter la dérive lors de l’accumulation des corrections, on envisage une résolution par système linéaire band-diagonal
  • En pratique, on peut aussi atténuer le bruit haute fréquence avec des méthodes comme le filtre de lissage exponentiel
  • La correction des bandes doit impérativement être effectuée avant l’estimation de vitesse

Réduction du bruit

  • Une technique de contrôle du bruit basée sur des patchs (block matching) est appliquée, en exploitant activement les textures répétitives de la surface des trains
  • Le vecteur de caractéristiques de chaque patch de 3×3 pixels est utilisé, puis le bruit est réduit par moyenne pondérée à l’intérieur des patchs similaires
  • Les performances s’améliorent si la comparaison est précédée d’un prétraitement tenant compte de la distribution de Poisson (transformation racine) selon l’intensité du signal
  • Les techniques classiques de total variation denoising ne conviennent pas, car elles dégradent trop les textures
  • Cette méthode a pour limite un coût de calcul élevé et une faible vitesse d’exécution

Correction de l’inclinaison (Skew)

  • Si la caméra n’est pas verticale, l’ensemble de l’image apparaît légèrement de travers
  • La détection du skew doit être effectuée après l’estimation de vitesse et avant le rééchantillonnage final afin de minimiser la perte d’information
  • Une détection automatique est possible à partir des structures verticales, par exemple avec une transformée de Hough

Correction colorimétrique

  • Le rendu colorimétrique est actuellement ajusté avec une matrice de correction manuelle
  • En pratique, la qualité obtenue est plutôt bonne, notamment pour des carnations naturelles

Détails d’implémentation

  • L’ensemble du pipeline est implémenté en Python et numpy
  • La taille des données étant importante (4096 lignes × plusieurs centaines de milliers de colonnes), une approche de traitement par chunks, étape par étape a été adoptée pour surmonter les problèmes de mémoire insuffisante
  • Comme une allocation mémoire globale est irréaliste, chaque étape traite et stocke seulement une partie des données

Retour d’expérience sur l’implémentation

  • Des outils d’IA ont été introduits pour tenter d’implémenter le code, avec des résultats limités
  • L’IA génère fréquemment du code inefficace, par exemple en transformant un problème linéaire en complexité temporelle quadratique inutile
  • Le traitement de grands tableaux pose aussi des problèmes mémoire, comme la création inutile de masques globaux complets
  • En revanche, l’IA peut aider efficacement sur certaines API, la structuration du code ou la visualisation (Matplotlib)

Exemples de photos de trains en line-scan réalisés par d’autres

Adam Magyar

  • [Adam Magyar] a mené les projets « Stainless » et « Urban Flow » avec sa propre caméra line-scan en noir et blanc
  • Il a déjà produit des résultats très propres même dans des environnements peu lumineux comme le métro intérieur
  • Il faut choisir l’emplacement de prise de vue pour éviter le scintillement de l’éclairage du métro

Blog KR64

  • [kr64.seesaa.net] publie en grand nombre des photos de trains line-scan variées à travers tout le Japon
  • Le site semble reposer sur une caméra slit-scan sur film, avec une très grande diversité et une excellente qualité
  • Le site est souvent indisponible pour des raisons techniques, et il est impossible de contacter son auteur

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.