|
[DPRG] webcam robot vision limitations
Subject: [DPRG] webcam robot vision limitations
From: Chris Jang
cjang at ix.netcom.com
Date: Tue Jun 26 23:16:06 CDT 2007
Hello, I'm not sure if anyone is interested in this...
But it's something different to discuss.
I have a small robot with a VGA webcam and ARM9 PC104 SBC. Up until
last night, the performance out of this combination has been
embarrassing - frame rates of around 1.2 fps with a low percentage
of corrupted images.
After lots of experimentation, the webcam now runs at 15 fps with
long sequences of around 10 seconds without any image corruption.
This includes V4L capture, JPEG decode, and saving to SD flash. I
hope that with some more twiddling, there will be no more corruption.
Here's the trick (I believe) - cameras have a native frame rate.
If whatever consumes and processes the video does not operate at
pretty much exactly this speed, then output is prone to corruption
due to device/driver sync issues. So I had to put an adaptive
spinning delay loop which adjusts depending on the measured time
between each frame capture. This adaptive delay tries to hold the
capture rate at 15 fps which matches the webcam.
Ok, so boring...here's the interesting part.
Now that the basic stuff is worked out, the amount of CPU time
available for processing each frame is known. On the 200 MHz ARM9
based computer board I'm using, roughly half the time is spent
capturing images, decoding and saving them to SD flash (some time
could be recovered by not saving images - but then debugging is
impossible as we can't know what the robot saw). The other half of
the time is available. That's roughly 30 milliseconds at 15 times
each second, once for each image frame from the webcam.
I think this is enough time for pixel based image segmentation
(fancy term for color blobs). There is enough time for some
statistics and simple morphological filters. But there is not
enough time for any feature based techniques (no convolution).
Stanford's DARPA Grand Challenge vehicle dedicated one 1.6 GHz
Pentium M computer to 320x240 monocular RGB video. They did color
based image segmentation with some morphological filtering. So even
with over 10x the power of a 200 MHz ARM9, they were still limited
to very sophisticated color blob detection.
More information about the DPRG mailing list
|