A task I’m working on at the moment requires a CNN with a height map as one of the inputs. This is a matrix of floating point values in which each point is the height of that point above sea level.
I’m having trouble deciding how to normalize this data. I know there are networks that work on depth or distance data but that is different for several reasons:
- Height can also be negative (as opposed to depth/distance which starts at 0)
- Height has a very large range - can get values between -400 and +~9000.
For these reasons the common approach to normalisation, simply subtracting the mean and dividing by the standard deviation, will result in the loss of information in most cases (all values will be close to zero).
I thought of maybe subtracting the local mean for each input, rather than a general mean calculated from all the data, but I still don't know what to do with the standard deviation, since dividing by the local standard deviation can result in very “flat” and very “steep” inputs looking the same after normalization.