I'm trying to make a lightweight method of outdoor road following for a small ground robot. In nearly all road detection work that I've seen, they all assume that the robot is already on the road, which allows for techniques like finding the vanishing point or sampling pixels near the bottom of the camera frame. However in my application, the robot can be a few meters away from the road and needs to first find the road. As the robot computation runs on an Android phone, I'm hoping to avoid heavy computer vision techniques, but also be robust to variable outdoor lighting conditions. Obviously there is a trade-off, but I'm willing to sacrifice some accuracy for speed and ease of computation. Any ideas on how to achieve this?
You may be interested in what is called "terrain classification" - not detecting the road itself, but classifying different regions of an image taken by the camera as grass, gravel, road, etc. This will help you to find the road, where you can apply more efficient methods of road following.
A paper "High Resolution Visual Terrain Classification for Outdoor Robots" by Yasir Niaz, Khan Philippe Komma and Andreas Zell, that discusses approach based on SURF features can be found here: http://www.cogsys.cs.uni-tuebingen.de/publikationen/2011/khan2011iccvworkshop.pdf
A list of some other papers on the subject: http://www2.ift.ulaval.ca/~pgiguere/terrainID.html (note that last modification is from 2014, so there may be some new research worth investigating).