Bookmark and Share

Hardware Topics

What type of CPU do you plan to use for pixel-level processing?
9 replies [Last post]
Scott Gardner
Scott Gardner's picture
Offline
Last seen: 7 years 2 weeks ago
Level 9: Necromancer
Joined: 2011-02-09
Points: 366

To the EVA community, let’s have a discussion about what everyone is using for processing computer vision algorithms—RISC CPU?  GPU?  FPGA?  DSP? ASSP?

Join the discussion and earn experience points.  If someone posts something helpful, reward them by flagging their post to earn them points.

Scott

 

Joerg Woerner
Joerg Woerner's picture
Offline
Last seen: 7 years 11 weeks ago
Level 2: Evoker
Joined: 2011-08-02
Points: 20

We used a Spartan 3 FPGA as Co-Processor and a TI DM642 DSP as Main-Processor. The FPGA supports two modes:
1) Flow-Through - Filtering, Thresholding and Binarizing the image
2) Co-Processor - Connected to a shared memory with the DSP for some additional number crunching.

Speed improvement in the application is about ten-fold compared to the DSP only soulution.

Joerg

nicolagiacobbe
nicolagiacobbe's picture
Offline
Last seen: 2 years 6 weeks ago
Level 1: Prestidigitator
Joined: 2011-07-24
Points: 7

Using a XMOS processor (http://www.xmos.com/) for low-level data handling from a linear sensor and running a standard edges searching algorith. The XMOS device has two 500-MHz simple processors that extract data and analyze it, the XMOS is so fast and the algorithm simple enought that the bottleneck lies in the sensor output.

Thomas
Thomas's picture
Offline
Last seen: 7 years 48 weeks ago
Level 2: Evoker
Joined: 2011-07-11
Points: 10

 

I use for RealTimeTracking an embedded MPU ARM9 (SAM9G20@400MHz) in connection with an Omnivision image sensor (QVGA@60Hz).

Vagelis Mariatos (not verified)

I use an FPGA with an embedded RISC core and add hardware acceleration functions. The benefit of this approach is that I can get very good performance while running at a low clock rate, as most of the pixel-level-processing is done in hardware. Still, i have the flexibility of using software in the RISC core for things that might (or will) change.

 

Scott Gardner
Scott Gardner's picture
Offline
Last seen: 7 years 2 weeks ago
Level 9: Necromancer
Joined: 2011-02-09
Points: 366

Vagelis, could you share more detail?  Which FPGA are you using, and what clock rate are you running?  Could you describe the application for us and explain how you partitioned the pipeline?

Scott

Tom Hanan (not verified)

I used analog optical flow devices and post processed them using proprietary algorithms.

The advantage is the ability to achieve my visions goals using < $10 in hardware and software that runs on my existing processor. Each time the processors gets a speed boost i get to increase the capabilities of the post processing and thus the capabilities of the product!

 

 

NelsonBridwell (not verified)

It was all custom C++ code.  Mostly simple logic to look for edges in small rectangular windows of 2D integer arrays.  Not the best way to go where you need complex capabilities such as geometrical pattern matching or OCR, but where applicable, it can be VERY fast.

 

NelsonBridwell (not verified)

As a reference point, I recently worked on a (non-embedded) industrial 2D machine vision application, running on a dual core Intel CPU, using a generic PC.  Coded in Visual C++, the algorithm simultaneously acquired and processed 8 VGA-resolution image frames from 20 GigE Vision cameras within 0.5 seconds, resulting is a frame rate of 320 frames per second.  When running, the peak CPU loading was less than 25%.

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

Sounds like a very interesting project!  What kinds of algorithms did you use?  Did you code the whole thing from scratch, or were you able to use any off-the-shelf software components?