Question

J'ai construit un système d'imagerie avec une webcam et des fonctionnalités correspondant de telle sorte que je déplace la caméra; Je peux suivre le mouvement de la caméra. Je fais quelque chose de similaire à ici, sauf avec les cadres webcam comme entrée.

Cela fonctionne très bien pour de "bonnes" images, mais lors de la prise d'images dans une lumière très basse, beaucoup de bruit apparaît (gain élevé de la caméra), ce qui gâche la détection et la correspondance des fonctionnalités. Fondamentalement, il ne détecte pas de bonnes fonctionnalités, et quand il le fait, il ne peut pas les correspondre correctement entre les cadres.

Quelqu'un connaît-il une bonne solution pour cela? Quelles autres méthodes sont utilisées pour trouver et faire correspondre les fonctionnalités?

Voici deux exemples d'images avec des fonctionnalités très faibles:

Frame 1

Frame 2

Était-ce utile?

La solution

je pense corrélation de phase va être votre meilleur pari ici. Il est conçu pour vous indiquer le décalage de phase (c'est-à-dire la traduction) entre deux images. Il est beaucoup plus résilient (mais pas immunisé) avec le bruit que la détection des caractéristiques car il fonctionne dans un espace de fréquence; Alors que les détecteurs de fonctions fonctionnent spatialement. Un autre avantage est que c'est très rapide par rapport aux méthodes de détection des caractéristiques. J'ai une implémentation disponible dans le coffre OpenCV qui est sous-pixel précis situé ici.

Cependant, vos images sont à peu près «sans remise» à l'exception du pli au milieu, donc même la corrélation de phase peut avoir un problème avec elle. Pensez-y comme essayer de détecter la traduction dans une tempête de neige. Si tout ce que vous pouvez voir est blanc, vous ne pouvez pas dire que vous avez traduit du tout, donc le terme blanc. Dans votre cas, l'algorithme peut souffrir de "Greenout" :)

Pouvez-vous ajuster les paramètres de la caméra pour mieux fonctionner dans des conditions de faible luminosité. Avez-vous complètement ouvert l'iris? Pouvez-vous vivre avec des fractures inférieures? La définition d'un temps d'exposition plus long permettra à la caméra de rassembler plus de lumière, vous donnant ainsi plus de fonctionnalités au prix d'ajouter un flou de mouvement. Ou, si la faible lumière est votre environnement par défaut, vous voulez probablement quelque chose de conçu pour cela comme un appareil photo IR, mais ceux-ci peuvent être chers. En dehors de cela, une grande lentille et de longues expositions sont votre ami :)

Égalisation d'histogramme Peut être intéressant à améliorer le contraste d'image. Mais, parfois, cela peut simplement améliorer le bruit. OpenCV a une fonction d'égalisation d'histogramme globale appelée égaliser. Pour une implémentation plus localisée, vous voudrez examiner la péréquation de l'histogramme adaptatif limité contraste ou Clahe pour faire court. Ici est un bon article à ce sujet. Cette Page a de beaux exemples et du code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top