go_away

Author Topic: (human vision) for robots  (Read 3132 times)

0 Members and 1 Guest are viewing this topic.

Offline benjiTopic starter

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
(human vision) for robots
« on: March 23, 2008, 04:17:13 PM »
how is it possible to make a robot see like humans do...is this called stereovision?
as we have two eyes we can know distance to objects(3d vision)
so in robots,should we do the same? use 2 sensors? would they be two cameras?
or ....???
any ideas or link that explain?

thanks already for any helps
good ol' BeNNy

Offline airman00

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 3,653
  • Helpful? 21
  • narobo.com
Re: (human vision) for robots
« Reply #1 on: March 23, 2008, 05:13:04 PM »
search the forum

its been asked before


and loooky looky what just came out in roborealm
http://www.roborealm.com/help/3D_Viewer.php
Check out the Roboduino, Arduino-compatible board!


Link: http://curiousinventor.com/kits/roboduino

www.Narobo.com

Offline benjiTopic starter

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: (human vision) for robots
« Reply #2 on: March 24, 2008, 12:05:05 PM »
im the kinda person who hates to use ready made stuff, i like to do everything from scratch,,maybe not everything ;D,,
so the goal of this is make to learn,,
so if i want to use this roborealm products then i would like to know how it works,
i just prefet not to,
i was just asking about an algorithm
thats all,,to build stereo vision
good ol' BeNNy

Offline airman00

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 3,653
  • Helpful? 21
  • narobo.com
Re: (human vision) for robots
« Reply #3 on: March 24, 2008, 06:38:18 PM »
im the kinda person who hates to use ready made stuff, i like to do everything from scratch,,maybe not everything ;D,,
so the goal of this is make to learn,,
so if i want to use this roborealm products then i would like to know how it works,
i just prefet not to,
i was just asking about an algorithm
thats all,,to build stereo vision

search the forum , I believe I asked this same question a while ago
Check out the Roboduino, Arduino-compatible board!


Link: http://curiousinventor.com/kits/roboduino

www.Narobo.com

Offline AndrewM

  • Robot Overlord
  • ****
  • Posts: 255
  • Helpful? 0
Re: (human vision) for robots
« Reply #4 on: March 24, 2008, 08:41:36 PM »
Here's a posting on stereovision algorythms (I didn't look to see if they are correct, but judging by the overall conversation they seemed to be):  http://www.societyofrobots.com/robotforum/index.php?topic=1679.0

I couldn't find many posts using the forum search related using simple keywords (47 different phrases meaning the same thing, damn english language.  + internet spelling make search and me not get along).  Anyway, stereovision is only the smallest part of human style 3d vision.  Close one eye and look across the room, does everything in the room appear to be the same distance away?  Now look at a 3d game, or just a TV show on a flat screen.  Again everything appears to have distance and depth.

In 3D game development there are some fairly straight forward algorythms for rendering an object in 3d on the computer screen.  It would be nice if you could just reverse these algorythms to come up with distance from a 2d image, but...  Oh wait, you can.  Only problem is you need to have three things:  1) a way to split up an image into individual objects (see the tutorial on image processing stuff),  2) To know the actual size that a given object is supposed to be and 3) a reference object to use for determining relative sizes and distances off of.  #2 is hard because it requires a decent sized database of information.  #3 is another hard part BUT not really impossible.  Hint:  Human's have a nose to reference off. 

You really need further references as well especially when a single object type can have multiple sizes.  Consider looking in a stand of trees.  If you have the ground of skyline as reference points (vectors moving away) you can pretty easily tell which tree is closest, etc.  Block out those reference points so you only see the trunks and you have to go based off size, but what if the tree in the back is 100 years old and huge, versus the 2 year old trees in the front that are small.  Need those reference vectors.

Add to that shadowing as a means of determing distance and size.  And then image detail, an object closer will have more detail visible than one further away.

Throw all that together, plus a few things I forget after 10PM, and you have human vision.
blog: www.iamwhen.com
Saving the world from humanity one robot at a time.

Offline paulstreats

  • Supreme Robot
  • *****
  • Posts: 1,381
  • Helpful? 21
Re: (human vision) for robots
« Reply #5 on: March 24, 2008, 08:56:18 PM »
There is another way similar to the above to do it.

If you have 2 cameras that are pointed very slightly inwards (so after about 100 miles the vision would cross), you can do it easily.

If you look at how your eyes work, you have a dominant eye. You can work it out cover one of your eyes, and if your view shifts slightly then the one you covered is dominant. Look at an object close to you and do it again, then do the same for a far away object, notice how the amount of shift changes depending on how close the object is.

