Rare habitat mapping with deeplearning - NoData class issue?

752
5
04-28-2023 12:32 AM
AdrienMichez
New Contributor II

Hi folks,

I'm trying to detect in Southern Belgium rare and humid grasslands/wetlands.  I'm not satisfied with the results and I would like to stress my workflow with the community. Any advise, tips are warmly welcome!

This is kind a large scale project as I want to build an AI model which can track those habitats across the entire region (ca. 17000 km²). I have a reference data set with the delineated patches of the habitats and of course. The reference dataset represents a total amount of 18 km² located across the entire region. The idea is to find those habitats outside these know locations in order to protect them.

As input imagery data, I have two satellite mosaics (superresolution of sentinel 2) covering the area in leaf-off and leaf-on condition (2 * 10 bands), a lidar dtm, dsm and chm and a LULC maps. I resampled (2.5m), normalized (using median and interquartile range) all layers and stacked in one multilayer raster.

For the moment, the best results I got were from a PSP model using two classes, class 1 being the targeted class (rare habitat patches) and 2 the surrounding pixels inside the habitat patch bounding box. I used PSP model after running autoDL which highlighted PSP as the best solution.

Here the results after 49 epochs (just gave you the 3 first):

AdrienMichez_0-1682666629114.png

AdrienMichez_1-1682666663796.png

I think that the NoData (0 in image labels) sort of dilutes the overall accuracy because my targeted habitat patches are quite rare in the landscape, there are a lot of 0 values in the images used to train the model. And I didn't find a way to class balance the nodata (tried ignore_classes = [0] didn't work). I also tried to train a model jst over the habitat patches but didn't improve.

Do you think that my guess about NoData is good? Should I look somewhere else?

Adrien

 

 

0 Kudos
5 Replies
AdrienMichez
New Contributor II

Just to refresh the post... I'm still looking for any tips, idea, feedbacks,...

0 Kudos
PriyankaTuteja
Esri Contributor
 
Could you please provide more information about your data?
1. What is the pixel depth of the input raster?
2. How does the images in data.show_batch look like? Any screenshot?
3. What error do you see when trying with ignore_classes=0.  We have a notebook that shows how to train a model with sparse data, https://developers.arcgis.com/python/samples/land-cover-classification-using-sparse-training-data/.
What version of argis python api are you using?
4. How many features are labelled for class 1 and class 2 (info can be found in stat.txt file)?
5. How much time did you provide AutoDL to evaluate model performance on this data?
 
 
Additionally, there are some tips that you could try:
1. Try rescaling input raster to 8 bit unsigned and train model.
2. Use MMSegmentation based DeepLabV3Plus or HRNet for training.
3. USs PCA (Principal Component Analysis) tool in ArcGIS Pro and get most relevant bands to get the input raster. There may be bands adding noise to the data.
4. Try training with input which is not normalized or rescaled. Deep learning models do that internally so it may not be needed. However, just change the pixel depth of you composite raster.
AdrienMichez
New Contributor II

Hi @PriyankaTuteja 

Thanks for your answer and advises!

First block:

1. 32 bit float. It would be such a pity to reduce lidar data to 8 bit pixel depth

2. data.show_batch: not sure to know what's this object (I'm using GUI). Some screenshots of training sample (here with aerial images).

AdrienMichez_0-1684527944818.png

AdrienMichez_1-1684528036128.png

3. I get this error (only when I ignored the 0 class): 

AdrienMichez_2-1684528152229.png

I'm using the GUI

4.

AdrienMichez_3-1684528347079.png

5. I think enough 🙂 I cannot remember but it delivered the result well before reaching the time limit

If you're interested I can share data. I would be more than happy to contribute to a new notebook as I think a lot of people wants to use deep learning with more complex data structure than RGB imagery.

Second batch of advises:

1. Ok but if possible, I would appreciate not to

2. I will surely do!

3. DeepLearning should handle that no? PCA approaches assume linear relationship between predictors and targeted classes. I don't want to check that!

4. Same concern than with pixel depth...

0 Kudos
PriyankaTuteja
Esri Contributor

@AdrienMichez  Please provide training data and your notebook so that i could try this on my end. Also, if possible, provide input imagery/labels for exporting the training data. Email address: ptuteja@esri.com

0 Kudos
AdrienMichez
New Contributor II

Thanks for your answer. I'm preparing everything and get back to you by email.

0 Kudos