Image Processing With TensorFlow
Image Processing With TensorFlow
TensorFlow
Marc Anthony Reyes
@marcreyesph
About Marc
• Third year BS Computer Science student, Xavier
University
• Freelance Front-End Web Developer
• Aspiring Data Scientist and Machine Learning engineer
• Loves The Purge
What are Intelligent
Applications?
What are Intelligent Applications?
• For certain tasks, figuring out the
exact, handwritten code could
take years, or isn’t yet possible
• Often we hire humans to do it
• Recognize images
• Read handwriting
• Label reading
• Machine Learning is like having
an army of workers which do one
thing
• Machine figures it out for you
then execute rapidly* (often in
parallel)
• Imperfect, but often that’s fine * Image recognition requires more muscle
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
What intelligent applications do
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
What is Machine Learning?
• Arthur Samuel, an American pioneer in the field of
computer gaming and artificial intelligence, coined the
term “Machine Learning” in 1959 while at IBM.
• “A computer program is said to learn from experience E
with respect to some class of tasks T and performance
measure P if its performance at tasks in T, as measured
by P, improves with experience E” (Mitchell, 1997)
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
Types of Learning
• Supervised learning
The computer is presented with example inputs and their
desired outputs, given by a “teacher”, and the goal is to
learn a general rule that maps inputs to outputs.
• Unsupervised learning
No labels are given to the learning algorithm, leaving it on
its own to find structure in its input. Unsupervised
learning can be a goal in itself (discovering hidden
patterns in data) or a means towards an end (feature
learning)
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
What can Machine Learning do?
• Natural Language Processing (NLP)
• Sentiment analysis (“I do not like that
book”)
• Language detection
• Image recognition
• Cat or dog, model of car, types of
objects in frame
• Facial recognition (group photos by
individual)
• Hotdog or not hotdog?
• Prediction
• Trends (weather, stocks, product
sales)
• Agents
• Automated game players, chatbots
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
Machine Learning Libraries
• Natural Language Toolkit
(NLTK)
• Language processing in Python:
import nltk
• Parts of speech, named entities,
parse trees
• TensorFlow
• Open source software library for
numerical computation
• Flexible architecture
• Originally made by researchers
and engineers at Google Brain
• TensorFlow Lite: Machine Learning
apps for android
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
What is TensorFlow?
• TensorFlow is an open-source
software library for dataflow
programming across a range of
tasks. It is a symbolic math
library, and also used for
machine learning applications
such as neural networks.
• In May 2017 Google announced
a software stack specifically
for Android development,
TensorFlow Lite, beginning with
Android Oreo.
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
What is required from me?
• Statistics
• Basic understanding of Statistics and Linear Algebra
• Programming
• Knowledge in Python, Scala, Java, or R
• Domain Knowledge
• Know your problem and your data
• Software Engineering
• Questions about performance and integration of ML models
• Burning passion to pursue ML
• Don’t get frustrated if you don’t get it the first time
• Practice, practice, practice
• Read books
Portions of this presentation are use Algorithmia’s Machine Learning presentation. Visit https://blog.algorithmia.com/building-intelligent-applications/ for details.
What is Image
Processing?
Image Processing
• The use of images as training
models for your machine learning
application
• Apps include image classification,
labelling, or creating a new image
based from the “learned” image
dataset
• Involves a series of processes
such as batch processing,
convolution, and 2D/3D/4D kernel
filtering
• Supervised learning in nature
Anatomy of an Image
• An image has three dimensions, width (in pixels), height
(in pixels), and color channel (red, green, or blue)
image[1500, 1000, 3]
RGB
What do I need?