Which camera

I am building an InMoov, and I am looking at the wide variety of available cameras out there, mostly narrowed by having to fit the unit into the available space in the head of the InMoov.

Some questions I have a hard time answering right now and would appreciated any advice...

I seem to have a hard time locating the Hercules Twist cams in the US, so I've been looking at others.

I can see the ease of using a USB (webcam) type camera, but at what resolution?  I guess the higher the better, but I have no idea what an HD cam does to facial recognition or tracking compute times.  How do I make that tradeoff?  There is very little difference in price between a 340x240, 640x480, or a 720 tvl cam nowadays.

I see some are using a RasPi for the cam, but I don't konw how that limits what is supported in MyRobotLab, if there are any limits.  How does using a RasPi front end affect computing requirements for MRL?

How soon will any benefit come from using 2 cameras?  Not trying to rush anything or anyone, but is that soon, months, or years away?

Which lens types and FOV are best for what kind of functions?

Just trying to get a handle around cam selection for now, hoping to spark a discussion on the subject.

TIA,

 

bensonofjohn's picture

I used these for my eyes,

I used these for my eyes, they are okay. Very easy to take apart. Fairly low res though

http://www.ebay.co.uk/itm/USB-50MP-HD-Webcam-Web-Cam-Camera-360-Degree-f...

revwarguy's picture

Yes, I saw those but I

Yes, I saw those but I wondered how far back the necessary electronics goes into that long case.

Don't you love the way they call a 640x480 camera a 50 megapixel cam!  

Anyone know if this be enough resolution for facial recognition?

bensonofjohn's picture

It cetainly works for facial

It cetainly works for facial detection. I'm not sure that facial recognition is working in MRL yet as it needs a lot of training. The electronics don't go far back at all about 4cm's from end of camera to back of board.

kwatters's picture

Any USB cam will do

Basically and USB webcam will do.  I've used the hercules twist hd cameras, honestly.  The things to look for

1. it's easy to tear down  (take the circuit board out ) so it can be inserted into the eye of the inmoov  (you may need to make a custom holder)

2. high resolution / good quality picture.

3. higher FPS  (though this seems to be more a fuction of how fast the computer is that the camera is hooked up to.)

4. I use the fish eye lenses as an addon to the camera.  The hercules didn't have any lense on it 

I shared out the custom camera board holders that I made here :

More Here :   http://www.thingiverse.com/thing:339283

 

revwarguy's picture

Thanks for the response,

Thanks for the response, Kevin.

1. it's easy to tear down  (take the circuit board out ) so it can be inserted into the eye of the inmoov  (you may need to make a custom holder)

What size opening was required for the fisheye lens you used?  It looks like the lens for the one I have is 22.4mm, which seems quite large to me.

2. high resolution / good quality picture.

As good as USB 2.0 can handle, or better?  I don't have a feel for what the OpenCV stuff is looking for.

3. higher FPS  (though this seems to be more a fuction of how fast the computer is that the camera is hooked up to.)

On cameras, it seems like the higher the resolution, the lower the FPS.  Standard VGA TV, or 480tvl is easy to find and cheap, 720tvl is getting common, but not many webcams are much higher res because it doesn't stream as easily, depending on your connection.

4. I use the fish eye lenses as an addon to the camera.  The hercules didn't have any lense on it 

It appears that there is a max distance from the front of the lens to the back of the board - this would be determined by the eye mount geometry.  How deep is the Hercules you used from the front of the fisheye to the back of the eyeball you made?  

I love your use of transparent filament to give it a more eyeball look!

GroG's picture

High FPS and no latency is

High FPS and no latency is King !! ...  easy to say,

but with webcam even if the camera is high FPS, depending on the USB version and computer it can get slow...

I was very impressed with the camera module Mats got working on the RasPi 2 - its not running inside MRL, but I think it supports V4L2 - which I believe OpenCV service or WebCam capture can both use...  

Really nice speed, with speed lots of fun things are possible...  the only down side is its a raspi module, and not nearly as Universal and the Universal Serial Bus cameras...

revwarguy's picture

High FPS and no latency is

High FPS and no latency is King !! ...  easy to say, but with webcam even if the camera is high FPS, depending on the USB version and computer it can get slow.  

Yep.  By high FPS, there seems to be 15, 30, and 60 fps easily available, but the higher FPS is only available at lower res.  I see where Microsoft's home version "Lifecam" meant for facial recognition is just a VGA 1.3megapixel @ 30 fps.  They do have a 30 fps 720 "business" version but it looks a little large.

I was very impressed with the camera module Mats got working on the RasPi 2 - its not running inside MRL, but I think it supports V4L2 - which I believe OpenCV service or WebCam capture can both use...  

This begs a broader question about the desirability of making the computing requirements more distributed in MRL.  For a simple instance, I was thinking of adding a jukebox function - it seems it would be easy and perhaps more simplfied to have a MP3 board with an SD card library hooked up to an arduino so that the MRL service only has to send selection (and perhaps volume control) info to the arduino.  Such a service doesn't sound too bad to write.  This frees up the MRL computer from having to serve an audio stream.

 Likewise, putting at least some of the vision recognition out in a RasPi would free up a lot of cycles, but that seems like a much harder task, but I don't know too much about OpenCV or Linux video (yet). 

Really nice speed, with speed lots of fun things are possible...  the only down side is its a raspi module, and not nearly as Universal and the Universal Serial Bus cameras...

For fun things, it would be cool to hand the InMoov a piece of paper and have it do text-to-speech on it, but just holding and framing the paper to enable a clear character recognition seems non trivial to me. Even with a lower res cam, holding the paper closer would help.  That I do know something about! :) 

revwarguy's picture

Any takers on why a fish eye

Any takers on why a fish eye lens is better or worse for the InMoov application?  How it relates to head movement for FOV?

GroG's picture

Depends on what your doing ..

Depends on what your doing .. but I would say

99.9% of the time a wider angle is better.

most webcams are around 27 degrees field of view..  humans have almost 180 degree field of view...

So if you are interested in emulating human capabilities, with your InMoov ... you would want it to detect or recognize things in the same field of view...  

I would recommend fish eye to widen the pitiful 27 degrees