Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Image shape analysis

Status
Not open for further replies.

mgeerts

Computer
Nov 10, 2009
34
First up, I'm sorry that I am posting in this forum. There isn't one that specifically fits this question, but I figured that there would be experts here that could point me in the right direction.

I'm looking for a method of shape detection in low-resolution silhouette images. Unfortunately due to the nature of the product I'm going to have to be a bit vague, but I think that I have an analogy for what I'm doing that would parallel the needs of what I'm working on.

The analogy:

I am creating a system that uses a high-contrast low-resolution silhouette image of a nut threaded onto a bolt sliding down a chute. The chute keeps the nut/bolt upright for every image. The image is not always captured with the bolt in the *exact* same spot
The system must identify:
1) If there is a nut on the bolt at all. (There is always a bolt).
2) If the nut is the correct type and orientation (lock/wing/standard nuts, possibly on backward)
3) If the bolt is correct. It may be a different size or have a hex/pan/countersunk head
4) The nut is threaded far enough onto the bolt within a specification (for example, it must be within 1/4"-1/2" up the shaft of the bolt for this particular combo)

So effectively the system must look at the silhouette, identify the points of interest, take general measurements and compare them against a stadard. The symetry of the nut/bolt makes me want to just look at a graph of "width vs height" to find key points of width transition and compare them to the known image, but that's just my mind at work. I only mention low-resolution as sometimes there is some "fuzz" on the edge that is not an insignificant amount of noise relative to the feature sizes.

Soooo... Fire away! What method would you use? What literature would be a good starting point? What do you think are the key concepts? What's your thought process?

Thanks a lot for any input or discussion you come up with!
-Matt
 
Replies continue below

Recommended for you

You should be looking at the Matlab website.

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529
 
IRStuff - That's a great starting point! Thank you. I've learned a fair bit already. Can you tell me if Matlab analysis would transfer well to embedded systems? The image analysis is run on a motorolla DSP.

More input from others (other methods/thoughts) is more than welcome!
 
Sure, if you've got the bucks, Mathworks has compilers specific to different DSPs.

TTFN
faq731-376
7ofakss

Need help writing a question or understanding a reply? forum1529
 
So, after some research and consideration I came up with a reasonable idea and I wanted to bounce it off the forum. Frankly "if you've got the bucks" turns my company away 100%, unfortunately.

Here's my rough idea:
Scan the image from top to bottom grabbing the width of the object in each row (basically, the sum of the black pixels). This will provide me with the shaft width by finding the minimum value >x (to avoid noise/speckles)
Measure the full bolt length by finding the first and last row that contains >x width. This allows me to make sure the bolt is the right length.
Use simple convolution to compare the width "signature" to known shapes to discover correct/wrong parts.
This will spit out the location of those shapes (min-points on the convolution output) so i can evaluate their position.
Convolution in both directions means i can identify correct but reversed nuts.

Thoughts? Concerns? conspiracy theories or doomsday predictions?
-Matt
 
So I think I was confused and used the wrong term... this isn't Convolution, it is Sum of Absolute Differences. It is working pretty well as long as I know what parts I need to look for ahead of time.

Now what's killing me is that the system needs to "learn" the part automagically. I can rely on a good part coming down the chute first, but I need to figure out IF it has a nut on it and identify the nut first. This is a bit tricky if the nut is screwed right up to the head of the bolt.

Again, any more thoughts from folks that do imaging more regularly would be great.

Thanks!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor