Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
988 lines (926 sloc) 49 KB

RoboSat.pink 101

Check RoboSat.pink installation and GPU

rsp -h
rsp info

Additional tools used, in this tutorial:

sudo apt install -y osmium-tool gdal-bin postgresql-11-postgis-2.5

Configuration file:

echo '
[[channels]]
  name   = "images"
  bands = [1, 2, 3]

[[classes]]
  title = "Building"
  color = "deeppink"

[model]
  nn = "Albunet"
  loss = "Lovasz"
  loader = "SemSegTiles"
  da = "Strong"
  metrics = ["iou"]

' > tanzania.toml

Retrieve and tile Imagery:

mkdir ds
wget -nc -nv --show-progress -O ds/grid_001.tif https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif
wget -nc -nv --show-progress -O ds/grid_022.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd26/0/5ae242fd0b093000130afd27.tif
wget -nc -nv --show-progress -O ds/grid_023.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd46/0/5ae242fd0b093000130afd47.tif
wget -nc -nv --show-progress -O ds/grid_028.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd34/0/5ae242fd0b093000130afd35.tif
wget -nc -nv --show-progress -O ds/grid_029.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif
wget -nc -nv --show-progress -O ds/grid_035.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd42/0/5ae242fd0b093000130afd43.tif
wget -nc -nv --show-progress -O ds/grid_036.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd40/0/5ae242fd0b093000130afd41.tif
wget -nc -nv --show-progress -O ds/grid_042.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd64/0/5ae318220b093000130afd65.tif
wget -nc -nv --show-progress -O ds/grid_043.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd6a/0/5ae318220b093000130afd6b.tif
wget -nc -nv --show-progress -O ds/grid_049.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd62/0/5ae318220b093000130afd63.tif
wget -nc -nv --show-progress -O ds/grid_050.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd92/0/5ae318220b093000130afd93.tif
wget -nc -nv --show-progress -O ds/grid_051.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd70/0/5ae318220b093000130afd71.tif
wget -nc -nv --show-progress -O ds/grid_058.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd7c/0/5ae318220b093000130afd7d.tif
rsp tile --zoom 19 ds/*tif ds/images
rsp cover --dir ds/images ds/images/cover

Retrieve and tile labels:

wget -nc -nv --show-progress \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AAARCAOqhcRdoU7ULOb9GJl9a/grid_001.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADtSLtWlp1WWBzok4j8QDtTa/grid_022.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AAAvAgdJLgURi6y0V_R7b77Na/grid_023.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AAAQlsJdp4WYiUwfd0o4mqoNa/grid_028.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADHytc8fSCf3gna0wNAW3lZa/grid_029.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADsRwTo35luDWb4FcKhAotaa/grid_035.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AABX9puJlaKE25JJ9YAkF-Bta/grid_036.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AACAIX76YnY7YF-qqJ_4NBPwa/grid_042.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADYKa21pfgqygaPI7-k_Gp7a/grid_043.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADTfD4iO7iShsBU_DI3vsaga/grid_049.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AABBphDWEHz71zdoeNYRAyeha/grid_050.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AACjRwga-dJY1dud1Kfq64Fsa/grid_051.geojson \
https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADY5M0XSZphjFNfwmFli_baa/grid_058.geojson
mv grid_*.geojson ds
# Import Labels into PostGIS
sudo su postgres -c 'createdb tanzania'
sudo su postgres -c 'psql -c "CREATE EXTENSION postgis" tanzania'
sudo su postgres -c "psql -c \"CREATE USER rsp WITH PASSWORD 'pass' \""

for geojson in `ls ds/grid_*.geojson`
do
        ogr2ogr -f "PostgreSQL" PG:"user=rsp host=localhost dbname=tanzania password=pass" $geojson -t_srs EPSG:3857 -nlt PROMOTE_TO_MULTI -nln building -lco GEOMETRY_NAME=geom -append
done

sudo su postgres -c 'psql -c "UPDATE building SET geom=ST_MakeValid(geom) WHERE NOT ST_IsValid(geom)" tanzania'


# Generate Labels
rsp rasterize --pg "user=rsp host=localhost password=pass dbname=tanzania" --sql "SELECT ST_Buffer(geom, -0.25) FROM building WHERE condition IN ('Complete', 'Incomplete') AND ST_Intersects(TILE_GEOM, geom)" --type Building --config tanzania.toml --cover ds/images/cover ds/labels

Create a Training DataSet:

# Create Training DataSet
awk '$2 > 0 { print $1 }' ds/labels/instances_building.cover > ds/instances.cover
awk '$2 == 0 { print $1 }' ds/labels/instances_building.cover > ds/no_instance.cover
sort -R ds/no_instance.cover | head -n 4000 > ds/no_instance_subset.cover
cat ds/instances.cover ds/no_instance_subset.cover > ds/cover

rsp cover --cover ds/cover --splits 90/10 ds/training/cover ds/validation/cover
rsp subset --dir ds/images --cover ds/training/cover ds/training/images
rsp subset --dir ds/labels --cover ds/training/cover ds/training/labels
rsp subset --dir ds/images --cover ds/validation/cover ds/validation/images
rsp subset --dir ds/labels --cover ds/validation/cover ds/validation/labels

Train:

rsp train --config tanzania.toml --epochs 5 --bs 4 --lr 0.000025 ds ds/pth
Click me, for a log from a longer training
RoboSat.pink - training on 1 GPUs, with 4 workers
(Torch:1.2.0 Cuda:10.0.130 CudNN:7602)
--- Input tensor from Dataset: ds ---
Channel 1:		 images[band: 1]
Channel 2:		 images[band: 2]
Channel 3:		 images[band: 3]
--- Output Classes ---
Class 0:		 Background
Class 1:		 Building
--- Hyper Parameters ---
nn                       Albunet
loss                     Lovasz
loader                   SemSegTiles
da                       Strong
metrics                  ['iou']
ts                       (512, 512)
pretrained               True
bs                       4
lr                       2.5e-05
dap                      1.0
---
Epoch: 1/100 -- UUID: e0100586-c848-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.019
Building iou             0.766
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.05batch/s]
Loss:                    0.011
Building iou             0.835
---
Epoch: 2/100 -- UUID: 9b08bb94-c849-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.010
Building iou             0.841
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.010
Building iou             0.859
---
Epoch: 3/100 -- UUID: 5610c94a-c84a-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.54batch/s]
Loss:                    0.009
Building iou             0.847
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.97batch/s]
Loss:                    0.010
Building iou             0.849
---
Epoch: 4/100 -- UUID: 11f90f50-c84b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.53batch/s]
Loss:                    0.008
Building iou             0.854
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.94batch/s]
Loss:                    0.009
Building iou             0.857
---
Epoch: 5/100 -- UUID: ce166d90-c84b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.54batch/s]
Loss:                    0.008
Building iou             0.859
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.93batch/s]
Loss:                    0.010
Building iou             0.857
---
Epoch: 6/100 -- UUID: 89fd1626-c84c-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.53batch/s]
Loss:                    0.008
Building iou             0.863
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.85batch/s]
Loss:                    0.009
Building iou             0.860
---
Epoch: 7/100 -- UUID: 46338b9a-c84d-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.008
Building iou             0.862
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.90batch/s]
Loss:                    0.012
Building iou             0.814
---
Epoch: 8/100 -- UUID: 02003c06-c84e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.008
Building iou             0.866
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.93batch/s]
Loss:                    0.008
Building iou             0.860
---
Epoch: 9/100 -- UUID: bdaeae1a-c84e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.53batch/s]
Loss:                    0.007
Building iou             0.867
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.92batch/s]
Loss:                    0.009
Building iou             0.863
---
Epoch: 10/100 -- UUID: 79ce7472-c84f-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.866
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.84batch/s]
Loss:                    0.008
Building iou             0.866
---
Epoch: 11/100 -- UUID: 3586938e-c850-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.53batch/s]
Loss:                    0.007
Building iou             0.875
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.94batch/s]
Loss:                    0.009
Building iou             0.848
---
Epoch: 12/100 -- UUID: f1989162-c850-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.871
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.96batch/s]
Loss:                    0.008
Building iou             0.865
---
Epoch: 13/100 -- UUID: ad806670-c851-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.873
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.97batch/s]
Loss:                    0.009
Building iou             0.854
---
Epoch: 14/100 -- UUID: 691764ba-c852-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.875
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.89batch/s]
Loss:                    0.008
Building iou             0.867
---
Epoch: 15/100 -- UUID: 25057a5e-c853-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.876
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.93batch/s]
Loss:                    0.008
Building iou             0.858
---
Epoch: 16/100 -- UUID: e0f6c2f4-c853-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.876
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.91batch/s]
Loss:                    0.008
Building iou             0.863
---
Epoch: 17/100 -- UUID: 9cbd11d2-c854-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:05<00:00,  4.53batch/s]
Loss:                    0.007
Building iou             0.876
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.008
Building iou             0.865
---
Epoch: 18/100 -- UUID: 58ac8e04-c855-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.007
Building iou             0.875
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.87batch/s]
Loss:                    0.008
Building iou             0.854
---
Epoch: 19/100 -- UUID: 143151b4-c856-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.007
Building iou             0.875
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.91batch/s]
Loss:                    0.008
Building iou             0.867
---
Epoch: 20/100 -- UUID: cf76b0a4-c856-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.007
Building iou             0.877
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.83batch/s]
Loss:                    0.008
Building iou             0.865
---
Epoch: 21/100 -- UUID: 8b529df6-c857-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.007
Building iou             0.879
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.83batch/s]
Loss:                    0.008
Building iou             0.843
---
Epoch: 22/100 -- UUID: 46bdaca2-c858-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.007
Building iou             0.877
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.86batch/s]
Loss:                    0.007
Building iou             0.869
---
Epoch: 23/100 -- UUID: 02492ce4-c859-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.007
Building iou             0.880
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.89batch/s]
Loss:                    0.008
Building iou             0.866
---
Epoch: 24/100 -- UUID: bdca1da2-c859-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.007
Building iou             0.879
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.88batch/s]
Loss:                    0.008
Building iou             0.870
---
Epoch: 25/100 -- UUID: 78ec06ae-c85a-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.880
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.97batch/s]
Loss:                    0.008
Building iou             0.869
---
Epoch: 26/100 -- UUID: 34095b30-c85b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.54batch/s]
Loss:                    0.006
Building iou             0.882
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.008
Building iou             0.876
---
Epoch: 27/100 -- UUID: ef96f678-c85b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.007
Building iou             0.880
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.85batch/s]
Loss:                    0.008
Building iou             0.864
---
Epoch: 28/100 -- UUID: aab91968-c85c-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.006
Building iou             0.880
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.92batch/s]
Loss:                    0.008
Building iou             0.869
---
Epoch: 29/100 -- UUID: 6646d288-c85d-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.006
Building iou             0.879
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.90batch/s]
Loss:                    0.008
Building iou             0.861
---
Epoch: 30/100 -- UUID: 219f87c8-c85e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.006
Building iou             0.885
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.99batch/s]
Loss:                    0.008
Building iou             0.866
---
Epoch: 31/100 -- UUID: dd09ed46-c85e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.882
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.95batch/s]
Loss:                    0.008
Building iou             0.870
---
Epoch: 32/100 -- UUID: 980a0090-c85f-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:04<00:00,  4.55batch/s]
Loss:                    0.006
Building iou             0.887
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.92batch/s]
Loss:                    0.008
Building iou             0.874
---
Epoch: 33/100 -- UUID: 5370ecea-c860-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.887
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.94batch/s]
Loss:                    0.008
Building iou             0.876
---
Epoch: 34/100 -- UUID: 0e669414-c861-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.884
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.94batch/s]
Loss:                    0.008
Building iou             0.867
---
Epoch: 35/100 -- UUID: c943ba3c-c861-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.887
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.95batch/s]
Loss:                    0.008
Building iou             0.868
---
Epoch: 36/100 -- UUID: 844ce736-c862-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.55batch/s]
Loss:                    0.006
Building iou             0.885
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.99batch/s]
Loss:                    0.008
Building iou             0.861
---
Epoch: 37/100 -- UUID: 3f77506e-c863-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.885
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.96batch/s]
Loss:                    0.008
Building iou             0.874
---
Epoch: 38/100 -- UUID: fa3e8534-c863-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.885
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.008
Building iou             0.876
---
Epoch: 39/100 -- UUID: b5186dfc-c864-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.886
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.91batch/s]
Loss:                    0.008
Building iou             0.864
---
Epoch: 40/100 -- UUID: 6fe31178-c865-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.882
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.93batch/s]
Loss:                    0.008
Building iou             0.868
---
Epoch: 41/100 -- UUID: 2ae9342a-c866-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.888
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.87batch/s]
Loss:                    0.008
Building iou             0.878
---
Epoch: 42/100 -- UUID: e5b29a1c-c866-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.888
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.83batch/s]
Loss:                    0.008
Building iou             0.867
---
Epoch: 43/100 -- UUID: a01edac8-c867-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.891
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.95batch/s]
Loss:                    0.007
Building iou             0.873
---
Epoch: 44/100 -- UUID: 5abb6702-c868-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.887
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.008
Building iou             0.878
---
Epoch: 45/100 -- UUID: 15532582-c869-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.887
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.99batch/s]
Loss:                    0.008
Building iou             0.878
---
Epoch: 46/100 -- UUID: cfef4b28-c869-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:03<00:00,  4.56batch/s]
Loss:                    0.006
Building iou             0.887
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.06batch/s]
Loss:                    0.007
Building iou             0.886
---
Epoch: 47/100 -- UUID: 8ab5b226-c86a-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.891
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.95batch/s]
Loss:                    0.007
Building iou             0.869
---
Epoch: 48/100 -- UUID: 454f92d2-c86b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.888
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.95batch/s]
Loss:                    0.008
Building iou             0.863
---
Epoch: 49/100 -- UUID: ffa52034-c86b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.888
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.94batch/s]
Loss:                    0.008
Building iou             0.868
---
Epoch: 50/100 -- UUID: b9e7b70e-c86c-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.893
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.00batch/s]
Loss:                    0.008
Building iou             0.877
---
Epoch: 51/100 -- UUID: 74437e1c-c86d-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.889
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.95batch/s]
Loss:                    0.008
Building iou             0.877
---
Epoch: 52/100 -- UUID: 2eb78ca2-c86e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.890
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.00batch/s]
Loss:                    0.008
Building iou             0.873
---
Epoch: 53/100 -- UUID: e8ceab52-c86e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.891
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.008
Building iou             0.870
---
Epoch: 54/100 -- UUID: a3622642-c86f-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.892
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.02batch/s]
Loss:                    0.007
Building iou             0.884
---
Epoch: 55/100 -- UUID: 5d958b1c-c870-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.890
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.008
Building iou             0.882
---
Epoch: 56/100 -- UUID: 17c22b4e-c871-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.57batch/s]
Loss:                    0.006
Building iou             0.892
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.91batch/s]
Loss:                    0.008
Building iou             0.879
---
Epoch: 57/100 -- UUID: d25ae82e-c871-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.892
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.02batch/s]
Loss:                    0.008
Building iou             0.870
---
Epoch: 58/100 -- UUID: 8c539370-c872-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.892
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.02batch/s]
Loss:                    0.007
Building iou             0.875
---
Epoch: 59/100 -- UUID: 46304d06-c873-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.891
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.83batch/s]
Loss:                    0.008
Building iou             0.868
---
Epoch: 60/100 -- UUID: 008b2c0c-c874-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.008
Building iou             0.884
---
Epoch: 61/100 -- UUID: baa9dffc-c874-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.97batch/s]
Loss:                    0.008
Building iou             0.869
---
Epoch: 62/100 -- UUID: 74ca25e0-c875-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.890
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.96batch/s]
Loss:                    0.008
Building iou             0.872
---
Epoch: 63/100 -- UUID: 2e983430-c876-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.894
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.05batch/s]
Loss:                    0.008
Building iou             0.873
---
Epoch: 64/100 -- UUID: e86dd9a0-c876-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.896
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.94batch/s]
Loss:                    0.007
Building iou             0.878
---
Epoch: 65/100 -- UUID: a26d0808-c877-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.894
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.97batch/s]
Loss:                    0.008
Building iou             0.869
---
Epoch: 66/100 -- UUID: 5c71f5e2-c878-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.893
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.91batch/s]
Loss:                    0.008
Building iou             0.875
---
Epoch: 67/100 -- UUID: 1639416a-c879-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.58batch/s]
Loss:                    0.005
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.008
Building iou             0.875
---
Epoch: 68/100 -- UUID: d042b1d6-c879-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.892
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.008
Building iou             0.869
---
Epoch: 69/100 -- UUID: 8a0972c6-c87a-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.896
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.96batch/s]
Loss:                    0.008
Building iou             0.875
---
Epoch: 70/100 -- UUID: 44155c3e-c87b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.894
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.008
Building iou             0.874
---
Epoch: 71/100 -- UUID: fddd49ce-c87b-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.005
Building iou             0.898
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.03batch/s]
Loss:                    0.008
Building iou             0.867
---
Epoch: 72/100 -- UUID: b7c7fbf4-c87c-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.894
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.007
Building iou             0.872
---
Epoch: 73/100 -- UUID: 71a217f8-c87d-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.02batch/s]
Loss:                    0.008
Building iou             0.871
---
Epoch: 74/100 -- UUID: 2b6ab910-c87e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.99batch/s]
Loss:                    0.008
Building iou             0.868
---
Epoch: 75/100 -- UUID: e51434a4-c87e-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.006
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.008
Building iou             0.875
---
Epoch: 76/100 -- UUID: 9ee0d96e-c87f-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:02<00:00,  4.58batch/s]
Loss:                    0.006
Building iou             0.893
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.007
Building iou             0.884
---
Epoch: 77/100 -- UUID: 58ec92e4-c880-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.58batch/s]
Loss:                    0.005
Building iou             0.897
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 13.01batch/s]
Loss:                    0.007
Building iou             0.874
---
Epoch: 78/100 -- UUID: 12ee7310-c881-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.005
Building iou             0.896
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.008
Building iou             0.876
---
Epoch: 79/100 -- UUID: ccc5d864-c881-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.005
Building iou             0.895
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.98batch/s]
Loss:                    0.007
Building iou             0.868
---
Epoch: 80/100 -- UUID: 8662bef4-c882-11e9-9414-7085c2b7ed0a
Train: 100%|####################################################################################| 1384/1384 [05:01<00:00,  4.59batch/s]
Loss:                    0.005
Building iou             0.898
[Saving checkpoint]
Eval: 100%|#######################################################################################| 127/127 [00:09<00:00, 12.96batch/s]
Loss:                    0.008
Building iou             0.875
---

Retriveve and tile Predict Imagery:

mkdir predict
wget -nc -nv --show-progress -O predict/grid_034.tif https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd32/0/5ae242fd0b093000130afd33.tif
wget -nc -nv --show-progress -O predict/grid_047.tif https://oin-hotosm.s3.amazonaws.com/5b00370f2b6a08001185f125/3/5b00370f2b6a08001185f129.tif
wget -nc -nv --show-progress -O predict/grid_067.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd98/0/5ae318220b093000130afd99.tif
wget -nc -nv --show-progress -O predict/grid_074.tif https://oin-hotosm.s3.amazonaws.com/5b00370f2b6a08001185f125/5/5b00370f2b6a08001185f12b.tif
wget -nc -nv --show-progress -O predict/grid_076.tif https://oin-hotosm.s3.amazonaws.com/5ae36dd70b093000130afdba/0/5ae36dd70b093000130afdbb.tif
wget -nc -nv --show-progress -O predict/grid_135.tif https://oin-hotosm.s3.amazonaws.com/5ae38a540b093000130aff23/0/5ae38a540b093000130aff24.tif
wget -nc -nv --show-progress -O predict/grid_181.tif https://oin-hotosm.s3.amazonaws.com/5ae38a540b093000130afecf/0/5ae38a540b093000130afed0.tif
wget -nc -nv --show-progress -O predict/grid_059.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd78/0/5ae318220b093000130afd79.tif
wget -nc -nv --show-progress -O predict/grid_066.tif https://oin-hotosm.s3.amazonaws.com/5ae318220b093000130afd94/0/5ae318220b093000130afd95.tif

# Tile Imagery
rsp tile --zoom 19 --nodata_threshold 10 predict/*tif predict/images
rsp cover --dir predict/images predict/images/cover

Retrieve OSM data:

mkdir osm
wget -nc -nv --show-progress -O osm/tanzania.pbf https://download.geofabrik.de/africa/tanzania-latest.osm.pbf
osmium extract --bbox `rsp cover --extent --dir predict/images` -o osm/zanzibar.pbf osm/tanzania.pbf
rsp extract --type Building osm/zanzibar.pbf osm/buildings.json
rsp rasterize --config tanzania.toml --geojson osm/buildings.json --cover predict/images/cover --type Building predict/osm

Predict

rsp predict --config tanzania.toml --checkpoint ds/pth/checkpoint-00005.pth predict predict/masks
Click me, for a prettier predict using template
wget -O predict/predict.html "https://raw.githubusercontent.com/datapink/robosat.pink/master/robosat_pink/web_ui/leaflet.html"

sed -i -e 's#L.tileLayer("{{base_url}}/{z}/{x}/{y}.{{ext}}", {maxZoom: {{zoom}}+3, maxNativeZoom: {{zoom}}}).addTo(m);#    \
L.tileLayer("{{base_url}}/../images/{z}/{x}/{y}.webp", {maxZoom: {{zoom}}+3, maxNativeZoom: {{zoom}}}).addTo(m);           \
L.tileLayer("{{base_url}}/{z}/{x}/{y}.{{ext}}", {maxZoom: {{zoom}}+3, maxNativeZoom: {{zoom}}, opacity: 0.5}).addTo(m); #' predict/predict.html

rsp predict --config tanzania.toml --web_ui_template predict/predict.html --checkpoint ds/pth/checkpoint-00005.pth predict predict/masks

Compare predict against OSM:

rsp compare --images predict/images predict/osm predict/masks --mode stack predict/compare
rsp compare --mode list --geojson --labels predict/osm --masks predict/masks --maximum_qod 80 predict/compare/tiles.json

rsp compare --mode side --images predict/images predict/compare --labels predict/osm --masks predict/masks --maximum_qod 80 predict/compare_side

Vectorize prediction masks:

rsp vectorize --config tanzania.toml --type Building predict/masks predict/building.json
ogr2ogr -f "PostgreSQL" PG:"user=rsp host=localhost dbname=tanzania password=pass" predict/building.json -t_srs EPSG:3857 -nlt PROMOTE_TO_MULTI -nln masks -lco GEOMETRY_NAME=geom
echo """
UPDATE masks SET geom=ST_MakeValid(geom) WHERE NOT ST_IsValid(geom);     -- clean it up

CREATE TABLE aggregate_masks AS (                                        -- aggegate tiled features

WITH a AS (SELECT array_agg(b.ogc_fid) AS tuples FROM masks a, masks b WHERE ST_DWithin(a.geom, b.geom, 0.01) GROUP BY a.ogc_fid),
     b AS (SELECT DISTINCT tuples::int[] AS ogc_fids FROM a WHERE array_length(tuples, 1) > 1),
     c AS (SELECT tuples[1] AS ogc_fid FROM a WHERE array_length(tuples, 1) = 1),
     d AS (SELECT (ST_Dump(ST_Union(geom))).geom AS geom FROM masks, b WHERE masks.ogc_fid = ANY(b.ogc_fids)
           UNION
           SELECT geom FROM masks, c WHERE masks.ogc_fid = c.ogc_fid)

SELECT row_number() OVER() AS gid, geom FROM d WHERE ST_Area(geom) > 5.0 -- remove artefacts
);


CREATE INDEX ON aggregate_masks USING GIST(geom);                        -- spatial index
""" > SQL
sudo su postgres -c "psql tanzania < SQL"
You can’t perform that action at this time.