Jul 052010

On many images there are random clusters of points that have been marked as road which are well above the road, in the grass, or on houses. They’re easily recognizable even without the original image because there’s a space between the large chunk of recognized road at the bottom and the incorrectly recognized road above it. I tried counting the number of pixels that were close to any given pixel to remove the chunks, but this didn’t work – the bad road pixels have a lot of other bad road pixels around them.

Next I tried “searching up” through the image and looking for any road that is floating above another section of road and getting rid of any “floating” road sections. This left thin vertical streaks of road in some places where some “floating” road squares were slightly touching lower road squares. So I then go back through the image horizontally and remove and sections of road that are not wide enough. The addition of this algorithm does give a slightly better result than without it and it doesn’t take much time, even on a 640×480 image.

I also sped up the various algorithms used by caching things that have to be computed often, such as an intensity-value-to-RGB-int cache and a red/green/blue to intensity value cache.

The quality of this is still mediocre though. There need to be either more or better heuristics involved.

 Posted by at 8:42 pm
Jun 302010

During the previous week I spent my time in three areas.

1) I tried to turn the “dots” that were recognized as the road into an actual highlighting of the road in the image. I did this by using the square used to detect space in the image into “the road” instead of only marking the center pixel. i.e. after marking each road pixel the program goes back through and for any pixel marked as the road it marks the space around the pixel as the road.

2) 640×480: I figured out how to make my camera capture images at 640×480 instead of at 320×240. Unfortunately when testing this, processing one image took 3 full seconds. This prompted me to investigate how long it was taking to process a 320×240 image.

3) Speed: I added timing information to the algorithm and found out that processing the 320×240 image was taking about 700ms – far too long. I sped it up by separating out various parts of the algorithm, like converting the image to black and white. I further sped things up by caching the addition of rows in the density/road/pixel detection algorithm, which really just adds the total number of pixels in an area of the pixels.

Next Week: I had planned on working on the map data transformation to a perspective view, but Dr. Choi has asked me to work on the edge detection algorithm so that’s what I’ll do.

 Posted by at 8:36 pm