Quelqu'un connaît-il des recherches / documents / logiciels pour identifier un sentier (comme une ligne ou une courbe point à point) dans une image d'une scène forestière (du point de vue de la caméra debout quelque part le long du sentier)?
J'essaie de trouver un algorithme qui pourrait prendre une image comme:
et produire un masque, identifiant une "traînée" probable, telle que:
Comme vous pouvez le voir, l'image d'origine est un peu floue, ce qui est utile. La source d'image ne peut pas garantir une mise au point parfaite, je dois donc être capable de gérer une quantité raisonnable de bruit et de flou.
Ma première pensée a été d'appliquer un flou gaussien et de segmenter l'image en blocs, en comparant les blocs adjacents à la recherche de différences de couleurs marquées (indiquant un "bord" de traînée). Cependant, je me suis vite rendu compte que les ombres et autres changements d'éclairage jettent facilement cela.
Je pensais à extraire des fonctionnalités SURF, mais je n'ai réussi avec SURF / SIFT que lorsque l'image est parfaitement claire et avec un éclairage cohérent.
J'ai également essayé de réduire les images et les masques à des tailles beaucoup plus petites (par exemple 100x75), de les convertir en vecteurs 1xN et de les utiliser pour former un réseau neuronal basé sur FANN (où l'image est l'entrée et le masque est le souhaité). sortie). Même à une si petite taille, avec 1 couche cachée avec 75% de la taille du vecteur d'entrée, il a fallu 6 heures pour s'entraîner et ne pouvait toujours pas prédire les masques dans l'ensemble de test.
Quelqu'un peut-il suggérer d'autres méthodes ou articles sur le sujet?
Réponses:
Cela peut ne pas être suffisant en soi, mais comme l'un des problèmes concerne les variations d'éclairage, une étape de prétraitement de suppression des ombres peut être utile. La technique à laquelle je pense est décrite dans l'article suivant:
La première partie du processus produit une image en niveaux de gris invariants d'éclairage, ce qui est probablement ce que vous voulez dans ce cas. Voici un aperçu de l'exemple qu'ils donnent dans l'article:
(source: datageist.com )
En fait, prendre le processus un peu plus loin pour produire une image de «chromaticité» peut être ce dont vous avez besoin pour faire une distinction nette entre les feuilles vivantes et les feuilles mortes. Encore une fois, un exemple tiré de l'article:
(source: datageist.com )
Le hic, cependant, est que la caméra doit d'abord être calibrée. En supposant que cela soit possible, une combinaison des représentations qu'ils décrivent rendra probablement les autres méthodes que vous utilisez plus efficaces.
la source
Je ne pense pas que vous ayez suffisamment d'informations dans l'image source pour produire l'image du masque. Vous pouvez commencer par segmenter la couleur, c'est-à-dire que le vert n'est pas traîné, le gris / brun l'est. Cependant, il y a des régions grises / brunes sur les "bordures de piste" qui ne sont pas représentées dans votre masque. (Voir le quadrant inférieur gauche de votre image source.)
Le masque que vous fournissez implique des contraintes structurelles qui ne sont pas évidentes dans l'image source: par exemple, vos traces sont peut-être de largeur fixe - alors vous pouvez utiliser ces informations pour contraindre le masque préliminaire renvoyé par votre reconnaissance de modèle.
Poursuivre le sujet de la structure: les sentiers fusionnent-ils avec les autres? Les sentiers sont-ils délimités avec certaines caractéristiques du sol / gravier? En tant qu'être humain (qui est raisonnablement bon en reconnaissance de formes!), Je suis interpellé par les caractéristiques présentées dans le quadrant inférieur gauche: je vois des régions grises / brunes que je ne peux pas considérer comme des "traînées". Je pourrais peut-être le faire de manière concluante si j'avais plus d'informations: une carte et un emplacement grossièrement connus, une expérience personnelle sur ce sentier, ou peut-être une séquence d'images menant à ce point - peut-être que cette vue n'est pas si ambiguë si le reconnaissant "sait "ce qui a conduit à cette scène.
Une collection d'images est l'approche la plus intéressante à mon avis. Poursuivant cette réflexion: une image peut ne pas fournir suffisamment de données, mais une vue panoramique peut lever l'ambiguïté de la scène.
la source
Il n'y a pas d'algorithme unique qui détecte comme par magie les traces dans une image aléatoire. Vous devrez implémenter une routine basée sur l'apprentissage automatique et la "former" pour détecter les traces. Sans entrer dans trop de détails, voici un aperçu de ce que vous feriez dans une approche d'apprentissage supervisé.
En définissant un espace d'entités , un ensemble d'entités (un sous-ensemble de votre vecteur d'entités à 64 points) et un espace de classe avec les classes et , vous calculez de vos formations:X x Y y1=trail y2=forest
Avec cela, vous testez votre image (encore une fois, la divisant en petits morceaux) et calculez la probabilité postérieure. En utilisant la théorie de la décision de Bayes, vous définiriez vos critères de sélection binaires (dans ce cas) quelque chose comme
Notez qu'il s'agit d'un aperçu très simplifié de l'approche. Il y a plusieurs choses à prendre en considération et la plus importante d'entre elles est de choisir le bon ensemble de fonctionnalités pour votre problème. Vous pouvez également faire des choses plus compliquées comme utiliser des modèles de mélange et des estimations de densité basées sur le noyau, mais tout cela est trop détaillé et prend trop de temps pour écrire une réponse.
Pour une motivation et une confirmation que cette approche vaut la peine d'être essayée, voici un exemple de quelque chose que j'ai fait il y a longtemps comme devoir de cours, qui est très similaire à ce que vous essayez de réaliser. L'objectif était de détecter l'animal dans la végétation de fond (image de gauche). La figure de droite montre le masque binaire obtenu après "apprentissage" pour distinguer entre le premier plan et l'arrière-plan.
Pour en savoir plus sur l'apprentissage automatique, vous voudrez peut-être consulter quelques manuels. L'un des manuels bien connus et souvent recommandés dans le domaine est:
qui est maintenant disponible en PDF gratuit sur le lien fourni. Un autre livre décent est:
la source
Est-ce que cela vous intéresse?
Détection de surface traversable en temps réel par fusion d'espace colorimétrique et analyse temporelle
la source
Cela ressemble à un problème de segmentation de texture (pas de segmentation de couleur). Il y a beaucoup de méthodes,
ils utilisent souvent des ondelettes Gabor, comme ceci http://note.sonots.com/SciSoftware/GaborTextureSegmentation.html
Segmentation basée sur les superpixels http://ttic.uchicago.edu/~xren/research/superpixel/
et segmentation de coupe de graphique similaire http://en.wikipedia.org/wiki/Graph_cuts_in_computer_vision
voici l'aperçu du wiki http://en.wikipedia.org/wiki/Segmentation_(image_processing)
la source