diff --git a/OBIA/OBIABase.py b/OBIA/OBIABase.py
index 8faa01e385b23b2bf862be27815be01f75f6d317..276b359a324cd55fea00188cc699068716dc314b 100644
--- a/OBIA/OBIABase.py
+++ b/OBIA/OBIABase.py
@@ -218,6 +218,21 @@ class OBIABase:
         assert(self.ref_db is not None and len(self.raster_var_names)>0)
         vars = [item for sublist in self.raster_var_names for item in sublist]
         X = self.ref_db[vars].to_numpy()
+        # compute percentiles and normalize
+        p2 = np.zeros(X.shape[1])
+        p98 = np.zeros(X.shape[1])
+        for g in self.raster_groups:
+            tmp = X[:,g]
+            m,M = np.percentile(tmp, [2, 98])
+            print("For g = {}, m = {}, M = {}".format(g,m,M))
+            if isinstance(g, list):
+                for x in g:
+                    p2[x] = m
+                    p98[x] = M
+            else:
+                p2[g] = m
+                p98[g] = M
+            X[:,g] = (tmp - m)/(M - m)
         Y = self.ref_db['class'].to_numpy(dtype=int)
         G = self.ref_db['polygon_id'].to_numpy(dtype=int)
-        return X,Y,G
+        return X,Y,G,p2,p98