To prepare the image dataset and train the model you will need the following requirements:
- Docker - used for easily installing a reproducable environment by using container technology
- nvidia-docker - Allows docker containers to access the nvidia cuda API.
- imageinfo - used for getting the dimensions of images while converting from .tif to .png
- Navigate to Earth Explorer
- Create an account and log in. Account creation is required in order to download images above a certian size.
- TODO finish download instructions
- Copy all image zip files into unprocessed_images/ and cd into unprocessed_images
- Unzip all files with
unzip \*.(ZIP|zip)
- Run
./generate_images.sh
. This will reproject the downloaded images. - Edit
./generate_nlcd_layer.sh
to reflect where you downloaded nlcd_2011_landcover_2011_edition_2014_10_10.img to. - Run
./generate_nlcd_layer.sh
This will use the rerojected images to cut and reproject a file containing label data for a corresponding region. - Ensure FieldClassification/images exists. If it does not create it wil
mkdir ../images
(this command is reletive to unprocessed_images/). - Run
./copy_images.sh
to copy the generated PNG files to ../images
- Run
mkdir raw_images
./docker_run.sh "python generate_dataset.py"
Calculates test/train datasets and stores their corresponding id's in a .npy file (numpy file). This makes it easy to run multiple versions of the model on the same test and training sets.
./docker_run.sh "python calc_splits.py"
This step should only need to be done once initially, and then periodically to pull updated versions of the Tensorflow container.
./docker_build.sh
- this may take a while.
- Edit the second line of
./docker_tensorflow.sh
to set training parameters. - Run
./docker_tensorflow.sh
- This will take a very long while as the model runs. While running, move on to the next step in a new terminal to view graphs.
- Edit the absolute path to
FieldClassification/
on the first line of./docker_tensorboard.sh
- Run
./docker_tensorboard.sh [path to summary dir]
By default the summary dir is located inFieldClassification/output/summaries
. To view one run instead of all runs of the model pass the path to the specific model summary dir, e.g.output/summaries/my_model_name_here/
.