I'm am designing a project to extract roads, parking lots, and driveways from Sentinel-2 satellite imagery using machine learning, and I'd love to get some feedback my proposed approach.
My Goal is to extract roads, parking lots, and driveways from satellite imagery, to estimate their combined area in a given city.
Here is a high-level workflow I’ve drafted:
Extract OSM Roads and parking lots:
- Download and preprocess Sentinel-2 images in AOI
- Download OpenStreetMap (OSM) road centerlines and parking lot polygons.
- As a note: my workflow needs to work for areas of interest not covered by SpaceNet and open-sentinel-map .
- Use MultiTaskRoadExtractor model to extract road networks. (I need to calculate the area of the road networks, so OSM road centerlines are not enough.)
- Generate road and parking lot masks using road centerlines and parkinglot polygons in area of interest
- Train and save MultiTaskRoadExtractor model then use it to extract a classified raster. Covert the raster to vector, which I should be able to calculate the area of the road network and parking lots.
Extract driveways and parking lots not included in OSM data
- Use extracted road/parking lot vectors as a preliminary training/testing dataset.
- Plot the preliminary dataset on the satellite imagery. Most driveways are not included in OSM data.
- For my MVP, proof of concept, I will Ground truth driveways and parking lots in a subset of at least 200 property parcels across a couple neighborhoods within my AOI, manually labeling any missing driveways or parking lots labels.
- Use updated training dataset to train one of the ArcGIS API’s Pixel Classification Models DeepLab, PSPNet, or U-Net.
- Apply the trained model to the rest of the city’s parcels to classify roads, parking lots, and driveways.
I plan on using the ArcGIS Python API to implement the above workflow, using the MultiTaskRoadExtractor model and a Pixel Classification Model. Does anyone have any suggestions, recommendations, or concerns regarding my proposed approach? Have you worked on a similar project or know of any resources that could be helpful? I'm particularly interested in hearing about any potential pitfalls or improvements that could be made.
Any feedback would be greatly appreciated!
Thanks in advance!