28.06.2013 Views

Yasir Niaz Khan

Yasir Niaz Khan

Yasir Niaz Khan

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!