OpenCV Python Tutorial – Implementation of Computer Vision with a Case Study on Amazon Go

Free Python course with 25 projects (coupon code: DATAFLAIR_PYTHON) Start Now

Have you ever wondered how the phone unlocks with your face in just a few seconds? It is possible because of computer vision techniques. And, with this OpenCV tutorial, we will deep dive into the world of computer vision and study in detail about the OpenCV library.

OpenCV is the best way to get started with understanding how applications like photo editor and smartphone’s camera work under the hood.

Let’s take a glance of topics that we will discuss in this Python OpenCV tutorial:

  • Introduction
  • History
  • Prerequisites
  • What is Computer Vision
  • Advantages
  • Real-life Applications
  • Case Study
  • Future and Scope

OpenCV Tutorial

OpenCV (Open Source Computer Vision) is a library for computer vision that includes numerous highly optimized algorithms that are used in Computer vision tasks. The library has more than 2500 algorithms and is capable of processing images and videos to detect faces, identify objects, classify human actions, track moving objects, color detection, pattern recognition and many more.

OpenCV is supported by multiple platforms including Windows, Linux, and macOS and is available for use in multiple languages as well (C, C++, Java, Python, etc). OpenCV library is widely used in Python for building real-time Machine Learning and Deep Learning applications.

Its cross-platform support and availability in multiple programming languages allow us to develop applications that can be used on different systems. OpenCV is also fast and efficient as compared to the other libraries for computer vision (Caffe, Keras, etc).

History of OpenCV

The OpenCV project was initiated by Gary Bradski Intel’s research center in 1999. Their main aim was to build a highly optimized and efficient library for computer vision tasks and made it open source which is free for both commercial and non-commercial use. Later on, it was supported by Willow Garage, then the Itseez company further developed it. On 25 May 2016, Intel acquired the Itseez.

Prerequisites

You need to have some basic understanding of Python programming language. And, for that you can refer to 270+ Free Python Tutorials.

What is Computer Vision?

Computer vision is a multidisciplinary scientific field that operates on digital images or videos to automate tasks that the human visual system can do.

Computer vision tasks include gathering, processing and analyzing the information from digital images. It is closely linked with Artificial Intelligence and Machine Learning as the computer must interpret what it sees and analyze the digital image in the same way as a human sees.

Implementation of Computer Vision

Let’s look at an example of how a computer vision program looks like. This is a simple snippet of how you can blur an image with Python.

Code:

#importing opencv
import cv2

#Reading the image from local disk
img = cv2.imread("e:/pic.jpg")

#Resizing image to small size
img = cv2.resize(img,(420,300))

#displaying the original image
cv2.imshow("original image",img)

#applying algorithm to blur the image
img = cv2.blur(img, ksize = (5, 5))

#displaying the blur image
cv2.imshow("blur image",img)

Results:

opencv example - opencv tutorial

Time to work on Driver Drowsiness Detection Python Project with OpenCV & Keras

Computer Vision Advantages

Now, in the OpenCV tutorial, let’s learn about the benefits of computer vision:

  • Open source: The source code of OpenCV is free to modify and customize according to individual requirements.
  • Fast: Originally OpenCV is written in C++. Its performance is as fast as C++, the Python wrappers use C++ code in the background.
  • Easier to integrate: OpenCV makes use of numpy arrays, which are efficient for performing operations and data can be used with other libraries like matplotlib and scikit-learn.
  • Ease of coding: Python is easier to code as compared to other languages. We don’t need to take care of pointers, memory management, etc.
  • Fast prototyping: With Python OpenCV library, we can quickly build prototypes. Python is concise, clean and shorter code is needed to perform some tasks with other languages.

Applications of Computer Vision

applications of computer vision - Opencv tutorial

With computer vision, we can process thousands of images at once and assist humans to do jobs better and faster. Computer vision has various applications in multiple domains. Let us go through them and discuss how they are implemented in real life.

1. Event Detection

CCTV cameras are everywhere around us in offices, roads, hospitals, banks, train stations, parking lots, etc and 24/7 surveillance is difficult. The computer vision techniques allow us to monitor the events in real-time and detect anomalies or any specific action detection. Automatic Number Plate Recognition (ANPR) system can be used to control automatic gates, vehicle tracking, analyzing crowd and counting number of people.

2. Industrial Automation

Automatic inspection of objects and classifying them into different categories play a major role in manufacturing industries. Industrial robots use computer vision algorithms to perform various tasks like separating two or more different objects into their respective categories, detecting whether the product is labeled or not. If not, then we can reject the product on the conveyor belt.

