Automated Inspection: A Major Application of Computer Vision
Get a brief idea of what will be covered in this course.
We'll cover the following
Vision is the way we get most of the information from our environment. Not surprisingly, a large proportion of our brain is devoted to processing visual information. Our vision plays a central role in navigating the environment, interacting with other people, learning new skills, appreciating art, and more.
If we can do so much with two eyes and a brain, we should be able to do something useful with cameras and computers, right? Yes. Using digital cameras and computer code to extract information from an image and then using this information to make a decision is called computer vision. The computation power of the two main hardware ingredients (cameras and computers) required for computer vision keeps increasing. You don’t need a crystal ball to predict that we’ll see more and more computer vision applications. That means the world will need more enthusiastic and talented people who can write computer vision code.
The trend is already visible to people without any connection to academics or industry. Computer vision appears in various consumer products, from driving assistance to background removal during a video conference. Most people recently exposed to computer vision applications for the first time might think that it is a new discipline. In reality, computer vision has had industrial applications for decades. Its main application is automated inspection.
The proposal
In this interactive course, you will explore computer vision in the scope of automated inspection. We’ll cover the computer vision techniques most often used in manufacturing. In this setting, a camera above the conveyor grabs images of the objects, and automated inspection software analyzes the images to detect defects.
In other words, we’ll put ourselves in a computer vision engineer’s shoes.
The course will focus on three families of tools essential for automated inspection:
Traditional computer vision techniques
Machine learning techniques
Dataset annotation
Traditional computer vision techniques
The first part of the course will introduce traditional computer vision programming techniques. We’ll familiarize ourselves with OpenCV, the most popular open-source computer vision library. We’ll ramp up the complexity, starting with image files I/O and annotating information in images. We’ll then move on to the various color representations and how to convert an image from one color space to another. Image processing tools such as thresholding, smoothing, and masking will be studied and exercised. As we progress, we’ll encounter more advanced feature detection techniques through template matching, blob analysis, and edge or corner detection. A chapter will be devoted to 3D vision. We’ll describe a laser line 3D vision system and how it can acquire topography information about objects to inspect.
Machine learning techniques
In the second part of the course, we’ll focus on machine learning approaches to computer vision using the great PyTorch library. We’ll build simple neural networks from basic building blocks, giving us a good comprehension of the function composition principle. We’ll then study the structure of convolutional neural networks, the workhorse of computer vision applications. We’ll learn to recognize cases where convolutional neural networks should be the tool of choice for classification, object detection, or semantic segmentation tasks.
Dataset annotation
In the third part of the course, we’ll learn to use the image annotation open-source project CVAT. As machine learning approaches to computer vision get a larger share of the practitioner's time, powerful graphical annotation tools will become more and more necessary.
As you can see, there is a lot of ground to cover, but this is an exciting journey.