Floor Finder
The Floor Finder module is used to identify the floor area within an image. The assumptions that make
this possible are that the robot or camera is on a planar floor that extends from the bottom of the
camera image outwards away from the camera. This assumption is required since the Floor Finder
module will sample the pixels in the bottom of the image area (the sample space) and use those pixels to identify similar
pixels in the rest of the image. Thus it is assumed that the floor space right in front of the robot
is relatively free from obstacles and represents a portion of the floor.
Interface
Instructions
1. Sample Shape - select the sample shape that you would like to use. The default is the
square shape that will sample more pixels than the triangle shape but may be affected
by darker pixels or non-floor pixels at the image borders. To reduce image border issues
(depending on the style of camera you are using) you can switch to the triangle sample
area that includes more pixels in the middle of the image.
You can change the width and height of the shape to include more or less pixels. The more
representative pixels that are used in the sample space the better. Increasing the sample
space will also include more pixels that are not floor space so a compromise needs
to be reached between floor and object pixels.
2. Color - Select this checkbox to enable color processing of the sample area. This works
very well if your floor is a different color (hue) than the obstacles to be avoided.
3. Intensity - Select this checkbox to enable intensity (brightness) processing of
the sample area. This works well if your floor is much lighter or darker than the
obstacles to be avoided.
4. Texture - Select this checkbox to enable texture processing of the sample area. This
works well if your floor has a very different texture (rough versus smooth) than the
obstacles to be avoided.
5. Color/Intensity/Texture Threshold - Select the threshold level that specifies how many instances of a certain attribute
need to exist in the sample area before they are considered 'representative' of the floor. If your immediate
floor space includes obstacles setting the threshold higher will
help remove those obstacle pixels from consideration. This, however, can also remove
floor pixels that are slightly distance from the selected feature from the rest.
For a more adaptive way of setting the threshold chose a value from the dropdown (besides
manual) to select only the top X percent of features seen in the sample area as a guide for the
rest of the image. Setting this value will find which feature occurs the most
frequently (its count) in the sample area and then set the threshold to be X percentage of that count.
This allows the threshold to change based on how consistent the sample area is and change based on
the image properties within the sample space.
6. Color/Intensity/Texture Smoothing - As the sample space is smaller than the rest of the image it often
does not include features that are very close to features within the image space. Increasing
the smoothing will widen the influence that features in the sample space have in
the rest of the image. In this way a feature in the sample space can also affect other pixels
that are near in color/intensity/texture to it and help fill out more valid pixels in
the rest of the image. If you increase this too much it will encompass all features and not result in
any image segmentation.
7. Momentum - While the robot is moving it may accidentally look off the desired path which would immediate
affect the module to look for the features within the sample area. To prevent accidental attachment to
the wrong surface you can increase the momentum from 0 to a larger number like 200. This means that the
module will remember the statistics from the previous 200 frames (a couple seconds at 30fps) and use
that to look for the floor surface. Even if the robot accidentally moves over a different area that
immediate frame will only marginally affect what the module is attracted to. Using this feature
memory will help to stabilize the robot movement on the desired path.
8. Highlights - Often floor space (especially reflective floors) will tend to have white
highlights in them due to overhead lights. These highlights have very specific properties
that can be used to partially include them back into the floor space. As highlights
are normally bright intense spots they are normally not included within the sample space
beyond very low threshold values. Selecting the "Fill Highlights" checkbox will
analyze the current image for highlights and fill them in with white pixels. This helps
to complete a full floor space and eliminate the appearance of obstacles in the middle
of the floor.
9. Result - select how the results should be presented. "Colored" refers to the original
pixel values (excluding the highlights which are always in white). "White" or "Black"
mask will set pixels to white or black depending on if they are represented in the
sample space or not.
The Relevance Result will indicate from black to white how relevant a particular pixel
is to the sample space given the smoothing and threshold values. Note that when more than
one feature is enabled the relevance is the addition of all those features.
Examples
Note that last image is the floor of a tiled reflective floor. The two large highlights are filled
in using the "Fill Highlight" option.
See Also
Wall Finder
| Floor_Finder Related Forum Posts | Last post | Posts | Views |
OBSTACLE AVOIDANCE
I am trying to implement Obstacle Avoidance module of robo realm in Matlab.I successfully completed &... |
1 month |
4 |
150 |
Flood Fill and Floor Finder algorithm?
Based on obstacle avoidance tutorial, I'm trying to simulate two modules Floodfill and Floor Finder in Matlab, but I can't fin... |
4 months |
8 |
1125 |
|