IP Library Granted Patent US 9,524,450
Granted Patent B2
US 9,524,450 · App. 14/638,873 · Granted Dec 20, 2016

Digital image processing using convolutional neural networks

Inventors: Arun Ravindran (Brooklyn, NY); Ozlem Celik-Tinmaz (Guttenberg, NJ); Mohamed Badawy (Irving, TX)
Assignee: ACCENTURE GLOBAL SERVICES LIMITED
G06K9/6267G06K9/00G06K9/4628G06N3/04G06N3/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,524,450
App. No.
14/638,873
Granted
Dec 20, 2016
Kind
B2
Abstract

According to an example, a digital image may be processed by an ensemble of convolutional neural networks (CNNs) to classify objects in the digital image. For each CNN, a candidate architecture and candidate parameters may be selected to build a plurality of CNNs. Once it is determined that a predetermined number of CNNs, each having different values for the selected candidate parameters, meet a validation threshold, an ensemble of CNNs may be generated from the predetermined number of CNNs. The predictions from the ensemble of CNNs may then be aggregated to accurately classify the objects in the digital image.

Claims (48)

1. A method of classifying a damaged object, the method comprising:

creating a training set of images from images of a damaged object;

selecting a candidate architecture and candidate parameters for a convolutional neural network (CNN) to classify the extent of damage of the object in the training set of images through an iterative process, wherein the candidate architecture includes convolution layers, sub-sampling layers, and a classifier type, and wherein the iterative process comprises:

selecting the candidate architecture from a plurality of candidate architectures;

selecting the candidate parameters for the selected candidate architecture, wherein the selected candidate parameters include a learning rate, a batch size, a maximum number of training epochs, an input image size, a number of feature maps at each of the convolution layers and sub-sampling layers, a convolutional filter size, a sub-sampling pool size, a defined number of hidden layers, a number of units in each of the hidden layers, a selected classifier algorithm, and a number of output classes;

selecting a pre-processing protocol to enhance information content in the training set of images of the damaged object for the selected candidate architecture and selected candidate parameters, wherein the preprocessing protocol includes cropping the images and extracting a defined number of RGB channel layers from the images;

building an intermediate CNN using the training set;

evaluating performance of the intermediate CNN on a validation set of images, the validation set of images comprising images of undamaged objects, damaged objects, and totaled objects, wherein the validation set of images is separate and distinct from the training set of images;

determining whether the intermediate CNN meets a validation threshold; and

repeating the iterative process until a predetermined number of intermediate CNNs meet the validation threshold, wherein each intermediate CNN has different values for the selected candidate parameters;

creating an ensemble of intermediate CNNs from the predetermined number of intermediate CNNs; and

classifying the extent of damage for the object in each image in the validation set, wherein the classifying includes aggregating predictions from the ensemble of intermediate CNNs.

2. The method of claim 1 , wherein the learning rate is between 0.05 and 0.1, the batch size is between 2 and 128 images, and the maximum number of training epochs is between 100 and 200.

3. The method of claim 1 , wherein the candidate parameters include convolution and sub-sampling parameters, wherein the convolution and sub-sampling parameters include at a convolutional filter size, a number of feature maps, and a sub-sampling pool size.

4. The method of claim 3 , wherein the convolutional filter size is between 2×2 pixels and 114×114 pixels, the number of feature maps in a first convolutional layer is between 60 and 512, and the sub-sampling pool size is between 2×2 pixels and 4×4 pixels.

5. The method of claim 1 , wherein the image input size is a number equal to a product of a number of feature maps and an image size of a last convolutional layer, the number of hidden layers is 2, the number of units in each hidden layer is between 6 and 1024 units, the selected classifier algorithm being a multilayer perceptron (MLP) algorithm, and the number of output classes is 3.

6. The method of claim 1 , wherein determining whether the intermediate CNN meets the validation threshold comprises determining whether the intermediate CNN has an error rate of less than 20% on the validation set.

7. The method of claim 1 , wherein the predetermined number of intermediate CNNs is 25.

8. A damage classifying server comprising:

a processor; and

a memory storing machine readable instructions that are to cause the processor to:

create a training set of images from images of a damaged object;

select a candidate architecture and candidate parameters for a convolutional neural network (CNN) to classify the extent of damage of the object in the image through an iterative process, wherein the candidate architecture includes convolution layers, subsampling layers, and a classifier type, and wherein the iterative process comprises:

selecting the candidate architecture from a plurality of candidate architectures;

