Welcome to this
episode of Bone Hunt Discovering Dinosaurs with the AI.
I'm Bob Chesebrough, I'm a solution engineer and technical
evangelist supporting oneAPI AI here at Intel Corporation.
To begin your dinosaur hunt.
You need to collect data.
Our code examples show us some well-known places, including Dinosaur
National Monument in Jensen, Utah, and the Mill Creek Dinosaur Trail near Moab.
These are places where you can go and collect your waypoints.
Look at bones to study them.
Study the rock types or get your aerial photos from those areas.
The first thing you will need to do is to record the tracks you make,
including the trails and the routes you take by collecting them on your GPS.
This will give you a good idea
of where you've been so you don't duplicate your efforts later.
If you find something,
you can make a waypoint which forms the basis of your AI data.
Your waypoints will be your GPS coordinates,
which correlated with pictures you may have taken of the area,
and associated timestamps will help you document where you have been.
You'll want to make your waypoints detailed,
so include latitude and longitude as precisely as possible,
include altitude and observations about rocks, pebbles and class
to help identify your exact location and reference
a geologic map to identify visible deposits.
The more you can describe, the better off you will be.
After doing that, you need to clean your data to make it consistent.
Now, this can be tricky when you're only finding a few bones at a time.
It's not that hard because you'll remember every waypoint.
You'll remember the story that goes along with it, and you'll have the pictures.
But it becomes a much more intractable problem
when you go from a few bones, to one hundred, to a few thousand.
Because a GPS on any given day or any given hour will not reproduce
the exact coordinates.
Your GPS coordinates will be different.
It's just a sampling of your position and estimate.
Typically plus or minus ten meters of where you are.
So if you have hundreds of waypoints
or locations, it gets tricky to know whether you have already collected
that waypoint or you'll forget if you've previously found a bone.
So you'll collect another waypoint, which is how you end up with duplicates.
That is part of your challenge,
to be precise, when you're describing these things.
Even though you can take these GPS coordinates and export them as a CSB file
for a spreadsheet, it's difficult to isolate the duplicates.
You can use a haversine formula and a distance
formula to estimate the distance between two pairs of points on your GPS.
You can begin to cluster them
and use clustering software to identify where these fossil locations are.
And you can do your best to try to remove the duplicates so that if you share it
with a museum, as I have done, the information is paired down.
Now that task is approximate.
I'm sure I've not told the museum
about bones we found because they looked like duplicates,
and I inadvertently removed the information during the cleaning phase.
You often won't know what to call the fossil sample.
You'll end up
describing it as resting on the surface or embedded in sandstone, etc..
You make as many annotations as you can.
Then you organize them and preprocess the data.
Part of the preprocessing step for me is to remove the latitude
and longitude information and turn those into pixel coordinates.
I do this because I am obligated to try to keep these things
obfuscated so people don't steal the bones.
I use a mapping function to map from the GPS coordinates
to image plane coordinates for an aerial photo, for example.
A cool thing about doing this project is that I've demonstrated
that by keeping the model simple with ResNet18 model,
we could use the CPU for deep learning and train it using fine tuning.
So even though the model is trained on image net and there aren't aerial
photos in the image net dataset, we can use those libraries.
Now we've collected quite a few bone sample locations.
One of the things that you have to do is to consider augmenting your dataset,
meaning perform
different transformations on the images to give your model a new look at the data.
Rotating the images, for example, zooming in and out slightly.
You don't want to zoom very much, maybe up to 5%,
because that will change the nature of the photo.
Some of the information
comes from texture, which is also dictated by the zoom level.
You don't want to change the color hues or saturation
because some vital information comes from color.
With all of that said rotations, translations and flips
are significant augmentations that are wise to do for these models.
One thing I want to recommend and something that we did with
this project is
that we were trying to make the modeling and the labeling as simple as possible.
To quote Einstein, make everything as simple as possible, but no simpler.
And that's what we were trying to do.
We are using a ResNet but avoiding simpler machine learning models.
We're using a simple, ResNet convolutional neural network.
We benefit from that convolutional nature because it's looking
for those patterns, structures and shapes across each image.
And that's a wrap on the training and collection process.
You can find links to resources, tools and downloads as well as where
to go to learn more about everything in this series in the description.
Remember to like
and share this video and subscribe to the Intel Software YouTube channel.
In our next
episode, we will give you all a brief overview of the tools
we use in this series, the Intel DevCloud, oneAPI,
PyTorch and OpenVINO.
Let the adventure
begin!