1

I want to analyze a traffic scene. My source data is a point cloud like this one (see images at the bottom of that post). I want to be able to detect objects that are on the road (cars, cyclists etc.). So first of all I need know where the road surface is so that I can remove or ignore these points or simply just run a detection above the surface level.

What are the ways to detect such road surface? The easiest scenario is a straight and flat road - I guess I could try to registrate a simple plane to the approximate position of the surface (I quite surely know it begins just in front of the car) and because the road surface is not a perfect plane I have to allow some tolerance around the plane.

More difficult scenario would be a curvy and wavy (undulated?) road surface that would form some kind of a 3D curve... I will appreciate any inputs.

Kozuch
  • 2,272
  • 3
  • 26
  • 38
  • Did you check out the [Signal Processing Beta site](http://dsp.stackexchange.com/)? It already has some questions about [point cloud](http://dsp.stackexchange.com/search?q=point+cloud) and [traffic](http://dsp.stackexchange.com/search?q=traffic). – Maxime Morin Oct 12 '14 at 13:37
  • I will post to that DSP site. Thanks for a hint. – Kozuch Oct 12 '14 at 13:50

1 Answers1

1

A relatively simple starting point:

If you can assume that the road surface starts directly in front of the camera then you can use a region growing algorithm to find a region such that the curvature does not change so much within the region (thereby using sharp edges to delineate the region). This would involve calculating the curvature first. This can make a first approximation; there will be issues with occluding objects and other artefacts I am sure.

http://pointclouds.org/documentation/tutorials/region_growing_segmentation.php#region-growing-segmentation

http://pointclouds.org/documentation/tutorials/normal_estimation.php

D.J.Duff
  • 1,565
  • 9
  • 14