Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

FPGA/DSP/Video interface/Camera link

Hi,

 

Many thanks for your time.

 

I'm looking for a board to pre-process the video signal from camera.

 

The followings are the features of the camera I will use:

-- The camera is of RGB type and has three separate CCD sensors.

-- The interface of 3CCD camera is can be Camera link, GigE, 1394 or analog RGB (three channels), it depends on which kind of development board I can use.

-- The frame rate of this camera is about 30f/s, and resolution about 1024*768, 8/10bit.

 

The followings are the features of the board I am looking for:

-- Proper interface to receive data from 3CCD camera. Camera Link will be best.

-- FPGA or combination of FPGA and DSP. Combination of boards, e.g., a DSP kit and a plug-in FPGA board can also work.

-- Big memory and high performance.

-- Proper interface to transmit the processing result to PC: Ethernet or USB or… But not PCI or PCI express.

 

I didn’t find a board with Camera link interface. And I am a litter confused by the interface and format of camera.

-- What is the difference between composite and VGA?

--Does RGB output mean 3 analog channels corresponding to R/G/B, and each channel has the same format with black-white camera video output and has sync information included in each channel?

--What kind of chip do I need to transform RGB output to raw data that FPGA can process?

 

In my application, about 30 images will be received per second and I want to use 30 images to produce an averaged image. After 30 images add together and form one image, the board transmits it to computer online. Any suggestions?

 

I really appreciate your help.

 

Danny

0 Kudos
Message 1 of 5
(4,695 Views)

This sounds like a fairly simple application, and FPGA sounds like overkill to me.  I am pretty sure the entire application could be done in real time using a standard PC, unless you have a whole lot of processing to do on that final image.

 

Adding together 30 images shouldn't take too long if it is done right and done progressively as the images are acquired.

 

If you really really want to do this on an FPGA, it is going to be expensive.  I could see doing it on an integrated cRIO chassis fairly easily.  The FPGA would handle the addition of the images as they were acquired, and the RT side would read the image and send it back to a PC.  The only problem is the camera interface, because I don't know of any camera interface front ends available for the cRIO.

 

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 2 of 5
(4,686 Views)

Many thanks for your response.

 

In general, frame grabber is used to acquire the images from camera and transmit data to PC through PCI or PCI express interface. But I didn't find a frame grabber that could be used for signal processing even very simple algorithms. Since the amout of data is enormous(1024*768*30*3*10bit=700Mbit/s), PC can not realize real-time processing with so big data. So I am trying to find a board with proper input(such as Camera Link) and output interfaces(Ethernet or USB or 1394..) to achieve averaging function and transmit the averaged result(amount of data is reduced from 700Mbit/s to 2.3Mbit/s) to PC, so that PC could possibly implement other algorithms online. 

 

In a word, the basic functions of the board include capturing the data from camera, averaging the images, transmiting the averaged image to PC for further processing. After that, I will try to implement all algorithms  on FPGA and DSP of board at the expense of time.

 

Danny

0 Kudos
Message 3 of 5
(4,672 Views)

Hi Danny,

 

Hi have to agree with Bruce that it is likely you would be able to do the averaging in-software without too much of a performance drag. As long as you did it in-line as each image comes in, you should have no issues keeping up with that rate. Since you'd only be doing further processing on 1/30th of the total images, unless you have a very intensive algorithm you would likely have plenty of CPU time available (just be sure to make sure of a large enough numbers of buffers to allow you to catch back up after processing your averaged image).

 

Another option I might recommend would be looking at cameras with on-board averaging. Basler's GigE Vision Pilot series recently added the feature and it is super easy to use. You just tell it how many images to average and it does it on-camera and sends you the averaged frames instead of the individual ones. This would give you the end effect of not having to process anything but the averaged frames.

 

Eric

0 Kudos
Message 4 of 5
(4,665 Views)

It seems like any dual core PC could handle this.  One core would do all the summing, and the other core would handle the UI and other processing.  If you are paranoid, get a quad core.

 

I don't think I would even do any division.  I would just add up all the 10 bit images.  Since each color is represented by 16 bits, it should be able to handle 30 images without overflow.  Division would just eliminate some of the lower bits.

 

The camera with built in averaging sounds like a great solution also.

 

Bruce

Bruce Ammons
Ammons Engineering
Message 5 of 5
(4,660 Views)