Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Hands-On Java Deep Learning for Computer Vision
Hands-On Java Deep Learning for Computer Vision

Hands-On Java Deep Learning for Computer Vision: Implement machine learning and neural network methodologies to perform computer vision-related tasks

eBook
€8.99 €19.99
Paperback
€24.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Hands-On Java Deep Learning for Computer Vision

Convolutional Neural Network Architectures

In this chapter, we'll explore edge detection as one of the most fundamental and widely-used techniques in computer vision. Then, we'll look at edge detection in action, using a number of features and images, by building a Java application that detects edges on different images. As a next step, we'll detail how to use edge detection or convolution with colored RGB images so that we can capture even more features from images. We'll present them using several parameters, which will enable us to control the output of the convolution operation. Then, we'll look at a slightly different type of filter, the pooling layers, and one of the most frequently used: the max pooling layer. After that, we'll put all the pieces together for the purpose of building and training a convolution neural network. Finally, we&apos...

Understanding edge detection

Although neural networks are really powerful models, computer vision is a complex problem to solve, since we need more specialized feature detectors for images. In this section, we'll explore edge detection as one of the fundamental techniques in computer vision for neural network architectures. Then, we'll visit horizontal and vertical edge detection, and finally, we'll understand why edge detection is doing so well.

What is edge detection?

Edges are the pixels where the sight color of the pixels dramatically changes from one side to the other. For example, let's look at the following image:

The edges in the preceding screenshot are where the pixel color changes dramatically...

Building a Java edge detection application

Now, we'll see different type of filters and apply them to different images. Also, we'll explore how the neural network is using convolution or edge detection.

Types of filters

There are other types of filters apart from the vertical and horizontal filters we've seen so far:

Two other popular filters are as follows:

  • Sobel: This filter simply adds a little bit more weight or value to the middle
  • Scharr: Besides adding even more weight to the middle, this filter also adds weight to the sides

As we can see, the zeros are placed in the middle column of the Vertical, Sobel, and Scharr filters. Hence, we can say that Sobel and Scharr measure the difference between the left...

Convolution on RGB images

Let's see how convolution is done with color images, and how we can obtain multi-dimensional output matrices.

As we saw previously, a color image is represented as a three-dimensional matrix of numbers:

The third dimension is usually called all the channels. In this case, we have three channels: red, green, and blue. Considering how the convolution was done with the grayscale images, just convolving a two-dimensional matrix with one filter, one reasonable thing to do here—since we have three of the two-dimensional matrices—is to convolve with three filters:

Each of these filters will be convolved with one of the channels.

So far, we've seen 3 x 3 filters, but actually, the two dimensions can vary from x to ε.

This kind of operation will now produce three outputs:

Let's look in a bit more detail at what's happened...

Working with convolutional layers' parameters

We'll see how to increase the dimension of the output matrix by using padding, and how to greatly decrease it through use of the stride. You will recall from the previous section, that we're convolving a 6 x 6 x 3 input image with 3 x 3 filters, which gives us a 4 x 4 x 1 matrix output:

And as you may have guessed, these output dimensions can be described by a math formula, and that formula appears as follows:

In this equation, IM is just the input matrix dimension, OM is the output matrix dimension, and F refers to the filter size. So let's apply this formula:

We can do the same for the other dimension as well. Feel free to try a different size of input images with different filters, and see how this formula will actually work. You can do that even for the edge detection application. Regardless of this formula...

Pooling layers

Let's see a slightly different type of layer, pooling layers, and, more specifically, we'll go in to the details of max pooling and average pooling.

Max pooling

Let's first explore how max pooling works. Similar to the convolution, we have the same parameters, the filter size is 2 x 2, the stride defines how big the step is, and we won't use any padding here:

Max pooling simply outputs the maximum of the selected values from the filter window, and, in this case, it would be nine.

It then moves the window on the right:

In this case, it moves two steps because of the stride, and outputs the maximum of the selected values, which is three.

It then moves down two steps and it outputs eight:

...

Building and training a Convolution Neural Network

So far, we've examined all the building blocks needed to build a Convolutional Neural Network (CNN), and that's exactly what we are going to do in this section, where we explain why convolution is so efficient and widely used.

Here's the architecture of a CNN:

