3

I am working on the project and part of it is to recognize objects recorded on camera. So to be more specific:

  • I am using OpenCV

  • I have correctly setup camera and am able to retrieve pictures from it

  • I have compiled and experimented with number of demos from OpenCV

  • I need a scale- AND rotation- invariant algorithm for detection

  • Pictures of original objects are ONLY available as edge-images

All feature detection/extraction/matching algorithms I have seen so far are working reasonably well with gray-scale images (like photos), however due to my project specs I need to work with edge images (kinda like output of canny edge detector) which are typically BW and contain only edges found within the image. In this case the performance of algorithms I was trying to use (SURF, SIFT, MSER, etc) decreases dramatically.

So the actual question is: Has anyone come across algorithm that would be specific for matching edge images or is there a certain setup that can improve performance of SIFR/SURF/? in order to work well with that kind of input.

I would appretiate any advice or links to any relevant resources

PS: this is my first question of stackoverflow

mrid
  • 5,782
  • 5
  • 28
  • 71
Art Gertner
  • 292
  • 12
  • 27

1 Answers1

1

Edge images have a problem: The information they contain about the objects of interest is very, very scarce.

So, a general algorithm to classify edge images is probably not to be found. However, if your images are simple, clear and specific, you can employ a number of techniques to classify them. Among them: find contours, and select by shape, area, positioning, tracking.

A good list of shape information (from Matlab help site) includes:

  • 'Area'
  • 'EulerNumber'
  • 'Orientation'
  • 'BoundingBox'
  • 'Extent'
  • 'Perimeter'
  • 'Centroid'
  • 'Extrema'
  • 'PixelIdxList'
  • 'ConvexArea'
  • 'FilledArea'
  • 'PixelList'
  • 'ConvexHull'
  • 'FilledImage'
  • 'Solidity'
  • 'ConvexImage'
  • 'Image'
  • 'SubarrayIdx'
  • 'Eccentricity'
  • 'MajorAxisLength'
  • 'EquivDiameter'
  • 'MinorAxisLength'

An important condition to use shapes in your algorithm is to be able to select them individually. Shape analysis is very sensitive to noise, overlap, etc

Update

I found a paper that may be interesting in this context - it is an object classifier that only uses shape information, and it can be applied on Canny images - it sounds like it's your solution

http://www.vision.ee.ethz.ch/publications/papers/articles/eth_biwi_00664.pdf

Sam
  • 19,708
  • 4
  • 59
  • 82
  • Thanks a lot. That was helpful. I assume I will have to move on to shape recognition from feature recognition. I have been thinking about it before but really hoped to solve problem using just SIFT/SURF because input from camera is a good-quality image... – Art Gertner Jul 20 '12 at 12:17
  • Can you provide link to matlab help site including this list? Are there some descriptions of parameters? When to use them etc.? – krzych Jul 20 '12 at 12:22
  • 1
    It's a function that extracts those parameters from blobs http://www.mathworks.com/help/toolbox/images/ref/regionprops.html It doesn't classify anything, but it gives you an idea of what can you interpret in a contour. It's up to you to find how to classify the shapes based on this info. – Sam Jul 20 '12 at 12:26
  • If you post some example images, you have a good chance to receive a better, more focused answer. This is only very general advice – Sam Jul 20 '12 at 12:27
  • here are examples of images I am working on. First one is available image of the object (just edges), and the second is a picture of it taken with camera. The second one is quite an easy example, though background might not be one color (object might be a part of the scene) http://i47.tinypic.com/122kmm9.png http://i45.tinypic.com/2ezh3xd.jpg – Art Gertner Jul 20 '12 at 19:50
  • How do software like adaptive vision, mil, labview, etc perform this efficiently with any kind of image? http://www.ni.com/example/30555/en/ – mrid Jan 27 '20 at 14:15
  • @Sam that link to the ETH paper seems to be dead. Do you still have it or by chance remember title or authors? Couldn't find it in their complete list. – docair Sep 21 '20 at 11:24