seeking (low cost) HW + SW system for image pixel analysis

I am looking for this, and here are some comments I made in another group a bout the arduino camera, to give you the flavor of the search:

Nobody ever bothers to do it that way. They buy one of a certain handful > > of models of webcam and hack them to do what is needed. > > > >
formatting link
>

Yes, they do that, and I am hoping someone on that yahoo group will have do ne what I want to do. Here is a comment on the arduino camera mentioned abo ve. The Good, Bad, and Ugly. First, it is a low cost way of getting an imag e under computer control. And for the nuts-and-bolts builder, you have a Re al Time video of what the image sensor sees. (after that, you can put it in to snap shot mode.) How useful is that! Now the bad: A snap shot with this board requires a SD card on the arduino. The pic is loaded onto the card, and then must be transferred to the PC - taking 30 seconds or more. (The video described above is via direct NTSC ou tput.) And what the PC sees is a jpg. The Ugly: There is no evident way to do a RT-ish pixel programming with thi s thing. It doesn't look like the image is accessible in any memory image s o that some C code can do segmentation and other tricks of simple image ana lysis. Further, it seems that the arduino uses something called "sketches." Is there a C compiler which can access the image? Dunno, but doesn't look good. Finally, it would be nice to have access of the pixel train as it iss ues from the chip. This is a "nice to have," so no big deal.

So you see, my requirements are more stringent than creating nice astronomy pictures. BUT - it could be that the software is available somewhere, or t hat the image is somehow available on the arduino for processing there.

A computer image capture device without software access to the pixels is li ke a car without a steering wheel that stays parked in the driveway. It's b asically just a computer-controlled camera. Getting back to the Jupiter pic ture example, what I want is an image of Jupiter AND a way to scan it for e vents automatically, programmed by me.

Nevertheless, the pointers are very valuable, particularly the astronomy gr oup. I think it likely that somebody there has done image analysis from an imaging chip. Plus signal enhancement.

I got into the image software by doing OCR programming of documents like fe dex trucking forms. I used neural nets for the character recognition, and o ther approaches for alignment, etc. This current project is actually much e asier.

any ideas welcome. JB

Reply to
haiticare2011
Loading thread data ...

After pinging around about this, I settled on a Raspberry Pi with a camera card. The Pi is credit card size, and the camera card is about an inch square. At least on paper, I haven't found anything wrong with this setup.

Advantages include:

  1. The 5 mp camera is connected to the board by a fast parallel bus. It will transfer video at 30 fps and 30 stills per sec.

  1. The board has 512 mb to store the images.

  2. The 700 mhz ARM processor runs Linux.

  1. There is a graphics library for image analysis, OpenCV, on Linux.

  2. The board has wifi for internet, usb, HDMI for monitor.

  1. I think a usb HD would connect. A usb hub can accomodate kbd and ouse.

  2. Of course, GPIO pins are there for control of circuits. ADC, DAC can be added.

  1. Right now the cost US is 0 for Pi + cam. China is already lowering that by

20%.

  1. The camera can sense NIR if a filter is removed.

That's about it. JB

Reply to
haiticare2011

The board has 512MB system memory *total*, there's memory consumed by running Linux, your apps, and part of it is reserved and used by the GPU.

You may wish to find somewhere to offload the images to. The SD card you boot from (that holds the Linux OS/files/swap space) can be Gigabytes large, so that's one answer, or you could force them over a wired/wireless network to another computer.

Not built in, you need to add a USB WIFI dongle, and you may need a powered hub for it to work, current on the USB ports is limited.

There are two versions of the camera, the regular one, and the "NOIR" model, which has the filter factory not-fitted :)

--
--------------------------------------+------------------------------------ 
Mike Brown: mjb[-at-]signal11.org.uk  |    http://www.signal11.org.uk 
 Click to see the full signature
Reply to
Mike

The main negative I have learned about this system is they throw away 2/3 of the pixel information to massage the image for a pleasant look and feel.

Reply to
haiticare2011

On a sunny day (Fri, 7 Mar 2014 03:54:00 -0800 (PST)) it happened snipped-for-privacy@gmail.com wrote in :

