| 73 | | Our process to get from camera images to information useful for navigation requires several steps |
| 74 | | of processing and reprocessing. Our first step is to find an aproximation of texture using a sobel |
| 75 | | filter. We then use a color histograming classifier, based on an assumed safe area of grass, to |
| 76 | | classify pixels in the image as grass and not grass. The texture data from the sobel is combined |
| 77 | | with the data of which pixels are not grass to determine which are line and which are obstacle. |
| 78 | | The line pixels are further processed using a hough transform to find the actual lines of the course. |
| 79 | | The objects are then tranformed into real world coordinates by performing a perspective |
| 80 | | transform on the bottom pixels of the objects. |
| | 74 | Our process to get from camera images to information useful for navigation |
| | 75 | requires several steps of processing and reprocessing. Our first step is to |
| | 76 | find an approximation of texture using a Sobel filter. We then use a color |
| | 77 | histogramming classifier, based on an assumed safe area of grass, to classify |
| | 78 | pixels in the image as grass and not grass. The texture data from the Sobel is |
| | 79 | combined with the data of which pixels are not grass to determine which are |
| | 80 | line and which are obstacle. The line pixels are further processed using a |
| | 81 | hough transform to find the actual lines of the course. The objects are then |
| | 82 | transformed into real world coordinates by performing a perspective transform |
| | 83 | on the bottom pixels of the objects. |
| | 84 | |
| | 85 | \subsection{Generation of HSV histograms} |
| | 86 | The first step in classifying pixels is to convert the image to the HSV color space. The image is then scaled down to quarter size, as at full five-megapixel resolution colors are more noisy than when scaled down. |
| 109 | | The next step with our algorithm is to make it work on cases where it fails, those with lines |
| 110 | | appearing within our safe zone. There is also work to be done for it run on the robot. The |
| 111 | | algorithm must be able to run on images at a speed for live decision making. The algorithm |
| 112 | | must be moved from our testing matlab to opencv. |
| | 122 | The next step with our algorithm is to make it work on cases where it fails, |
| | 123 | those with lines appearing within our safe zone. It is possible that this |
| | 124 | could be done by excluding portions of the ``safe zone'' which exceed a |
| | 125 | threshold in brightness, or to apply the previous image's histogram to the safe |
| | 126 | zone and exclude those pixels that fall far outside it. There is also work to |
| | 127 | be done for it to be run on the robot. The algorithm must be able to run in |
| | 128 | real time to support live decision-making, which means that it must be ported |
| | 129 | from our Matlab proof-of-concept to OpenCV. |
| | 130 | |
| | 131 | \section{Conclusion} |