First, we start with a 28 x 28 grayscale image, so we have one channel that's just a black-and-white image. For now, it doesn't really matter, but these are handwritten digit images taken from the MNIST dataset that we saw in the previous chapter.

In the first layer, we'll apply a 5 x 5 filter, a convolution feed filter, with a stride of 1 and no padding, and, applying the formula we saw in the previous section will give us a 24 x 24 output matrix. But since we want a higher number of channels, in order to capture more features, we will apply...

Improving the handwritten digit recognition application

Let's see how our CNN architecture will look when written in Java. We'll also run the Java application and test the improved model from the graphical user interface. We'll draw some digits and ask models for predictions, and maybe simulate a case when a convolution will outperform the simple neural network model.

Before checking out the code, let's first look at the CNN architecture that we saw in the previous section from a different point of view:

So, we have this table here, and in the extreme left, there are the layers. Then we have these two columns, which are the activation's. So the activations are just the input, hidden layers, or convolution layers, and one activation shows the shape of the matrix dimensions, while the other shows the complete size, which is just a multiplication of the...

Summary

We hope you enjoyed learning about edge detection, and creating an application to detect the edges of complex images using different types of filters. We took an in-depth look at convolution and worked with its layers, which helped us to understand complex convolution neural networks. We saw the benefit of pooling layers in building a CNNs—they reduce the number of parameters drastically. We saw why convolution is the ultimate technique for achieving better accuracy and proved it by building and training a CNN that showed how the accuracy percentage was improving consistently over time rather than sticking at 97%, as with the simple neural networks.

In the next chapter, we'll look at transfer learning and the deep convolution neural network architecture, which will enable us to achieve state-of-the-art accuracy.

...
Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Build real-world Computer Vision applications using the power of neural networks
  • Implement image classification, object detection, and face recognition
  • Know best practices on effectively building and deploying deep learning models in Java

Description

Although machine learning is an exciting world to explore, you may feel confused by all of its theoretical aspects. As a Java developer, you will be used to telling the computer exactly what to do, instead of being shown how data is generated; this causes many developers to struggle to adapt to machine learning. The goal of this book is to walk you through the process of efficiently training machine learning and deep learning models for Computer Vision using the most up-to-date techniques. The book is designed to familiarize you with neural networks, enabling you to train them efficiently, customize existing state-of-the-art architectures, build real-world Java applications, and get great results in a short space of time. You will build real-world Computer Vision applications, ranging from a simple Java handwritten digit recognition model to real-time Java autonomous car driving systems and face recognition models. By the end of this book, you will have mastered the best practices and modern techniques needed to build advanced Computer Vision Java applications and achieve production-grade accuracy.

Who is this book for?

This book is for data scientists, machine learning developers and deep learning practitioners with Java knowledge who want to implement machine learning and deep neural networks in the computer vision domain. You will need to have a basic knowledge of Java programming.

What you will learn

  • Discover neural networks and their applications in Computer Vision
  • Explore the popular Java frameworks and libraries for deep learning
  • Build deep neural networks in Java
  • Implement an end-to-end image classification application in Java
  • Perform real-time video object detection using deep learning
  • Enhance performance and deploy applications for production

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Feb 21, 2019
Length: 260 pages
Edition : 1st
Language : English
ISBN-13 : 9781838552138
Category :
Languages :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Feb 21, 2019
Length: 260 pages
Edition : 1st
Language : English
ISBN-13 : 9781838552138
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total €17.98 €46.98 €29.00 saved
Machine Learning in Java
€32.99
Hands-On Java Deep Learning for Computer Vision
€24.99
Total €17.98€46.98 €29.00 saved Stars icon
Banner background image

Table of Contents

7 Chapters
Introduction to Computer Vision and Training Neural Networks Chevron down icon Chevron up icon
Convolutional Neural Network Architectures Chevron down icon Chevron up icon
Transfer Learning and Deep CNN Architectures Chevron down icon Chevron up icon
Real-Time Object Detection Chevron down icon Chevron up icon
Creating Art with Neural Style Transfer Chevron down icon Chevron up icon
Face Recognition Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
(1 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 100%
Sam S. Jan 28, 2020
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
There are no Java source code files on this book's Github web page.Java source code files are not given in the book and very little code is discussed.in the book.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.