Block Detection
William Makinen from United States  [4 posts]
8 year
    There is a module called Circles that can pick out circles from contour-based images, drawing a circle around them. I was wondering if there was a way to do a similar thing but for squares or quadrilaterals. I know I could use flood fill or color segment to do this with blobs, but it is very hard to consistently detect squares with blob-based methods such as those. If there was a way to get a consistent reading using one of those blob-based methods or with a contour-based method then I would love to hear them.
    I am trying to detect blocks such as what is seen in the attached image, so you can use it if it will help you with a solution.

Steven Gentner from United States  [1446 posts] 8 year

There isn't a way to detect squares like the Circles module does. Its a basic difference between squares and circles. Circles indicate their radius regardless of what part of the circle you are detecting ... squares do NOT have this property.

There are easy ways to detect squares but your particular image invalidates these due to the wood on wood color. While to us its obvious where the boundary of the cube is this is not an easy feature to extract reliably in your image. As you probably noticed in your own experiments, the stability of detection will greatly improve the more the contrast there is between the cube and its background.

There are ways to improve stability of detection for the included image using various technique but most are very involved. While it is certainly possible to create a module that uses multiple attributes that combines multiple classical square detection techniques this isn't something that we have on the development path.

If this is for a particular industrial task could you elaborate on what that is? Perhaps we can better understand the requirements and come up with a solution that works without having to delve into a substantial development project.

For example, are you able to utilize other sensors like the Kinect or Senz3D to more easily segment the cube from the background?

William Makinen from United States  [4 posts] 8 year
I am trying to detect these blocks for an object collection robot. The idea is that the robot can be programmed with different profiles for different types of objects (balls, blocks, nerf darts, etc.) to be detected and collected within 2 feet of it. While good lighting will be required, it cannot always be guaranteed to be the same lighting, eliminating color as a detection method. Although it may not be possible in this iteration, I would like the robot to be able to pick out objects against different types of flooring (wood, carpet, cement, etc.). Although I do nat have access to any of those sensors at the moment, then I'm all ears for how, and would not hesitate to buy one.
Steven Gentner from United States  [1446 posts] 8 year

If this is just for fun, you can experiment around with various object recognition techniques in the OR module or see what the AVM module is able to do. It will work with some of the objects but not with others since the techniques these days typically require a prominent feature (i.e. texture, color, etc.) that may work on one object but not on another.

If this is for a product or industrial uses, this is a huge project to get to work reliably. To my knowledge, there is no single system yet that can detect essentially random objects against cluttered backgrounds and work as reliably as a human does. There are many research competitions that are attempting to solve this but even those provide some help by using a solid background against the object to be detected.

In order to solve the problem you will have to really narrow down the scope of what you are trying to do to something very specific. For example, these 4 items need to be detected and only these 4. That's what the NASA Sample Retrieval competition has done (i.e. defined the objects) which is still very challenging.



This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index