determine the shapes of small objects

The objective of my project is to determine the 6 different shapes of small beads that are used in making custom bracelets or necklaces. The sizes of these beads are of around 10mm in diameter and their shapes are of various shapes such as round, cone, star shapes, etc.

My goal is to use Arduino to work with a certain software to determine what shape a bead is. Once the shape is decided by the software, then I will have Arduino to carry out certain tasks.

My question is what software can I use to determine the shapes?

Once I know what software to use, I will study how to use this software.

A camera and vision software. But a standard arduino does not have enough processing power. A Teensy, a due might do the job. Or consider a raspberyy pi, chances are that there already is som esoftware you can use

Thx Nilton61 for your reply.
Do you know the names of any Window software that can do the job, I can have the software to do it on my computer, then pass the redults to the Arduino. I think the Arduino can communicate with the computer in this way.
I am new to Arduino, and I don't know Raspberry Pi. But if anyone can tell me where to go, I can learn how to use it.

I think a better approach would be to put them in separate containers, then the arduino will know which type of bead it is by where it found it.

kentli22:
Do you know the names of any Window software that can do the job, I can have the software to do it on my computer, then pass the redults to the Arduino. I think the Arduino can communicate with the computer in this way.

The type of project you have in mind is not one that plays to the Arduino's strong points.

What is the point of passing the results to Arduino?

You really need to think this project through.

kentli22:
I don't know Raspberry Pi. But if anyone can tell me where to go, I can learn how to use it.

You've heard of Google, haven't you?

The Arduino is good for controlling external devices but it is not powerful enough to process images.

If you can do the image processing on a PC (and a RaspberryPI is just a PC in small package) then the PC can send instructions to the Arduino to make things happen.

You will get lots of help here about the Arduino side of the project but you will have to look elsewhere for advice about image processing - which is a complex subject. You will very soon learn how clever your own brain is.

There is a lot to be said for simplifying the situation like @KenF has suggested.

...R

KenF:
I think a better approach would be to put them in separate containers, then the arduino will know which type of bead it is by where it found it.

I get the impression that he wants that as his end result. I.e. He wants to sort them into separate containers using an Arduino.

Recognising a shape is a difficult thing to do in software so looking for some software that can already do that is, I think, a bit over optimistic.
Given the OPs lack of experience I think he is better off looking for a project that is actually feasible.

Yes, I want the Arduino to do the sorting task after the shape is determined by the software. That's why I just need the results from the computer to be sent to the Arduino, then Arduino can handle the sorting task.

My project is similar to that of the M&M color sorting, but just that I need to sort 3D shapes instead of colors. I know Arduino will not be able to do the shape recognition by itself, that's why I was thinking to find a Window software to do the shape recognition in the computer, then send the reult to Arduino.

I just don't know which direction to go at this point. I don't know any 3D object recognition software and I don't know Raspberry Pi at all, please guide me the direction if you have any idea of how I can accomplish this project.

Thanks a lot.

my idea of the software would probably work like this, it would trace the outline or certain features of an 3D object, then compare with a group of sample shapes to find its closest match. then passes the matching result as a variable to the Arduino.

Is the object isolated or is it in a jumble of other objects?

the object will be isolated. It will be one object at a time, placed on a fixed position for the camera to see.

Have you seen this for some leads:-

kentli22:
my idea of the software would probably work like this, it would trace the outline or certain features of an 3D object, then compare with a group of sample shapes to find its closest match. then passes the matching result as a variable to the Arduino.

There does not seem to be much point imagining how this could work without first reading about the current state of research on this extremely complex subject. I suspect you could spend weeks working on an idea that experts discarded as impractical years ago.

And it is unlikely that the necessary expertise exists among users of this Forum simply because an Arduino cannot do it.

...R

My mother occasionally does stuff with beads and they are usually symmetrical. If that is the case with your beads, it somewhat simplifies the problem.
Wouldn't an optical character recognition system with a custom "font" be suitable?

You could probably do something clever by dropping the beads silhoutted past a line-scan camera, and doing thresholding and outline analysis.

What about a vibration feeder and a sieve that lets some shapes pass and blocks others?

Shpaget:
My mother occasionally does stuff with beads and they are usually symmetrical. If that is the case with your beads, it somewhat simplifies the problem.
Wouldn't an optical character recognition system with a custom "font" be suitable?

Symmetrical doesn't mean that they will all be orientated the same way. OCR expects the characters to all be in the same orientation, otherwise it wouldn't be able to distinguish between a forward slash, backslash, pipe and a hyphen.

I agree, however, industrial machines regularly orient small objects before automated assembly. The mechanism is usually a vibrating guide rail or groove. Perhaps, using a sieve, some preliminary sorting can be done in advance so the orienting mechanism doesn't have to deal with significantly different objects.

AWOL:
You could probably do something clever by dropping the beads silhoutted past a line-scan camera, and doing thresholding and outline analysis.

I think this process could work.

Can you express more details or specific of what a line-scan camera does? what the thresholding does?