A Prof Of Concept for Deep Learning as replacement for traditional machine vision application on industrial setting
This is just a Proof Of Concept, the goal here is to prove that Deep Learning and Convolutional Neural Network can be used as a replacement for traditional machine vision application techniques: use of expensive cameras, lights and filters.
The classification of the quality that cashew nuts for end user consumption is one of the hardest problem for machine vision on industrial setting. As they naturally differ a lot in shape, size, texture, color and are hard to keep a consistent orientation to the camera. With all this problems, the use of DL and CNN seems to be a perfect fit. But, to be usable in a industrial setting it must prove itself:
- Quick: The processing time should be as low as possible, allowing more throughput per machine;
- Reliable: Preventing waste of god quality material, and guarantee the quality of downstream processes;
- Stable: Given same conditions, give same results in a confident manner;
- Can be implemented faster: From data acquisition, to prototyping and training took only 2 days;
- Can be way cheaper: Total estimated cost for the solution dropped in at least 1 order of magnitude (10X);
- Can run faster: Total processing time for each image is 8ms in my GM108M [GeForce 940MX], compared to 30ms on a standard industrial camera;
- Is way more precise: With accuracy of 99.57% on learning data and 100% on validation data, being a total average of 99.6%. Being considerable stable and reliable for industrial settings;
To startup this project make sure you have virtualenv
and ImageMagick
installed on your system, check the URL for pytorch on config.sh
based on your system requirements. Then simply runs:
$ ./configure.sh
In order to run the learning process simply type:
$ ./run.sh