How to use DSP to make my OpenCV code run faster?

408 views
Skip to first unread message

Surya Kiran

unread,
Nov 11, 2015, 5:47:43 PM11/11/15
to BeagleBoard
Hello, 
I am working on image processing project which involves OpenCV libraries.I have a SURF detection code running on my board but it is slow. I need to optimize the code so that it runs faster. I am a complete newbie to this DSP configuration. So can anybody please assist me or provide me some good links for step by step procedure to set up DSP on Beagleboard-xm?

OS: Debian Wheezy
IDE : Qt Creator
Libraries: OpenCV,BOOST...

Thanks,
Surya

Allan Granados

unread,
Nov 12, 2015, 9:45:37 AM11/12/15
to BeagleBoard
Hi

i think you could start reading about DSPLINK, code engine and others (there is many info in google about it). However as I have research about it it is hard to find actual people using at this moment.

In new boards the way to access DSP is by remote-proc and rpmsg, however for Beagleboard XM there is not support as far as I know.

I manage to create an custom Linux image using and old version of yocto, meta-ti layer, with DSPLINK support, and I manage to get the DSPLINK examples to work with some modification on meta-ti recipes, however I did not manage to get my own app to do a color space transformation as i was using message passing example as a base (my code: https://github.com/allangj/rgb2ycbcr-dsp) . I was getting a deadlock on the analisys and modification of the image pixels, but the code may work as a starting point as for increasing performance you may want to use different methods to pass information from GPP to DSP.

Also some links:


Hope this could help you as a starting point.
Regards
--Allan Granados

William Hermans

unread,
Nov 12, 2015, 10:58:59 AM11/12/15
to beagl...@googlegroups.com

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jason Kridner

unread,
Nov 12, 2015, 11:19:56 AM11/12/15
to beagl...@googlegroups.com
The remoteproc driver in mainline includes support for OMAP3/DM3730
(https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/remoteproc/omap_remoteproc.c).
We'd just need to choose an image with this built into the kernel.

Seems we could try to back-port the OpenCL support on BeagleBoard-X15
to BeagleBoard-xM and that'd be really helpful. See
http://www.elinux.org/Beagleboard:BeagleBoard-X15#Will_I_be_able_to_program_the_C66x_DSPs.3F.
It seems that currently the OpenCL integration into OpenCV requires
use of different data types to address memory allocation challenges.
See http://docs.opencv.org/2.4.3/modules/ocl/doc/introduction.html.
I'm not sure if that'd be managable for you.

There was also this project:
http://beagleboard.org/project/opencv+acceleration/

(You can find projects on on OpenCV via
http://beagleboard.org/project/?search=opencv. It'd be great to get
people to register more of their projects, though I'm considering
trying to work with hackster.io or hackaday.io to make a better
project registry tool.)

William Hermans

unread,
Nov 12, 2015, 12:06:36 PM11/12/15
to beagl...@googlegroups.com
(You can find projects on on OpenCV via
http://beagleboard.org/project/?search=opencv. It'd be great to get
people to register more of their projects, though I'm considering
trying to work with hackster.io or hackaday.io to make a better
project registry tool.)

An incentive would probably help more than anything ( contest for a cape, or other hardware maybe ). But I think more people are interested in using these boards professionally than anything else. Look at the NASA project you put on google+ ( the underwater / ice rover ). They did not contact you or the site for a mention. Someone else told you about it . . .
Reply all
Reply to author
Forward
0 new messages