Object detection with a generic webcam

Here's my task which I want to solve with as little effort as possible (preferrably with QT & C++ or Java): I want to use webcam video input to detect if there's a (or more) crate(s) in front of the camera lens or not. The scene can change from "clear" to "there is a crate in front of the lens" and back while the cam feeds its video signal to my application. For prototype testing/ learning I have 2-3 images of the “empty” scene, and 2-3 images with one or more crates.

Do you know straightforward idea how to tackle this task? I found OpenCV, but isn't this framework too bulky for this simple task? I'm new to the field of computer vision. Is this generally a hard task or is it simple and robust to detect if there's an obstacle in front of the cam in live feeds? Your expert opinion is deeply appreciated!


Here's an approach I've heard of, which may yield some success:

  • Perform edge detection on your image to translate it into a black and white image, whereby edges are shown as black pixels.
  • Now create a histogram to record the frequency of black pixels in each vertical column of pixels in the image. The theory here is that a high frequency value in the histogram in or around one bucket is indicative of a vertical edge, which could be the edge of a crate.
  • You could also consider a second histogram to measure pixels on each row of the image.

    Obviously this is a fairly simple approach and is highly dependent on "simple" input; ie plain boxes with "hard" edges against a blank background (preferable a background that contrasts heavily with the box).


    You dont need a full-blown computer-vision library to detect if there is a crate or no crate in front of the camera. You can just take a snapshot and make a color-histogram (simple). To capture the snapshot take a look here:

    http://msdn.microsoft.com/en-us/library/dd742882%28VS.85%29.aspx


    Lots of variables here including any possible changes in ambient lighting and any other activity in the field of view. Look at implementing a Canny edge detector (which OpenCV has and also Intel Performance Primitives have as well) to look for the outline of the shape of interest. If you then kinda know where the box will be, you can perhaps sum pixels in the region of interest. If the box can appear anywhere in the field of view, this is more challenging.

    链接地址: http://www.djcxy.com/p/39498.html

    上一篇: C:检测一张纸/方形检测

    下一篇: 使用通用网络摄像头进行对象检测