Slashdot Mirror


Intel Releases Open-Source Stereoscopic Software

Eslyjah writes "Intel has released a software library that allows computers to "see" in 3D. The library is available for Windows and Linux, under a BSDish license. Possible early applications include lipreading input. Check out the CNN Story, Intel Press Release, and project home page."

39 of 129 comments (clear)

  1. ANother feeble attempt.. by Axe · · Score: 2, Interesting
    Another feeble Intel's attempt to drive up the demand for CPU power..Remember speach recognition?

    Nobody needs it. Nobody. Those who do - will write their own stuff..

    --
    <^>_<(ô ô)>_<^>
    1. Re:ANother feeble attempt.. by Restil · · Score: 2

      Ahh... but this is a FAR more useful attempt than simply encouraging website operators to include cpu intensive java applets on their webpages to create the illusion that older computers are too slow to handle "today's tough demanding applications" like web browsing.

      -Restil

      --
      Play with my webcams and lights here
    2. Re:ANother feeble attempt.. by zenyu · · Score: 2, Interesting

      Umm, no.

      I've been using this library the last couple years, and it reduces CPU demand. I was doing pupil tracking using it only for image capture, and I needed two PIII-860Mhz with 400Mhz RAMBUS memory. Using it for some of the basic image processing reduced demand so it almost ran on a single Athelon, I think the memory was too slow on those boxen, but I left the project at that point. Fast enough was 30 fps, and it was difficult even with the library. (We needed the 3D position of the eyes reliably at video rates for a stereo display and didn't want the user to have to wear anything.)

      They have pretty decent MMX algorithms which work out of the box. I'd have to say those that do write in C unless they absolutely can't avoid it. I was happy to squeeze an extra two cycles out of the inner loop of my MMX code, but I'd really rather have Intel do it since it's not the core of my work.

      Computers are slow and always will be, I'm a graphics person so 6 hours to render a frame is really slow, to real vision people processing an image for depth overnight is fast. We invent ways to use the CPU much well ahead of Moore's law. In another 50 years we'll be able to emulate dog vision! maybe... just run it overnight ;)

      (I'm speaking of the general library, this press release is just another algorithm added. They basically add common algorithms to the library, slowly.)

  2. I'd better unplug my computer at night by javaaddikt · · Score: 3, Funny

    Being able to see all those lusty ladies in 3d, it might use too much bandwidth downloading pr0n.

  3. When is a link not a link... by chinton · · Score: 4, Informative

    When it is missing the leading "<"! Try this

  4. Bad link by Squigley · · Score: 2, Informative

    Try the CNN story here.

  5. Didn't they see 2001? by wickidpisa · · Score: 5, Funny

    Possible early applications include lipreading input.

    Didn't we learn anything from 2001? You would think that people wouldn't be so eager to teach computers to read lips.

    1. Re:Didn't they see 2001? by mmol_6453 · · Score: 2, Funny

      And vise versa. Have you ever turned off the sound to The Matrix and tried to read the agent's lips when he's questioning Morpheus?

      To mimic him, just let your lips set together and barely move them when you talk. Don't worry about being intelligible. (I'm pretty sure they voiced over in that scene.)

      --
      What's this Submit thingy do?
  6. Re:Usefulness? by mindstrm · · Score: 4, Interesting

    Very useful; especially being somewhat open.

    Sure, it might sound a bit far fetched.
    But.. a computer being able to actually construct something in 3 dimensions instead of simply a colorfield has *huge* implications with regards to image recognition.. it really does.

    Take a single image of, say, a user's hands, for gesture recognition. How do you recognize the hands from the background? Color.... heuristics.. and what not.

    But now.. it's simple. It's the stuff that's close to you! It's a completely different way to look at things.

  7. Stereoscopic imaging by JMZero · · Score: 2, Funny

    I can never see the pictures, except sometimes when there's glass in front.

    -

    --
    Let's not stir that bag of worms...
  8. Not 3D Rendering, 3D Viewing by adamy · · Score: 5, Informative

    This is not for rendering in 3d, but for allowing a machine to build a 3d model (internally) of the environment it uses. I assume it is based on the same sort of binocular mechanism as animal eyes, but the algorithms to build the internal structure are probably pretty advanced.

    A cool application (I haven't seen if they've done this yet) is rendering in Open GL the internal view of what the robot eyes see. It would allow you to walk through a building, and then have a 3D model for various other uses. Reverse engineering blueprints.

    THis would be great technology to have on any mars lander, or even just to analyze the data sent back.

    --
    Open Source Identity Management: FreeIPA.org
    1. Re:Not 3D Rendering, 3D Viewing by foobar104 · · Score: 2

      A cool application (I haven't seen if they've done this yet) is rendering in Open GL the internal view of what the robot eyes see. It would allow you to walk through a building, and then have a 3D model for various other uses.

      There are some commercial apps (I'm thinking of something from RealViz, but I can't remember the name) that do something like this-- generating 3D models out of a number of photos of an object-- but they require a user to set a number of control points before processing. The number of control points required ranges from the tiresome through the annoying all the way up to the silly.

      Doing it automatically (or at least semi-automatically) would be a pretty serious upgrade to that software.

  9. Re:Usefulness? by texchanchan · · Score: 2, Interesting

    How about better control for computerized surgery and other medical procedures?

    Mapping, and lots of different kinds of aerial/satellite photo analysis. You don't have to be looking directly at something to see a 3D view of it--you can look at stereo images--and so could a computer. Examples at Lunar and Planetary Institute: 3D Mars images.

    Eventually, autopilots for cars.

  10. The first application... by digitalhermit · · Score: 2, Funny

    ...will be a terminator device. Hook this library up to stepper controlled aiming device and your burglar alarm can now be lethal. Imagine the possibilities -- your nosey relatives walk into your workshop and four .30 cal machine gun replicas suddenly swing into position, targeting said relative... As they walk, they're tracked. Perhaps mount a camera and superimpose terminator-like vision crosshairs on them...

  11. Application Idea by Rick+the+Red · · Score: 3, Interesting
    If anyone has the time to develop this, I'd love a program that takes the inputs from two cheap (affordable) webcams mounted on a board (say, 6" or so apart) and digitizes what it sees as 3D files.

    What's the use? Well, besides the obvious uses in architecture, etc., how about being able to play (insert favorite 1st person shooter game here) in your house?

    Geeze, now that I think about it, maybe this isn't such a good idea. What would JonKatz think?

    --
    If all this should have a reason, we would be the last to know.
    1. Re:Application Idea by gazbo · · Score: 2, Funny

      JonKatz wouldn't be interested - he's seen it all before.

      His friend Junis in Afghanistan has had this system running for years on his C64.

  12. Here's some cool uses for 3D computer vision by eyefish · · Score: 4, Interesting

    Too bad /.'ers here (at least the first 18 posts) don't see the benefits of this.

    How about a way to have a PC recognize the position of your fingers and hands. You could use this to manipulate shapes in 3D in a 3D rendering and animation program WITHOUT SPECIAL GLOVES. You'd simply gesture into something like 3DStudioMax, Lightwave, or Caligari TrueSpace and create shapes by molding them with your fingers.

    Or wouldn't it be cool to develop a "hand gesture API" which you could use to say play a karate game??? Think about a 3D Bruce Lee in front of you kicking, and you moving your OWN hands in front of the monitor to block it (and if you wear those cool 3D shutter glasses now common on graphics cards you will essentially have a low-budget VR system).

    Or how about a driving game where you use no driving wheel but rather simply move your hands IN THE AIR. The game could be smart enough to recognize when you shift your hands away from an invissible steering wheel to grab an invissible gear stick on your side.

    Or how about a tool to allow people like Stephen Hawkins gesture expressions and small movements in the air and have the computer react to these actions (like moving a wheelchair around, turning lights on and off, calling on the phone, changing TV channels, etc).

    Think about the possibilities!!!

    1. Re:Here's some cool uses for 3D computer vision by killthiskid · · Score: 3, Interesting

      I know... how about a mouse... with out the mouse? Just use a web cam (or two) mounted to look down at a 'mouse pad' (some color that contrasts with the color of you hands), and then have it track the motion of your hands.

      What about mouse clicks???

      Tap of the finger?

      Hmm, interesting concept anyway.

      I'd like to use this to analyze pictures taken from a model airplane to create 3d plots of the ground contour!

  13. Re:This is why I will always support Intel by bucky0 · · Score: 2, Insightful

    "While AMD processors may be slightly cheaper and run legacy x86 programs more quickly, SSE-optimised code compiled with Intel's compiler completely creams even the new Athlon XP "1900". Intel doesn't need to make up marketing numbers in order to make their processors look faster than they actually are"

    I have a few issues with what you said. 1)The fact that intel had to release a compiler specially designed to work with it's processor to get it to get all the perfomance out of it is goofy, I can probably bet that if AMD wanted to, they could release an AMD optimised compiler and do the same thing. Also, to get the performance out of that compiler you would have to recompile everything to use it(or wait for your closed-source software makers to provide you witha build) 2) The marketing numbers are made by benchmarking intel processors and AMD processors. The AMD marketing number is the approx. clock speed of a comprable intel processor. If anything, you should flame intel for making their instruction pipeline hideously long to get their processors to ramp up to high clock speeds(sacrificing performance at the same time).

    "Our web server used to run on a 1.4GHz Thunderbird, which was cheap but notoriously unstable" The processor probably wasnt unstable, I have a similar system without problems, it's probably another part of your system. Processors either work or they dont you can't have a half-broken processor

    "And when the fan blew out a month ago, the whole computer was taken with it!"
    Why would you use a cheap fan in a webserver for a buisness? Why didnt you use monitoring software to automagically shut the system down when the fan went out?(and I know about the video...that's a different situation, in the Tom video, they took the heatsink off, with the heatsink on, there should be enough time to shut it down.

    --

    -Bucky
  14. Sounds like CMU by quinto2000 · · Score: 2, Insightful

    Sounds like a project being worked on by Carnegie Mellon University researchers. I know CMU has a close relationship with Intel. Anyone know any more about the connection to this research?

    --
    Ceci n'est pas un post
  15. Re:Usefulness? by foobar104 · · Score: 4, Interesting

    I honestly cannot think of any other logical uses for this library.

    One word: mensuration.

    Read that again. It's not a typo. Mensuration (which generally means the act or process of measuring) specifically means figuring out how tall buildings or features are from satellite photographs. Traditionally it involves calculating heights trigonometrically based on the time of day, latitude, and angle of lens inclination from which the photograph was taken, using shadows as points of reference.

    This is not a research project. It's a very practical process, with tons of applications in the commercial world.

    My point is that there are a lot of image analysis techniques that you've probably never heard of before. Don't mistake a lack of experience on your part for a lack of usefulness on theirs.

  16. Re:Why? by foobar104 · · Score: 2

    Why would we want or need computers to 'see' in 3d? Sure, if might be of an advantage to people who need their computer to read their lips. All in all, though, it is of very little use.

    Oh, you small-minded moron. See my post elsewhere in the thread about mensuration. There is more image processing going on in the scientific, commercial, and government worlds than you realize.

  17. Intel pushing the processor curve.... by orn · · Score: 2, Insightful


    This is pretty neat, but reminds me of something from a few years ago.

    I interviewed with Intel and during the interview they said in no uncertain terms that they were actively trying to keep people upgrading their systems, and hence keep the dollars rolling in. At the time, the interviewer said that the technique was largely by helping Micro$oft to keep new OSs coming that required more and more horsepower to run properly.

    This is very cool in its own right (or could be, I haven't looked at it completely), but strikes me as another way they can push that curve...

    --
    1. 2.
  18. Great! by mr100percent · · Score: 2

    This is great!

    Now the field of Stereoscopic software (I know, I never even thought it existed) could open up thanks to the pushing of a sorta-powerful company.

    Hey, at least we'll see an open standard file format.

  19. What I've been wanting forever by mo · · Score: 2, Interesting

    In my windowmanager I want to switch from click to focus to 'focus follows eyeballs'. I don't even think you need stereoscopic code to handle it. It seems possible, I just don't know how to do it.

  20. Re:Usefulness? by t · · Score: 2, Informative

    I've heard this called Photogrammetry .
    ... from the Third Edition of the Manual of Photogrammetry, is somewhat simpler in statement and that definition of photogrammetry is, the science or art of obtaining reliable measurements by means of photographs.
    t.

  21. Silent voice control by Mike_L · · Score: 2, Insightful

    Voice recognition is the next major advancement in computer user interfaces. Lip reading will increase the accuracy of voice recognition software. It is exciting that Intel is furthering the field of cybernetics.

    I look forward to the day when I can dictate to my PC by just mouthing the words. Voice recognition and touchscreens will save the office worker from Repetetive Stress Injury and Carpal Tunnel Syndrome. Lipreading will make voice recognition practical for large offices and many other areas.

    -Mike_L

  22. Real robots in RobotWars! by T.Hobbes · · Score: 2

    Given that Intel wants this to be availible at a consumer level in the near future, why couldn't people create robots with the ability to map terrain in front of them.. hmm...

  23. Oh No! I'd hate a lipreading computer... by lww · · Score: 2, Funny

    You see, I'm a mumbler. That's right, I talk to my machines all day long...coaxing, cajoling, cursing, crowing...I do it all.

    I'd hate for my corporate desktop to be recording everything I'd say for the posterity of HR - like my emails are today.

    Even worse, imagine if my machine decided to take all of that personally...*shudder*

  24. Good, but not new. by cosyne · · Score: 4, Insightful

    While i have to say that Intel's OpenCV library rocks (for a number of reasons), stereoscopic vision is nothing new. The cnn article is more or less crap ("Until today, computer vision applications has been restricted to two dimensions
    "? nice try...) It's mishmash of reporter hype and stock text which describes computer vision in general ("Over the next 5 to 10 years, Intel Corp. expects computer vision to play a significant role in simplifying the interaction between users and computers"). The Sussex Computer Vision Teach Files page has a reasonable description of stereoscopic vision from 1994. Lip reading is not really a 3D problem, so stereoscopic capabilites aren't going to help much. Many of the other uses- 3D environment modeling, object modeling and recognition, etc, are being worked on (again, the algorithms aren't new, this is just a new open source implentation) but they're not easy.

    I don't mean to sound pessimistic, though. OpenCV is really cool, both as a corporate contribution to open source, and as a programming library even if you never look at the code. And the Matlab interface means fewer MSVC++ sessions which end with me feeling homicidal ;-) The inclusion of stereo vision will be cool for people trying to write vision applications, but it's not advancing the state of the art.

  25. Its not that complicated, kids. by Bowie+J.+Poag · · Score: 5, Interesting



    Here's how you do make stereoscopic images with a digital camera:

    Take a picture like you normally would, but be mindful of the position and angle of your camera.

    2) Snap a picture.

    3) If the subject you're photographing is close to you, take a small step to the right. If the subject is far away, take a large step to the right.

    4) Aim your camera at the subject and photograph it again.

    5) Pull up both images in the photo editor of your choice.

    6) Arrange the photos side by side. The first image you took should be on the left, the second image you took should be on the right.

    7) Sit directly infront of your monitor, and blur your eyes. If you cant blur them, try crossing them slightly. Try to focus on "the picture in the middle". If you still cant do it, hold up a pencil (eraser-side up) exactly halfway between your eyeball and the screen. Focus on the eraser. The image on the screen should pop out at you in stereoscopic 3D.

    For some good examples of a stereoscopic images I took, go here. Try the picture of the steering wheel first...Its really easy. You'll also see a number of stereo photos of Tumacoccori, an 18th century Spanish mission that got the shit beat out of it by native americans. You'll also find another picture thats rather interesting---It's a downward view of a deactivated nuclear missile still in the silo at the Titan Missile Museum outside of Tucson. The view extends about 20 floors below ground. If I were to have taken this photo in 1981 versus 2001, I would have been shot on sight. :)

    Cheers,

    --
    Bowie J. Poag

  26. Point Grey Research has something similar by Animats · · Score: 2
    Point Grey Research has been offering something similar for a few years now. Even runs on Linux. It's not free, but it has a track record. There's a downloadable demo.

    Point Grey likes to use three-camera systems, with the cameras arranged in a triangle. This eliminates most ambiguities found with two-camera systems.

    Algorithms to do this have been around for years, but only in the last few years has it become possible to do it in real time on commodity processors. Hans Moravec was the first, almost 30 years ago, back when it took him 20 minutes of mainframe time to process a stereo image. Point Grey was selling a DSP-based solution a few years ago. Now you can do it on consumer hardware.

    Mobile robots should be getting much better shortly. Systems based on Polaroid sonars have the resolution of probing the world with the big end of a broom. Laser rangefinders cost way too much and have moving parts. Millimeter wave radar is complicated to use as an imager (although it opens most supermarket doors in the developed world.) Affordable, fast vision is finally here.

  27. Finally! I can build my Nerf Sentry Gun! by func · · Score: 2, Funny

    Yeah, a couple of web cams for target acquisition and tracking, two torquey servoes to aim the Nerf blaster, one more to pull the trigger, this software to track the perps, and whammo! I could even calculate trajectories for the nerf darts (within their uncertanty, which is large), and give the target a few seconds to yell out the password in case they don't want to get shot. Very cool. Automatic cubicle defense systems - I could make a fortune here!

  28. Re:Usefulness? by foobar104 · · Score: 2

    I'm being a pedantic bastard, but according to webster it doesn't specifically mean that. Where are you getting your definition from?

    From some remote sensing guys that I work with. I don't pretend to have all the jargon right, but I'm pretty sure about this one.

  29. not that groundbreaking by robbo · · Score: 2, Insightful
    Stereo vision algorithms have been around for years, and I suspect that OpenCV implements some of the more common published methods. We understand the image formation process pretty well now and working with a calibrated stereo head is easy. Taken one step further, improvements in automatic camera calibration and cpu speed have led to nearly real-time 3d reconstruction from a monocular video stream (where the camera is moving through the scene).

    Actually, IMHO, pure monocular vision is a more interesting (and challenging) problem-- it's pretty clear that human stereo vision is an exercise in redundancy, since we can do pretty well with one eye closed, not to mention the fact that we perceive all kinds of 3d structure in 2d contexts (like your favourite pr0n- umm, quake screenshot ;-). The fundamental question is how do we interpret 2d images into 3d models (or whatever representation we use in our heads)? This a distinctly different (and more difficult) problem from building a 3d model from a motion sequence or stereo pair.

    --
    So long, and thanks for all the Phish
  30. Computer perception by grmoc · · Score: 2, Insightful

    Stereoscopic vision is a very VERY useful thing for all things which percieve their environment through visual apparatus.

    Huh? What do you mean? Well, close one eye (or put an eyepatch on) and look at your flat world. How far away is that streetlight? Hmm. How tall is that man? Hmm..

    Of course, we as people are much MUCH MUCH better at percieving (interpreting) our visual environment than computers are. Humans generally have little trouble correctively percieving things such even through partial occlusions, changes in scale, orientation, distortion (glasses might make you able to see, but straight lines become anything but..) and changes in intensity and color.

    Being able to get 3d information about objects aids greatly in interpreting what they are.
    An image (2d) of a hand is (almost always) full of occlusions. These occlusions are diffucult to interpret in 2d because the edges in 2d have less differentiation than a depth-map would. (The distance metric is less ambigious!)

    Wouldn't you like your computer to interact with you as if it was (a very obedient) human? This helps.

  31. cool! by 3-State+Bit · · Score: 2

    Intel did this in response to my post here[1] (on April 26th of last year!), in which I outlined just this kind of program, but mentioned "All this is very processor-intensive, but so far it's very straight-forward." So, of course, Intel releases it openly. :)))

    [1]
    http://slashdot.org/comments.pl?sid=11896&cid=26 32 31

  32. useful for visual effects work by edo-01 · · Score: 2, Interesting
    One of the big headaches in visual effects is integrating CGI objects into a plate with live actors. The only two ways really used are blue/green screening to get a matte, or if a blue/green screen wasn't available or practical (or if the onset crew just *fucked up* - they either light it wrong or they put it in the wrong place and the onset VFX supervisor is at the catering table eating doughnuts when they shoot that scene or any number of other blunders) ... and rotoscoping which is a fancy word for tracing around an actor or part of set - frame by damn frame. Extra fun when you have to roto around an actor with wispy hair...

    The other big headache is tracking a camera move. You basically feed the footage into a camera tracking program and define tracking points in the image; features in the frame which the computer follows as they move - the software uses a lot of maths to work out where in 3D space these 2D points are and creates a CG camera in your 3D app to match the move, you usually then have to build a rough proxy version of the set in 3D to go with it (unless the production has the bucks to spend and they get a LIDAR scan of the set). THEN you get to finally start putting in your 3D elements, that is if you haven't shat yourself and run out of the building screaming after a week or so of staring at the same bloody footage 10-12 hours a day...

    Ahem... anyway - where this new system could come in useful is using depth perception to generate a z-buffer, which would allow the computer to isolate foreground and background objects - no need to blue screen you can just point and click an actor to get a matte. Tracking would be made easy(er, anyway) as you have an actual 3D plate to work with, feed it to one of those programs that can auto-model 3D geometry from photos and you get your proxy set for free too...

    Big blue screen shoots are tough on actors, just ask anyone that worked on one of the new star wars movies. They have to spend hours waiting for the screens to be set-up and lit, and the choreography of shooting a scene with a digital character is painful to learn, not to mention the hassles and expense of shooting with a motion control camera. Not only would a system like this speed up production but presumably with a real-time z-buffer being generated the cast and crew could interact with lo-res versions of the CG characters in real-time on monitors to get a better feel of what they are doing.

    In fact as a wider application, once we all have depth-percieving videophones you could matte in any image behind yourself you want - great for phoning in sick from the beach :)

  33. TINA - Open Source Machine Vision Libraries by WebfishUK · · Score: 2, Informative

    The Intel computer vision library is not the only such resource available. The TINA machine vision system has been developed since 1986 and provides functionality for the machine vision researcher at both the infrastructure level (datastructures and functions for an enormous range of mathematical, statistical and image processing tasks) as well as state-of-the-art solutions to many machine vision problems. These include low-level feature extraction, robust primitive fitting, object tracking, 2D object recognition and 3D object location. Indeed the stereoscopic subsystems in TINA (PMF, Stretch Correlation) have been viewed for many years as the standard for edge based stereo. TINA is almost unique as a resource and living archive of over 70 man years of research and over 200 peer reviewed publications in machine vision and medical image analysis. Functionality in TINA has practical utility in several industrial contexts.
    For the past 5 years TINA has been provided as open source under an LGPL license and development is now based at the University of Manchester, UK.

    Whilst I am very pleased that Intel recognise the importance of machine vision research and can only commend them on their open source approach I have some reservations regarding the use of OpenCV by the research community at large. Certainly their motives are business orientated (and one cannot argue with this). Therefore, however, the contents of their library are ultimately dictated by what Intel want not necessarily what the research community might need or indeed what is even possible (such as dense estimates of stereo).

    Open Source software is vital in research disciplines where there is a significant software component. What better way to disseminate your results than to encapsulate your entire experimental apparatus in a tar file! Why should others in the field waste time reimplementing your algorithms (probably incorrectly) in order to duplicate your results. A process which sits at the very heart of any scientific endeavour.

    TINA has recently received direct funding from the European Union for developed as the open source environment for machine vision and medical image analysis research. For more details of TINA visit the website at http://www.tina-vision.net

    Sorry to rant a bit but it is not often I read something on here that I know so much about!

    --
    -- "Can't sleep, clowns will eat me!"