Yasir Niaz Khan
Yasir Niaz Khan
Yasir Niaz Khan
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Visual Terrain Classification by<br />
Mobile Outdoor Robots<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> and Andreas Zell<br />
University of Tübingen, Germany
Introduction<br />
• Ground surface estimation is essential for many<br />
purposes<br />
• For localization and mapping<br />
• For guiding vehicles and humans on ground<br />
• For a safe traversal for mobile outdoor robots<br />
• Rescue<br />
• Surveillance<br />
• Hazardous areas, etc.<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
2
Related Work<br />
• Geometrical features<br />
• LADAR sensor [Vandapel04]<br />
• Stereo camera [Bajracharya08]<br />
• Problem: Tall grass vs. small wall<br />
• Visual features<br />
• Static aerial images [Hudjakov11]<br />
• Our Approach: Monocular camera on a real flying<br />
robot<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
3
Driving Robot Platform<br />
• RC model truck 1:8<br />
• Dual-core PC<br />
• 32bit microcontroller<br />
• Different sensors<br />
• Point Grey Firefly<br />
camera<br />
• 6mm lens<br />
• 640x480 images<br />
• Pan-tilt unit – 50cm<br />
above ground<br />
• Average speed – 1m/s<br />
Our Outdoor Robot<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 4
Flying Robot Platform<br />
• AscTec X3D-BL<br />
Hummingbird<br />
• Diameter 53 cm<br />
• Weight 0.5 kg<br />
• PointGrey FireFly USB<br />
color camera with VGA<br />
resolution<br />
• Gumstix Overo Fire<br />
single-board with a<br />
600MHz ARM processor<br />
• Manual flight<br />
• Frame-rate of 1 Hz<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 5
Terrain Types<br />
• 6 Terrain Types<br />
Grass Asphalt Gravel<br />
Big tiles Small tiles Bushes<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 6
Artifacts<br />
• Blur<br />
• Bumpy surfaces<br />
• Fast robot motion<br />
• Vibration of robot<br />
• Over-exposure<br />
• Sun glares directly into<br />
the camera<br />
• Color changes<br />
• Depends on day time<br />
• Shadows<br />
• Water patches after rain<br />
• Major scale and<br />
orientation changes<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
Blur and over-exposure<br />
Color changes<br />
7
Different Heights – Grass<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
8
Local Descriptors<br />
• Calculated on a grid<br />
drawn on the image<br />
• Histogram-based<br />
• Local Binary Pattern<br />
• Local Ternary Pattern<br />
• Interest point-based<br />
• Speeded Up Robust<br />
Features (SURF)<br />
Image divided into 8x8 grid<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 9
Local Binary Pattern [Ojala02]<br />
• 3x3 window is placed on top of each pixel<br />
• Neighboring pixels are thresholded<br />
• Greater than center → 1<br />
• Less than center → 0<br />
• Start from upper-left corner and move clockwise<br />
• Binary Pattern = 10110100<br />
• Histogram has 256 dimensions<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
94 38 54<br />
23 50 78<br />
47 66 12<br />
1 0 1<br />
0 1<br />
0 1 0<br />
10
Local Ternary Pattern [Tan07]<br />
• Center c, threshold k<br />
• Pattern = 1(-1)01(-1)10(-1) split into two parts:<br />
• 10010100 & 01001001<br />
• Concatenated histograms give 512 dimensions<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
94 38 54<br />
23 50 78<br />
47 66 12<br />
1 -1 0<br />
-1 1<br />
0 1 -1<br />
k=5<br />
11
Speeded Up Robust Features [Bay2006]<br />
• Interest point detection + descriptor<br />
• Grid intersections are given as interest points for<br />
feature calculation<br />
• Upright SURF<br />
• Orientation not considered<br />
• +/-15 rotation invariance<br />
• Scale is determined through grid search<br />
• 64 dimensional descriptor – TSURF<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
12
Classifier<br />
• Different Classifiers tested<br />
• Random Forests<br />
• Support Vector Machine (SVM) using the Sequential Minimal<br />
Optimization (SMO) training algorithm<br />
• Multilayer Perceptron (MLP)<br />
• LIBLINEAR<br />
• J48 Decision Tree<br />
• Naive Bayes<br />
• k-Nearest Neighbor<br />
• Best performance - Random Forests<br />
• Weka software for machine learning<br />
• PC Cluster for parallel testing<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
13
Random Forest<br />
• A collection of individual decision tree predictors<br />
• Each node of a tree uses a varying feature<br />
subset<br />
• Leaf nodes = actual class labels<br />
• Class determined by majority voting<br />
• More trees – better generalization, but increased<br />
run-time<br />
• 50 trees gave good classification at satisfactory<br />
speed<br />
• 10-fold cross validation<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
14
Groundtruth Generation<br />
• Color code all images according to terrain<br />
legend<br />
• No need to cut patches from images<br />
• Place all images in the same folder<br />
• Grid is drawn on every image<br />
• Each grid cell is analyzed for terrain types<br />
• Cell with maximum pixels of one terrain type is<br />
assigned to that terrain type<br />
• Must be >40%<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 15
Groundtruth Generation<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong><br />
16
Results – Flying Robot<br />
Gridsize<br />
LBP LTP TSURF<br />
10 33.6% 38.9% 99.6%<br />
20 48.4% 55.7% 96.8%<br />
30 59.4% 67.3% 88.7%<br />
40 66.7% 73.6% 81.5%<br />
50 71.0% 78.1% 76.6%<br />
60 74.8% 80.3% 71.9%<br />
70 77.3% 81.7% 71.2%<br />
80 78.2% 83.3% 66.0%<br />
90 79.6% 84.7% 67.7%<br />
100 79.5% 84.4% 63.3%<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 17
Results – Driving Robot<br />
Grid<br />
size LBP LTP T-SURF<br />
10 55.0% 67.2% 99.2%<br />
20 75.7% 83.0% 97.8%<br />
30 85.2% 90.0% 96.6%<br />
40 90.2% 93.3% 95.7%<br />
50 92.6% 94.7% 94.9%<br />
60 94.4% 95.7% 95.2%<br />
70 95.5% 96.8% 94.5%<br />
80 95.8% 96.8% 93.1%<br />
90 96.9% 97.4% 93.6%<br />
100 96.9% 98.1% 94.0%<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 18
Conclusion<br />
• Terrain classification is possible using a single<br />
camera on a robot<br />
• Driving robot driven at fast speed<br />
• Flying robot flown at different heights<br />
• Random forest performs good and fast<br />
classification<br />
• Terrain can be classified at different resolutions<br />
for different scenarios:<br />
• For cell sizes 50x50: LTP<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 19
Thank you<br />
<strong>Yasir</strong> <strong>Niaz</strong> <strong>Khan</strong> 20