Slashdot Mirror


Computer Vision Applications and Linux?

blackcoot asks: "I'm about to start work on a summer project with my advisor, part of which involves getting a lab set up for real time (or as close as we can get) computer vision applications. Currently, the only machines in the lab with digital video cameras attached to them are Win2k boxen, and that's only because we haven't been able to find reasonable drivers for the firewire cameras that we have. My advisor and I would much rather *not* write our own driver for these cameras; right now my advisor has the budget for a couple reasonably inexpensive cameras. This leads me to a couple questions: are there firewire (or equivalently high bandwidth bus) based digital video cameras (not framegrabbbers) out there that have reasonably solid Linux or Video4Linux drivers; have any Slashdot readers tried to build a vision type application under Linux (something that does more processing than Xaw TV); Am I setting myself up for a whole world of pain trying to make this happen under Linux, or is it doable? Any words of wisdom? Your help is much appreciated."

5 of 16 comments (clear)

  1. Look At iRobot by Aix · · Score: 2, Informative

    You might check out iRobot. I work at the MIT AI Lab and we use the B21r for my project, which has similar goals. This robot was originally designed by a company called Real World Interface (RWI) that was ultimately purchased by iRobot. In any case, the robot runs Linux and uses V4L as far as I can tell, with what appears to be an off-the-shelf Hauppage WinTV card or equivalent. I don't know much about the camera, but conceptually, you should be able to set something up very similarly.

    Now, as far as actually writing the code for real-time vision... that's up to you - good luck - it is a difficult problem.

  2. Depends on what kind of camera by Omega+Hacker · · Score: 3, Informative

    If you're referring to webcam or scientific-style cameras on the Firewire bus, they are supported by programs like Coriander through the libdc1394 interface and corresponding kernel drivers.

    If you're talking about consumer-grade video camcords (aka MiniDV), you'll use the dv1394 interface and corresponding kernel modules, plus libdv [one of my projects] to decode the images (on a fast enough machine, about 700MHz PIII pegged still).

    I haven't heard of any other types of firewire cameras, so if you have something that doesn't fit into one of these two categories, you got shafted IMO.

    Depending on your processing requirements as far as data-flow, you may want to look at GStreamer, another of my projects, to plug together the DV device interface, DV decoder if necessary, and your processing components.

    All of these are found on sourceforge under the names given, putting that many URLs into the comment when I'm this awake would be bad ;-)

    --
    GStreamer - The only way to stream!
    1. Re:Depends on what kind of camera by isaac_akira · · Score: 3, Informative

      There are lots of consumer-grade firewire webcams out there, and they should all work with linux (yay standards!). They use the same libdc1394 interface as the scientific cameras do. I'm using the Fire-i cam from unibrain.com, which cost about $130, but there are several others at that price range.

      This site has a lot more info on linux and firewire:

      http://linux1394.sourceforge.net/hcl.php

      p.s. it actuallys work. ;-) i'm running 320x240 YUV422 video into my image processing app at 30 frames a second. 640x480 works too, but it looks a bit grainy (the fault of my camera's lens and ccd) and that's too much info for my app to process anyway.

  3. check out intel library by Anonymous Coward · · Score: 1, Informative

    it may not be entirely related to your post.

    by the way, intel IPL library does support linux.
    it's a pretty cool library (written in assembly for optimization purpose). So you can expect a lot of optimization.

    Also, openCV, open source computer vision, which is built on top of IPL is also available.

  4. Xvision by randombit · · Score: 2, Informative

    Xvision is a library written at JHU (originally at Yale; the main people moved over here a few years back). I used to work on it a little bit (theoretically, I was the sysadmin, but kinda I got roped into working on it for a while a couple summers back). It's not bad, though the code is pretty dirty in places. It's used to program the robots for that robot soccer competition.

    Hrm... a URL... Ah, here:

    Xvision2 page.