Nut
in Shell (NIS) Sorter/Scanner
April 2018 - Initial Accuracy Testing
May 2017 - System is UP! video
I have been working on this for some time and it's finally up! While vision sorters for nuts have been available for many years they are mostly fairly big and targeted at high volume moderate accuracy applications. This sorter is compact and designed to be low volume high accuracy. To get to commercial volumes it is necessary to link several together and/or arrange the installation so they can run 24/7.
In addition to acting as a sorter it can be used as a lab scanner to assess the quality of samples and results from multiple machines can be compared directly. This might be used in research situations or commercially it could be used to characterize volume sorters and then given a sample of a new batch the optimum settings for the volume sorter could be determined before the actual processing for the batch began.
Availability
The sorter can probably be made available at any time provided there is enough interest. It would probably need four or five Australian advance orders to make producing them worthwhile. Email me if you are interested.
In the early days of vision sorters they worked by simply inspecting each pixel in the data stream and if one was determined to be outside the user-defined 'accept' colour-space then this would queue a delayed 'reject' signal that would fire ejectors to take the nut out as it passed by them (typically with a compressed air jet in high volume machines). This principle of operation continues today though the algorithms have become more sophisticated and can now also consider the size & shape of the object as well as size of defects detected on the object.
This machine goes a step further. Starting with a high resolution image(s) it classifies each object & defect into type, measures their level of severity and from there makes an accept/reject decision. Perhaps the easiest way to explain how the system works it is to go through the process steps using a reject nut as an example.
The following two screenshots show the processing of a single frame of image data for reject & accept nuts.
The system uses five such frames per nut in different orientations in order to cover the whole surface. Looking at the reject nut picture, the left half shows the unprocessed image and the result of the analysis is shown in the right half. The boundary of the nut is shown in green and defects are highlighted in red.
Frame Analysis
The bottom half of the images contain a table of the resulting analysis.
(Click to enlarge)
It is important to note that at this stage the user can not adjust the settings for the analysis algorithms. Also note that at this stage there has been no decision about what to do with the nut, rather it is simply measurements of severity of various faults. This is by design so that the machines can be calibrated such that all machines will output exactly the same results at this point in the analysis. This allows data from different machines (and different years etc) to be directly compared.
Decision Making
The next table shows the fusing of data from five image frames along with other sensors such as load cells as required. This is the basis for the final decision making process.
(Click image to enlarge)In this case the principle defect on this nut is FSB but the table shows that the system has misidentified a few cases as MNB (Mac Nut Borer). There's also a few marks classified as Mechanical Damage and Germination - the latter may be valid as a split in the suture can be observed at the top of the nut image.
Values at this point still can not be adjusted with user settings, user control occurs at the next step.
Beside each of the calculated values is a code indicating quality. These codes are completely user definable, in this case it uses seven codes - P1, P2 are graded Premium; C1, C2 are graded Commercial; and R1, R2, R3 are graded Reject. How each calculated severity value in the table is converted to a code is also defined by the user and can be set up for each individual defect type.
Once all of the values have been coded the system assigns the nut the worst code observed - in this case the nut is marked Reject 3. Then there is a second user defined process that determines which of the five outlets nuts of that classification is sent to - in this case Outlet 3 (of five).
Batch Summary
(Screenshot incoming)
All of the data - images, sensors, analysis, decisions - can be dumped into data files for further statistical analysis. While this isn't really important for high volume sorting applications it is useful in scanning situations to be able to log all data, for example if working with a multi-year trial it would allow reprocessing of older raw data as improved algorithms and settings became available.Conclusion
It is good to have the machine actually sorting nuts and doing a good enough job to be useful but there is still a bit more to do. Finalizing the calibration and settings for the classification & severity assessment algorithms will take a couple of months. I will also be installing it into our process line in the next couple of weeks and putting it to work in real world conditions.
I am also planning to make some changes that will cater for multi-lane versions being run from a single control system in order to get throughput volumes up to commercial levels.
This is the first machine using a robotic framework that I have been developing for some time. The framework consists of three parts -
At this stage the framework seems to be doing as it's told with good efficiency though it's still under active development. Applying it to this sorter has highlighted a few areas that can be improved, in particular I will be making some modifications that would simplify using it with multi-lane machines.
The next application for the framework will be adding autonomy to the drone harvester, hopefully later this year.
This first table shows the error for the various raw measurements the machine makes.
Parameter |
Measure Unit |
Measure Error (+/-) Single Nut |
Measure Error (+/-) 20 Nut Batch Average* |
Comment |
Whole Nut - Colour | 8 bit RGB | 2.5 (2%) | 0.5 | Needs transform to standard colour scale |
Whole Nut - Size Average Diameter
Minimum Diameter Maximum Diameter Min Enclosing Diam
|
mm mm mm mm |
0.20 0.50 0.50 0.30 |
0.05 0.15 0.15 0.10 |
= required slot opening for separation = required circle opening for separation |
Whole Nut - Mass Whole Nut - Moisture Mass |
gr gr |
0.15 0.08 |
0.05 0.02 |
+/-0.1gr is possible in a half-speed
high resolution mode. Experimental |
Whole Nut - Calculated Metrics Volume
Specific Gravity
Shape
Moisture Content
|
cm^3 gr/cm^3 mm/mm w/n |
0.25 0.05 0.02 2% |
0.05 0.02 0.01 0.5% |
Volume / Mass Min/Max, Prolateness, Convex Deviation Experimental |
This tables shows the accuracy for various high level categories of defect.
Category | % False Positives |
% False Negatives |
Severity Error |
Comment |
Whole Nut - Categories Normal
Immature Sun Faded Aged/Rotten |
<1%* - - <1% |
<1%* - - <1% |
5% - - 5% |
* these can increase as other categories are added calibrating calibrating Age Faded & Rotten mix a bit |
Defect - Categories |
calibrating |
* Perfectly 'Normal' nuts are Severity = 0
The machine is also capable of doing a Rapid Kernel Recovery test, where either wet or dry nuts are cracked and placed in the machine, and KR is calculated a few seconds later. This can be done as additional function of the sorter with minor modifications, or a compact single purpose version can be built for in-field use.
This table shows accuracy for five NIS traits that the Rapid KR mode can measure.
Trait |
Single Nut Accuracy |
In-Tree Variability |
20 Nut Batch Accuracy* |
100 Nut Batch Accuracy* |
Nut Diameter (mm) | 0.6 | 3.5 | 0.8 | 0.4 |
Nut Mass (gr) | 0.5 | 3.0 | 0.7 | 0.3 |
Kernel Diameter (mm) | 0.5 | 2.7 | 0.6 | 0.3 |
Kernel Mass (gr) | 0.2 | 1.0 | 0.2 | 0.1 |
Kernel Recovery | 1.5% | 4.4% | 1.0% | 0.5% |
* There is substantial in-tree variability for these traits and it is the dominant source of error in the batch values. It can be ameliorated by increasing sample size. It is worth noting that these are roughly the same values you would expect from the standard 48hr test because it is also affected by the in-tree variability.
Finally the machine can also separate between different varieties of nuts based on the NIS appearance.
This table shows the separation accuracy for four common varieties.
Mixing From\To |
A4 | A16 | A38 | H246 | Overall Error |
A4 | - | < 1% | < 1% | < 1% | 1% |
A16 | < 1% | - | 2% | 11% | 10% |
A38 | < 1% | 2% | - | 5% | 7% |
H246 | < 1% | 14% | 4% | - | 11% |
This is very much a work in progress at this stage, I will be looking at a larger group of varieties in the near future.
So here is a video of the beast working, filmed in glorious shakey-cam.
Copyright © 2016 - 2018 David Bell, Australia. All
Rights Reserved.
No parts of this web site may be copied without the
permission of the author.