Bench Talk for Design Engineers

Bench Talk

rss

Bench Talk for Design Engineers | The Official Blog of Mouser Electronics


Object Size Detection with the OpenVINO™ Toolkit M. Tim Jones

Object Size Detection with the OpenVINO™ Toolkit

Traditional methods of defect detection faced a number of challenges that reduced the quality of the process. Applying deep learning algorithms to captured video information increases the speed and accuracy of identifying objects that do not meet a predefined standard. Though deep learning is a relatively new solution for defect detection, it can expand the scope of the solution from simple detection of a defect to classification of the type of defect. Training deep learning networks to identify types of defects makes it possible to automatically route objects based upon their severity—such as the size of the flaw. In this example of the Intel® OpenVINO toolkit, we will look at a simple example of how video images can be used to determine whether an object is defective based upon its surface area.

Object Size Detection Pipeline

In prior blog posts, we’ve seen examples of face and vehicle detection using images captured by a video camera. In this application, we’ll look at a different type of detection using deep learning to identify an object on a conveyor belt, measure its surface area, and check for defects.

Figure 1 shows the Object Size Detection pipeline. Let’s explore this pipeline and the activities that occur.

Object Size Detection Pipeline

Figure 1: The Object Size Detection Pipeline diagram illustrates how this application of the OpenVINO™ toolkit processes an image to determine whether an object has a defect based on its surface area. (Source: Author)

This image processing application uses images captured by a video camera mounted above a conveyor belt. A Convolutional Neural Network (CNN)—a type of image processing deep neural network—processes the captured images to determine if an object is present. First, the CNN identifies whether an object is in the capture frame. If an object is present, the CNN draws a bounding box and calculates the area that object occupies. Then, this area is checked against the predefined acceptable constraint. If the object is larger or smaller than expected, then a defect indication is communicated.

Figure 2 shows the output of the Object Size Detection application of the OpenVINO toolkit. Note that in this example, the CNN found the object and bounded it in order to calculate its area.

Object Size Detector output screen

Figure 2: The Object Size Detector output screen shows an example of the calculated area of a detected object. (Source: Intel)

The sample application also illustrates the use of the Message Queue Telemetry Transport (MQTT) protocol, which communicates the zone information to an industrial data analytics system.

Why this is Cool

Defect inspection is a monotonous task and prone to error based upon the inspector. Using deep learning to inspect parts frees up people to do more useful and creative work while increasing the efficiency of defect classification. In this simple example, the area of the part is used to determine if a defect exists, but deep learning can be applied in more advanced models to inspect for various types of defects and classify them accordingly—for example, rework or salvage. When paired with capable hardware such as one based upon the 6th generation Intel® Core processor or Intel’s Neural Compute Stick 2 powered by the Intel Movidius X VPU, impressive inference speeds can be attained that enable real-time analytics.

Adapting this Example

Calculating the area of an object on a conveyor belt can be useful in a variety of environments. Take for an example the process of sorting fruits and vegetables. Traditional methods of sorting fruits and vegetables can lead to bruising. Therefore great care needs to be employed when handling these items. By adapting this example to the produce industry, fruits and vegetables could be inspected and routed based upon their size (area) and color. Deep learning can also expand on existing methods by looking at a greater number of features for grading.

Where to Learn More

  • You can learn more about this demonstration at Intel’s® IoT development kit GitHub.
  • The glue application was developed in the C++ and Go languages. The distribution includes the Intel® optimized vehicle and pedestrian detection models for OpenVINO. You can easily experiment with this application using the Ubuntu 16.04 LTS Linux operating system, the Intel® distribution of the OpenVINO toolkit, and the OpenCL runtime package.
  • You can also jumpstart your development using the AIoT development kit, which includes Ubuntu, OpenVINO, Intel® Media SDK and Intel® System Studio 2018 pre-installed with an Intel® Core™ processor. The development kit includes tutorials to help you get up and running quickly.
  • You can also use the AAEON UP board based upon the Intel® Apollo Lake platform.


« Back


M. Tim Jones is a veteran embedded firmware architect with over 30 years of architecture and development experience.  Tim is the author of several books and many articles across the spectrum of software and firmware development.  His engineering background ranges from the development of kernels for geosynchronous spacecraft to embedded systems architecture and protocol development. 


All Authors

Show More Show More
View Blogs by Date

Archives