|
Is anyone aware of any research/papers/software for identifying a trail (as a line or point-to-point curve) in an image of a forest scene (from the perspective of the camera standing somewhere along the trail)? EDIT: To go into more detail I'm trying to find an algorithm that could take an image like:
and produce a mask, identifying a likely "trail", such as:
As you can see, the original image is a bit blurry, which is purposeful. The image source can't guarantee perfect focus, so I need to be able to handle a reasonable amount of noise and blurriness. My first thought was to apply a Gaussian blur, and segment the image into blocks, comparing adjacent blocks looking for sharp color differences (indicating a trail "edge"). However, I quickly realized that shadows and other changes in lighting easily throws that off. I was thinking about extracting SURF features, but I've only had success with SURF/SIFT when the image is perfectly clear and with consistent lighting. Can anyone suggest any other methods? |
|
You have some general information that you can use. For e.g. 1) You can filter out the greens (leaves), shades of trees & objects (blacks) then run gaussian blur for edge detection 2) It may be a reasonable assumption: the trail will always run end-to-end on the image. So if you run a basic percolation algorithm, you would get a sense of what the trails are. Here is a list of books that might help, specifically 7.1 if you are interested. Hope that helps Can you explain the second step in more detail; perhaps provide a reference? The only paper I found was by Yamaguchi and Hashimoto. I'm intrigued by the idea of invoking percolation theory here. It seems like a natural application.
(Jan 04 '13 at 01:32)
Emre S
What I intended to describe was something as follows. Break up the image into a grid of cells. Every cell knows who their neighbors are. Fix a value (or maybe multiple values) to each cell. An example based on the image you provided could be the amount of grey in that cell. Your basic percolation algorithm starts at a boundary cell and with a certain probability (which is based on the greyness of its adjacent cells) will hop recursively to each of the adjacent cells. This recursion keeps happening until another boundary cell is reached. Now step back up the recursive chain you just traversed and you should get a trail. Do this for all recursive chains that hit another boundary cell. You may want to experiment with various grid sizes. I'ven't seen it used anywhere, just a thought that occurred to me, so don't have an open reference. The best reference to percolation along with Java code is that book I mention.
(Jan 04 '13 at 13:39)
Broccoli
|
|
I would suggest to look again into SURF/SIFT and feeding them into one of the recent Particle Filter approaches. People seem to have successfully applied it. This paper shows a kind of related application (although I have to admit that your scenario is a bit challenging). |


Are you still interested in this problem? Personally I'd use a shared weight feed forward neural network along the lines of neocognitron and train it with a semi-supervised method.