Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2017 - Ravi Chityala - Before Deep Learning

PyBay
August 13, 2017

2017 - Ravi Chityala - Before Deep Learning

Description
A significant work in deep learning technique such as Convolution Neural Network (CNN) is in preparation and augmentation of image data. The data is then fed to the network for classification. In this talk, we will discuss an example where we will solve a CNN after preparing the data using appropriate computer vision and image processing algorithms using modules such as numpy, scipy, OpenCV etc.

Abstract
Deep learning solves some of the most complex problems in computer vision. Deep learning is primarily a data problem (i.e.,) the more data we can provide to the learning algorithm, the better would be the outcome. In that regards, data preparation is a pre-requisite for solving deep learning problems.

Python is one of the most popular language for solving these deep learning problems. Python libraries such as Tensorflow, Theanos, Keras have made programming deep learning relatively easy. However, we still need to perform image augmentation and image preparation before feeding the data to deep learning. In this talk, we will learn about preparing large dataset of images for solving Convolution Neural Network (CNN) based classification.

We will read images using OpenCV and store them as numpy arrays. We will then filter and pre-process the images using scipy and OpenCV, so that the resulting tensor can be fed to the CNN. Along the way, we will discuss the philosophy behind each of these modules.

We will use Anaconda Python distribution along with the latest version of Tensorflow for this talk.

Bio
Dr. Ravi Chityala is a Senior Engineer at Elekta Inc. He has more than 12 years of experience in image processing and scientific computing. He is also a part-time instructor at University of California Santa Cruz, Silicon Valley Extension, Santa Clara, CA, where he teaches advanced Python to programmers. He uses Python for web development, scientific prototyping and computing and as a glue to automate process.

PyBay

August 13, 2017
Tweet

More Decks by PyBay

Other Decks in Programming

Transcript

  1. BOOK • Image Processing and Acquisition using Python by Ravi

    Chityala and Sridevi Pudipeddi • Published by CRC Press
  2. PYTHON DISTRIBUTIONS • Anaconda – Free and Paid (http://continuum.io/) •

    Enthought – Free and Paid (https://www.enthought.com/) • PythonXY – Free (http://python-xy.github.io/)
  3. NUMPY • Numpy is Python’s numerical computing library • It

    supports large multi-dimensional arrays called ndarray • It also provides basic matrix operations • Originally created by Travis Oliphant • http://numpy.org
  4. PANDAS • Pandas is a data manipulation and visualization library

    • It provides 2 data structures: Series and DataFrame • It allows efficient reading of large data sets • It provides tools for visualization of data • Originally developed by Wes McKinney and with later contributions from Chang She. • http://pandas.pydata.org
  5. SCIPY • Scipy is Python’s scientific computing library built on

    top of numpy • It provides higher order mathematical operations for FFT, Image processing, Signal processing etc. • http://scipy.org
  6. OPENCV • Computer vision library with C++ and Python interface

    • Consists of many image processing and computer vision algorithm • http://opencv.org
  7. MULTIPROCESSING • Allows spawning of one or more processes •

    The processes can communicate with each other • https://docs.python.org/2/library/multiprocessing.html • https://docs.python.org/3/library/multiprocessing.html
  8. • Open source numerical computing library from Google. • Useful

    for deep learning • Python frontend • http://tensorflow.org • Current release is 1.2 TENSORFLOW
  9. COMPUTATIONAL GRAPH + B a = tf.constant(4) b = tf.constant(5)

    c = a + b with tf.Session() as sess1: print(sess1.run(c)) C A Edge is a tensor