3. Medical Image Processing

The progress in computer vision has led to extensive use of the medical imaging data to provide us with better prediction, diagnosis, and treatment of diseases. Some examples of this are the detection of tumors, arteriosclerosis or other malign changes, measurement of organ dimensions, blood flow, enhancement of ultrasonic or X-ray images that are interpreted by humans.

4. Self-driving Vehicles

Artificial Intelligence is on the boom right now and companies are investing in self-driving technology. Computer vision is used to detect lanes and find a path for autonomous vehicles. Information from various sensors is analyzed and used to detect objects on the path like traffic lights, traffic signs and according to obstacles, we decide the appropriate action that needs to be taken.

5. Military Applications

The military is probably one of the largest areas for computer vision. More advanced systems for missile guidance are developed to make dynamic decisions based on the information provided by various sensors including image sensors. Modern military concepts are emerging like “Battlefield awareness” in which strategic decisions are made after analyzing the information provided by sensors, detecting enemy soldiers or vehicles.

Case Study – Implementing Computer Vision at Amazon Go

amazon go - opencv tutorial

Image Source: CNBC

Let us talk about a case study on computer vision. The Amazon company is leading the business in the online platform but now they have also moved offline. Amazon Go has been launched in 2018 and there are now 20 stores of Amazon Go in the US as of 2019.

Amazon Go is a convenience store operated by Amazon. One interesting thing about the store is that there are no cashiers or self-checkout counter. The Amazon Go app on your smartphone is required to enter the store which is linked with the Amazon account and there are multiple cameras placed on the shelves, when the user picks an item it gets automatically added in the virtual cart and if the user places the item back on the shelf then it will get removed from the cart. This way the Amazon Go store has revolutionized the retail shopping experience by automating the steps required to purchase and checkout from a retail shop.

final inventory and checkout at amazon go - opencv tutorial

The technology behind all these is heavily dependent on cameras that are continuously streaming data and using deep learning algorithms, computer vision techniques, and sensor fusion to make this all possible. Computer vision is changing the experience of retail stores and it is expected to grow immensely in the future.

Career in Computer Vision

The initial goal of computer vision was to enable machines to see the visual world just like humans do, but AI has advanced computer vision beyond human vision and now the computer can see things that humans couldn’t. Big Data plays a major role in computer vision as huge amounts of data are required for better conclusions. This is why tech giants like Google, Adobe, Facebook, and Apple are leading in these technologies because they already have a humongous amount of data.

Companies like Picsart, Instagram, Snapchat are all working on computer vision. AI advancement has increased the use of these techniques and a lot of companies are offering high paying jobs for computer vision and ML engineers.

Summary

Let’s review what we have seen so far. In this OpenCV tutorial, we first saw the introduction to OpenCV, the history of OpenCV and how it all started. We discussed computer vision and real-world applications where computer vision is used. We briefly discussed the advantages of computer vision. In the end, we talked about the future and scope in this field.

If you like the OpenCV tutorial, do share it with your friends and colleagues on social media.

11 Responses

  1. Sanju says:

    Great with so many details.

  2. Nizam says:

    Wow Very nice and Thanks a lot.

  3. Flick says:

    Im getting an error.
    ” PS F:\Programming> & C:/Users/Asus/Anaconda3/python.exe f:/Programming/Python/Codes/app.py
    Traceback (most recent call last):
    File “f:/Programming/Python/Codes/app.py”, line 2, in
    import cv2
    ModuleNotFoundError: No module named ‘cv2’ ”
    Even though i’ve done pip install cv.
    Need help!!

  4. azeem says:

    Sir I tried installing python(2.7) and open CV latest version but it throws the error
    ‘DLL load failed: %1 is not a valid Win32 application.’
    when I run this command ‘import cv2’.

    Could you please tell the way to resolve the error and also please send the versions of python and open CV which You used for this project.

    Thankyou!

  5. Kommuri Lokesh says:

    great with informative knowledge

  6. David says:

    File traffic_sign:
    ERORR: import pandas as pd
    ModuleNotFoundError: No module named ‘pandas’

    File gui:
    ERORR: from PIL import ImageTk, Image
    ModuleNotFoundError: No module named ‘PIL’

  7. David says:

    File traffic_sign:
    ERORR: import pandas as pd
    ModuleNotFoundError: No module named ‘pandas’

    File gui:
    ERORR: from PIL import ImageTk, Image
    ModuleNotFoundError: No module named ‘PIL’

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.