Book Image

OpenCV 4 with Python Blueprints - Second Edition

By : Dr. Menua Gevorgyan, Arsen Mamikonyan, Michael Beyeler
Book Image

OpenCV 4 with Python Blueprints - Second Edition

By: Dr. Menua Gevorgyan, Arsen Mamikonyan, Michael Beyeler

Overview of this book

OpenCV is a native cross-platform C++ library for computer vision, machine learning, and image processing. It is increasingly being adopted in Python for development. This book will get you hands-on with a wide range of intermediate to advanced projects using the latest version of the framework and language, OpenCV 4 and Python 3.8, instead of only covering the core concepts of OpenCV in theoretical lessons. This updated second edition will guide you through working on independent hands-on projects that focus on essential OpenCV concepts such as image processing, object detection, image manipulation, object tracking, and 3D scene reconstruction, in addition to statistical learning and neural networks. You’ll begin with concepts such as image filters, Kinect depth sensor, and feature matching. As you advance, you’ll not only get hands-on with reconstructing and visualizing a scene in 3D but also learn to track visually salient objects. The book will help you further build on your skills by demonstrating how to recognize traffic signs and emotions on faces. Later, you’ll understand how to align images, and detect and track objects using neural networks. By the end of this OpenCV Python book, you’ll have gained hands-on experience and become proficient at developing advanced computer vision apps according to specific business needs.
Table of Contents (14 chapters)
11
Profiling and Accelerating Your Apps
12
Setting Up a Docker Container

Putting it all together

To run our app, we will need to execute the main function routine (in chapter6.py). This loads the data, trains the classifier, evaluates its performance, and visualizes the result:

  1. First, we need to import all the relevant modules and set up the main function, as follows:
import cv2
import numpy as np
import matplotlib.pyplot as plt

from data.gtsrb import load_training_data
from data.gtsrb import load_test_data
from data.process import grayscale_featurize, hog_featurize
  1. Then, the goal is to compare classification performance across feature extraction methods. This includes running the task using a list of different feature extraction approaches. So, we first load the data, and repeat the process for each of the featurizing functions, as follows:
def main(labels):
train_data, train_labels = load_training_data(labels)
test_data, test_labels = load_test_data...