3 years ago



02 Detection,

02 Detection, localization and segmentation used to identify objects and their locations AUTOMATION good solder looks like and a similar set of what bad solders look like with labels that identify them as such. There are several avenues to obtain a dataset of images: n For use cases that are common, you might find a pre-labelled dataset that matches your specific requirements available for purchase online (in many cases, even free). n Generating synthetic data may be an efficient option for several applications; especially since labelling is not required. Companies like Cvedia; backed by Flir ( employ simulation technology and advanced computer vision theory to build high-fidelity synthetic training set packages. These datasets are annotated and optimized for algorithm training. n If the first two options are not available, you would need to take your own images and label them individually. This process is made easy by several tools available on the market STEP 4: train and validate the neural network to ensure accuracy After the data is prepared, you will need to train, test, and validate the accuracy of your neural network. This stage involves configuring and running the scripts on your computer until the training process delivers acceptable levels of accuracy for your specific use case. It is a recommended best-practice to keep training and test data separate to ensure the test data you evaluate with is not used during training. This process can be accelerated by taking advantage of transfer learning: the process involves utilizing a pre-trained network and repurposing it for another task. Since many layers in a deep neural network are performing feature extraction, these layers do not need to be retrained to classify new objects. As such, you can apply transfer learning techniques to pre-trained networks as a starting point and only retrain a few layers rather than training the entire network. Popular frameworks like Caffe2 and TensorFlow provide these for free. Furthermore, adding new features to detect to an already trained neural network is as easy as adding additional images to the defective image set and applying transfer learning to retrain the network. This is significantly easier and faster than logic-based programing; where you must add the new logic to the code, recompile and execute while ensuring the newly added code does not introduce unwarranted errors. If you lack coding expertise to train your own neural network, there are several GUI (Graphical User Interface) based software that work with different frameworks. These tools make the training and deployment process very intuitive, even for less experienced users. Matrox MIL is one such example from the machine vision world. STEP 5: deploy the neural network and run inference on new data The last step entails deployment of your trained neural network on the selected hardware to test performance and collect data in the field. The first few phases of inference should ideally be used in the field to collect additional test data, that can be used as training data for future iterations. The following section provides a brief summary of typical methods for deployment with some associated advantages and disadvantages: CLOUD DEPLOYMENT: significant savings on hardware cost, need for an internet connection is a key disadvantage, higher latency compared to edge deployment EDGE (STANDARD PC): ideal for high performance applications, higher cost EDGE (ARM, FPGA & INFERENCE CAMERAS LIKE FLIR FIREFLY DL): low power consumption, significant savings in peripheral hardware, high reliability, not suitable for computationally demanding tasks Potential shortcomings of deep learning Now that we’ve covered an overview of the development and deDeep learning is a black box for the most part and it’s very difficult to really illustrate / figure out how the neural network arrives at its decision. Another issue to contend with while deploying deep learning is that it’s very hard to optimize your neural network in a predictable manner. Many neural networks that are currently being trained and used, take advantage of transfer learning to retrain existing networks while very little optimization occurs. In addition to these shortcomings, many applications are conceptually better suited for logic-based solution. Typical examples include barcode reading, part alignment, precise measurements and so on. Conclusion: the benefits outweigh Even with some of the shortcomings highlighted above, the potential benefits accrued from deep learning far outweigh the negatives (rapid development, ability to solve complex problems, ease of use and deployment – just to name a few). Furthermore, there are constant improvements being made in the field of deep learning that overcome these shortcomings. For instance, activation maps can be used to visually check what pixels in the image are being considered when a neural network is making its decision, so that we can better understand how the network arrived at its conclusion. Also, with wider adoption many companies are now developing their own neural networks instead of relying on transfer learning – improving performance and customizing the solution for specific problems. Even in applications that are suited for logicbased programming, deep learning can assist the underlying logic to increase overall accuracy of the system. One example is the Flir Firefly-DL. Photos: lead AndSus -, others Flir 03 The Flir Firefly DL is an example of a DL inference camera 14 WORLD OF INDUSTRIES 2020