Rose-Hulman Robotics Team

Changeset 694

Show
Ignore:
Timestamp:
02/21/10 23:50:46 (2 years ago)
Author:
mosttw
Message:

Report checkpoint

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/2010-image-rec/docs/report.tex

    r693 r694  
    4848\begin{figure}[htb] 
    4949        \centering 
    50                 \includegraphics[width=0.25\textwidth]{figures/robot.jpg} 
    51         \caption{Moxom's Master, the Rose-Hulman Robotics Team's IGVC entry.} 
     50                \includegraphics[height=2in]{figures/} 
     51                \includegraphics[height=2in]{figures/robot.jpg} 
     52        \caption{Examples of IGVC terrain, and Moxom's Master, the Rose-Hulman Robotics Team's IGVC entry.} 
    5253        \label{fig:moxoms-master} 
    5354\end{figure} 
     
    7172\section{Process} 
    7273% Also hit on key challenges here. 
    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. 
     74Our process to get from camera images to information useful for navigation 
     75requires several steps of processing and reprocessing. Our first step is to 
     76find an approximation of texture using a Sobel filter.  We then use a color 
     77histogramming classifier, based on an assumed safe area of grass, to classify 
     78pixels in the image as grass and not grass. The texture data from the Sobel is 
     79combined with the data of which pixels are not grass to determine which are 
     80line and which are obstacle.  The line pixels are further processed using a 
     81hough transform to find the actual lines of the course.  The objects are then 
     82transformed into real world coordinates by performing a perspective transform 
     83on the bottom pixels of the objects. 
     84 
     85\subsection{Generation of HSV histograms} 
     86The 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.   
    8187 
    8288\subsection{Sobel filter for texture} 
     89A Sobel filter with an aperture size of 5 is then applied to the full-resolution value band of the image.  The filter is applied at full resolution to avoid throwing away any edge information while resizing.  The operation takes approximately 0.1 seconds in OpenCV, so it appears to be viable to do in real time.  The full-resolution filtered image is then downscaled to quarter-size and blurred, producing an image that indicates the ``texture'' in each pixel's region, as illustrated in Figure \ref{fig:texture}. 
    8390 
    84 \subsection{Classification on Color analysis} 
     91\begin{figure}[htb] 
     92        \centering 
     93                \includegraphics[width=0.5\textwidth]{figures/texture.png} 
     94        \caption{The original and blurred Sobelized value band, used as a measure of texture.} 
     95        \label{fig:texture} 
     96\end{figure} 
    8597 
    8698\subsection{Final Pixel Classification} 
     99Finally,  
    87100 
    88101\subsection{Hough Line Transform} 
     
    107120 
    108121\section{Future work} 
    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. 
     122The next step with our algorithm is to make it work on cases where it fails, 
     123those with lines appearing within our safe zone.  It is possible that this 
     124could be done by excluding portions of the ``safe zone'' which exceed a 
     125threshold in brightness, or to apply the previous image's histogram to the safe 
     126zone and exclude those pixels that fall far outside it. There is also work to 
     127be done for it to be run on the robot. The algorithm must be able to run in 
     128real time to support live decision-making, which means that it must be ported 
     129from our Matlab proof-of-concept to OpenCV. 
     130 
     131\section{Conclusion} 
    113132 
    114133