Changeset 647
- Timestamp:
- 01/31/10 23:53:42 (2 years ago)
- Location:
- branches/2010-image-rec
- Files:
-
- 1 added
- 2 modified
-
docs/project-plan.pdf (added)
-
docs/project-plan.tex (modified) (3 diffs)
-
hist_test.m (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/2010-image-rec/docs/project-plan.tex
r645 r647 22 22 \section*{Project Plan} 23 23 24 %\begin{multicols}{2}24 \begin{multicols}{2} 25 25 26 26 \subsection*{Status Report} … … 28 28 At this point we have gathered a number of test images, examined the suitability of texture for differentiating grass and obstacles, and completed a simple color histogram-based prototype implementation in Matlab. The test images we have gathered were taken at previous IGVC competitions, both using a handheld digital camera and the Elphel camera actually used on the robot. The different color qualities of these image sets will help us test that our algorithm can handle different lighting conditions and color tones. A small script has been written to apply a Sobel filter to all of these images, allowing us to see the texture of the images. This has been done with images in the RGB and HSV colorspaces. We determined that the Sobel of the hue band is most suitable for this, as shown in Figure \ref{fig:h-sobel}. 29 29 30 \begin{figure }[htb]30 \begin{figure*}[htb] 31 31 \centering 32 \includegraphics[width=0. 5\textwidth]{figures/cam-000080-hsv-sobel-h.png}33 \caption{The hue band of a test image with the Sobel filter applied. }32 \includegraphics[width=0.6\textwidth]{figures/cam-000080-hsv-sobel-h.png} 33 \caption{The hue band of a test image with the Sobel filter applied. This image shows a stark difference between the grass (including the lines) and obstacles, which are smooth plastic with relatively little texture.} 34 34 \label{fig:h-sobel} 35 \end{figure }35 \end{figure*} 36 36 37 37 Finally, a preliminary Matlab implementation of the algorithm presented by Ulrich and Nourbakhsh has been written. This is purely based on color (in the HSV space) at this point. The next step will be to integrate a measure of texture (likely a regional average of the Sobelized image) into the algorithm. The full text of this script is presented in Appendix \ref{appendix:hist-test}. … … 48 48 49 49 \subsection*{Timeline} 50 \paragraph{Friday, 5 February} Status report. 51 \paragraph{Saturday, 6 February} Easy goal accomplished. 52 \paragraph{Friday, 12 February} Status report. 53 \paragraph{Saturday, 13 February} Reasonable goal accomplished. 54 \paragraph{Sunday, 14 February} Presentation preparation. 55 \paragraph{Thursday, 18 February} Stretch goal accomplished. 56 \paragraph{Friday, 19 February} Project complete. 50 57 51 58 52 53 %\end{multicols} 59 \end{multicols} 54 60 55 61 \pagebreak -
branches/2010-image-rec/hist_test.m
r634 r647 2 2 3 3 % Test how well histogramming works with our test images 4 fn = 'images/elphel/cam-000086.jpeg'; % Hard image5 4 fn = 'images/course-walk/cimg4943.jpg'; 6 5 fn = 'images/course-walk/cimg4921.jpg'; 6 fn = 'images/elphel/cam-000078.jpeg'; 7 fn = 'images/elphel/cam-000086.jpeg'; % Hard image 8 fn = 'images/course-walk/cimg4989.jpg'; 9 fn = 'images/elphel/cam-000094.jpeg'; 7 10 fn = 'images/elphel/cam-000081.jpeg'; 8 fn = 'images/course-walk/cimg4989.jpg';9 fn = 'images/elphel/cam-000078.jpeg';10 fn = 'images/elphel/cam-000094.jpeg';11 11 12 12 % Number of bins in the histogram. … … 19 19 % less restrictive in its definition of "grass". 20 20 h_mean_factor = 0.0; % Mainly effects grass 21 s_mean_factor = 0. 4; % Seems to most effect obstacle detection21 s_mean_factor = 0.2; % Seems to most effect obstacle detection 22 22 v_mean_factor = 0.1; % Obstacles and lines 23 23 … … 31 31 32 32 % Area at the bottom of the image assumed to be grass, clear of obstacles 33 clear_area = im(round(clear_area_top * rows):end, round(clear_area_left * cols):round((1 - clear_area_left) * cols), :); 33 clear_area = im(round(clear_area_top * rows):end, ... 34 round(clear_area_left * cols): ... 35 round((1 - clear_area_left) * cols), :); 34 36 35 37 % Histograms of each channel … … 63 65 % Clean things up a bit 64 66 se = strel('square', 4); 65 %mask = imclose(mask, se);67 mask = imclose(mask, se); 66 68 67 69 % Display