It can work like this for robot vision, set 1 camera as being dominant then shift the second image towards it. You will still have to extract objects out because individual objects will need different shift amounts to fit (because the cameras are pointed slighlty inwards. So are our own eyes, but not enough that you actually realise it). Because the cameras are pointed slightly inwards you also get different types of edge data which can give extra clues as to what pixels in the image are part of the same object. Its a project that i hope to work on but im a bit snowed under with things at the minute.

Offline AndrewM

  • Robot Overlord
  • ****
  • Posts: 255
  • Helpful? 0
Re: (human vision) for robots
« Reply #6 on: March 24, 2008, 09:41:33 PM »
Now that I am thinking about it more, I wonder what would happen to a persons depth perception if they were born blind in one eye?  Stereovision, as Paul points out, is really just a measure of angles to objects (trig 101).  But everything else that human vision uses for determining distances is a learned concept.  Meaning we learn how big or small an object is, we learn what shadows do what, we learn intuitive vector distances and we learn how detailed an object should be. 

Without the initial stereovision as a guide, would a person have all these other methods of 3d viewing available to them?  Further, could we use stereovision as a guide for a robot to learn all the others?
blog: www.iamwhen.com
Saving the world from humanity one robot at a time.

Offline benjiTopic starter

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: (human vision) for robots
« Reply #7 on: March 25, 2008, 10:13:09 AM »
thnks u guys for the talk

Quote
stereovision is only the smallest part of human style 3d vision.  Close one eye and look across the room, does everything in the room appear to be the same distance away?
No but if i was born with one eye then yea, i wouldnt have depth perception
we can feel depth with one eye cuz we got used to it(when we used two eyes)
thats because we have the ability to learn ,if your robot can learn by itself then it would act the same as us
but if it cant,then you should keep looking with both cameras(robot eyes).

about 3d computer games,,its the same thing,,i myself somtimes get dizzy myself when i play games like duke nukem or doom or quake
,any game that you hold a gun and you walk,dunno why,but this means that the algorithm fails with some people,so the 3d they make isnt really 3d , its an illusion that some minds believe and others dont.

i didnt know that the nose is a reference in vision,, nice info...
now i guess when we make such a bot that sees with 2 eyes we should make it a nice nose,, ;D
,a long one would be a clear reference ;D .

anyways, firstival i want to get away from shadowing and colors,
i just want to build 3d objects in a 3d world(that would be including sizes)
i mean whats the apropriate way to position your cameras so you can get good view
,any good cams for that?
how do i show this 3d image? is there a software that u input 2 images to and it outputs a 3d one?
good ol' BeNNy

Offline benjiTopic starter

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: (human vision) for robots
« Reply #8 on: March 25, 2008, 10:14:38 AM »
and thanks for the links,, some good info out there, i suck a little in searching the forum ;D
good ol' BeNNy

Offline Ro-Bot-X

  • Contest Winner
  • Supreme Robot
  • ****
  • Posts: 1,431
  • Helpful? 25
  • Store: RoBotXDesigns.ca
Re: (human vision) for robots
« Reply #9 on: March 25, 2008, 03:25:45 PM »
You guys forget about focus. Our eyes will focus on the object of interest, the objects behind it will be a little blurred (the more distance away, the more blur). With 2 eyes focusing on the same object, the blur is even more visible.

There are cameras that can focus using lenses, they can give information of the depth or distance to the object of interest. Think of camcorders. Maybe using 2 camcorders cameras that would be able to focus at the same time on the same object would make the depth perception closer to ours.
Check out the uBotino robot controller!

Offline benjiTopic starter

  • Supreme Robot
  • *****
  • Posts: 832
  • Helpful? 0
Re: (human vision) for robots
« Reply #10 on: March 25, 2008, 04:13:08 PM »
we focus (humans) because we have lets say vision sensors in the middle area of the eye
so we see better when we focus,,

i guess cameras dont have a problem with that, unless it depends on the way the camera builds the image

would objects in the center image of the camera be more obvious? i dont think so
good ol' BeNNy

Offline Admin

  • Administrator
  • Supreme Robot
  • *****
  • Posts: 11,658
  • Helpful? 169
    • Society of Robots
Re: (human vision) for robots
« Reply #11 on: March 30, 2008, 11:10:08 AM »
Humans don't just uses cross-eyed angles to judge distance.

We also use experience/knowledge of the world -> houses/cars are a certain size, converging lines, horizon, textures, shadows, the list goes on.

I roughly explain some of it here:
http://www.societyofrobots.com/programming_computer_vision_tutorial_pt1.shtml

 


Get Your Ad Here