selecting the candidate parameters for the selected candidate architecture, wherein the selected candidate parameters include a learning rate, a batch size, a maximum number of training epochs, an input image size, a number of feature maps at each of the convolution layers and sub-sampling layers, a convolutional filter size, a sub-sampling pool size, a defined number of hidden layers, a number of units in each of the hidden layers, a selected classifier algorithm, and a number of output classes;

selecting a pre-processing protocol to enhance information content in the training set of images of the damaged object for the selected candidate architecture and selected candidate parameters, wherein the preprocessing protocol includes cropping the images and extracting a defined number of RGB channel layers from the images;

building an intermediate CNN using the training set;

evaluating performance of the intermediate CNN on a validation set of images comprising images of undamaged objects, damaged objects, and totaled objects, wherein the validation set of images is separate and distinct from the training set of images, and

repeating the iterative process until it is determined that a predetermined number of intermediate CNNs meet a validation threshold, wherein each intermediate CNN has different values for the selected candidate parameters;

create an ensemble of intermediate CNNs from the predetermined number of intermediate CNNs; and

classify the extent of damage for the object in each image in the validation set, wherein to classify is to aggregate predictions from the ensemble of intermediate CNNs.

9. The damage classifying server of claim 8 , wherein the machine readable instructions cause the processor to:

select the learning rate between 0.05 and 0.1, the batch size between 2 and 128 images, the maximum number of training epochs between 100 and 200, the convolutional filter size between 2×2 pixels and 114×114 pixels, the number of feature maps in a first convolutional layer between 60 and 512, the sub-sampling pool size between 2×2 pixels and 4×4 pixels, the number of hidden layers at 2, the number of units in each hidden layer between 6 and 1024 units, a classifier algorithm as a multilayer perceptron (MLP) algorithm, and the number of output classes as 3.

10. The damage classifying server of claim 8 , wherein to determine whether the intermediate CNN meets the validation threshold, the machine readable instructions cause the processor to determine whether the intermediate CNN has an error rate of less than 20% on the validation set.

11. The damage classifying server of claim 8 , wherein the predetermined number of intermediate CNNs is 25.

12. A non-transitory computer readable medium to classify a damaged object, the non-transitory computer readable medium including machine readable instructions executable by a processor to:

create a training set of images from images of a damaged object;

select a candidate architecture and candidate parameters for a convolutional neural network (CNN) to classify the extent of damage for of the object in the image through an iterative process, wherein the candidate architecture includes convolution layers, sub sampling layers, and a classifier type, and wherein the iterative process comprises:

selecting the candidate architecture from a plurality of candidate architectures;

selecting the candidate parameters for the selected candidate architecture, wherein the selected candidate parameters include a learning rate, a batch size, a maximum number of training epochs, an input image size, a number of feature maps at each of the convolution layers and sub-sampling layers, a convolutional filter size, a sub-sampling pool size, a defined number of hidden layers, a number of units in each of the hidden layers, a selected classifier algorithm, and a number of output classes;

selecting a pre-processing protocol to enhance information content in the training set of images of the damaged object for the selected candidate architecture and selected candidate parameters, wherein the preprocessing protocol includes cropping the images and extracting a defined number of RGB channel layers from the images;

building an intermediate CNN using the training set;

evaluating performance of the intermediate CNN on a validation set of images comprising images of undamaged objects, damaged objects, and totaled objects, wherein the validation set of images is separate and distinct from the training set of images, and

repeating the iterative process until it is determined that a predetermined number of intermediate CNNs meet a validation threshold, wherein each intermediate CNN has different values for the selected candidate parameters;

create an ensemble of intermediate CNNs from the predetermined number of intermediate CNNs; and

classify the extent of damage for the object in each image in the validation set, wherein to classify is to aggregate predictions from the ensemble of intermediate CNNs.

13. The non-transitory computer readable medium of claim 12 , wherein to select candidate parameters, the machine readable instructions are executable by the processor to:

select the learning rate between 0.05 and 0.1, the batch size between 2 and 128 images, the maximum number of training epochs between 100 and 200, the convolutional filter size between 2×2 pixels and 114×114 pixels, the number of feature maps in a first convolutional layer between 60 and 512, the sub-sampling pool size between 2×2 pixels and 4×4 pixels, the number of hidden layers at 2, the number of units in each hidden layer between 6 and 1024 units, a classifier algorithm as a multilayer perceptron (MLP) algorithm, and the number of output classes as 3.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2015
From: RAVINDRAN, ARUN; CELIK-TINMAZ, OZLEM; BADAWY, MOHAMED
To: ACCENTURE GLOBAL SERVICES LIMITED
Reel/Frame 035180/0397 →
Continuity (1)
Related Publication 20160259994A1 · Sep 8, 2016