[MUSIC PLAYING]
BILL LUAN: Good
afternoon, everyone.
Welcome to the Google I/O
session of Introducing Google
Coral.
My name is Bill Luan.
I'm a program manager
at Google's Coral team.
On behalf of all
my team members,
warm welcome to
all of you and many
of you watching online
around the world.
Thank you for joining us.
Before I start to talk
about the Coral product,
let's take a quick
look at the industry
trend, which
demonstrates to us why
Coral will be important to us.
The growth of the smart
devices and the so-called IoT--
the internet of things--
has grown tremendously over
the past number of years.
And it represents one of the
biggest growth opportunity
in the years to come.
Per many industry trend
forecasts over the internet,
such as this one
you can see, you
can see many of those
similar on the internet.
The growth of the non-IoT
devices, such as PCs, laptops,
mobile phones, tablets, and
so on, in the next five to six
years will grow from about
11 billion installed units
globally to around 12 billion
over the next five to six years
time span, representing
about 14% growth rate.
However, the IoT smart
devices, the growth
rate from the current install
base about 8 billion units
worldwide will grow to 21
billion in the same period,
representing a much larger
growth rate of more than 150%.
So this really tells us
where the growth opportunity
and opportunities for
innovation for all of us,
for developers around the
world, where that lies ahead.
Namely, they are in
the smart devices.
So in the smart
devices users continue
to grow the interest in smart
devices in terms of innovation,
and the development
will continue to grow.
There are several
key factors which
will drive this trend
continue forward.
Because number one,
due to the increase
of the interest around
the world in terms of AI,
machine learning,
the advancement
of key research in
AI continues to grow
over the last several years.
In fact, the number
of research papers
has published in
the last few years
in machine learning is more than
the total number of such papers
in the last decade combined.
So more AI capabilities
will make the application
of AI machine learning on
devices more practical,
feasible, as machine
learning models become
more accurate, faster,
performance better,
industries will have an interest
to continue to use them.
So as more devices at the
edge require machine learning,
we really need to
have a solution
to bring the machine learning
onto the device at the edge.
We need a technology,
especially a hardware,
to bring the machine learning
acceleration, that capability
right on the device.
So in a nutshell, smart
devices growth demands
bring machine learning to
the edge to the device.
And we need a solution for that.
So let me introduce to you
what Google has made for you--
for developers
around the world--
to answer this industry demand
what will make that possible.
Introducing Coral from Google.
It is a new exciting
technology platform
to enable developers
all around the world
to build on-device machine
learning acceleration AI
applications with ease
and with high efficiency.
So with this introduction
session what you will learn
is about what the Coral
product line offers.
What are machine
learning capabilities
you can build with the Coral
platform and the technology.
And third, what are
the use cases in terms
of deploying machine
learning with applications
in a lot of industry use.
So I'm going to go through all
these with my instruction here.
Coral is designed as
a-- make it easier
to bring machine
learning on the device,
make it easier for you
to develop applications.
It is a platform to make
prototyping tool production
with high speed,
with efficiency.
It is a platform to develop
on-device machine learning.
It offers a group of components
of hardware components
to bring unique high-performance
machine learning capability
right onto the Edge devices.
It also offers a complete
set of software tool change
to enable you to
develop applications
in AI machine
learning with ease.
In addition to that,
Coral also offers a set
of ready-to-be-used machine
learning models for you
to quickly deploy onto devices.
So a lot of you may curious.
Why it is called Coral?
How that has anything
to do with AI?
Well, if you look at the nature
of coral in the natural world,
coral really do represent
a community of vibrant,
teeming with life, inclusive,
very open community.
Right?
The living organism
together, they're
working together to
contribute to a common good.
And that's exactly
what we inspire,
want to make a platform for
the industry, for all of you.
Coral's inspiration
and mission is
to provide a vibrant
platform for all of you
to collaborate and to
develop applications to bring
AI applications to the device.
We want to enable
developers everywhere
to turning AI ideas to
business solutions from idea
to prototyping to large
scale production deployment
with ease and simplicity.
And finally, we want to
encourage everybody joining
a community-wide effort
to contribute and to learn
and to share machine
learning models together.
So that's where the name
of the Coral came from.
So why do we want to talk about
the benefits of the machine
learning on device?
So let's take a
quick look at what
are the key points
of machine learning
on device in terms of benefits.
Number one, it is a high
performance benefit.
Because everything is
computed on the device right
on the device locally there.
You do not need to send
the data back to the cloud.
Right?
So high performance,
everything on the local
allow you to do things
much more efficiently.
Also it's very important-- very
key-- in many applications,
you want the data to
stay on the device,
especially in business
application scenarios.
Some user privacy data
cannot be sent to a server,
cannot be sent to the cloud.
We want a technology
to enable you
to make that solution
available to your customers.
And also because
data stays local.
All the information coming from
the sensors right on the device
can be accessed
and used to compute
for your machine learning
results right there, rather
than you have to send the data
to the cloud, to the server,
to compute and
send the data back.
Right?
So this is another
way to look at it.
It's a much better performance.
Because auditing every
data is locally available.
Next is works offline.
There's many scenarios--
the internet of things,
the smart devices--
they may or may not have
internet connection.
In fact, in most cases they
don't have a cloud connection.
So you still want to
have a machine learning
capability in that scenario.
And a offline on-device
machine learning capability
will make that happen for you.
And lastly, it is much
more power efficient.
Lot of Edge devices are small.
They don't have
large power supply.
And they require high
efficiency in terms of computing
computation on the device.
Because you don't have to send
the data back to the cloud,
and of course, you
save the bandwidth.
You save the power to send the
data so use a Wi-Fi on network.
So the benefits of
machine learning
is very strong on-device,
machine learning very strong.
So let's take a quick look
at the Coral product line.
What do we offer
to the industry?
Coral product line offers
both hardware components
and software components.
On the hardware side
it offers development
on board, which is a single
border computer allow you
to prototype developer
applications.
Also, Coral offers
a number of sensors
to allow you to build
applications using
the sensory data in
terms of imaging,
video, environmental
sensors, making
those available as a
part of the input of data
to your application.
And also in the
software side, we
provide a complete set
of software tool change
from operating system
to SDK to machine
learning modules allow you to
easily use them and quickly
build your application.
In addition to that, we provide
a detailed comprehensive set
of contents in terms of
documentation, examples,
online guide, data
Sheets, et cetera.
All of those were made available
online at the Coral website
to all of you.
So now we know what to the
Coral product suite contains.
Let's take a look
little bit more detail
in terms of the
hardware components.
So Coral hardware product.
We offer a suite
of hardware to you
in terms of prototyping and
developing applications.
The first one is
called Coral Dev Board.
As you can see on
the picture here,
it retails for about $150.
It's a single-board computer
with operating system
on board and machine learning
capability right on the device.
The second one is a USB key,
what we call USB accelerator.
It has the Edge TPO machine
learning acceleration chip
right on the device.
You can put this USB
into any Linux machine
and to be able to bring machine
learning capability right
on to those devices.
And I have those with me.
And I want to show
you the relative size
dimension of that.
So this is the Coral Deb Board.
It's very small, as you can see.
It is a single board
computer with all
the necessary input/output
of the connectors on that.
This is the USB key,
it's even smaller.
It's just typical to any
USB key you would use.
So these are the two
current computer platforms
you use to develop applications.
In addition to that, we also
offer a couple of sensors,
as I said, to take sensing data
from the field for your machine
learning application to consume.
Number one is a five-megapixel
autofocus camera,
what we call a Coral camera.
Second, we just
released a few days ago
a new environmental sensor,
which is this one here.
As you can see, very small.
And it has a digital
display on that.
It allow you to take the
input from temperature,
humidity, and light and so on.
These input sensors, you
can use that and build it
for your applications.
Now with these you
do the prototype.
But when you deploy
these devices
into largest scale
production environment,
we allow you to enable
you to take the sun
module from the Dev Board.
In other words, this piece of
circuit board can snap off.
You can embed into your product.
And this is for volume
large scale deployment.
And the individual unit price,
as you can see, for about $115.
And we offer discount
for volume deployment.
Very soon in the next quarter we
will offer a PCI-E connector--
a base connector-- which you can
plug into any PC or industrial
PC and industry devices
that accept a PCI-E
connector to allow you to bring
machine learning capability
into those devices.
So those on the
left, are what you
need to do prototyping for your
machine learning application.
The one on the right--
the one on the right is
for large scale deployment.
Of course, the cameras and
environment of sensors,
you could have used for both
prototyping and the larger
scale deployment so
they stay in the middle.
All right, let's talk
about the Google Edge TPU.
This is the center-- the
core of this platform--
bringing machine learning
capabilities onto the device.
So the Edge TPU is a small,
application-specific circular
chip that Google
designed specifically
for optimizing machine
learning on the device.
It is designed to
take TensorFlow Lite
machine learning modules.
And it supports 8-bit quantile
TensorFlow model and running
on-device with a
high efficiency.
It consumes only
two watts power.
And it runs very fast.
The picture you
see in the middle
represents its relative
size to a penny.
So it's a tiny chip.
And with the same
module of this size,
you can easily embed
into many, many devices.
So how fast this Edge TPU goes?
Well, in a general time,
what we publish online,
the performance
speed of the Edge TPU
runs computation at about four
trillion operations per second.
So in general terms, it's
a Four TOPS, if you will.
You may ask, well,
how fast it actually
runs machine learning model?
Take a look at this
comparison table.
We benchmark couple of
very common mostly used
vision machine learning models,
such as MobileNet, Inception.
We're running the dev
board or the Edge TPU USB
on both of these running against
powerful CPU or embedded CPU,
powerful desktop CPU such
as the Xenon 64-bit CPU
or the ARM CPU in
the embedded world.
As you can see in this
table, in comparison,
the machine learning capability
speed of the Edge TPU
runs only a fraction
of the time necessary
compared to the desktop
CPU and the embedded CPU.
So it's much, much faster.
Now some of you say, well, OK.
These are just
benchmark numbers.
Do you have an example--
real world example--
you can show me?
And I say yes.
Let me borrow an example
from one of our beta users
who posted this in our
Coral beta online forum.
He said, I'm building an app
monitoring online traffic
in real time.
You know, watching
10, 20 cars real time.
I just take the mobile
net out of the box
without much tweaking.
And I used the Coral
product, I being
able to achieve about 48
frame per second performance.
That is very comparable
to a 30 frame per second
using a GTX 980 GPU plus
a CPU in similar gear.
Now for those of you
who build game machines,
you know to build
HTX 980 GPU plus CPU,
you're talking about-- what?
$500 to $1,000 cost of gear.
But with the Coral Dev
Board, it's only 150.
You'll be able to
achieve the same results.
So this really tells you
the cost and the performance
advantage of the Coral product.
So now let's talk about the
Dev Board a little bit more,
since most of you
are engineers, you'll
want to see the
technical spec of it.
Let me go through a little bit.
So first of all, the Dev Board,
as you can see in the picture
or in my hand, it is a
prototype development board
allow you to directly develop
on-board on-device machine
learning capability
in applications.
It's a full computer.
It has the CPU.
It has GPU.
It has online memory, and
also runs a Linux operating
system on this device.
It uses a modular design--
what do we call SOM--
S-O-M-- system module
design, meaning again,
you can snap off this
SOM circuit board
and deploy into
your own product.
By module design, make it easier
from prototype to deployment.
It has many I/O
connectors allow you
to connect to many accessories
during the development,
make everything
really, really easy.
So here's a picture
of the Dev Board.
As you can see, it contains all
the necessary I/O ports for you
to connect the two
devices, such as HDMI
to connected to display;
USB connectors to connect
the cameras, keyboard,
monitors, and so on;
as well as ethernet connectors.
It also, of course, has Wi-Fi
and Bluetooth to connect
to internet through the Wi-Fi.
OK.
Let's talk a little bit
technical spec in detail.
The CPU, it uses a NXP
quad-core on CPU chip.
As you can see, the
product is very fast--
853 is a very high
speed CPU chip.
It also supported GPU.
And it has a onboard
encrypted chip,
allow you to securely
connect to Google cloud.
It has a one-gig onboard RAM,
as well as 8-gig flash memory.
So enough space for you to
deploy your application.
It supports Wi-Fi, Bluetooth,
and takes a five volts
standard power supply.
In terms of connectors,
it supports both USB 2.0
and USB 3.0 speed connections,
with support of both USB Type C
and Type A connectors.
Under audio and video
category, as you can see,
it supports all the AV necessary
connections, especially
the full size HDMI 2.0 connector
for a full 1080p video display.
It has a micro SD card allow you
to bring more software onboard.
Has a gigabyte network support.
And it has a GPIO 40-pin
for I/O connection.
It supports a special version
of the Debian Linux, what
do we call Mendel, because it is
specialized to support Edge TPU
functions.
And the machine
learning models is
supporting most of the common
vision machine learning models
such as MobileNet,
Inception, which
works great on small
devices, mobile devices.
I want to talk about especially
this GPIO connection.
For many of you who
are makers, you're
used to making projects
using Raspberry Pi, right?
Raspberry Pi has this
40-ping GPIO connector.
With the Developer Board--
Dev Board-- you can do
exactly the same thing.
It's compatible to
Raspberry Pi 40-ping GPIO.
So for all the things
you have done in the past
connecting to external lights,
switches, using GPIO ports,
or using the post width
modulation to control step
motors, everything you've done
in the past with Raspberry Pi,
you can do it with the Dev
Board very, very easily.
So how do you use
Dev Board in terms
of development and deployment?
Conceptually it's very
easy, as I explained.
I'm sure you're
already seeing this.
So doing the prototyping,
you use the Dev Board
to enable all these connectors.
You can connect to switches,
sensors, temperature gauges,
whatever you want.
You can connect to a monitor.
You can connect to a keyboard.
You do development right there,
because its operating system
ringing on the device.
When you're done, you
take off the SOM module
and unplug from the Dev Board.
And you can buy many, many
SOM modules, as I said.
Right?
You can deploy the SOM
module into whatever product
you are making, such as,
say, smart refrigerator,
smart washing machine.
Depends on the
application you develop.
So this is really easy.
It's prototyping and deployment
in one in a product package.
OK?
All right.
We talked about Dev Board.
Let me also touch briefly
the second product,
which is the Coral
USB Accelerator, which
is this little thing here.
Again, it's a small
USB key you can
plug into any USB slot
on any Linux machine.
It has a onboard Edge TPU, bring
the machine learning capability
right onto any
device you plug into.
And also supports not only
the Debian Linux, but also
the Raspberry Linux,
which is similar
or the same way used
on Raspberry Pi.
So you can plug this
and take this key
and work with Raspberry Pi.
So it opens up a bit
of more opportunities
for you to do the development.
So the Coral Accelerator
advantages, number one,
as you would imagine, bring
on-device machine learning
into many more machines.
You can plug into a
laptop if you want,
if the laptop runs
special version of Linux.
And you can plug
into Raspberry Pi.
It's compatible
with many hardware
what the Raspberry Pi
supports in the past.
So not only PCs, but
laptops, Raspberry Pi,
and industrial systems.
The [INAUDIBLE] box
supports a USB plug.
You just plug this
key, and you will
be able to deploy your
machine learning applications.
So the Coral USB Accelerator
is a low-cost, convenient way
to experiment in building
prototypes in AR.
OK.
So we talked about hardware.
Let me also talk about
the software side--
the complete suite of
toolchain that Coral
provides to you to enable
you to do machine learning
applications.
So software components,
let's take a look
from components level
what Coral software pieces
and hardware work together.
So on the Coral Dev
Board, not only Linux
machine, if you will,
and to the bottom layer
you have the hardware.
And you have the Mendel
Linux running on top of that.
They talk to the operating
system, talks to hardware.
And Coral, we developed a
C/C++ library API direct access
to the operating system
and the hardware.
And so this allow you
to have direct access
to everything the
operating system be
able to control for you.
Let's say you have a
machine learning model.
It's a TensorFlow model--
TensorFlow Lite model.
We provide a Edge TPU
compiler allow you to compile,
take a TensorFlow
Lite model, compiled
into a binary format that is
compatible to the Edge TPU.
So if you have an application,
you can access the C/C+ API
and running the machine learning
model right on the device
and access to the
layers of hardware.
However, we realized that
many, many machine learning
programmers, like you,
have been using Python.
So Coral software also provide
a Python library, or Python SDK.
It is a high level
wrapper allow you
to using Python programming
language to easily access
all the features I was
just talking about,
be able to access the
machine learning model,
be able to access hardware.
And you can write a Python
code to I/O control and so on.
So this is a
complete environment
with multiple components
working together
that we put in the
product for you
to enable you to
do AI development.
So Python API is very simple.
For many of you who have
programmed in Python,
we publish this on the
Coral website by the way,
the basic classes of
all the Python API
that you would use for
developing machine learning
applications.
I would say pay attention
to the middle two.
Those are probably the one
that you would use the most.
One is object detection.
One is object classification.
And the base engine
base class for them
is one called a
classification engine,
one is called a
detection engine.
So it's very simple.
The last one you see here,
what do we call the imprinting
engine, it is something
for transfer learning,
which I'm going to talk
about in a few minutes.
This is something allow
you to efficiently develop
a customized machine learning
model in the Python API library
we provided.
It also supports that.
So let's take a quick
look at example.
How would you use the
Python code, actually,
to interact with the machine
learning module that the models
that we supply?
So if I say I want to develop
a program using the object
detection model,
in Python code you
would simply
initialize the engine
using the DetectionEngine
that base class.
The basic class of the group
members, the member functions,
you use and to get to the
data and initiate and talk
to the machine learning module.
So you initiate engine here.
You also need to load
the so-called label file,
because if you want to
detect a bunch of objects,
you want to identify
them with labels,
you load the label file.
And then let's say you want
to feed the machine learning
model-- object detection model--
with Image, you load the Image
file.
And of course, for
most of you who
have played it machine
learning models in Vision,
you know you can
identify object in photo,
or you can identify
objects in a video screen.
In that case, it will
be a vector of tensors.
But here I'm using a simple
example of just using an image.
And then the code to interact
with the machine learning model
is very simple.
A simple line.
From the engine, a member class,
you just say detect with image.
And you pass the
parameters to this image.
And the returned results,
the answer come back
from this call, you can use it,
such as draw a bounding box,
specify color, draw you binding
box, released to the stuff
that you are detecting.
So it's very simple.
We supply a group of machine
learning models for you to use.
Coral include them
in the product suite.
We put them on a website.
They are free for
you to download.
They are pre-compiled
TensorFlow Lite models there
for you to use.
They can be readily run
without any further compiling.
And you just simply download
them into the hardware.
The Edge TPU module--
the Python module--
it is already
installed on the Deb Board.
So you don't need
to do anything.
You're ready to use your
Python programming code.
The example I just showed
you, you can do that.
However, if you use the USB, you
want to put on a Linux machine,
you will need to manually
install this Python module.
The Python API are
pre-installed, as I mentioned.
Right.
So that's what you need to do.
I do want to mention,
though, a lot of those models
we supply for free
online for you to use--
those are for
noncommercial use only.
That means if you
want to build a model,
let's say you want
to sell for money,
then you would need
to make your own model
rather than use a open
source free model that
is a non-commercial use.
OK?
The supplied models include the
categories of, as I mentioned,
image classification,
object detection,
as well as one called
weight-imprinting.
That's, again, use for
transferred learning.
And I'm going to talk
about it in a minute.
So here are some examples
of the models that we
make available for you online.
And here are the image
classification models,
as you can see.
We support pretty much all the
popular image classification
models from MobileNet
to Inception
and the different
versions of MobileNet,
the different
versions of Inception.
The difference between
them are the type
of objects they are
be able to identify.
For example, if you want
to develop an application
to tell the difference
between different birds
or different plants, you will
pick the corresponding model
to use.
OK.
With that, let me run a
couple of demos for you.
First demo I'm going to show
you is a object detection model.
And the second demo
I'm going to show you
is a object
classification model.
So with that, videographer,
please switch the display
to the camera here.
So on the table
here, as you can see,
I have this demo built
with this conveyor belt.
I'm simulating
real-time traffic.
Over here there's a
camera points to it.
As you can see on the
screen, the camera
feeds into this Coral Dev Board.
In real time it identifies
the number of objects.
It shows it's a car.
It also shows a so-called
confidence score--
how confident the model
thinks it is a automobile.
But on a conveyor
belt, as you can see,
I also have people
or pedestrians.
But what I'm going to do
now is I'm going to "wink"
make this movie.
OK.
So I'm going to
turn on the power.
And I'm going to crank up the
speed to make that running.
Now in real time
world, as this moving,
you take a look on the screen.
The machine learning
object detection
is continually happening.
It continuously identifies
the correct car or pedestrian,
or there's a traffic
light as well.
Right?
So you can see the
Coral performance
is very high be able to do
that as the scene going.
Now I want you to pay attention
to the lower left corner
on the screen, or upper
left corner of the screen,
shows the frame
per second speed.
It runs last time I
saw it was like 50
to 70 frames per second.
It is a very high
speed performance.
Now, if I crank up the speed to
make it go a little bit faster,
you can see the machine
learning in terms
of object identification
capturing is still going on.
Right?
It continues to be able
to identify automobile
in this fast-moving environment.
So this is really
demonstrating the power
of object detection running
right on this Coral device.
OK?
So that's the first demo.
[APPLAUSE]
Thank you.
Yes, you can clap.
I hope you guys be able to
make a lot more interesting
applications just like that.
Bring the power of Coral
into your imagination,
into your innovation.
All right.
Next one is showing
object classification.
So over here I have
another Dev Board.
And the output of that--
display, please switch to
the output of this camera.
So what I'm going to do,
I have several food items
on the table.
And I'm going to let this camera
identify the different type
of an object.
So let's say I put a
hamburger over here.
And as you can see on
the upper left corner,
it tries to identify the object
with some confidence score.
Depends on the
lighting condition,
hopefully you will
see hamburger.
Yeah.
You need to aim at the right
angle and with the light.
Let's try this donut.
Does it say donut?
It showed up as donut?
OK.
We can also try a sandwich.
OK?
Lastly, I'm going to
try something exotic.
Let's say sushi.
OK.
So this is how you could make
object classification work
by simply running one of the
object classification model
right on device.
Again, none of these
are connect to internet.
None of the data is being
sent to the cloud or a server.
Everything competition
happening right on the device.
OK?
Great.
Thank you.
[APPLAUSE]
All right.
Let's switch back to the slides.
So now we talk
about how do you use
a Coral supplied pre-compiled
model to deploy that.
But what if you want to
build something on your own?
You want to
customize your model.
Well, this is where
transfer learning comes in.
Transfer learning, it is
helping you saving time
in terms of building
your own model.
And basically it takes
a pre-trained model that
is compatible with Edge TPU.
And you only take that
for your related task
by using your own
customized data.
In a concept, a
neural network has
many layers deep of neurons.
OK?
If you want to train
this whole model--
in fact, I heard it from
one of my colleagues
who developed a model
from ground level up--
takes more than 4,000 GPUs
to train a vision model.
And it takes days.
However, if you instead
of training everything,
you only need to
modify the top layer.
This is what a transfer
learning concept is.
Because the lower
layer, those neurons
are trying to detect,
say, different colors,
different shapes, different
lighting conditions.
They can be used for you
to help you identify things
that you care.
Let's say you want to
build a model identify
different apples.
You don't need to
train the whole model.
You take a classification model,
you only modify the top layer.
And by training with
your own customized data
with many different apples.
So this is what
transfer learning does.
So the code to do
transfer learning also
in a Python environment on
Coral is very, very simple too.
Basically, you prepare
to do transfer learning,
you set up a Docker container.
You specify what
model you want to use.
In this case, I'm
showing example,
I'm using a MobileNet
version one.
And if you want to
train a few top layers,
the single command you
want to use simply--
start training.
And again, you
give the parameter
as the name of the model.
But if you want to
train the entire model,
you can do that too,
is you add one more
additional flag that says,
training, whole model, flag
true.
So once you run that code
in a console on your system,
basically, the console
will showing you
the progress of training in
terms of the steps it takes
and in terms of the number
of how much time it takes.
So it's very simple
for you to do
that in the environment--
in a Linux environment.
So with that, let me do
another demo for you.
It is called the
teachable machine.
We are going to publish
this as open source for you
to do the same in
the near future.
But basically what you see
here, I'm going to show you,
I'm going to teach it make a
machine to remember things.
So the video camera,
videographer, we
need to have an image of this.
So on the desk
here what you see,
it is actually it
was built based
on this USB with a Raspberry Pi.
So more than Dev Board,
you could use Raspberry Pi
to build the application.
So here with this little bit
of demo, and it has a camera
points up.
And I have some
different objects.
So if I hit a button to take--
every time I hit a button, it
takes and image, let's say,
of this hamburger, it
remembers several images
of this hamburger.
Now if I take a
different object and take
a different group of photos
of the second object,
it remembers the images.
And I'm going to take ice
cream on the green button.
And lastly, maybe I'll take
this donut with the red button.
So what happens in
the background here,
the program runs doing
a transfer learning,
taking existing object
classification model,
but to replace the last layer
with the image that just taken.
Now watch this.
If I put this hamburger back,
the yellow light turns on.
It remembers.
If I put the ice cream,
the green light turns on.
I hope you can see on the video.
Yes.
And if I take this donut,
the blue light turns on.
Now more than that.
Moment ago, I trained
with this green ice cream.
Right?
The green light.
If I put a yellow ice
cream, it remembers too.
Because it's a machine learning
model more than just the color,
and also identify the shape.
Because this shape and
this shape is different,
the model is
faster, smart enough
to know the difference
between the object.
So again, this is
one of the examples
you could use to building
things with the capability
of classification right on the
device without the internet,
and to build even with a
small USB key like that.
Right?
Very powerful stuff.
[APPLAUSE]
Thank you.
OK.
Let's switch back to the slides.
So the ramifications
of this is huge.
Right?
Imagine in an
industrial environment,
you want to identify things.
You want to tell good widgets
from bad widgets in assembly
line, for example.
You don't have a time to
train the assembly line--
the auto-sorting machine.
You could use transfer learning
and learn the different objects
on the fly, just like that.
So it's very powerful.
You can use this in building
just endless of applications
using such capability.
All right.
So we talk about
transfer learning.
We talk about building
your own customized model.
Let me get into a bit
more detail of how
do you use the Coral models.
OK.
So we talk about we supplied
a set of pre-compiled model
for you.
This is actually
case number one.
User case number one.
It's very simple.
You simply download the
Coral model we supply to you.
You don't need to compile again.
You simply download
and put on the device.
OK.
The second scenario is,
you take the existing
model, pre-trained.
However, you use transfer
learning to customize it
with your own data.
However, after you've done
that, it's not compatible yet
with the Coral board.
You need to compile.
So you use Coral-supplied
Coral compiler.
And you compile it.
The net result of the
TensorFlow Lite file.
You download to the
Edge TPU Coral hardware.
And you'll be able to run there.
Now I want to say for right
now, the Coral compiler
is only runs on
Google Cloud Platform.
But very soon we will
make this compiler
a standalone executable,
make it downloadable
on the internet for
you guys to use.
So the user case is
you want to build
the entire module by yourself.
This is like you really
want the customization.
The existing model
doesn't satisfy you,
you can do that too.
So in that case, you will need--
starting with the TensorFlow
and building a model from there.
So let me talk about the
steps involved with there.
The workflow of creating
your own customized model
is the following.
TensorFlow model,
as you all know,
it's a 32-bit
floating point model.
Right?
And that is now
usable for Coral,
because Coral device require
TensorFlow Lite, because it
runs on the Edge, needs
very little memory.
So TensorFlow model will work.
You take the TensorFlow model.
You convert it into
number one step.
You convert it into training
with a quantized version.
So there's a training
process called
quantized-aware training.
You convert your
TensorFlow model
into a quantized
TensorFlow model.
So basically convert a
32-bit floating point
base to an 8-bit
integer-based model.
After that, you export this
model with TensorFlow model
into a TensorFlow frozen graph,
which is typically .pb PDF
file.
But this file is
not usable either.
It's not quite ready to
be deployed on Coral.
What you need to
do next step is you
need to convert this thing
into a TensorFlow Lite model,
and with a TensorFlow
Lite converter.
And after that you compile
using the TensorFlow Edge TPU
TensorFlow compiler and
making to a binary that's
compatible with the Edge TPU.
And then after you've
done that, you deploy.
So this is a process
of a flow you
will use in your environment.
So to build, we talk about
how this platform provides you
to building the applications.
We said at the very
beginning we want
Coral to be a platform
of an ecosystem
for everybody together.
So really this is
a platform for you
to use to innovate and to share
with the community globally
altogether.
With that, I want to show
you an example of one
of our retail partners
called Gravity Link.
They built this app--
a very cool app.
You can use your mobile phone
to download the app directly
into the Coral Dev Board.
And you can find more
details at this link below.
Or you just simply search
Model Play at Google Play.
You can download and try.
So this is the idea of we want
all developers to contribute
to this ecosystem,
building tools, building
models, building applications,
share with the industry.
And this is what the
Coral ecosystem is for.
With that, let me
ending by saying,
what are the potential areas
you could develop for AI?
Look at this.
There's consumer electronics,
of course; appliance;
there's a lot of opportunities
for you to develop there.
Industrial warehousing,
monitoring the devices,
monitoring the assembly line.
This is another area.
Robots.
Robotics.
Both the industry and
consumer is a field.
Automobiles.
Automotive industry
is also a field.
And as all of you here
at Google I/O keynote,
medical application, medical
devices, is another area.
And finally, education.
Education aids and research.
You can use machine learning--
on-device machine learning
using Coral that
you can innovate.
So there's a lot of
things you could do.
Right?
And all the information
I've talked about today,
they are summarized
at our Coral website.
If you don't remember
anything, remember this.
It's called
Coral.withGoogle.com.
Our documentation, our samples,
models, everything's there.
So there's more references
I put in my slides,
you can look at later.
There's a reference to the
Mendel Linux, reference
to the TensorFlow
Lite, how do you
do quantization-aware training.
And all this information
is very important.
I do want to call out, on
Stack Overflow, we have a tag.
You can join the
online community,
participate in
discussions, answer
other developer's questions,
or look at the answers there.
I want you monitoring
or help each other
using this online community.
And I want to give a shout out.
We have a Coral code
app for those of you
would like to experiment
using Coral at I/O,
you can go there today.
Our Dev Load team colleagues
are helping everybody
going the coding app.
So with that, a quick
summary and a call to action.
After you here
today, number one.
Review our Coral product.
Learn more about
TensorFlow Lite.
Using Coral Board to experiment.
And then building your
own customized models.
And finally, building
model from ground level up.
We want all of you
taking Coral Platform,
putting in your imagination,
putting in your innovation,
bring AI to the industry to
the consumers everywhere.
So with that, on behalf
of our Coral team,
thank you all very much
for coming to this session.
Thank you.
[MUSIC PLAYING]