Not only that, there are severe throughput restrictions on the USB, to the point you cannot use a USB keyboard without it dropping characters all the time, useless. So I use it with ssh -y pi@SOMEWHERE_IP via ethernet from an other PC. If you lookup (google) the Raspi and USB problems you will find more about it. I am not against Raspi, on the contrary, I have one in use all day as PIC programmer and development system. and other one to control a big LED matrix display, or play HD (720 progressive) movies of the teevee via the HDMI. As a camera I tried my ethernet webcams on it, and it works, but then again processing power is limited. But then, for the same price as that Raspi camera you have pan and tilt and adjustable focus, and IR and sound. Not HD though.. But seriously you need a real camera for that, I would not even dream of doing real time image procssing on the Pi, but if someone can do ii hope he/she will let us know.

I dunno about that, but it likely is yuv and not RGB. Bandwidth problem.

Reply to
Jan Panteltje

hmmm mmm mmm mmm

I guess you know the Camera they sell does not use the USB, but a parallel bus? My needs are not full RT, and if I were to do RT, with my state of knowledge and skill, I might try to catch the bit train on the fly - to do RT processing you would need the whole image in memory, and with this technology, that is not RT by definition. For my needs, just being able to move around the image in memory is enough.

BUT...I am always looking for cheaper, simpler solutions. There are several things I can't get enough of. They are control of camera exposure, bit depth of pixels mainly. If you have any interestig solutions, let me know, and I'll be grateful.

The Pi camera can get 3000x2000 (dont hold me to that number) snapshots 30 fps, and stick them in memory. I am concerned thy step on the bits, but for the money,I've not seen anything as good. - limited survey of course.

For example, I'd like to get a system which uses an Atmel mcu or similar to control a camera board. Alberto Ricci Bitti had a nice design that used an omivision board, but it was done in 2006, and the board is now a bit scarce.

Any ideas welcome. jb

Reply to
haiticare2011

On a sunny day (Fri, 7 Mar 2014 12:04:00 -0800 (PST)) it happened snipped-for-privacy@gmail.com wrote in :

Yes, my comment was on the USB deficiencies I encountered. USB seems to work OK with a USB to serial adaptor at 19200 Bd though. A E2500 Logitech USB webcam worked (low res) but could hardly get 1 fps. Could be a driver problem too, they keep changing (Linux) video stuff.

Yes that camera is on the par bus, and yes it is HD, and YES it is a propriety driver.

None of my USB webcams works right on Raspi (if at all). I have a USB digitizer that does not work right with this kernel driver version, else I could run some analog PAL cams.

The only thing that actually workeed is this on the ethernet connection:

formatting link
That driver has support for the cheap Chinese pan tilt IR webcams now too.

It can stream YUV, add on screen time, motion detection, wrote it years ago. If you can write C code you could use it as a basis, as it [the software] is 100% pixel oriented, but I dunno what you want to do and can do. Maybe you can grab in the same way from memory with that Raspi cam, but I did not like the fixed focus (impossible to get close), flimsy mechanical (or absence of mechanical) system, and propriety code. mcamp is open source and does not use any 'driver', just uses the camera jpeg output stream (that I hacked), so it uses libjpeg. If jpeg compression is already decreasing perfoprmance for your applicatoon that it is a nono, then why not just buy a decent sensor chip and make your own camera? Nothing magical about it, those chips are usually i2c or so interfaced.

What is 'step on the bits?'

I have problems with a reality check here, if that camera does 30 fps at 3000x2000 RGB that makes 30*3000*2000*3 = 540,000,000 bytes per second

540 MB memory needed for 1 (_ONE_) frame and a 1 GHz processor, of course that camera does not do that, At the best it (the propriety driver) does jpeg compression too, and uses YUV, and divide pixels by 3 so MAYBE 1000x2000 encoded YUV. so now you payed for? And then real time processing, well to get an idea a dual core many GHz has problems with that with a normal frame size, and then waht do you want to to in 1/30 second? Nothing complicated I hope. But like i said: If somebody does it I hope they release code, I am curious.

Did I goof on the math?

Reply to
Jan Panteltje

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.