Hands-On Java Deep Learning for Computer Vision

Book description

Leverage the power of Java and deep learning to build production-grade Computer Vision applications

Key Features

  • 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

Book 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 course 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.

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

Who this book is 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.

Table of contents

  1. Title Page
  2. Copyright and Credits
    1. Hands-On Java Deep Learning for Computer Vision
  3. About Packt
    1. Why subscribe?
    2. Packt.com
  4. Contributor
    1. About the author
    2. Packt is searching for authors like you
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Get in touch
      1. Reviews
  6. Introduction to Computer Vision and Training Neural Networks
    1. The computer vision state
      1. The importance of data in deep learning algorithms
    2. Exploring neural networks
      1. Building a single neuron
      2. Building a single neuron with multiple outputs
      3. Building a neural network
    3. How does a neural network learn? 
      1. Learning neural network weights
      2. Updating the neural network weights
      3. Advantages of deep learning
    4. Organizing data and applications
      1. Organizing your data
      2. Bias and variance
      3. Computational model efficiency
    5. Effective training techniques
      1. Initializing the weights
      2. Activation functions
    6. Optimizing algorithms
    7. Configuring the training parameters of the neural network
    8. Representing images and outputs
      1. Multiclass classification
    9. Building a handwritten digit recognizer
      1. Testing the performance of the neural network
    10. Summary
  7. Convolutional Neural Network Architectures
    1. Understanding edge detection
      1. What is edge detection?
      2. Vertical edge detection
      3. Horizontal edge detection
      4. Edge detection intuition
    2. Building a Java edge detection application
      1. Types of filters
      2. Basic coding
    3. Convolution on RGB images
    4. Working with convolutional layers' parameters
      1. Padding
      2. Stride
    5. Pooling layers
      1. Max pooling
      2. Average pooling
      3. Pooling on RGB images
      4. Pooling characteristics
    6. Building and training a Convolution Neural Network
      1. Why convolution?
    7. Improving the handwritten digit recognition application
    8. Summary
  8. Transfer Learning and Deep CNN Architectures
    1. Working with classical networks
      1. LeNet-5
      2. AlexNet
      3. VGG-16
    2. Using residual networks for image recognition
      1. Deep network performance
        1. ResNet-50
    3. The power of 1 x 1 convolutions and the inception network
    4. Applying transfer learning
    5. Neural networks
    6. Building an animal image classification – using transfer learning and VGG-16 architecture
    7. Summary
  9. Real-Time Object Detection
    1. Resolving object localization
      1. Labeling and defining data for localization
      2. Object localization prediction layer
      3. Landmark detection
    2. Object detection with the sliding window solution
      1. Disadvantages of sliding windows
    3. Convolutional sliding window 
    4. Detecting objects with the YOLO algorithm
    5. Max suppression and anchor boxes
      1. Max suppression
      2. Anchor boxes
    6. Building a real-time video, car, and pedestrian detection application
      1. Architecture of the application
        1. YOLO V2-optimized architecture
      2. Coding the application
    7. Summary
  10. Creating Art with Neural Style Transfer
    1. What are convolution network layers learning?
    2. Neural style transfer
      1. Minimizing the cost function
    3. Applying content cost function
    4. Applying style cost function
      1. How to capture the style
      2. Style cost function
    5. Building a neural network that produces art
    6. Summary
  11. Face Recognition
    1. Problems in face detection
      1. Face verification versus face recognition
        1. Face verification
        2. Face recognition
      2. One-shot learning problem
        1. Similarity function
    2. Differentiating inputs with Siamese networks
      1. Learning with Siamese networks
    3. Exploring triplet loss
      1. Choosing the triplets
    4. Binary classification
      1. Binary classification cost function
    5. Building a face recognition Java application
    6. Summary
  12. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: Hands-On Java Deep Learning for Computer Vision
  • Author(s): Klevis Ramo
  • Release date: February 2019
  • Publisher(s): Packt Publishing
  • ISBN: 9781789613964