Solved

# Optical sorting theory

Posted on 2005-03-02
Medium Priority
300 Views
I have an idea which may be way beyond my capabilities...but that never stopped me before ;)

I have an application for some type of scanner/camera which would monitor small (12mm x 3mm cylinders approx) items on a conveyor

99.3% of these items would be within a close colour range (biege)
0.7% of these are rejects (black)

i think something to evaluate the image field, average the pixels and flag over a certain threshold would be a good way to go. Over threshold would  send a signal to a solenoid on the conveyor which would divert the rejects. I don't need extreme precision. If  some non-rejects end up in a manual sort bin, i'm ok with that...

i'm looking for:

thoughts on how to do this
pointers to articles on optical sorting theory
equipment possibilities
code is good too

there a commercial products that do this kind of thing but i'm more interested in if i can do it...(also don't want to spend big \$\$\$ ;)

points split based on response

tia
0
Question by:SidFishes
• 6
• 5
• 2
• +3

LVL 85

Expert Comment

ID: 13444180
Is the object larger than the image field?
If not, you might want to look for the pixels with the closest match instead of the average.
Is there a background colour of the conveyor when there are no objects?
Is this close to either the accept or reject colour?
0

LVL 33

Assisted Solution

snoyes_jw earned 600 total points
ID: 13444193
So, you're sorting rice?

Ask the people at http://www.newtonlabs.com/ - they have lots of experience in this sort of thing.
0

LVL 27

Assisted Solution

d-glitch earned 1400 total points
ID: 13444616
Assuming that your little objects are queued up single file so you can flick a single reject away with a solenoid:

You may not need an actual image from a camera.  A lens and a single element photodetector might give you enough of a signal to make a decision.
The sensor costs would be less than \$10.

0

LVL 27

Expert Comment

ID: 13444622
What kind of through put are you looking for??
0

LVL 27

Accepted Solution

d-glitch earned 1400 total points
ID: 13444858
Place your beige objects on a beige conveyor belt.

Light the target area, and use a small lens to image it onto a photo detector.

You will get some significant signal level.

You will have to do some tests to determine the pass/fail threshold.

A dark bead or a black mark on the belt would cause the signal to drop below the threshold and trigger a little broom to sweep the area.

You could put lots of them in parallel if necessary.

This job certainly doesn't need any computational power at all, unless you need to count pieces as they go by.
0

LVL 36

Author Comment

ID: 13445089
snoyes_jw  gets a beer (or maybe some rice wine?)...yes it's rice sorting ;) thnx for the link

I'm still interested in seeing if this is diy-able...

the conveyor (which doesn't exist yet) would be perhaps 4-6 inches wide with (mostly) a single layer of rice crisps. These would be randomly arrayed on the belt.

d-glitch ..."trigger a little broom to sweep the area."

that sounds along the lines i'm interested in...any thoughts on specific type of photo detector

0

LVL 33

Expert Comment

ID: 13445112
compressed air from a nozzle _might_ be better than a broom type thing - less moving parts.
0

LVL 36

Author Comment

ID: 13445415
this is probably overkill...but it's interesting...

http://www-2.cs.cmu.edu/~cmucam/cmucam2/
0

LVL 36

Author Comment

ID: 13445480
this looks like it may be the trick...

looking at the position detection specs any array of several of these might work

http://www.acroname.com/robotics/parts/R64-P5587.pdf

thoughts?

0

LVL 22

Expert Comment

ID: 13448126
You don't need any computational power really.  If you can get these things to pass by in single file, a simple photocell and a one-shot and a solenoid should to the trick.   You'll have some difficulty getting this to work more than about 3 times a second, so you better have plenty of time....

0

LVL 36

Author Comment

ID: 13450242
single file isn't an option at least not inline with the direction of conveyor...we do batches of several hundred kgs at a time... what i need is something that will trigger when a black kernel moves anywhere across a 4 inch belt. My current thought is to use an array of the P5587 photorelectors at 90 degrees to the belt so it would be "single file"  but in 4 inch samples. The black bits are random and as i said < 1% (might even be more like .01%) and the speed of the belt would be perhaps 2-4ips...so solenoid speed and recovery isn't a huge issue..

the question now i guess is whether the P5587's have enough "beige tolerance". They look to do well with black/white... have to order some i think...

I'll keep the q open for a while longer to see if anyone else has any thoughts...

0

LVL 27

Assisted Solution

d-glitch earned 1400 total points
ID: 13450462

I thought you might be able to get the grains in single file.

There are linear optical sensors available from TAOS:                   http://www.taosinc.com/product_detail.asp?cateid=3&proid=27

How much good product are you willing to dump with every black grain??
0

LVL 27

Expert Comment

ID: 13450580
You would still need a lens to image a swath of of the conveyor belt on to the sensor.

Now you do need some computational power.  I expect you could handle the job with the smallest PIC microcontroller.

A flapper at the end of the belt could divert the swath with the black grain into a seperate bin.
There would be some fixed delay between detector and the end of belt.
0

LVL 22

Expert Comment

ID: 13451676
Make sure the conveyor belt is black, and have it lead directly to the reject bin.  Mount the optical sensor so it is right over the conveyor, and mount a light from the side.  Instead of acting to reject black objects, act to save the white ones.  There ought to be enough brightness when a beige object comes under the camera to reach an unambiguous brightness threshold.
0

LVL 27

Expert Comment

ID: 13451849
>> Make sure the conveyor belt is black, and have it lead directly to the reject bin.

I don't think that would be wise.
Set the process up for the norm and handle the exceptions.
0

LVL 22

Expert Comment

ID: 13452048
d-glitch:

I see what you're saying:  It's better to have the diverter work on the 0.7% rejects instead of the 99.3% of accepted.  I'm thinking, though, that a simple brightness sensor will be much more effective when it is detecting a bright object on a black background instead of a dark object on a bright background.

Here are some numbers (that I just made up :) ) that illustrate my point.  Assume the brightness sensor works on a scale of 0-100.

On a black background:
black object or nothing:  0-10
white object on black background:  50+

On a white background:
white object or nothing:  90+
black object on white background:  80-85

In other words, the proportional difference in brightness between the white-background situation is much less distinct than the brightness difference in the black-background situation.

In the big picture, I guess you have to weigh your detection reliability/simplicity against diverter wear and tear.
0

LVL 36

Author Comment

ID: 13518513
thanks all...

i'll post back if and when i get something built and let you know how it went...
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction On a scale of 1 to 10, how would you rate our Product? Many of us have answered that question time and time again. But only a few of us have had the pleasure of receiving a stack of the filled out surveys and being asked to do somethiâ€¦
How to Win a Jar of Candy Corn: A Scientific Approach! I love mathematics. If you love mathematics also, you may enjoy this tip on how to use math to win your own jar of candy corn and to impress your friends. As I said, I love math, but I guâ€¦
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaacâ€¦
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templaâ€¦
###### Suggested Courses
Course of the Month12 days, 21 hours left to enroll