How to use Opencv using DSP on Beagle Board XM Angstrom or Ubuntu

Hello All,
I am using Opencv on Beagle Board XM . But there is a lot of delay in Webcam Video streaming. So thats why I need to use DSP for this operation.
I am looking forward to use it on both OS Angstrom and Ubuntu.

Is anybody already have experience of using DSP?
Can anybody give me a step wise procedure to follow ?

Thanks in advance.

I havent used the DSP yet myself, but I think this article would be a good starting place:

http://elinux.org/BeagleBoard/DSP_Howto

Let me know how it goes because I would like to try it in the future as well.

Dhut C wrote:

Hello All,
  I am using Opencv on Beagle Board XM . But there is a lot of delay in Webcam Video streaming. So thats why I need to
use DSP for this operation.

define "delay". And why do you think the DSP will help you?

I am looking forward to use it on both OS Angstrom and Ubuntu.

Is anybody already have experience of using DSP?
  Can anybody give me a step wise procedure to follow ?

That's unlikely. But if you state your problem/question
more clearly, people might be able to help you.

Regardin delay…if you will use the usb camera, the delay will come,and that delay has nothing to do with arm processor or dsp…that is the delay because of usb port…
In order to avoid delay, you should use camera from leopard imaging for beagleboard,that is connected directly to processor to avoid delay…
you will need dsp for some image processing and etc, i have used dsp with angstrom OS…and below is the good link to start with…

http://ossie.wireless.vt.edu/trac/wiki/BeagleBoard_DSPLink

What component are you using to stream the video? If you’re using OpenCV you may be running into the same problem I had. The camera was delivering compressed JPEG and the video-4-linux driver was using the Beagleboard’s very slow floating point processor to decompress it. I ended up writing my own code for video streaming that pulls uncompressed YUV data from the camera and converts it to RGB using integer math. Here’s some sample code: http://v4l2spec.bytesex.org/spec/capture-example.html

I have a related problem that you might have some insight into. I’m trying to use the BeagleBone to perform blob tracking using opencv. The BeagleBone seems hopelessly underpowered, even capturing 320x240 from a webcam it can only process ~1fps. Am I going to get higher performance if I switch to the BeagleBoard-xM? Do you think I could get up to 5fps or higher? Can I offload some of the opencv processing to the DSP?

Any advice would be great. Or if you could point me to some online resources?

Thanks,
Chris

I suspect that with its clock speed the XM might offer 2 to 3 fps. OpenCv was
written for Intel math co-processors in mind. It’s porting to this platform has
no such capability. There was a short lived attempt to add DSP but as I recall
it did not fair well.
Rather than blob tracking could you try another method?

Don

Hi Don,

No blob tracking is really the only algorithm that’s going to work for my application. I guess it’s time for me to start looking into intel based embedded systems.

Thanks for the advice, you saved me A LOT of research.

Chris