Bookmark and Share

Hardware Topics

Development board for Embedded Tracking algorithm
8 replies [Last post]
memento1987
Offline
Last seen: 2 years 48 weeks ago
Level 2: Evoker
Joined: 2012-06-18
Points: 12

Hi,

 I need your quick advice. Could you advice me the best development board at the beginning of development of real-time people tracking algorithms? BeagleBoard, PandaBoard, LeopardBoard, other? And what additional acceleration (GPU, DSP, FPGA, other?) should I use to achive the best performance for such algorithms.

 Have you ever implement any tracking algorithm at your projects? What hardware have you used?

 Thank you for your information in advance.

RickyTerzis
Offline
Last seen: 2 weeks 4 days ago
Level 1: Prestidigitator
Joined: 2017-09-28
Points: 1

Hi..i am a new user here. As per my knowledge , if you're not accelerating your PC prototype with a GPU, and you're not looking for the absolute best performance per milliwatt, then there are probably a number of CPU, DSP, or CPU+DSP options that are viable.  In fact, if you don't care about power consumption very much, and you're looking for the easiest possible port of you PC prototype,

April
Offline
Last seen: 42 weeks 5 days ago
Level 1: Prestidigitator
Joined: 2016-11-16
Points: 5

Also note that an FPGA or GPU will give you more performance and lower power consumption on most pixel processing functions compared to a CPU or DSP.  If this is very important to you, and you're willing and able to develop for these challenging platforms, then they may be a good fit.  The Xilinx Zynq devices offer an attractive combination of high-performance CPU and FPGA on a single chip, for example.

On the other hand, if you're not accelerating your PC prototype with a GPU, and you're not looking for the absolute best performance per milliwatt, then there are probably a number of CPU, DSP, or CPU+DSP options that are viable.  In fact, if you don't care about power consumption very much, and you're looking for the easiest possible port of you PC prototype, then perhaps an embedded x86 (i.e. Atom) single-board-computer would do the trick.

https://www.graperain.com/ARM-Single-Board-Computer/

Amit Shoham
Offline
Last seen: 40 weeks 6 days ago
Level 4: Thaumaturgist
Joined: 2011-05-28
Points: 60

Is your PC prototype using well-optimized code?  Is it being accelerated with a GPU?  If the answer to both of these questions is "yes," then you're likely to need a GPU or FPGA in your embedded implementation.

Keep in mind that in vision applications, optimization often means structuring the dataflow of the algorithm to best utilize the cache (and local memory of the GPU, if you're using one) and to avoid needless memory transfers.  If you're simply calling a bunch of OpenCV functions, then your code probably isn't well-optimized, even if the individual functions have been carefully coded to take advantage of SIMD instructions, hypderthreading, etc.

Also note that an FPGA or GPU will give you more performance and lower power consumption on most pixel processing functions compared to a CPU or DSP.  If this is very important to you, and you're willing and able to develop for these challenging platforms, then they may be a good fit.  The Xilinx Zynq devices offer an attractive combination of high-performance CPU and FPGA on a single chip, for example.

On the other hand, if you're not accelerating your PC prototype with a GPU, and you're not looking for the absolute best performance per milliwatt, then there are probably a number of CPU, DSP, or CPU+DSP options that are viable.  In fact, if you don't care about power consumption very much, and you're looking for the easiest possible port of you PC prototype, then perhaps an embedded x86 (i.e. Atom) single-board-computer would do the trick.

 

Jeff Bier
Jeff Bier's picture
Offline
Last seen: 1 week 3 days ago
EditorLevel 4: Thaumaturgist
Joined: 2011-05-29
Points: 93

There are many development boards to choose from for real-time embedded vision.  The first decision to make is what type of processor you want to use.  Then you can select a specific processor and development board.

Selecting a processor can be a complex process involving numerous trade-offs, but a good place to start is to assess how much performance you're going to need to run your algorithms (and any other functions required) in real-time.  Then you can narrow the candidate processors based on performance, and start thinking about other selection criteria, such as ease of development.

Have you prototyped your algorithms on a PC, perhaps using OpenCV or MATLAB?  If so, what is the processor resource usage of the prototype algorithm on the PC?  If not, I suggest you start by creating a PC prototype.

-Jeff Bier, BDTI (www.BDTI.com)

memento1987
Offline
Last seen: 2 years 48 weeks ago
Level 2: Evoker
Joined: 2012-06-18
Points: 12

I have implemented my tracking algorithm on the PC. Currently it is not very optimized and on my laptop (Intel Core 2 Duo 2GHz, 3 GB RAM) it works with processing performance about 17-19 FPS for SD video (720x400). Is it possible to achive similar performance (at least 15 FPS) on embedded device? Will GPU helpful for me in this? Maybe better DSP, FPGA? What CPU processor do you recommend for this solutions?

Brian Dipert
Offline
Last seen: 6 hours 30 min ago
Level 3: Conjurer
Joined: 2011-07-20
Points: 40

Dear memento1987, this article written by Jeff Bier may be of interest to you:

http://www.embedded-vision.com/platinum-members/bdti/embedded-vision-tra...

Jeff Bier
Jeff Bier's picture
Offline
Last seen: 1 week 3 days ago
EditorLevel 4: Thaumaturgist
Joined: 2011-05-29
Points: 93

Yes, it should be possible to achieve this performance in an embedded processor, with carefully optimized software.  

There are a number of types of architectures you can choose from.  Since you will need to optimize your software, you should consider which types of processors you are already familiar with.  Have you used DSPs?  FPGAs?  GPUs?

Also, what other constraints need to be considered in selecting the processor?  Do you have a cost constraint? A power consumption constraint?

memento1987
Offline
Last seen: 2 years 48 weeks ago
Level 2: Evoker
Joined: 2012-06-18
Points: 12

Hi Jeff,

 Sorry for late response. I had holiday. 

 In general I have very small experience in GPUs. I have used CUDA GPU with OpenCV in PC environment but it will probably not be usable here. I bought Pandaboard ES board and I have builded Ubuntu OS there and I compiled my Tracking algorithm there using OpenCV. 

 Now I want to increase my speed using some acceleration processor. I see that Pandaboard support PowerVR SGX 540. Do you know how to integrate this GPU with my C++ code?

Thanks in advance.

Damian