Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations GregLocock on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Artificial vision system: Components and design.

Status
Not open for further replies.

emjr

Electrical
Jul 25, 2011
3
I have developed a general design for an artificial vision system, and now I want to build it. So far, it would involve a B&W CCD/CMOS camera with an output that requires real-time digital processing (nothing too strenuous) by some small, portable hardware. I have some expertise with programming, but not with hardware (especially video processing), so I have a few hardware questions. I'm assuming that the processor is basically a RISC CPU dedicated to processing video chip output. Perhaps shocking to some of you, some of my questions are very basic. So,

1. What generic name(s) is/are used to describe such a processor?
2. Can you name a few examples of such processors?
3. Can you tell me, or point me toward, information about their operation and programming languages?

More questions are likely to follow.

Thanks
 
Replies continue below

Recommended for you

If you have to ask such basic questions, you have zero hope of building an artificial vision system in this lifetime.

Dan - Owner
Footwell%20Animation%20Tiny.gif
 
Agreed. You should get it all running thru a PC. Once you have the algorithms all sorted out then you could distill it into some embedded design.

As for your questions:
1) Graphics or video processor. GPU

2) Depends totally on what your algorithm needs are. Small jobs: any Digital Signal Processor (DSP). Large jobs you'd want a dedicated GPU.

T'wer me I'd head straight here and go from this point:
3) For DSPs: Texas Instruments or Analog Devices.

Keith Cress
kcress -
 
IRstuff: No, not for school. This is something I designed after watching an almost completely blind person navigate quite well.

McGyverS2000: Thanks, I'm an EE long out of the profession, very good at programming, but not so good at hardware, especially modern high-tech stuff. Yes, an artificial vision system -- and also the brain-machine interface (also designed by me). Ambitious? Maybe. Over my head? I'll find out.

IRstuff: Oh yes, definitely off-the-shelf, no PCB designing for me.

itsmoked: Many thanks. #2 - I thought video cards like the Nvidia Cuda do things like turn 3D data into 2D projections onto a screen and functions like that for video games or movies? I want to perform simple math functions real-time on pixel values and then output the results to a (hopefully) simple hardware interface.

Yes, I'd be perfectly okay with programming the prototype on a PC. Would I still use a Cuda? Two boards, one for the PC and the other to program? What language? I've worked with assembly, machine and even 1s and 0s.

Thank you everyone.
 
"I want to perform simple math functions real-time on pixel values "

What did you think rendering was? That's what CUDAs do for a living. But, you can certainly just program directly on the PC, it'll just be slower, but a decent PC can still crank pixels at a reasonable rate.

The other choice is a decent frame grabber board, many of which have native processors that run C and also can crank pixels.

TTFN

FAQ731-376
Chinese prisoner wins Nobel Peace Prize
 
Yes, I'm generally familiar with rendering.

I thought the hardware and software in video boards such as CUDAs would be dedicated/specific/limited in their functions (as I said about movies, games, etc). I didn't know that they could be re+programmed outside the factory.
 
Well, removing the custom hardware from the equation certainly makes things more doable, especially if you're already comfortable programming a typical OS-box (Windows, Linux, OSX, etc). Your initial post suggested you were trying to create custom hardware, which would include GPUs, DSPs, and/or FPGAs. Between learning that from scratch and trying to build it, too, you'd have little hope of completing it.

If you concentrate on just the programming, now you're in the realm of algorithms... and people spend a lifetime on just those.

It would help us immensely in helping you to specify the exact problem you're trying to solve. There are millions of different algorithms, and the chosen algorithm will even have an effect on the proper hardware choice.

Dan - Owner
Footwell%20Animation%20Tiny.gif
 
I will re-iterate itsmoked's cite: Most computers that already come with Nvidia's, or others', other graphics cards essentially have GPUs. And you can download free tools for programming them from their respective manufacturers. While not precisely user friendly, such processors feature multiple cores, and the promise of cranking chunks of large images in parallel.

GPUs, in general, are designed for processing images, unlike many DSP chips, while touting incredibly large processor throughputs, are often I/O limited, and have difficulty moving large images around in the system.

Nonetheless, if all you are doing is the basic algorithm development, the main PC platform should be more than adequate, although algorithm development might be slightly easier in Matlab, simply because the environment is designed for easing the debugging of algorithms, and the basic matrix manipulation utilities already exist, and are fully integrated into the GUI.

TTFN

FAQ731-376
Chinese prisoner wins Nobel Peace Prize
 
I like IR's frame grabber idea. You can actually get frame grabbers that just plug into a pc's USB port. Then you plug any camera you have into the frame grabber. That would allow you to grab lots of frames and then you can write your code to work against single frames. After a while you refine your code to do single frames fast. As fast as possible. At which point you can start running it on, say, a directory of frame grabs at realtime speeds.

As for CUDA it appears you haven't read anything about it. It's whole point is easy C coding of any compute intensive task - not just video.

Keith Cress
kcress -
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor