From 4508cf658a68f9950ca3e4989faff53b1a817aa4 Mon Sep 17 00:00:00 2001 From: leavauchier <120112647+leavauchier@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:53:36 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20IGNF/myr?= =?UTF-8?q?ia3d@8aeaef5fcdc594643c8c0dddd74c8f1154b9c22e=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .buildinfo | 2 +- _modules/index.html | 2 +- .../myria3d/callbacks/comet_callbacks.html | 2 +- .../callbacks/finetuning_callbacks.html | 2 +- .../myria3d/callbacks/logging_callbacks.html | 2 +- _modules/myria3d/models/interpolation.html | 12 ++-- _modules/myria3d/models/model.html | 2 +- .../models/modules/pyg_randla_net.html | 2 +- .../myria3d/pctl/dataloader/dataloader.html | 2 +- _modules/myria3d/pctl/datamodule/hdf5.html | 6 +- _modules/myria3d/pctl/dataset/hdf5.html | 10 +-- _modules/myria3d/pctl/dataset/iterable.html | 5 +- .../myria3d/pctl/dataset/toy_dataset.html | 4 +- _modules/myria3d/pctl/dataset/utils.html | 64 ++++++++++++++---- .../pctl/points_pre_transform/lidar_hd.html | 2 +- _modules/myria3d/pctl/transforms/compose.html | 2 +- .../myria3d/pctl/transforms/transforms.html | 2 +- _modules/myria3d/train.html | 2 +- _modules/myria3d/utils/utils.html | 2 +- _modules/run.html | 4 +- _sources/tutorials/make_predictions.md.txt | 3 +- _sources/tutorials/prepare_dataset.md.txt | 2 + _static/documentation_options.js | 2 +- apidoc/configs.html | 3 +- apidoc/myria3d.callbacks.html | 2 +- apidoc/myria3d.model.html | 12 ++-- apidoc/myria3d.models.modules.html | 2 +- apidoc/myria3d.pctl.html | 47 +++++++++---- apidoc/myria3d.utils.html | 2 +- apidoc/scripts.html | 2 +- background/general_design.html | 2 +- background/interpolation.html | 2 +- genindex.html | 32 ++++++--- guides/development.html | 2 +- guides/train_new_model.html | 2 +- index.html | 2 +- introduction.html | 2 +- objects.inv | Bin 2202 -> 2239 bytes py-modindex.html | 2 +- search.html | 2 +- searchindex.js | 2 +- tutorials/install_on_linux.html | 2 +- tutorials/install_on_wsl2.html | 2 +- tutorials/make_predictions.html | 5 +- tutorials/prepare_dataset.html | 3 +- 45 files changed, 181 insertions(+), 89 deletions(-) diff --git a/.buildinfo b/.buildinfo index 5b77affd..cc940251 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 6395020c267b48ee3cbaa30ed3959770 +config: c409b6955b9546f4bfafb77765b54b40 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/_modules/index.html b/_modules/index.html index 25464d52..d0f8eca8 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -3,7 +3,7 @@ - Overview: module code — myria3d 3.5.2 documentation + Overview: module code — myria3d 3.6.0 documentation diff --git a/_modules/myria3d/callbacks/comet_callbacks.html b/_modules/myria3d/callbacks/comet_callbacks.html index 07461591..a9b901c0 100644 --- a/_modules/myria3d/callbacks/comet_callbacks.html +++ b/_modules/myria3d/callbacks/comet_callbacks.html @@ -3,7 +3,7 @@ - myria3d.callbacks.comet_callbacks — myria3d 3.5.2 documentation + myria3d.callbacks.comet_callbacks — myria3d 3.6.0 documentation diff --git a/_modules/myria3d/callbacks/finetuning_callbacks.html b/_modules/myria3d/callbacks/finetuning_callbacks.html index badc9fb1..c793dc9c 100644 --- a/_modules/myria3d/callbacks/finetuning_callbacks.html +++ b/_modules/myria3d/callbacks/finetuning_callbacks.html @@ -3,7 +3,7 @@ - myria3d.callbacks.finetuning_callbacks — myria3d 3.5.2 documentation + myria3d.callbacks.finetuning_callbacks — myria3d 3.6.0 documentation diff --git a/_modules/myria3d/callbacks/logging_callbacks.html b/_modules/myria3d/callbacks/logging_callbacks.html index aca4ab62..27bd29b7 100644 --- a/_modules/myria3d/callbacks/logging_callbacks.html +++ b/_modules/myria3d/callbacks/logging_callbacks.html @@ -3,7 +3,7 @@ - myria3d.callbacks.logging_callbacks — myria3d 3.5.2 documentation + myria3d.callbacks.logging_callbacks — myria3d 3.6.0 documentation diff --git a/_modules/myria3d/models/interpolation.html b/_modules/myria3d/models/interpolation.html index 42c30121..da3b4495 100644 --- a/_modules/myria3d/models/interpolation.html +++ b/_modules/myria3d/models/interpolation.html @@ -3,7 +3,7 @@ - myria3d.models.interpolation — myria3d 3.5.2 documentation + myria3d.models.interpolation — myria3d 3.6.0 documentation @@ -220,16 +220,17 @@

Source code for myria3d.models.interpolation

self.logits: List[torch.Tensor] = []
         self.idx_in_full_cloud_list: List[np.ndarray] = []
 
-
[docs] def load_full_las_for_update(self, src_las: str) -> np.ndarray: +
[docs] def load_full_las_for_update(self, src_las: str, epsg: str) -> np.ndarray: """Loads a LAS and adds necessary extradim. Args: filepath (str): Path to LAS for which predictions are made. + epsg (str): epsg to force the reading with """ # We do not reset the dims we create channel. # Slight risk of interaction with previous values, but it is expected that all non-artefacts values are updated. - pipeline = get_pdal_reader(src_las) + pipeline = get_pdal_reader(src_las, epsg) for proba_channel_to_create in self.probas_to_save: pipeline |= pdal.Filter.ferry(dimensions=f"=>{proba_channel_to_create}") pipeline |= pdal.Filter.assign(value=f"{proba_channel_to_create}=0") @@ -280,7 +281,7 @@

Source code for myria3d.models.interpolation

return reduced_logits[idx_in_full_cloud], idx_in_full_cloud
[docs] @torch.no_grad() - def reduce_predictions_and_save(self, raw_path: str, output_dir: str) -> str: + def reduce_predictions_and_save(self, raw_path: str, output_dir: str, epsg: str) -> str: """Interpolate all predicted probabilites to their original points in LAS file, and save. Args: @@ -288,6 +289,7 @@

Source code for myria3d.models.interpolation

            basename: str: file basename to save it with the same one
             output_dir (Optional[str], optional): Directory to save output LAS with new predicted classification, entropy,
             and probabilities. Defaults to None.
+            epsg (str): epsg to force the reading with
         Returns:
             str: path of the updated, saved LAS file.
 
@@ -306,7 +308,7 @@ 

Source code for myria3d.models.interpolation

del logits
 
         # Read las after fetching all information to write into it
-        las = self.load_full_las_for_update(src_las=raw_path)
+        las = self.load_full_las_for_update(raw_path, epsg)
 
         for idx, class_name in enumerate(self.classification_dict.values()):
             if class_name in self.probas_to_save:
diff --git a/_modules/myria3d/models/model.html b/_modules/myria3d/models/model.html
index 107beedd..2b1854dc 100644
--- a/_modules/myria3d/models/model.html
+++ b/_modules/myria3d/models/model.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.models.model — myria3d 3.5.2 documentation
+  myria3d.models.model — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/models/modules/pyg_randla_net.html b/_modules/myria3d/models/modules/pyg_randla_net.html
index 834e8709..079c972f 100644
--- a/_modules/myria3d/models/modules/pyg_randla_net.html
+++ b/_modules/myria3d/models/modules/pyg_randla_net.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.models.modules.pyg_randla_net — myria3d 3.5.2 documentation
+  myria3d.models.modules.pyg_randla_net — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/pctl/dataloader/dataloader.html b/_modules/myria3d/pctl/dataloader/dataloader.html
index 2a6935ac..f854a59e 100644
--- a/_modules/myria3d/pctl/dataloader/dataloader.html
+++ b/_modules/myria3d/pctl/dataloader/dataloader.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.dataloader.dataloader — myria3d 3.5.2 documentation
+  myria3d.pctl.dataloader.dataloader — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/pctl/datamodule/hdf5.html b/_modules/myria3d/pctl/datamodule/hdf5.html
index ce9f64e2..946db505 100644
--- a/_modules/myria3d/pctl/datamodule/hdf5.html
+++ b/_modules/myria3d/pctl/datamodule/hdf5.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.datamodule.hdf5 — myria3d 3.5.2 documentation
+  myria3d.pctl.datamodule.hdf5 — myria3d 3.6.0 documentation
       
       
       
@@ -194,6 +194,7 @@ 

Source code for myria3d.pctl.datamodule.hdf5

data_dir: str,
         split_csv_path: str,
         hdf5_file_path: str,
+        epsg: str,
         points_pre_transform: Optional[Callable[[ArrayLike], Data]] = None,
         pre_filter: Optional[Callable[[Data], bool]] = pre_filter_below_n_points,
         tile_width: Number = 1000,
@@ -209,6 +210,7 @@ 

Source code for myria3d.pctl.datamodule.hdf5

self.split_csv_path = split_csv_path
         self.data_dir = data_dir
         self.hdf5_file_path = hdf5_file_path
+        self.epsg = epsg
         self._dataset = None  # will be set by self.dataset property
         self.las_paths_by_split_dict = {}  # Will be set from split_csv
 
@@ -292,6 +294,7 @@ 

Source code for myria3d.pctl.datamodule.hdf5

self._dataset = HDF5Dataset(
             self.hdf5_file_path,
+            self.epsg,
             las_paths_by_split_dict=self.las_paths_by_split_dict,
             points_pre_transform=self.points_pre_transform,
             tile_width=self.tile_width,
@@ -331,6 +334,7 @@ 

Source code for myria3d.pctl.datamodule.hdf5

def _set_predict_data(self, las_file_to_predict):
         self.predict_dataset = InferenceDataset(
             las_file_to_predict,
+            self.epsg,
             points_pre_transform=self.points_pre_transform,
             pre_filter=self.pre_filter,
             transform=self.predict_transform,
diff --git a/_modules/myria3d/pctl/dataset/hdf5.html b/_modules/myria3d/pctl/dataset/hdf5.html
index bb7cc776..f12b2ac5 100644
--- a/_modules/myria3d/pctl/dataset/hdf5.html
+++ b/_modules/myria3d/pctl/dataset/hdf5.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.dataset.hdf5 — myria3d 3.5.2 documentation
+  myria3d.pctl.dataset.hdf5 — myria3d 3.6.0 documentation
       
       
       
@@ -193,6 +193,7 @@ 

Source code for myria3d.pctl.dataset.hdf5

     def __init__(
         self,
         hdf5_file_path: str,
+        epsg: str,
         las_paths_by_split_dict: LAS_PATHS_BY_SPLIT_DICT_TYPE,
         points_pre_transform: Callable = lidar_hd_pre_transform,
         tile_width: Number = 1000,
@@ -244,6 +245,7 @@ 

Source code for myria3d.pctl.dataset.hdf5

         create_hdf5(
             las_paths_by_split_dict,
             hdf5_file_path,
+            epsg,
             tile_width,
             subtile_width,
             pre_filter,
@@ -360,6 +362,7 @@ 

Source code for myria3d.pctl.dataset.hdf5

 
[docs]def create_hdf5( las_paths_by_split_dict: dict, hdf5_file_path: str, + epsg: str, tile_width: Number = 1000, subtile_width: Number = 50, pre_filter: Optional[Callable[[Data], bool]] = pre_filter_below_n_points, @@ -369,12 +372,10 @@

Source code for myria3d.pctl.dataset.hdf5

     """Create a HDF5 dataset file from las.
 
     Args:
-        split (str): specifies either "train", "val", or "test" split.
-        las_path (str): path to point cloud.
-
         las_paths_by_split_dict ([LAS_PATHS_BY_SPLIT_DICT_TYPE]): should look like
                 las_paths_by_split_dict = {'train': ['dir/las1.las','dir/las2.las'], 'val': [...], , 'test': [...]},
         hdf5_file_path (str): path to HDF5 dataset,
+        epsg (str): epsg to force the reading with
         tile_width (Number, optional): width of a LAS tile. 1000 by default,
         subtile_width: (Number, optional): effective width of a subtile (i.e. receptive field). 50 by default,
         pre_filter: Function to filter out specific subtiles. "pre_filter_below_n_points" by default,
@@ -411,6 +412,7 @@ 

Source code for myria3d.pctl.dataset.hdf5

                         las_path,
                         tile_width,
                         subtile_width,
+                        epsg,
                         subtile_overlap,
                     )
                 ):
diff --git a/_modules/myria3d/pctl/dataset/iterable.html b/_modules/myria3d/pctl/dataset/iterable.html
index 7b8f8882..6cd90804 100644
--- a/_modules/myria3d/pctl/dataset/iterable.html
+++ b/_modules/myria3d/pctl/dataset/iterable.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.dataset.iterable — myria3d 3.5.2 documentation
+  myria3d.pctl.dataset.iterable — myria3d 3.6.0 documentation
       
       
       
@@ -184,6 +184,7 @@ 

Source code for myria3d.pctl.dataset.iterable

def __init__( self, las_file: str, + epsg: str, points_pre_transform: Callable[[ArrayLike], Data] = lidar_hd_pre_transform, pre_filter: Optional[Callable[[Data], bool]] = pre_filter_below_n_points, transform: Optional[Callable[[Data], Data]] = None, @@ -192,6 +193,7 @@

Source code for myria3d.pctl.dataset.iterable

subtile_overlap: Number = 0, ): self.las_file = las_file + self.epsg = epsg self.points_pre_transform = points_pre_transform self.pre_filter = pre_filter @@ -210,6 +212,7 @@

Source code for myria3d.pctl.dataset.iterable

self.las_file, self.tile_width, self.subtile_width, + self.epsg, self.subtile_overlap, ): sample_data = self.points_pre_transform(sample_points) diff --git a/_modules/myria3d/pctl/dataset/toy_dataset.html b/_modules/myria3d/pctl/dataset/toy_dataset.html index e90749fe..f9270f53 100644 --- a/_modules/myria3d/pctl/dataset/toy_dataset.html +++ b/_modules/myria3d/pctl/dataset/toy_dataset.html @@ -3,7 +3,7 @@ - myria3d.pctl.dataset.toy_dataset — myria3d 3.5.2 documentation + myria3d.pctl.dataset.toy_dataset — myria3d 3.6.0 documentation @@ -173,6 +173,7 @@

Source code for myria3d.pctl.dataset.toy_dataset

sys.path.append(osp.dirname(osp.dirname(osp.dirname(osp.dirname(__file__))))) from myria3d.pctl.dataset.hdf5 import HDF5Dataset # noqa +TOY_EPSG = "2154" TOY_LAS_DATA = "tests/data/toy_dataset_src/862000_6652000.classified_toy_dataset.100mx100m.las" TOY_DATASET_HDF5_PATH = "tests/data/toy_dataset.hdf5" @@ -201,6 +202,7 @@

Source code for myria3d.pctl.dataset.toy_dataset

# TODO: update transforms ? or use a config ? HDF5Dataset( TOY_DATASET_HDF5_PATH, + TOY_EPSG, las_paths_by_split_dict={ "train": [TOY_LAS_DATA], "val": [TOY_LAS_DATA], diff --git a/_modules/myria3d/pctl/dataset/utils.html b/_modules/myria3d/pctl/dataset/utils.html index f6fa1509..d7e2acc4 100644 --- a/_modules/myria3d/pctl/dataset/utils.html +++ b/_modules/myria3d/pctl/dataset/utils.html @@ -3,7 +3,7 @@ - myria3d.pctl.dataset.utils — myria3d 3.5.2 documentation + myria3d.pctl.dataset.utils — myria3d 3.6.0 documentation @@ -178,8 +178,6 @@

Source code for myria3d.pctl.dataset.utils

 SPLIT_TYPE = Union[Literal["train"], Literal["val"], Literal["test"]]
 LAS_PATHS_BY_SPLIT_DICT_TYPE = Dict[SPLIT_TYPE, List[str]]
 
-# commons
-
 
 
[docs]def find_file_in_dir(data_dir: str, basename: str) -> str: """Query files matching a basename in input_data_dir and its subdirectories. @@ -205,41 +203,75 @@

Source code for myria3d.pctl.dataset.utils

     return [np.array([x, y]) for x in xy_range for y in xy_range]
 
 
-
[docs]def pdal_read_las_array(las_path: str): +
[docs]def pdal_read_las_array(las_path: str, epsg: str): """Read LAS as a named array. Args: las_path (str): input LAS path + epsg (str): epsg to force the reading with Returns: np.ndarray: named array with all LAS dimensions, including extra ones, with dict-like access. """ - p1 = pdal.Pipeline() | get_pdal_reader(las_path) + p1 = pdal.Pipeline() | get_pdal_reader(las_path, epsg) p1.execute() return p1.arrays[0]
-
[docs]def pdal_read_las_array_as_float32(las_path: str): +
[docs]def pdal_read_las_array_as_float32(las_path: str, epsg: str): """Read LAS as a a named array, casted to floats.""" - arr = pdal_read_las_array(las_path) + arr = pdal_read_las_array(las_path, epsg) all_floats = np.dtype({"names": arr.dtype.names, "formats": ["f4"] * len(arr.dtype.names)}) return arr.astype(all_floats)
-
[docs]def get_pdal_reader(las_path: str) -> pdal.Reader.las: - """Standard Reader which imposes Lamber 93 SRS. +
[docs]def get_metadata(las_path: str) -> dict: + """ returns metadata contained in a las file + Args: + las_path (str): input LAS path to get metadata from. + Returns: + dict : the metadata. + """ + pipeline = pdal.Reader.las(filename=las_path).pipeline() + pipeline.execute() + return pipeline.metadata
+ + +
[docs]def get_pdal_reader(las_path: str, epsg: str) -> pdal.Reader.las: + """Standard Reader. Args: las_path (str): input LAS path to read. + epsg (str): epsg to force the reading with Returns: pdal.Reader.las: reader to use in a pipeline. """ - return pdal.Reader.las( - filename=las_path, - nosrs=True, - override_srs="EPSG:2154", - )
+ + if epsg : + # if an epsg in provided, force pdal to read the lidar file with it + try : # epsg can be added as a number like "2154" or as a string like "EPSG:2154" + int(epsg) + return pdal.Reader.las( + filename=las_path, + nosrs=True, + override_srs=f"EPSG:{epsg}", + ) + except ValueError: + return pdal.Reader.las( + filename=las_path, + nosrs=True, + override_srs=epsg, + ) + + try : + if get_metadata(las_path)['metadata']['readers.las']['srs']['compoundwkt']: + # read the lidar file with pdal default + return pdal.Reader.las(filename=las_path) + except Exception: + pass # we will go to the "raise exception" anyway + + raise Exception("No EPSG provided, neither in the lidar file or as parameter")
[docs]def get_pdal_info_metadata(las_path: str) -> Dict: @@ -267,6 +299,7 @@

Source code for myria3d.pctl.dataset.utils

     las_path: str,
     tile_width: Number,
     subtile_width: Number,
+    epsg: str,
     subtile_overlap: Number = 0,
 ):
     """Split LAS point cloud into samples.
@@ -275,13 +308,14 @@ 

Source code for myria3d.pctl.dataset.utils

         las_path (str): path to raw LAS file
         tile_width (Number): width of input LAS file
         subtile_width (Number): width of receptive field.
+        epsg (str): epsg to force the reading with
         subtile_overlap (Number, optional): overlap between adjacent tiles. Defaults to 0.
 
     Yields:
         _type_: idx_in_original_cloud, and points of sample in pdal input format casted as floats.
 
     """
-    points = pdal_read_las_array_as_float32(las_path)
+    points = pdal_read_las_array_as_float32(las_path, epsg)
     pos = np.asarray([points["X"], points["Y"], points["Z"]], dtype=np.float32).transpose()
     kd_tree = cKDTree(pos[:, :2] - pos[:, :2].min(axis=0))
     XYs = get_mosaic_of_centers(tile_width, subtile_width, subtile_overlap=subtile_overlap)
diff --git a/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html b/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html
index 5c8764bf..4c8ab018 100644
--- a/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html
+++ b/_modules/myria3d/pctl/points_pre_transform/lidar_hd.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.points_pre_transform.lidar_hd — myria3d 3.5.2 documentation
+  myria3d.pctl.points_pre_transform.lidar_hd — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/pctl/transforms/compose.html b/_modules/myria3d/pctl/transforms/compose.html
index aae15d64..ed0e38d7 100644
--- a/_modules/myria3d/pctl/transforms/compose.html
+++ b/_modules/myria3d/pctl/transforms/compose.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.transforms.compose — myria3d 3.5.2 documentation
+  myria3d.pctl.transforms.compose — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/pctl/transforms/transforms.html b/_modules/myria3d/pctl/transforms/transforms.html
index 7fb1bad7..a1e32b4a 100644
--- a/_modules/myria3d/pctl/transforms/transforms.html
+++ b/_modules/myria3d/pctl/transforms/transforms.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.pctl.transforms.transforms — myria3d 3.5.2 documentation
+  myria3d.pctl.transforms.transforms — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/train.html b/_modules/myria3d/train.html
index 2d51d209..fd909693 100644
--- a/_modules/myria3d/train.html
+++ b/_modules/myria3d/train.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.train — myria3d 3.5.2 documentation
+  myria3d.train — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/myria3d/utils/utils.html b/_modules/myria3d/utils/utils.html
index 078abcb5..2b9984e1 100644
--- a/_modules/myria3d/utils/utils.html
+++ b/_modules/myria3d/utils/utils.html
@@ -3,7 +3,7 @@
 
   
   
-  myria3d.utils.utils — myria3d 3.5.2 documentation
+  myria3d.utils.utils — myria3d 3.6.0 documentation
       
       
       
diff --git a/_modules/run.html b/_modules/run.html
index bb552bd9..ec95203c 100644
--- a/_modules/run.html
+++ b/_modules/run.html
@@ -3,7 +3,7 @@
 
   
   
-  run — myria3d 3.5.2 documentation
+  run — myria3d 3.6.0 documentation
       
       
       
@@ -213,7 +213,6 @@ 

Source code for run

     # Imports should be nested inside @hydra.main to optimize tab completion
     # Read more here: https://github.com/facebookresearch/hydra/issues/934
     from myria3d.train import train
-
     utils.extras(config)
 
     # Pretty print config using Rich library
@@ -259,6 +258,7 @@ 

Source code for run

     create_hdf5(
         las_paths_by_split_dict=las_paths_by_split_dict,
         hdf5_file_path=config.datamodule.get("hdf5_file_path"),
+        epsg=config.datamodule.get("epsg"),
         tile_width=config.datamodule.get("tile_width"),
         subtile_width=config.datamodule.get("subtile_width"),
         pre_filter=hydra.utils.instantiate(config.datamodule.get("pre_filter")),
diff --git a/_sources/tutorials/make_predictions.md.txt b/_sources/tutorials/make_predictions.md.txt
index 8341fd5c..bd3fdb34 100644
--- a/_sources/tutorials/make_predictions.md.txt
+++ b/_sources/tutorials/make_predictions.md.txt
@@ -28,7 +28,8 @@ To show you current inference config, simply add a `--help` flag:
 python run.py task.task_name=predict --help
 ```
 
-Note that `predict.src_las` may be any valid glob pattern (e.g. `/path/to/multiple_files/*.las`), in order to **predict on multiple files successively**.
+Note that `predict.src_las` may be any valid glob pattern (e.g. `/path/to/multiple_files/*.las`), in order to **predict on multiple files successively**.  
+If the lidar file doesn't specify an EPSG in its meatadata, it HAS TO BE be specified with `datamodule.epsg=...`
 
 ## Run inference from sources
 
diff --git a/_sources/tutorials/prepare_dataset.md.txt b/_sources/tutorials/prepare_dataset.md.txt
index 1dff18a6..f02a0278 100644
--- a/_sources/tutorials/prepare_dataset.md.txt
+++ b/_sources/tutorials/prepare_dataset.md.txt
@@ -25,6 +25,8 @@ Under the hood, the path of each LAS file will be reconstructed like this: '{dat
 
 Large input point clouds need to be divided in smaller clouds that can be digested by segmentation models. We found that a receptive field of 50m x 50m was a good balance between context and memory intensity. The division is performed once, to avoid loading large file in memory multiple times during training.
 
+To be able to read the lidar files, an EPSG is needed. If the files don't all specify an EPSG in their metadata, it should be given as a parameter with `datamodule.epsg=...` 
+
 After division, the smaller clouds are preprocessed (i.e. selection of specific LAS dimensions, on-the-fly creation of dimensions) and regrouped into a single HDF5 file whose path is specified via the `datamodule.hdf5_file_path` parameter. 
 
 The HDF5 dataset is created at training time. It should only happens once. Once this is done, you do not need sources anymore, and simply specifying the path to the HDF5 dataset is enough (there is no need for data_dir or split_csv_path parameters anymore).
diff --git a/_static/documentation_options.js b/_static/documentation_options.js
index a457d9ce..f4ef3226 100644
--- a/_static/documentation_options.js
+++ b/_static/documentation_options.js
@@ -1,6 +1,6 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: '3.5.2',
+    VERSION: '3.6.0',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
     BUILDER: 'html',
diff --git a/apidoc/configs.html b/apidoc/configs.html
index 71402a70..75f8bf47 100644
--- a/apidoc/configs.html
+++ b/apidoc/configs.html
@@ -4,7 +4,7 @@
   
 
   
-  Default configuration — myria3d 3.5.2 documentation
+  Default configuration — myria3d 3.6.0 documentation
       
       
       
@@ -277,6 +277,7 @@ 

Default configuration normalizations_list: '${oc.dict.values: datamodule.transforms.normalizations}' _target_: myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule data_dir: null + epsg: null split_csv_path: null hdf5_file_path: ${hydra:runtime.cwd}/tests/data/toy_dataset.hdf5 points_pre_transform: diff --git a/apidoc/myria3d.callbacks.html b/apidoc/myria3d.callbacks.html index 89fdfe07..05c14dca 100644 --- a/apidoc/myria3d.callbacks.html +++ b/apidoc/myria3d.callbacks.html @@ -4,7 +4,7 @@ - myria3d.callbacks — myria3d 3.5.2 documentation + myria3d.callbacks — myria3d 3.6.0 documentation diff --git a/apidoc/myria3d.model.html b/apidoc/myria3d.model.html index 2d595af3..d3e793c3 100644 --- a/apidoc/myria3d.model.html +++ b/apidoc/myria3d.model.html @@ -4,7 +4,7 @@ - myria3d.models — myria3d 3.5.2 documentation + myria3d.models — myria3d 3.6.0 documentation @@ -350,11 +350,14 @@

myria3d.models
-load_full_las_for_update(src_las: str) numpy.ndarray[source]
+load_full_las_for_update(src_las: str, epsg: str) numpy.ndarray[source]

Loads a LAS and adds necessary extradim.

Parameters
-

filepath (str) – Path to LAS for which predictions are made.

+
    +
  • filepath (str) – Path to LAS for which predictions are made.

  • +
  • epsg (str) – epsg to force the reading with

  • +
@@ -375,7 +378,7 @@

myria3d.models
-reduce_predictions_and_save(raw_path: str, output_dir: str) str[source]
+reduce_predictions_and_save(raw_path: str, output_dir: str, epsg: str) str[source]

Interpolate all predicted probabilites to their original points in LAS file, and save.

Parameters
@@ -384,6 +387,7 @@

myria3d.modelsbasename – str: file basename to save it with the same one

  • output_dir (Optional[str], optional) – Directory to save output LAS with new predicted classification, entropy,

  • None. (and _sphinx_paramlinks_myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.probabilities. Defaults to) –

  • +
  • epsg (str) – epsg to force the reading with

  • Returns
    diff --git a/apidoc/myria3d.models.modules.html b/apidoc/myria3d.models.modules.html index 69b17910..07b8ceed 100644 --- a/apidoc/myria3d.models.modules.html +++ b/apidoc/myria3d.models.modules.html @@ -4,7 +4,7 @@ - myria3d.models.modules — myria3d 3.5.2 documentation + myria3d.models.modules — myria3d 3.6.0 documentation diff --git a/apidoc/myria3d.pctl.html b/apidoc/myria3d.pctl.html index 6bb15f02..29847e8b 100644 --- a/apidoc/myria3d.pctl.html +++ b/apidoc/myria3d.pctl.html @@ -4,7 +4,7 @@ - myria3d.pctl — myria3d 3.5.2 documentation + myria3d.pctl — myria3d 3.6.0 documentation @@ -451,7 +451,7 @@

    myria3d.pctl

    myria3d.pctl.dataset.hdf5

    -class myria3d.pctl.dataset.hdf5.HDF5Dataset(hdf5_file_path: str, las_paths_by_split_dict: typing.Dict[typing.Union[typing.Literal['train'], typing.Literal['val'], typing.Literal['test']], typing.List[str]], points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap_train: numbers.Number = 0, pre_filter=<function pre_filter_below_n_points>, train_transform: typing.Optional[typing.List[typing.Callable]] = None, eval_transform: typing.Optional[typing.List[typing.Callable]] = None)[source]
    +class myria3d.pctl.dataset.hdf5.HDF5Dataset(hdf5_file_path: str, epsg: str, las_paths_by_split_dict: typing.Dict[typing.Union[typing.Literal['train'], typing.Literal['val'], typing.Literal['test']], typing.List[str]], points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap_train: numbers.Number = 0, pre_filter=<function pre_filter_below_n_points>, train_transform: typing.Optional[typing.List[typing.Callable]] = None, eval_transform: typing.Optional[typing.List[typing.Callable]] = None)[source]

    Single-file HDF5 dataset for collections of large LAS tiles.

    @@ -463,16 +463,15 @@

    myria3d.pctl
    -myria3d.pctl.dataset.hdf5.create_hdf5(las_paths_by_split_dict: dict, hdf5_file_path: str, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, subtile_overlap_train: numbers.Number = 0, points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>)[source]
    +myria3d.pctl.dataset.hdf5.create_hdf5(las_paths_by_split_dict: dict, hdf5_file_path: str, epsg: str, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, subtile_overlap_train: numbers.Number = 0, points_pre_transform: typing.Callable = <function lidar_hd_pre_transform>)[source]

    Create a HDF5 dataset file from las.

    Parameters
      -
    • split (str) – specifies either “train”, “val”, or “test” split.

    • -
    • las_path (str) – path to point cloud.

    • las_paths_by_split_dict ([LAS_PATHS_BY_SPLIT_DICT_TYPE]) – should look like las_paths_by_split_dict = {‘train’: [‘dir/las1.las’,’dir/las2.las’], ‘val’: […], , ‘test’: […]},

    • hdf5_file_path (str) – path to HDF5 dataset,

    • +
    • epsg (str) – epsg to force the reading with

    • tile_width (Number, optional) – width of a LAS tile. 1000 by default,

    • subtile_width – (Number, optional): effective width of a subtile (i.e. receptive field). 50 by default,

    • pre_filter – Function to filter out specific subtiles. “pre_filter_below_n_points” by default,

    • @@ -488,7 +487,7 @@

      myria3d.pctl

      myria3d.pctl.dataset.iterable

      -class myria3d.pctl.dataset.iterable.InferenceDataset(las_file: str, points_pre_transform: typing.Callable[[typing.Union[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[typing.Union[bool, int, float, complex, str, bytes]]]], torch_geometric.data.data.Data] = <function lidar_hd_pre_transform>, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, transform: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], torch_geometric.data.data.Data]] = None, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap: numbers.Number = 0)[source]
      +class myria3d.pctl.dataset.iterable.InferenceDataset(las_file: str, epsg: str, points_pre_transform: typing.Callable[[typing.Union[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]], numpy._typing._nested_sequence._NestedSequence[numpy._typing._array_like._SupportsArray[numpy.dtype[typing.Any]]], bool, int, float, complex, str, bytes, numpy._typing._nested_sequence._NestedSequence[typing.Union[bool, int, float, complex, str, bytes]]]], torch_geometric.data.data.Data] = <function lidar_hd_pre_transform>, pre_filter: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], bool]] = <function pre_filter_below_n_points>, transform: typing.Optional[typing.Callable[[torch_geometric.data.data.Data], torch_geometric.data.data.Data]] = None, tile_width: numbers.Number = 1000, subtile_width: numbers.Number = 50, subtile_overlap: numbers.Number = 0)[source]

      Iterable dataset to load samples from a single las file.

      @@ -547,6 +546,22 @@

      myria3d.pctl +
      +myria3d.pctl.dataset.utils.get_metadata(las_path: str) dict[source]
      +

      returns metadata contained in a las file +:param _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_metadata.las_path: input LAS path to get metadata from. +:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_metadata.las_path: str

      +
      +
      Returns
      +

      the metadata.

      +
      +
      Return type
      +

      dict

      +
      +
      +

      +
      myria3d.pctl.dataset.utils.get_pdal_info_metadata(las_path: str) Dict[source]
      @@ -565,10 +580,12 @@

      myria3d.pctl
      -myria3d.pctl.dataset.utils.get_pdal_reader(las_path: str) pdal.pipeline.Reader.las[source]
      -

      Standard Reader which imposes Lamber 93 SRS. +myria3d.pctl.dataset.utils.get_pdal_reader(las_path: str, epsg: str) pdal.pipeline.Reader.las[source] +

      Standard Reader. :param _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.las_path: input LAS path to read. -:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.las_path: str

      +:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.las_path: str +:param _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.epsg: epsg to force the reading with +:type _sphinx_paramlinks_myria3d.pctl.dataset.utils.get_pdal_reader.epsg: str

      Returns

      reader to use in a pipeline.

      @@ -581,11 +598,14 @@

      myria3d.pctl
      -myria3d.pctl.dataset.utils.pdal_read_las_array(las_path: str)[source]
      +myria3d.pctl.dataset.utils.pdal_read_las_array(las_path: str, epsg: str)[source]

      Read LAS as a named array.

      Parameters
      -

      las_path (str) – input LAS path

      +
        +
      • las_path (str) – input LAS path

      • +
      • epsg (str) – epsg to force the reading with

      • +
      Returns

      named array with all LAS dimensions, including extra ones, with dict-like access.

      @@ -598,13 +618,13 @@

      myria3d.pctl
      -myria3d.pctl.dataset.utils.pdal_read_las_array_as_float32(las_path: str)[source]
      +myria3d.pctl.dataset.utils.pdal_read_las_array_as_float32(las_path: str, epsg: str)[source]

      Read LAS as a a named array, casted to floats.

      -myria3d.pctl.dataset.utils.split_cloud_into_samples(las_path: str, tile_width: numbers.Number, subtile_width: numbers.Number, subtile_overlap: numbers.Number = 0)[source]
      +myria3d.pctl.dataset.utils.split_cloud_into_samples(las_path: str, tile_width: numbers.Number, subtile_width: numbers.Number, epsg: str, subtile_overlap: numbers.Number = 0)[source]

      Split LAS point cloud into samples.

      Parameters
      @@ -612,6 +632,7 @@

      myria3d.pctllas_path (str) – path to raw LAS file

    • tile_width (Number) – width of input LAS file

    • subtile_width (Number) – width of receptive field.

    • +
    • epsg (str) – epsg to force the reading with

    • subtile_overlap (Number, optional) – overlap between adjacent tiles. Defaults to 0.

    diff --git a/apidoc/myria3d.utils.html b/apidoc/myria3d.utils.html index 7774fd77..c30bc3da 100644 --- a/apidoc/myria3d.utils.html +++ b/apidoc/myria3d.utils.html @@ -4,7 +4,7 @@ - myria3d.utils — myria3d 3.5.2 documentation + myria3d.utils — myria3d 3.6.0 documentation diff --git a/apidoc/scripts.html b/apidoc/scripts.html index ace35e27..5d9efef0 100644 --- a/apidoc/scripts.html +++ b/apidoc/scripts.html @@ -4,7 +4,7 @@ - Scripts — myria3d 3.5.2 documentation + Scripts — myria3d 3.6.0 documentation diff --git a/background/general_design.html b/background/general_design.html index 31c0d964..594c1e4e 100644 --- a/background/general_design.html +++ b/background/general_design.html @@ -4,7 +4,7 @@ - General design of the package — myria3d 3.5.2 documentation + General design of the package — myria3d 3.6.0 documentation diff --git a/background/interpolation.html b/background/interpolation.html index 6a0821ad..5e75b642 100644 --- a/background/interpolation.html +++ b/background/interpolation.html @@ -4,7 +4,7 @@ - KNN-Interpolation to merge multiple predictions [TODO] — myria3d 3.5.2 documentation + KNN-Interpolation to merge multiple predictions [TODO] — myria3d 3.6.0 documentation diff --git a/genindex.html b/genindex.html index 5a0575ab..6bdfa923 100644 --- a/genindex.html +++ b/genindex.html @@ -3,7 +3,7 @@ - Index — myria3d 3.5.2 documentation + Index — myria3d 3.6.0 documentation @@ -273,10 +273,24 @@

    D

    E

    @@ -325,11 +339,13 @@

    G

  • get_comet_logger() (in module myria3d.callbacks.comet_callbacks)
  • - - + - +
    • standardize_channel() (myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity method)
    • StandardizeRGBAndIntensity (class in myria3d.pctl.transforms.transforms) diff --git a/guides/development.html b/guides/development.html index 8de87cb3..66104a3a 100644 --- a/guides/development.html +++ b/guides/development.html @@ -4,7 +4,7 @@ - Developer’s guide — myria3d 3.5.2 documentation + Developer’s guide — myria3d 3.6.0 documentation diff --git a/guides/train_new_model.html b/guides/train_new_model.html index 25e200e6..5071a016 100644 --- a/guides/train_new_model.html +++ b/guides/train_new_model.html @@ -4,7 +4,7 @@ - How to train new models — myria3d 3.5.2 documentation + How to train new models — myria3d 3.6.0 documentation diff --git a/index.html b/index.html index 9c1c74fa..12087fe9 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - Myria3D > Documentation — myria3d 3.5.2 documentation + Myria3D > Documentation — myria3d 3.6.0 documentation diff --git a/introduction.html b/introduction.html index dafb80d7..63ea2928 100644 --- a/introduction.html +++ b/introduction.html @@ -4,7 +4,7 @@ - <no title> — myria3d 3.5.2 documentation + <no title> — myria3d 3.6.0 documentation diff --git a/objects.inv b/objects.inv index 1ae9c98e3689c902aee0f12368e79ba490593d1a..e0ad2442f96f596f16874a8fd902da6ee7b36006 100644 GIT binary patch delta 2108 zcmV-C2*dZ95x)_Tntu{0kW{kXr~XENuV2z3DcO=O$(BWVfgqN6Ifoq142Kt`8_DQ5 zaTw7gSM9g?pg_ku(r(HJK{^s5L=a3&&ohAP!5eShy{VMZlQRS21~^PhbMtaw50 zB}*VH;=(cbCB%6IB*R}8X^2hu#EYeAc z15C|&5@hAED-^V~+9JVr$nYJQoqow86BIv5A(l5H!AKUm_5yZfXR}Oey*iJ_^)y_^ z%YSc&i>3k={xrS&_5qDdnpQqKSRbuy0=8w8(@$KpWFYm%J4YFW?CDaAh7Kn~Lk3GW zBF)jzXCS_fFfJl6x37BS<+-9An$oHviu%jaR25h*8^;SI>q9VtH+W1-A_ zo!HH1KAWAz81OQ_6k~MY5PbBm z-~<|j^xX%C>Nn!-r0^}DErs<3RDVjk@g$=LnT=0jnoHY(@HQjTj&xOBE#nTPU!8!;Ue@b z3pj_Ys-q`fKk8_~7S`Sw&x9Jd(mKQoZ*rwYdb30CztB2{y49_1IWH2a!+&`ZO6BoJ zWShG@NuGonER`nMVkI%B5@&4h6wlVGW6zDBN|8NTqd0y)yf^qG{m9Zho#CH|!7nu9 zV?odGKTX&t@GR;X>IhqI9>goIzkc(H{H!TQ&lO{v-@p6un#blc6<17eF2fS4T^5Pf zl=I@sRsYSGW@=|r^Q!yz)qktGm}4iz87FA&IH<`{sYtR+w|}g$-E};x;;#DP6j%dj zskuEiws+84{B|pli#d+2@m;aDepEoh7|i!LB!(9jf!m;PEhDyB-BW#qrVSs=agAmv z3`hEi@>8B*P8x+CsH+n{H9G;yd`7e0WFWUK8s6zl;v7SEo%IIhTYrvC*h>aUtj58% zX%GkKKm)Yu*EQ9FkY<@b4xa=ik{9R)F7saQ3X6yH>*t@z?E3Ncxxup@c$a#O@a}$g zJO41dZTaToc=h?2HO+zNnN^?O-%jsu&Ly7TKKH7cP&A-*$Ej&ot;*EZuVSB>r$~3& zrvjzp@9;gi+SVv?Y=4dNYI#szjJ9{PCT-vNG@vzq2NWD6PnvELb>QvpOa=AJN0ZJg zNyiZDcb9_Zyh%eK(gD1UQ-W&Bq{*~9Pzzvrii%-G|2&&r-PfvW5u|`I zXON;&vdkRFRX#@eeg4bzmp>-hRK{cYXo(WKKs`dLGSxxfo5#s2XV~^P7~?=9vJ|+k zHtsODv75u7B9=QY{1mnw(crfvm?EqXAy&G4@( zd3zMy6lw+k_4(m#@XGW$xcM->4pg3HLh1^eJq4`lZ#5&`eyKvFAk8|-eDTi8vvxyj ml*epCR%ohM*36lCBgldh$Qpf|!V}2@lf% delta 2071 zcmV+y21hK@+Ih^5eIJ_uZDMr6Z z*(tP=qJI(QV^pk6GR)Tj1vOPQl{Z(@J~Ncvm8Kz3V+&4!2~k|L>gR#g?)2r zTrL)%EWx}GiD6QlNik;vOd*(9gtwnI?D%e-c&7k9!3QySzkU1UB(kbBkhS{y_SK2} z?uX1^E){sQ$3nduVa;NYuG|5(Hh(Wa{J6Steb%${4!}FZ$1K8RL1ruBsEC~X1&Il- zvn_7Sx4eV%pnv0-qu&VQ{Ei?C=B19{GN28aQIjk$%6Ktd`g!Z30=`hrQfgh-puErc z%E7TBfB13U#J4kEUKki$5F`@wj5_0>#wa$ktfz3Hy9BOdCJd-ta=M;GI=rnb-|1=F z(Bk{`n^b!=Uqe0#5|u<#oB+|UA~3<3h!i=R)L!ieCx44`s%U2CPY!t*o4F*w$^rQm zq(uTG$6uBhNNotkj2=YRCKqOFLPbh6eSu5!RqCBl4FZ*V8TGa{VP~j(rgq4}ppPLb zQ=hRBxso$FW1JZVI*!ILrv*oIG%}h<0r5~x)5ZpzwU(W4knX3q%kzaEE3C78Tn)oH zcD5)`NPn3dma$Ku`pQ@$qtAM!Dh&#@8J;+W_v-UK;HzN3$Hu59A=V-p$mQWkrZ;%g z5$IsrDMuBm2l6li)DedF8+>q)#9xrLUOy}SBS4|Bp{%L&o?E?-n zWq(`w=wU;&vJKdk(cV6B&60yMtKb|}5VB=U9TwW33CTM%$VrQGlM3RC?&1CeHw@ zW=Pj&yLU&9*u3k(V>b;i!=UX6lg>G_TYp6Ud}$cMTry#_-HWm32SVfIoDIl^G}uq& z%sC8))7pUW#mrbslP{n+&Hbs%@N};%9n$VXaxkn&XFeS0@AfLR_+HFGfk+^T|LcTx zp}5N}4?KD}eaO7YN$TEOX@f0;%PCbjy#=RucB48C-1xDQ`G1oe6o;?o zo(%p-KeDXICio{)2n)@`P|y?nPdWPpfmJ<08)5U+gM7u1{I`(E&xQ*0Tq(Bs{ktEp zMQX3`2+hpuGAyy)WRYY^g(xrjoW34!r}jf?T6h1Uq?*bp3L(!pxABJ%ZH`JOish#J zp8R?v>a2>J>bp~51E8bk`hT#}-F)is+nqo@<~X?Q^ToR4sDZ>O*iRuy3NI`Hzh?C< zBd%Hdr}`RA7e3fS0>d)skMt4srvt$p)e9$}E{^=l=LjhK1;cWcgIc$!ztFkDIfiV6 z4F(okk8Rj<20YcnV7oL(BXpnOF3lS8-TmZt`eAb0aozrK_34>4?J?V#RiED9j_+^IC7#|spH!7o96-xG zXLb8()uyh~DxNa)ll$T_t5IEOj;iap?ncn4>+^~hwDwOhqMhVX z+x?Y2c$=F#QS-{nXn*fTm_vxo8#7UR-l!!I*#o?eQ=)pxsBLKPLD>xbsF5^kc619u z-2|d%|1z>lUnp6K^vwbU*lSZ5ud{`y19TShSnqsVR92Mp$Sl!=VI{hNIz#i5fp&uC zWp{`F^JH>$->7P2lmW(^QHDmza(hNoy8{3F^q283e~hrHOn;>C(GhVvLpwsMD%C^Z z+sDzOVA%FI7~=q!c?QDN8@HQVjR}_k>c4;f)xK1PQSMYCflm6r+b9&1yVA@;fE3OwWus#T~!$+ zr=MuN@@lyUs((GLaJ?a#wKY(cESnX5T4|>~|H)dCDU3v6xke+wB@O393c{Hv8oKE& zRdu;bT`LY-^k8$_;a@d>dl20g>IDDw`QdH!%FHsl`7pkYbdl#$nHrlr7^>TEE8TXf zQl+5mI>~-)%&Oy8OKOeBZbQ~+>KCQ#F={KzR-ux_B@kK;cT9qWQFSqQ^gny&sirQt B7AOD! diff --git a/py-modindex.html b/py-modindex.html index b5e0aee0..04444802 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — myria3d 3.5.2 documentation + Python Module Index — myria3d 3.6.0 documentation diff --git a/search.html b/search.html index 74b32763..8d5d37a0 100644 --- a/search.html +++ b/search.html @@ -3,7 +3,7 @@ - Search — myria3d 3.5.2 documentation + Search — myria3d 3.6.0 documentation diff --git a/searchindex.js b/searchindex.js index 9b4d8c34..23fce87c 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["apidoc/configs","apidoc/myria3d.callbacks","apidoc/myria3d.model","apidoc/myria3d.models.modules","apidoc/myria3d.pctl","apidoc/myria3d.utils","apidoc/scripts","background/general_design","background/interpolation","guides/development","guides/train_new_model","index","introduction","tutorials/install_on_linux","tutorials/install_on_wsl2","tutorials/make_predictions","tutorials/prepare_dataset"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc/configs.rst","apidoc/myria3d.callbacks.rst","apidoc/myria3d.model.rst","apidoc/myria3d.models.modules.rst","apidoc/myria3d.pctl.rst","apidoc/myria3d.utils.rst","apidoc/scripts.rst","background/general_design.md","background/interpolation.md","guides/development.md","guides/train_new_model.md","index.rst","introduction.md","tutorials/install_on_linux.md","tutorials/install_on_wsl2.md","tutorials/make_predictions.md","tutorials/prepare_dataset.md"],objects:{"":[[6,0,0,"-","run"]],"myria3d.callbacks":[[1,0,0,"-","comet_callbacks"],[1,0,0,"-","finetuning_callbacks"],[1,0,0,"-","logging_callbacks"]],"myria3d.callbacks.comet_callbacks":[[1,1,1,"","LogCode"],[1,1,1,"","LogLogsPath"],[1,3,1,"","get_comet_logger"]],"myria3d.callbacks.comet_callbacks.LogCode":[[1,2,1,"","on_train_start"]],"myria3d.callbacks.comet_callbacks.LogLogsPath":[[1,2,1,"","on_init_end"]],"myria3d.callbacks.finetuning_callbacks":[[1,1,1,"","FinetuningFreezeUnfreeze"]],"myria3d.callbacks.finetuning_callbacks.FinetuningFreezeUnfreeze":[[1,2,1,"","finetune_function"],[1,2,1,"","freeze_before_training"]],"myria3d.callbacks.logging_callbacks":[[1,1,1,"","LogIoUByClass"],[1,1,1,"","SingleClassIoU"]],"myria3d.callbacks.logging_callbacks.LogIoUByClass":[[1,2,1,"","get_all_iou_by_class_object"],[1,2,1,"","log_iou"],[1,2,1,"","on_fit_start"],[1,2,1,"","on_init_end"],[1,2,1,"","on_test_batch_end"],[1,2,1,"","on_test_start"],[1,2,1,"","on_train_batch_end"],[1,2,1,"","on_validation_batch_end"]],"myria3d.callbacks.logging_callbacks.SingleClassIoU":[[1,2,1,"","compute"],[1,4,1,"","confmat"]],"myria3d.models":[[2,0,0,"-","interpolation"],[2,0,0,"-","model"]],"myria3d.models.interpolation":[[2,1,1,"","Interpolator"]],"myria3d.models.interpolation.Interpolator":[[2,2,1,"","load_full_las_for_update"],[2,2,1,"","reduce_predicted_logits"],[2,2,1,"","reduce_predictions_and_save"],[2,2,1,"","store_predictions"]],"myria3d.models.interpolation.Interpolator.load_full_las_for_update.params":[[2,5,1,"","filepath"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params":[[2,5,1,"","basename"],[2,5,1,"","interpolation"],[2,5,1,"","output_dir"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params.probabilities. Defaults to None":[[2,5,1,"",""]],"myria3d.models.model":[[2,1,1,"","Model"],[2,3,1,"","get_neural_net_class"]],"myria3d.models.model.Model":[[2,2,1,"","configure_optimizers"],[2,2,1,"","forward"],[2,2,1,"","on_fit_start"],[2,2,1,"","on_validation_epoch_end"],[2,2,1,"","predict_step"],[2,2,1,"","setup"],[2,2,1,"","test_step"],[2,2,1,"","training_step"],[2,2,1,"","validation_step"]],"myria3d.models.model.Model.forward.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.on_validation_epoch_end.params":[[2,5,1,"","outputs"]],"myria3d.models.model.Model.predict_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.test_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.training_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.Model.validation_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.get_neural_net_class.params":[[2,5,1,"","class_name"]],"myria3d.models.modules.pyg_randla_net":[[3,1,1,"","PyGRandLANet"]],"myria3d.models.modules.pyg_randla_net.PyGRandLANet":[[3,2,1,"","forward"]],"myria3d.pctl.dataloader":[[4,0,0,"-","dataloader"]],"myria3d.pctl.dataloader.dataloader":[[4,1,1,"","GeometricNoneProofCollater"],[4,1,1,"","GeometricNoneProofDataloader"]],"myria3d.pctl.datamodule":[[4,0,0,"-","hdf5"]],"myria3d.pctl.datamodule.hdf5":[[4,1,1,"","HDF5LidarDataModule"]],"myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule":[[4,6,1,"","dataset"],[4,2,1,"","predict_dataloader"],[4,2,1,"","prepare_data"],[4,2,1,"","setup"],[4,2,1,"","test_dataloader"],[4,2,1,"","train_dataloader"],[4,2,1,"","val_dataloader"]],"myria3d.pctl.dataset":[[4,0,0,"-","hdf5"],[4,0,0,"-","iterable"],[4,0,0,"-","toy_dataset"],[4,0,0,"-","utils"]],"myria3d.pctl.dataset.hdf5":[[4,1,1,"","HDF5Dataset"],[4,3,1,"","create_hdf5"]],"myria3d.pctl.dataset.hdf5.HDF5Dataset":[[4,6,1,"","samples_hdf5_paths"]],"myria3d.pctl.dataset.hdf5.create_hdf5.params":[[4,5,1,"","hdf5_file_path"],[4,5,1,"","las_path"],[4,5,1,"","las_paths_by_split_dict"],[4,5,1,"","points_pre_transform"],[4,5,1,"","pre_filter"],[4,5,1,"","split"],[4,5,1,"","subtile_overlap_train"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.dataset.iterable":[[4,1,1,"","InferenceDataset"]],"myria3d.pctl.dataset.iterable.InferenceDataset":[[4,2,1,"","get_iterator"]],"myria3d.pctl.dataset.toy_dataset":[[4,3,1,"","make_toy_dataset_from_test_file"]],"myria3d.pctl.dataset.toy_dataset.make_toy_dataset_from_test_file.params":[[4,5,1,"","`split`"],[4,5,1,"","files"],[4,5,1,"","prepared_data_dir"],[4,5,1,"","split_csv"],[4,5,1,"","src_las_path"]],"myria3d.pctl.dataset.utils":[[4,3,1,"","find_file_in_dir"],[4,3,1,"","get_pdal_info_metadata"],[4,3,1,"","get_pdal_reader"],[4,3,1,"","pdal_read_las_array"],[4,3,1,"","pdal_read_las_array_as_float32"],[4,3,1,"","split_cloud_into_samples"]],"myria3d.pctl.dataset.utils.find_file_in_dir.params":[[4,5,1,"","input_data_dir"]],"myria3d.pctl.dataset.utils.get_pdal_info_metadata.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.get_pdal_reader.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.pdal_read_las_array.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.split_cloud_into_samples.params":[[4,5,1,"","las_path"],[4,5,1,"","subtile_overlap"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.points_pre_transform":[[4,0,0,"-","lidar_hd"]],"myria3d.pctl.points_pre_transform.lidar_hd":[[4,3,1,"","lidar_hd_pre_transform"]],"myria3d.pctl.points_pre_transform.lidar_hd.lidar_hd_pre_transform.params":[[4,5,1,"","las_filepath"]],"myria3d.pctl.transforms":[[4,0,0,"-","compose"],[4,0,0,"-","transforms"]],"myria3d.pctl.transforms.compose":[[4,1,1,"","CustomCompose"]],"myria3d.pctl.transforms.compose.CustomCompose.params":[[4,5,1,"","transforms"]],"myria3d.pctl.transforms.transforms":[[4,1,1,"","CopyFullPos"],[4,1,1,"","CopyFullPreparedTargets"],[4,1,1,"","CopySampledPos"],[4,1,1,"","DropPointsByClass"],[4,1,1,"","MaximumNumNodes"],[4,1,1,"","MinimumNumNodes"],[4,1,1,"","NormalizePos"],[4,1,1,"","NullifyLowestZ"],[4,1,1,"","StandardizeRGBAndIntensity"],[4,1,1,"","TargetTransform"],[4,1,1,"","ToTensor"]],"myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity":[[4,2,1,"","standardize_channel"]],"myria3d.train":[[6,3,1,"","train"]],"myria3d.train.train.params":[[6,5,1,"","config"]],"myria3d.utils":[[5,0,0,"-","utils"]],"myria3d.utils.utils":[[5,3,1,"","define_device_from_config_param"],[5,3,1,"","eval_time"],[5,3,1,"","extras"],[5,3,1,"","get_logger"],[5,3,1,"","log_hyperparameters"],[5,3,1,"","print_config"]],"myria3d.utils.utils.extras.params":[[5,5,1,"","config"]],"myria3d.utils.utils.print_config.params":[[5,5,1,"","config"],[5,5,1,"","fields"],[5,5,1,"","resolve"]],"myria3d.utils.utils.print_config.params.printed and in what order":[[5,5,1,"",""]],"run.TASK_NAMES":[[6,4,1,"","FINETUNE"],[6,4,1,"","FIT"],[6,4,1,"","HDF5"],[6,4,1,"","PREDICT"],[6,4,1,"","TEST"]],myria3d:[[1,0,0,"-","callbacks"],[6,0,0,"-","predict"],[6,0,0,"-","train"]],run:[[6,1,1,"","TASK_NAMES"],[6,3,1,"","launch_hdf5"],[6,3,1,"","launch_predict"],[6,3,1,"","launch_train"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","parameter","Python parameter"],"6":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:parameter","6":"py:property"},terms:{"0":[0,1,4,5,6,7,10,14,15,16],"003933709606504788":0,"03d":0,"04":14,"1":[0,1,2,4,5,7,13,14,16],"10":[0,2,14],"1000":[0,4],"11":[13,14],"12":13,"12345":0,"123_456":4,"12500":7,"14":14,"155":0,"16":[0,3],"160":0,"161":0,"162":0,"17":[0,4],"19041":14,"1_amd64":14,"1km":15,"2":[0,4,7,14],"20":0,"2004":14,"2016":7,"2019":7,"2020":7,"2022":14,"20220607_151_dalles_proto":[10,16],"2023mmdd":9,"204":0,"22":14,"25":[0,15],"25m":[7,15],"2gb":15,"3":[0,1,4,7,10,13,14,16],"30":[10,14],"300":0,"30000":7,"32":7,"3d":[7,11,12],"4":[0,3,7,14,15],"40000":0,"46":0,"47":0,"48":0,"49":0,"5":[0,1,4,14],"50":[0,4,15],"50m":[15,16],"50mx50m":7,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"6":[0,1,4,14],"600":14,"64":0,"65":[0,15],"66":0,"67":0,"7":[0,14],"77":0,"7fa2af80":14,"9":[0,1,4,14],"93":4,"abstract":4,"byte":4,"case":[4,6,9,14,15],"class":[1,2,3,4,6,7,10,11,12,15,16],"default":[1,2,4,11,14,15,16],"do":[4,7,10,14,15,16],"enum":6,"export":[13,14],"final":13,"float":[1,4],"function":[3,4,14],"import":14,"int":[1,2,3,4,5],"new":[2,6,9,11,12,16],"null":[0,15],"return":[1,2,4,6,16],"short":7,"true":[0,1,4,5,10],"try":[10,14],"var":14,"while":[3,14],"z\u00e9ro":4,A:[1,2,4,5,9,15,16],As:[7,14],At:[2,14,15],By:15,For:[4,7,13,14,15],If:[1,4,7,10,13,14,15,16],In:[4,6,7,9,10,14,15,16],It:[2,4,7,11,12,14,15,16],Its:[11,12],On:[2,7],One:15,TO:14,That:14,The:[4,7,9,10,11,12,14,15,16],Then:[2,13,14,15],There:[4,7],These:15,To:[2,10,13,14,15,16],With:14,___:14,_args_:0,_array_lik:4,_convert_:0,_interpol:2,_nested_sequ:4,_nestedsequ:4,_sphinx_paramlinks_myria3d:[2,4,5],_supportsarrai:4,_target_:0,_type:4,_type_:4,abl:14,abov:4,absenc:15,absent_scor:[0,1],acceler:13,accept:[7,9,14],access:[2,4,5,9,14],accord:[14,16],accordingli:14,account:[7,10],achiev:15,acquisit:15,action:15,activ:[6,9,10,13,14],acucmul:2,ad:9,adam:0,add:[2,4,13,14,15],addit:16,additionali:5,additionnali:[6,9,16],address:[14,15],adjac:4,admin:14,administr:14,adopt:7,aerial:[7,11,12,14,16],after:[6,10,14,16],afterward:3,again:[4,14],agre:14,agreement:14,ahead:14,al:7,all:[0,1,2,3,4,6,7,14,15,16],allow:[7,11,12,15,16],alreadi:[4,14],also:[4,7,11,12,14,15,16],alter:6,altern:[7,10,13,14,16],although:[3,11,12],alwai:15,an:[2,4,5,6,9,10,13,14,15,16],anaconda3:[13,14],anaconda:13,ani:[1,4,14,15,16],anymor:16,anyth:14,anywher:13,api_kei:0,app:9,applic:[14,15],approxim:2,apt:14,ar:[0,1,2,4,5,6,7,9,10,13,14,15,16],arbitrari:[4,9],architectur:[1,7,11,12],arg:4,argument:[4,10,13],ari0u:7,around:7,arrai:4,artefact:4,aspx:14,assign:4,associ:[9,10],attempt:7,au:10,augment:[0,4],augmentations_list:0,author:7,auto_insert_metric_nam:0,auto_log_co2:0,auto_lr_find:[0,10],autom:[6,10],automat:10,avail:[14,15],averag:[1,4,7,16],avoid:[2,16],ax:15,axi:4,b:[2,16],back:7,backward:13,balanc:16,base:[1,2,4,5,6,7,13,15],basefinetun:1,basenam:[2,4,16],bash:14,bashrc:[13,14],basic:7,batch:[1,2,3,4,7,10,15],batch_cifar:4,batch_idx:[1,2],batch_mnist:4,batch_siz:[0,4,15],becaus:14,becom:[7,14],been:[1,4],befor:[4,7,10,14,16],begin:1,below:[13,14,15],benchmark:7,benefit:7,best:[3,10,14],better:[14,15],between:[2,4,15,16],block:14,bool:[1,3,4,5],bootstrap:[11,12],both:[7,15],boundari:16,branch:[9,13,14],branch_nam:13,bridg:0,browser:14,build:[0,4,6,7,9,13,14,15],built:[9,11,12,15],bypass:4,c:[2,13],calcul:[2,4],call:[1,3,4,10],callabl:4,callback:[0,2,5,6,11],can:[4,5,7,9,10,11,12,13,14,15,16],cannot:[13,14],capabl:[7,10],card:[9,14],care:[2,3],carri:14,cast:4,center:[0,4],challeng:[7,14],chang:[6,13,14,15],channel:4,channel_data:4,characterist:15,check:[13,14],checkpoint:[0,6,10,15],checkpointed:10,choic:[11,12],choos:[2,10,14],cicd:9,cifar:4,cifar_load:4,ckpt:[0,10],ckpt_path:[0,6,10],clamp:4,clamp_sigma:4,class_nam:[1,2],class_of_interest_idx:1,class_weight:0,classif:[1,2,4,6,10,15,16],classification_dict:[0,1,2,4],classification_preprocessing_dict:[0,4,15],cli:15,click:14,clone:14,close:7,cloud:[2,3,4,11,12,14,15,16],code:[1,4,11,12,13,15],code_dir:[0,1],collat:4,collect:4,color:[4,16],com:[13,14],come:15,comet:[0,1,10],comet_api_token:0,comet_callback:0,comet_project_nam:0,comet_workspac:0,cometlogg:[0,1],command:14,comment:[14,15],commit:9,common:2,commun:7,compar:7,compat:[13,14,15],compil:14,complet:[9,14],complex:[4,7],compliant:9,compos:[5,6],composit:4,comput:[1,2,3,7,14,15],compute_on_step:1,conceiv:7,conceptu:7,conda:[9,13,14],condit:6,config:[0,2,5,6,9,10,15,16],configur:[5,6,7,10,11,15,16],configure_optim:2,confmat:1,confus:[1,7],consecut:4,consid:2,constant:10,contain:[2,4,6,10,14,15],content:[5,15],context:16,continu:14,contrast:6,contribut:7,control:[5,15,16],conveni:16,convent:[9,15,16],cooldown:0,copi:[4,14,15],copyfullpo:[0,4],copyfullpreparedtarget:[0,4],copysampledpo:[0,4],core:[1,5],correct:[4,14],corresond:14,correspond:6,cost:7,coupl:[5,14],cours:7,cp39:14,cpu:[2,7,13,14],creat:[4,9,10,13,14,15,16],create_hdf5:[4,6,16],creation:[4,16],credenti:[10,15],criterion:0,cross:14,crossentropyloss:0,csv:[4,10,16],cu113:[13,14],cuda:[5,11,13],cudatoolkit:[13,14],current:15,current_epoch:1,custom:[1,10,16],customcompos:4,cwd:0,d:14,d_in:[0,1],data:[0,2,4,6,7,10,11,12,14],data_dir:[0,4,16],dataload:15,dataloader_idx:[1,4],datamodul:[0,5,15,16],dataset:[0,6,7,10,15],dataset_descript:[0,5,6,10,15,16],date:[10,14,15],ddp:10,deactiv:1,deb:14,debug:[0,5],decim:[0,3],decis:6,decod:7,decor:5,deep:[4,11,12,14],def:4,defaut:[7,10,13,16],defin:[3,9,10,15],define_device_from_config_param:5,del:14,demonstr:14,denser:7,densiti:[7,11,12,14],depend:[13,14,15,16],design:[11,12,14,16],detail:[7,9,15],detect:7,determin:5,dev:13,develop:[11,14,15],dict:[0,1,2,4],dictconfig:[5,6],dictionari:4,dictionnari:[2,4],differ:[3,4,6,7,16],difficult:14,digest:16,dim:[4,15],dimens:[1,4,16],dir:[4,15],direcli:7,directli:[4,7,13,14,15],directori:[1,2,4,6,13,14,15,16],dirpath:0,disabl:[0,5,10,15],displai:14,dist_sync_on_step:1,distanc:2,distinct:6,distribut:[4,14],distro:14,distronam:14,disturb:15,divid:16,divis:16,doc:2,docker:9,dockerfil:15,document:[9,14],doe:14,don:4,done:[4,6,14,16],doom:7,down:14,download:[4,14,15],downstream:4,dpkg:14,driver:[13,14],drop:[4,15],droppointsbyclass:[0,4],dtype:4,duplic:[4,16],durat:5,dure:[2,7,14,16],e:[1,4,6,7,9,10,14,15,16],each:[1,4,7,10,15,16],earlier:14,early_stop:0,earlystop:0,eas:4,easier:[2,5,13,14],easiest:13,easili:[11,12,14],edit:[4,13,14],effect:[4,7,10,15],either:[4,15],elev:14,els:14,elsewher:14,embed:15,empti:4,en:2,enabl:[1,7,11,12,13,14],encapsul:15,encod:7,end:[1,2,13,14],enough:[13,15,16],ensur:14,enter:14,entropi:[0,2,15],entropy_channel:[0,2,15],enumer:6,env:[0,10,13,14,15],env_exampl:10,environ:[9,10,14,15],environemnt:14,epoch:[0,1,2,6,10],epoch_:0,error:14,et:7,etc:[5,14],eval:[0,7],eval_tim:5,eval_transform:4,evalu:[6,10,11,12],everi:3,everyth:[1,14],ex:14,exampl:[4,6,10,14],except:1,exclude_kei:4,exhaust:4,exist:14,expect:[4,7,13,15],experi:[2,6,7,10,11,12,15],experiment_nam:0,explicit:7,extend:[11,12],extra:[4,5,14],extradim:2,f:[13,14],face:7,factor:[0,15],factori:2,fail:[4,14],fals:[0,1,3,4],far:2,fashion:[4,7],faster:[7,13,15],featur:[2,4,9,14,16],fed:7,feed:4,feedback:7,few:[7,9,14],field:[4,5,16],figur:14,file:[0,1,2,4,5,6,10,13,14,15,16],filenam:0,filepath:2,fill:[10,15,16],filter:4,find:14,find_file_in_dir:4,finder:10,finetun:[1,6],finetune_funct:1,finetuningfreezeunfreez:1,first:[4,7,10,14],fit:[0,2,4,6,11,12,16],fix:[7,16],fixed_num_point:16,fixedpoint:7,flag:[10,15],flexibl:[2,7,11,12],fly:[4,16],focus:[7,11,12,14],folder:[0,10,15],follow:[4,6,7,9,10,13,14,16],follow_batch:4,forc:5,forg:[13,14],format:[4,11,12,15],former:3,forward:[2,3,7,14],found:[14,16],framework:3,free:14,freez:1,freeze_before_train:1,french:[10,15,16],frequent:7,friendli:5,from:[1,4,5,6,7,10,11,12,13,14,16],full:[1,2,3,7,10,11,12],fuller:7,fulli:[2,14],functionn:[1,9],functool:0,further:9,g:[4,6,7,9,10,15,16],gain:7,game:14,geforc:14,gener:[4,11],geometr:[4,7,8,11,12,13,14],geometricnoneproofcollat:4,geometricnoneproofdataload:4,get:[1,2,4,7,14],get_all_iou_by_class_object:1,get_comet_logg:1,get_iter:4,get_logg:5,get_method:0,get_neural_net_class:2,get_pdal_info_metadata:4,get_pdal_read:4,git:14,github:[9,13,14,15],given:[4,13],glanc:0,glibcxx_3:14,glob:15,gnu:14,go:14,good:[1,16],gpg:14,gpu:[0,2,4,5,14,15],gpus_param:5,grid:7,gridsampl:[0,7],ground:[0,7],group:[15,16],guid:[14,15],ha:[1,7,15],hand:7,happen:[4,16],hardwar:4,have:[4,13,14,15,16],hd:[10,15,16],hdf5:[0,6,10,16],hdf5_file_path:[0,4,16],hdf5dataset:4,hdf5lidardatamodul:[0,4],heavili:[11,12],help:[14,15],here:[0,4,7,14,15],hierarch:7,high:[7,9,11,12,14],higher:[14,16],hinder:7,hint:15,hoc:9,hold:14,home:[13,14],homogen:15,hood:16,hook:3,host:[9,15],hous:9,how:[9,11],howev:[4,15],html:2,http:[2,13,14],hu:7,hydra:[0,2,5,6,10,11,12,15],hyperparamet:10,hypothesi:7,i:[1,4,6,7,9,10,14,15,16],id:15,identifi:[2,15],idx_in_original_cloud:[2,4],ign:16,ignf:[13,14],ignor:[3,4],ignore_index:[0,1],ignore_warn:0,ii:7,imag:[9,10],imageri:16,implement:[2,3,4,7,9,11,12,15,16],importerror:14,impos:4,improv:15,includ:[2,4],increas:15,index:[4,11,14],indic:16,infer:[4,6,7,11,12,13,14],inferencedataset:4,info:4,inform:[0,16],infrar:16,init:14,initi:[1,2,4,5,14],inject:10,input:[0,2,4,15,16],input_data_dir:4,instal:[10,11,15],instanc:[3,13,15],instanti:[4,6],instead:[1,3,16],instruct:[10,13,15],integ:4,integr:15,intens:[4,16],interest:13,interestingli:7,interpol:[0,7,11,15],interpolation_k:[0,2],intersect:[1,7],interv:16,intric:7,invers:2,io:2,iou:[0,1,2,10,11,12],iou_dict:1,iou_for_class_nam:1,ipc:15,irregular:15,iter:[7,11,12],its:[4,5,6,9,15],jaccard:1,jaccardindex:[0,1],just:[14,16],keep:[2,10,11,12,14,15],kei:[4,14],kernel:14,keyword:15,kind:7,knn:11,kpconv:7,kwarg:[2,4],la:[0,2,4,6,15,16],label_smooth:0,lamber:4,larg:[4,7,11,12,14,15,16],larger:15,las1:4,las2:4,las_fil:4,las_filepath:4,las_path:4,las_paths_by_split_dict:4,las_paths_by_split_dict_typ:4,lasting_abov:0,later:[4,7,16],latest:[2,14],latter:3,launch_hdf5:6,launch_predict:6,launch_train:6,layer:[1,6],ld_library_path:[13,14],lead:[6,14],learn:[2,4,6,11,12,14],learningratemonitor:0,less:7,level:[1,7,9,15],leverag:[7,9],lib:[13,14],libarari:14,libcuspars:[13,14],librari:[5,9,10,11,12,13,14,16],libstdc:14,licens:14,lidar:[4,7,10,11,12,14,15,16],lidar_hd:0,lidar_hd_pre_transform:[0,4,16],light:2,lightn:[1,2,4,5,6,10,11,12,15],lightning_model:0,lightning_modul:2,lightningdatamodul:5,lightningloggerbas:5,lightningmodul:[1,2,5],like:[4,7,16],limit:[7,15],limit_test_batch:0,limit_train_batch:0,limit_val_batch:0,line:[13,14,15],link:[14,16],lint:9,linux:[11,14,15],linux_x86_64:14,list:[2,4,5,14,15,16],liter:[2,4],loact:4,load:[2,4,6,16],load_full_las_for_upd:2,loader:4,loader_a:4,loader_b:4,loader_n:4,local:[7,10,14,15],local_11:14,local_input:15,local_instal:14,local_output:15,localhost:14,locat:14,log:[1,2,4,5,10],log_cod:0,log_every_n_step:0,log_hyperparamet:5,log_iou:1,log_iou_by_class:0,log_logs_dir:0,log_momentum:0,logcod:[0,1],logger:[0,1,5,10,15],logging_callback:0,logging_interv:0,logic:[2,11,12,15,16],logioubyclass:[0,1],logit:[1,2,7],loglogspath:[0,1],logs_dir:10,look:[4,15],loss:2,loss_epoch:0,lower:16,lowest:4,lr:[0,6],lr_monitor:0,lr_schedul:[0,6],m:9,machin:14,made:2,mai:[7,9,10,14,15,16],main:[5,7,9,13,14],make:[2,3,4,9,10,11,12,13,14,15],make_toy_dataset_from_test_fil:4,mamba:13,manag:[0,13,14,15],mani:[1,7],manual:[10,14],map:[4,15],match:[4,13,14,15],matrix:[1,7,13],max_epoch:0,maxim:2,maximumnumnod:[0,4],md:9,mean:[7,9,10,14,15],meet:7,memori:[2,7,15,16],mention:15,merg:[9,11],metadata:4,method:[4,5,7,14],metric:[1,7],might:[7,10,13,14],min:0,min_delta:0,min_epoch:0,min_num_nod:0,mind:7,miniconda3:[13,14],minim:15,minimumnumnod:[0,4],minut:14,mismatch:14,miss:15,ml:[1,10],mmodel:7,mnist:4,mnist_load:4,mode:[0,5,7,13,14],model:[0,1,4,5,6,9,11,12,14,15,16],model_checkpoint:0,modelcheckpoint:0,modifi:[5,15],modul:[2,11,15],momentum:0,monitor:0,more:[0,4,7,10,14,15],most:[7,14],mount:15,move:[2,14],much:14,multi:[4,5],multiclass:[11,12,14],multigpu:10,multipl:[4,11,15,16],multiple_fil:15,multipli:[7,15],multithread:15,must:[6,7,14,15,16],mv:14,myria3d:[0,7,9,12,15,16],n:[2,7,13,15],name:[2,4,5,9,10,14,15,16],nation:7,navig:14,nb_point:2,ndarrai:[2,4],ndvi:[4,16],necessari:[2,4,14],need:[2,3,4,7,10,13,14,15,16],neg:15,nest:16,net:[2,6,7],network:[2,6,11,12],neural:[2,6,11,12],neural_net_class_nam:0,neural_net_hparam:0,newer:13,next:[7,10,14],nexu:9,nn:[0,2],non:[14,15],none:[1,2,4,5,10,15],noneproof:4,normal:[0,4],normalizations_list:0,normalizepo:[0,4],note:[15,16],now:14,np:4,nullifylowestz:[0,4],num:4,num_class:[0,1,3,6],num_featur:[0,3],num_neighbor:[0,3],num_sanity_val_step:0,num_work:0,number:[4,5,6,10,15,16],numpi:[2,4],nvidia:[13,14],nvml:14,o:4,object:[1,4,6,7,13,14,15,16],oc:[0,15],occlud:16,occur:[7,14],offici:[7,16],old:14,older:13,omegaconf:[5,6],on_fit_start:[1,2],on_init_end:1,on_test_batch_end:1,on_test_start:1,on_train_batch_end:1,on_train_start:1,on_validation_batch_end:1,on_validation_epoch_end:2,onc:[10,16],one:[2,3,4,6,10,14,15],ones:4,onli:[2,4,7,13,14,16],onlin:14,open:[13,14,16],oper:[7,14],opini:[11,12],opposit:7,optim:[0,1,2,11,12],optimizer_idx:1,option:[1,2,4,5],optionn:[2,14,15],optionnali:6,order:[4,5,6,7,15],org:14,origin:[2,4,15],oserror:[13,14],other:[7,10,14,15],otherwis:[4,14],our:[3,7],out:[1,4,10,14,15],outdoor:7,output:[1,2,6],output_dir:[0,2,15],over:[1,7],overfit:10,overlap:[4,8],overrid:[4,15],overridden:3,own:[3,7,16],packag:[9,14,15,16],package_metadata:9,page:[4,9,10,14,16],paper:[7,10],param:[4,5,15],paramet:[1,2,4,5,6,15,16],parcimoni:7,part:[13,14,15,16],partial:0,particular:[7,10,13],pass:[2,3,7,9],path:[0,2,4,10,14,15,16],patienc:[0,6],pattern:[4,15],pctl:[0,11,16],pdal:[4,16],pdal_read_las_arrai:4,pdal_read_las_array_as_float32:4,pdaltool:16,pep8:9,per:10,perfom:10,perform:[3,4,6,10,11,16],persist:14,phase:[1,7],pin:14,pip:[13,14],pipelin:[4,6],pl_modul:1,place:[5,7],placehold:14,pleas:[4,14],plu:[15,16],po:[2,3,4],point:[2,3,4,11,12,14,16],pointcloud:7,pointnet:7,points_budget:16,points_pre_transform:[0,16],posit:[2,4],possibl:16,postiv:4,powershel:14,ppa:14,pre:4,pre_filt:[0,4],pre_filter_below_n_point:[0,4],precomput:4,predict:[0,2,4,5,7,10,11],predict_dataload:4,predict_step:2,predicted_classification_channel:[0,2,15],predictedclassif:[0,2,15],prefer:[7,14],prefetch_factor:0,prefix:14,prepar:[0,2,4,6,10,11],preparations_eval_list:0,preparations_predict_list:0,preparations_train_list:0,prepare_data:4,prepared_data_dir:4,preprocess:[4,16],present:15,press:14,price:15,print:5,print_config:[0,5],proba:[2,15],probabilit:[2,15],probabl:[2,6,13,15],probas_to_sav:[0,2,15],problem:14,proce:10,process:[3,4,7,9,11,12,14],process_group:1,prod:9,produc:15,product:9,progress:8,progress_bar_refresh_r:0,project:15,project_nam:0,prompt:14,propag:7,properli:14,properti:4,provid:[10,15,16],proxi:15,ptr:3,pub:14,pull:[7,9],pure:[13,14],purpos:[4,14],push:9,py:[10,15,16],pyg:[4,14],pyg_randla_net:3,pygrandlanet:[0,3],pytest:9,python:[5,9,10,15,16],pytorch:[2,4,6,7,10,11,12,13,14,15],pytorch_geometr:[14,16],pytorch_lightn:[0,1,5,6],pytorchlight:1,qi:7,quadro:14,queri:4,quit:14,quot:15,r:[14,16],ra:9,randla:7,randlanet:10,randlanet_base_run_fr:10,randlanetdebug:0,randlanetdebugfinetun:6,random:7,rang:[4,10],rapid:[11,12],rate:[2,6],raw:[4,16],raw_path:2,read:[2,4],reader:4,readi:[4,10,14,16],readm:15,readthedoc:2,recent:13,recept:[4,16],recip:[3,13],recommend:[4,14],reconstruct:16,recudelronplateau:6,reduc:[7,10],reduce_predicted_logit:2,reduce_predictions_and_sav:2,reducelronplateau:0,reduct:[1,7],refer:[0,5,10,15],referenc:16,regist:3,regroup:16,regular:[8,15],rel:[4,7],relat:[13,14],releas:[9,13],reli:[11,12],reliabl:[7,11,12],reload:4,reload_dataloaders_every_n_epoch:4,remov:[13,14],renam:10,replac:[13,14],repo:14,repositori:[9,14,15],repres:7,request:[2,7,9],requir:[7,13,14],reset:6,resolut:7,resolv:5,restart:14,result:[4,7,10,11,12,15],resum:6,return_logit:[0,3],review:14,rgb:[4,16],rgbi:16,rich:[5,7],right:14,robust:7,role:9,root:4,rtx:14,run:[1,3,9,13,14,16],runtim:[0,10,15],runtimeerror:14,s3di:7,s:[4,11,13,14,15,16],safe:1,same:[2,7,14],sampl:[4,7,15,16],sampler:4,samples_hdf5_path:4,save:[2,5,10,15],save_last:0,save_top_k:0,scale:[4,7,11,12,14,16],schedul:[2,6],schema:[1,16],scheme:2,scope:[11,12,14],script:11,scroll:14,section:[10,14],see:[4,6,7,9,10,13,14,15,16],seed:[0,5],segment:[6,7,11,12,14,16],select:[14,16],self:4,semant:[6,7,9,11,12,14],semantic3d:7,semantickitti:7,semin:7,sequenc:[4,5],sequenti:1,serv:9,set:[1,4,6,7,10,15,16],setup:[1,2,4],setup_env:13,sever:[4,15],sh:14,share:[13,14,15,16],shm:15,should:[3,4,13,14,15,16],show:[0,15],shown:14,shuffl:4,shut:14,shutdown:14,signatur:[11,12],silent:3,similar:16,similarli:16,simpl:[4,7],simpli:[1,15,16],simplic:7,simplifi:7,sinc:[3,7],singl:[1,4,10,11,12,16],singleclassi:1,situat:7,size:[3,7,10,15,16],small:[4,16],smaller:[7,16],smi:14,smooth:15,so:[2,10,13,14,15],solut:7,some:[4,10,11,12,14],someth:14,sota:7,sourc:[0,1,2,3,4,5,6,14,16],space:15,spatial:15,special:6,specif:[4,6,7,13,14,15,16],specifi:[4,5,6,7,10,15,16],spent:7,spit:16,spli:16,split:[4,16],split_cloud_into_sampl:4,split_csv:4,split_csv_path:[0,16],squar:15,sr:4,src_la:[0,2,15],src_las_path:4,stage:[2,4,9],standalon:15,standard:[4,11,12,16],standardize_channel:4,standardizergbandintens:[0,4],start:[1,2,6,7,13],state:[4,6,14],stem:10,step:[0,1,2,7,9,10,14],still:[13,14,15],store:[15,16],store_predict:2,str:[1,2,4,5],strategi:7,stronger:6,structur:[5,11,12],subclass:3,subdir:6,subdirectori:[4,16],subfold:[4,10],suboptim:7,subsampl:[2,4],subsystem:14,subtil:4,subtile_overlap:[0,4,15],subtile_overlap_predict:0,subtile_overlap_train:[0,4],subtile_width:[0,4],success:[9,15],sudo:14,suit:16,sumbsampl:2,superior:7,supervis:7,support:[10,11,12],sure:14,swicth:15,system:[1,13,14],t:4,tabl:14,tag:9,take:[2,3,7,14,16],taken:14,tarbal:[13,14],target:[1,2,4,14],targettransform:[0,4],task:[0,5,6,10,15,16],task_nam:[0,6,10,15],td_prepar:4,team:14,templat:[11,12],tensor:[1,2,4],term:[7,11,12],termin:14,test:[0,1,2,4,6,7,8,14,16],test_dataload:4,test_step:[2,4],text:14,than:[7,10,13,14],thank:13,thei:15,them:[3,4,7],therefor:2,thi:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],third:7,thoma:7,threshold:1,thu:7,tile:4,tile_width:[0,4],time:[2,4,7,8,10,11,12,14,16],tini:7,todo:11,togeth:4,toi:[4,10],tool:16,toolchain:14,toolkit:[13,14,16],torch:[0,1,2,4,13,14],torch_clust:14,torch_geometr:[0,2,4,7],torch_scatt:14,torch_spars:14,torchmetr:[0,1],totensor:4,toy_dataset:[0,16],track:9,train:[0,1,2,4,7,11,12,15],train_dataload:4,train_transform:4,trainabl:5,trained_model_asset:15,trainer:[0,1,5,6,10],trainin:2,training_step:2,transform:[0,2,7,15,16],tree:5,tri:14,tricki:14,trigger:7,tupl:2,turn:[4,16],tutori:[9,10,15],two:16,type:[2,4,6,14],typic:6,ubuntu:[13,14],uncertainti:15,unclassifi:[0,4],under:[15,16],unfreez:1,unfreeze_decoder_train_epoch:1,unfreeze_fc_end_epoch:1,union:[1,2,4,7],unless:4,unmodifi:14,unorm:4,unseen:[6,11,12],until:7,unus:2,up:[10,15],updat:[1,2,14,15],upgrad:[13,14],upload:1,upon:[11,12],urban:7,url:14,us:[1,2,3,4,5,6,7,9,10,13,14,15,16],useful:4,user:[13,14,15],usernam:14,usual:7,util:[0,11,14],v3:7,v:[9,15],val:[0,1,4,16],val_dataload:4,valid:[2,4,6,7,10,15],validation_step:[2,4],valu:[0,4,6,14,15],variabl:[7,10,15,16],variou:14,vector:4,veget:[0,7,15],verbos:0,veri:15,version:[7,13,14],via:[9,13,15,16],virtual:[10,14,15],visibl:15,volum:15,wa:[7,11,12,14,16],wai:[7,13,14],want:[7,13,14,15,16],warn:[5,8],water:0,we:[0,2,7,13,14,15,16],weight:6,weightn:2,weights_summari:0,well:[2,6,14,15],were:[7,15],wget:14,what:[2,5,15],wheel:[13,14],when:[1,4,9,10,15],where:[4,10],whether:[5,14],which:[2,4,5,6,7,9,10,11,12,13,14,15,16],whl:14,whole:4,whose:[15,16],why:14,width:4,window:[14,15],wise:4,within:[3,7,14,16],without:[2,4,14,16],work:[1,7,8,13,14,15],work_dir:0,workflow:9,workspac:0,would:4,write:14,wsl2:11,www:14,x10:7,x5:7,x86_64:14,x:[2,3,4,15,16],xy:4,xyz:2,y:[2,4,13,14,15],y_mean:4,y_std:4,yaml:[6,9,10,15,16],ye:14,yet:[1,14],yield:4,yml:[13,14],you:[4,10,13,14,15,16],your:[2,10,13,14,15,16],yourself:4,z:4},titles:["Default configuration","myria3d.callbacks","myria3d.models","myria3d.models.modules","myria3d.pctl","myria3d.utils","Scripts","General design of the package","KNN-Interpolation to merge multiple predictions [TODO]","Developer\u2019s guide","How to train new models","Myria3D > Documentation","<no title>","Install Myria3D on Linux","Install Myria3D on WSL2 with CUDA support","Performing inference on new data","Preparing data for training"],titleterms:{"default":0,"function":16,"import":7,"new":[10,15],addit:15,anaconda:14,approach:7,artefact:15,background:11,callback:1,cd:9,ci:9,cloud:7,code:9,comet_callback:1,compos:4,configur:0,content:1,continu:9,cuda:14,data:[15,16],dataload:4,datamodul:4,dataset:[4,16],deliveri:9,design:7,develop:9,dimens:15,docker:15,document:11,dure:15,environ:13,essenc:7,evalu:7,fast:7,field:15,finetuning_callback:1,from:15,gener:7,geometr:3,get:[11,16],gpu:10,guid:[9,11],hdf5:4,how:10,ignor:15,imag:15,improv:7,indic:11,infer:[10,15],instal:[13,14],integr:9,interpol:[2,8],iter:4,kei:7,knn:8,learn:10,lidar_hd:4,linux:13,logging_callback:1,merg:8,model:[2,3,7,10],modul:[1,3],multi:10,multipl:8,myria3d:[1,2,3,4,5,6,11,13,14],net:3,optim:10,option:15,output:15,overlap:15,packag:[7,11,13],pctl:4,peprocess:16,perform:[7,15],point:[7,15],points_pre_transform:4,practic:7,predict:[6,8,15],prepar:16,prerequisit:13,pytorch:3,quick:10,quickli:16,randla:3,rate:10,recept:15,refer:11,right:7,run:[6,10,15],s:9,script:6,select:7,set:[13,14],setup:10,should:7,sourc:[13,15],speed:7,start:[11,16],structur:7,submodul:1,subsampl:7,support:14,tabl:11,test:[9,10],time:15,todo:8,toi:16,toy_dataset:4,train:[6,10,16],transform:4,troubleshoot:[13,14],up:[13,14],util:[4,5],version:9,virtual:13,within:15,wsl2:14,wsl:14}}) \ No newline at end of file +Search.setIndex({docnames:["apidoc/configs","apidoc/myria3d.callbacks","apidoc/myria3d.model","apidoc/myria3d.models.modules","apidoc/myria3d.pctl","apidoc/myria3d.utils","apidoc/scripts","background/general_design","background/interpolation","guides/development","guides/train_new_model","index","introduction","tutorials/install_on_linux","tutorials/install_on_wsl2","tutorials/make_predictions","tutorials/prepare_dataset"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["apidoc/configs.rst","apidoc/myria3d.callbacks.rst","apidoc/myria3d.model.rst","apidoc/myria3d.models.modules.rst","apidoc/myria3d.pctl.rst","apidoc/myria3d.utils.rst","apidoc/scripts.rst","background/general_design.md","background/interpolation.md","guides/development.md","guides/train_new_model.md","index.rst","introduction.md","tutorials/install_on_linux.md","tutorials/install_on_wsl2.md","tutorials/make_predictions.md","tutorials/prepare_dataset.md"],objects:{"":[[6,0,0,"-","run"]],"myria3d.callbacks":[[1,0,0,"-","comet_callbacks"],[1,0,0,"-","finetuning_callbacks"],[1,0,0,"-","logging_callbacks"]],"myria3d.callbacks.comet_callbacks":[[1,1,1,"","LogCode"],[1,1,1,"","LogLogsPath"],[1,3,1,"","get_comet_logger"]],"myria3d.callbacks.comet_callbacks.LogCode":[[1,2,1,"","on_train_start"]],"myria3d.callbacks.comet_callbacks.LogLogsPath":[[1,2,1,"","on_init_end"]],"myria3d.callbacks.finetuning_callbacks":[[1,1,1,"","FinetuningFreezeUnfreeze"]],"myria3d.callbacks.finetuning_callbacks.FinetuningFreezeUnfreeze":[[1,2,1,"","finetune_function"],[1,2,1,"","freeze_before_training"]],"myria3d.callbacks.logging_callbacks":[[1,1,1,"","LogIoUByClass"],[1,1,1,"","SingleClassIoU"]],"myria3d.callbacks.logging_callbacks.LogIoUByClass":[[1,2,1,"","get_all_iou_by_class_object"],[1,2,1,"","log_iou"],[1,2,1,"","on_fit_start"],[1,2,1,"","on_init_end"],[1,2,1,"","on_test_batch_end"],[1,2,1,"","on_test_start"],[1,2,1,"","on_train_batch_end"],[1,2,1,"","on_validation_batch_end"]],"myria3d.callbacks.logging_callbacks.SingleClassIoU":[[1,2,1,"","compute"],[1,4,1,"","confmat"]],"myria3d.models":[[2,0,0,"-","interpolation"],[2,0,0,"-","model"]],"myria3d.models.interpolation":[[2,1,1,"","Interpolator"]],"myria3d.models.interpolation.Interpolator":[[2,2,1,"","load_full_las_for_update"],[2,2,1,"","reduce_predicted_logits"],[2,2,1,"","reduce_predictions_and_save"],[2,2,1,"","store_predictions"]],"myria3d.models.interpolation.Interpolator.load_full_las_for_update.params":[[2,5,1,"","epsg"],[2,5,1,"","filepath"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params":[[2,5,1,"","basename"],[2,5,1,"","epsg"],[2,5,1,"","interpolation"],[2,5,1,"","output_dir"]],"myria3d.models.interpolation.Interpolator.reduce_predictions_and_save.params.probabilities. Defaults to None":[[2,5,1,"",""]],"myria3d.models.model":[[2,1,1,"","Model"],[2,3,1,"","get_neural_net_class"]],"myria3d.models.model.Model":[[2,2,1,"","configure_optimizers"],[2,2,1,"","forward"],[2,2,1,"","on_fit_start"],[2,2,1,"","on_validation_epoch_end"],[2,2,1,"","predict_step"],[2,2,1,"","setup"],[2,2,1,"","test_step"],[2,2,1,"","training_step"],[2,2,1,"","validation_step"]],"myria3d.models.model.Model.forward.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.on_validation_epoch_end.params":[[2,5,1,"","outputs"]],"myria3d.models.model.Model.predict_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.test_step.params":[[2,5,1,"","batch"],[2,5,1,"","y"]],"myria3d.models.model.Model.training_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.Model.validation_step.params":[[2,5,1,"","batch"],[2,5,1,"","batch_idx"],[2,5,1,"","y"]],"myria3d.models.model.get_neural_net_class.params":[[2,5,1,"","class_name"]],"myria3d.models.modules.pyg_randla_net":[[3,1,1,"","PyGRandLANet"]],"myria3d.models.modules.pyg_randla_net.PyGRandLANet":[[3,2,1,"","forward"]],"myria3d.pctl.dataloader":[[4,0,0,"-","dataloader"]],"myria3d.pctl.dataloader.dataloader":[[4,1,1,"","GeometricNoneProofCollater"],[4,1,1,"","GeometricNoneProofDataloader"]],"myria3d.pctl.datamodule":[[4,0,0,"-","hdf5"]],"myria3d.pctl.datamodule.hdf5":[[4,1,1,"","HDF5LidarDataModule"]],"myria3d.pctl.datamodule.hdf5.HDF5LidarDataModule":[[4,6,1,"","dataset"],[4,2,1,"","predict_dataloader"],[4,2,1,"","prepare_data"],[4,2,1,"","setup"],[4,2,1,"","test_dataloader"],[4,2,1,"","train_dataloader"],[4,2,1,"","val_dataloader"]],"myria3d.pctl.dataset":[[4,0,0,"-","hdf5"],[4,0,0,"-","iterable"],[4,0,0,"-","toy_dataset"],[4,0,0,"-","utils"]],"myria3d.pctl.dataset.hdf5":[[4,1,1,"","HDF5Dataset"],[4,3,1,"","create_hdf5"]],"myria3d.pctl.dataset.hdf5.HDF5Dataset":[[4,6,1,"","samples_hdf5_paths"]],"myria3d.pctl.dataset.hdf5.create_hdf5.params":[[4,5,1,"","epsg"],[4,5,1,"","hdf5_file_path"],[4,5,1,"","las_paths_by_split_dict"],[4,5,1,"","points_pre_transform"],[4,5,1,"","pre_filter"],[4,5,1,"","subtile_overlap_train"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.dataset.iterable":[[4,1,1,"","InferenceDataset"]],"myria3d.pctl.dataset.iterable.InferenceDataset":[[4,2,1,"","get_iterator"]],"myria3d.pctl.dataset.toy_dataset":[[4,3,1,"","make_toy_dataset_from_test_file"]],"myria3d.pctl.dataset.toy_dataset.make_toy_dataset_from_test_file.params":[[4,5,1,"","`split`"],[4,5,1,"","files"],[4,5,1,"","prepared_data_dir"],[4,5,1,"","split_csv"],[4,5,1,"","src_las_path"]],"myria3d.pctl.dataset.utils":[[4,3,1,"","find_file_in_dir"],[4,3,1,"","get_metadata"],[4,3,1,"","get_pdal_info_metadata"],[4,3,1,"","get_pdal_reader"],[4,3,1,"","pdal_read_las_array"],[4,3,1,"","pdal_read_las_array_as_float32"],[4,3,1,"","split_cloud_into_samples"]],"myria3d.pctl.dataset.utils.find_file_in_dir.params":[[4,5,1,"","input_data_dir"]],"myria3d.pctl.dataset.utils.get_metadata.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.get_pdal_info_metadata.params":[[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.get_pdal_reader.params":[[4,5,1,"","epsg"],[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.pdal_read_las_array.params":[[4,5,1,"","epsg"],[4,5,1,"","las_path"]],"myria3d.pctl.dataset.utils.split_cloud_into_samples.params":[[4,5,1,"","epsg"],[4,5,1,"","las_path"],[4,5,1,"","subtile_overlap"],[4,5,1,"","subtile_width"],[4,5,1,"","tile_width"]],"myria3d.pctl.points_pre_transform":[[4,0,0,"-","lidar_hd"]],"myria3d.pctl.points_pre_transform.lidar_hd":[[4,3,1,"","lidar_hd_pre_transform"]],"myria3d.pctl.points_pre_transform.lidar_hd.lidar_hd_pre_transform.params":[[4,5,1,"","las_filepath"]],"myria3d.pctl.transforms":[[4,0,0,"-","compose"],[4,0,0,"-","transforms"]],"myria3d.pctl.transforms.compose":[[4,1,1,"","CustomCompose"]],"myria3d.pctl.transforms.compose.CustomCompose.params":[[4,5,1,"","transforms"]],"myria3d.pctl.transforms.transforms":[[4,1,1,"","CopyFullPos"],[4,1,1,"","CopyFullPreparedTargets"],[4,1,1,"","CopySampledPos"],[4,1,1,"","DropPointsByClass"],[4,1,1,"","MaximumNumNodes"],[4,1,1,"","MinimumNumNodes"],[4,1,1,"","NormalizePos"],[4,1,1,"","NullifyLowestZ"],[4,1,1,"","StandardizeRGBAndIntensity"],[4,1,1,"","TargetTransform"],[4,1,1,"","ToTensor"]],"myria3d.pctl.transforms.transforms.StandardizeRGBAndIntensity":[[4,2,1,"","standardize_channel"]],"myria3d.train":[[6,3,1,"","train"]],"myria3d.train.train.params":[[6,5,1,"","config"]],"myria3d.utils":[[5,0,0,"-","utils"]],"myria3d.utils.utils":[[5,3,1,"","define_device_from_config_param"],[5,3,1,"","eval_time"],[5,3,1,"","extras"],[5,3,1,"","get_logger"],[5,3,1,"","log_hyperparameters"],[5,3,1,"","print_config"]],"myria3d.utils.utils.extras.params":[[5,5,1,"","config"]],"myria3d.utils.utils.print_config.params":[[5,5,1,"","config"],[5,5,1,"","fields"],[5,5,1,"","resolve"]],"myria3d.utils.utils.print_config.params.printed and in what order":[[5,5,1,"",""]],"run.TASK_NAMES":[[6,4,1,"","FINETUNE"],[6,4,1,"","FIT"],[6,4,1,"","HDF5"],[6,4,1,"","PREDICT"],[6,4,1,"","TEST"]],myria3d:[[1,0,0,"-","callbacks"],[6,0,0,"-","predict"],[6,0,0,"-","train"]],run:[[6,1,1,"","TASK_NAMES"],[6,3,1,"","launch_hdf5"],[6,3,1,"","launch_predict"],[6,3,1,"","launch_train"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"],"4":["py","attribute","Python attribute"],"5":["py","parameter","Python parameter"],"6":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function","4":"py:attribute","5":"py:parameter","6":"py:property"},terms:{"0":[0,1,4,5,6,7,10,14,15,16],"003933709606504788":0,"03d":0,"04":14,"1":[0,1,2,4,5,7,13,14,16],"10":[0,2,14],"1000":[0,4],"11":[13,14],"12":13,"12345":0,"123_456":4,"12500":7,"14":14,"155":0,"16":[0,3],"160":0,"161":0,"162":0,"17":[0,4],"19041":14,"1_amd64":14,"1km":15,"2":[0,4,7,14],"20":0,"2004":14,"2016":7,"2019":7,"2020":7,"2022":14,"20220607_151_dalles_proto":[10,16],"2023mmdd":9,"204":0,"22":14,"25":[0,15],"25m":[7,15],"2gb":15,"3":[0,1,4,7,10,13,14,16],"30":[10,14],"300":0,"30000":7,"32":7,"3d":[7,11,12],"4":[0,3,7,14,15],"40000":0,"46":0,"47":0,"48":0,"49":0,"5":[0,1,4,14],"50":[0,4,15],"50m":[15,16],"50mx50m":7,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"6":[0,1,4,14],"600":14,"64":0,"65":[0,15],"66":0,"67":0,"7":[0,14],"77":0,"7fa2af80":14,"9":[0,1,4,14],"abstract":4,"byte":4,"case":[4,6,9,14,15],"class":[1,2,3,4,6,7,10,11,12,15,16],"default":[1,2,4,11,14,15,16],"do":[4,7,10,14,15,16],"enum":6,"export":[13,14],"final":13,"float":[1,4],"function":[3,4,14],"import":14,"int":[1,2,3,4,5],"new":[2,6,9,11,12,16],"null":[0,15],"return":[1,2,4,6,16],"short":7,"true":[0,1,4,5,10],"try":[10,14],"var":14,"while":[3,14],"z\u00e9ro":4,A:[1,2,4,5,9,15,16],As:[7,14],At:[2,14,15],BE:15,By:15,For:[4,7,13,14,15],If:[1,4,7,10,13,14,15,16],In:[4,6,7,9,10,14,15,16],It:[2,4,7,11,12,14,15,16],Its:[11,12],On:[2,7],One:15,TO:[14,15],That:14,The:[4,7,9,10,11,12,14,15,16],Then:[2,13,14,15],There:[4,7],These:15,To:[2,10,13,14,15,16],With:14,___:14,_args_:0,_array_lik:4,_convert_:0,_interpol:2,_nested_sequ:4,_nestedsequ:4,_sphinx_paramlinks_myria3d:[2,4,5],_supportsarrai:4,_target_:0,_type:4,_type_:4,abl:[14,16],abov:4,absenc:15,absent_scor:[0,1],acceler:13,accept:[7,9,14],access:[2,4,5,9,14],accord:[14,16],accordingli:14,account:[7,10],achiev:15,acquisit:15,action:15,activ:[6,9,10,13,14],acucmul:2,ad:9,adam:0,add:[2,4,13,14,15],addit:16,additionali:5,additionnali:[6,9,16],address:[14,15],adjac:4,admin:14,administr:14,adopt:7,aerial:[7,11,12,14,16],after:[6,10,14,16],afterward:3,again:[4,14],agre:14,agreement:14,ahead:14,al:7,all:[0,1,2,3,4,6,7,14,15,16],allow:[7,11,12,15,16],alreadi:[4,14],also:[4,7,11,12,14,15,16],alter:6,altern:[7,10,13,14,16],although:[3,11,12],alwai:15,an:[2,4,5,6,9,10,13,14,15,16],anaconda3:[13,14],anaconda:13,ani:[1,4,14,15,16],anymor:16,anyth:14,anywher:13,api_kei:0,app:9,applic:[14,15],approxim:2,apt:14,ar:[0,1,2,4,5,6,7,9,10,13,14,15,16],arbitrari:[4,9],architectur:[1,7,11,12],arg:4,argument:[4,10,13],ari0u:7,around:7,arrai:4,artefact:4,aspx:14,assign:4,associ:[9,10],attempt:7,au:10,augment:[0,4],augmentations_list:0,author:7,auto_insert_metric_nam:0,auto_log_co2:0,auto_lr_find:[0,10],autom:[6,10],automat:10,avail:[14,15],averag:[1,4,7,16],avoid:[2,16],ax:15,axi:4,b:[2,16],back:7,backward:13,balanc:16,base:[1,2,4,5,6,7,13,15],basefinetun:1,basenam:[2,4,16],bash:14,bashrc:[13,14],basic:7,batch:[1,2,3,4,7,10,15],batch_cifar:4,batch_idx:[1,2],batch_mnist:4,batch_siz:[0,4,15],becaus:14,becom:[7,14],been:[1,4],befor:[4,7,10,14,16],begin:1,below:[13,14,15],benchmark:7,benefit:7,best:[3,10,14],better:[14,15],between:[2,4,15,16],block:14,bool:[1,3,4,5],bootstrap:[11,12],both:[7,15],boundari:16,branch:[9,13,14],branch_nam:13,bridg:0,browser:14,build:[0,4,6,7,9,13,14,15],built:[9,11,12,15],bypass:4,c:[2,13],calcul:[2,4],call:[1,3,4,10],callabl:4,callback:[0,2,5,6,11],can:[4,5,7,9,10,11,12,13,14,15,16],cannot:[13,14],capabl:[7,10],card:[9,14],care:[2,3],carri:14,cast:4,center:[0,4],challeng:[7,14],chang:[6,13,14,15],channel:4,channel_data:4,characterist:15,check:[13,14],checkpoint:[0,6,10,15],checkpointed:10,choic:[11,12],choos:[2,10,14],cicd:9,cifar:4,cifar_load:4,ckpt:[0,10],ckpt_path:[0,6,10],clamp:4,clamp_sigma:4,class_nam:[1,2],class_of_interest_idx:1,class_weight:0,classif:[1,2,4,6,10,15,16],classification_dict:[0,1,2,4],classification_preprocessing_dict:[0,4,15],cli:15,click:14,clone:14,close:7,cloud:[2,3,4,11,12,14,15,16],code:[1,4,11,12,13,15],code_dir:[0,1],collat:4,collect:4,color:[4,16],com:[13,14],come:15,comet:[0,1,10],comet_api_token:0,comet_callback:0,comet_project_nam:0,comet_workspac:0,cometlogg:[0,1],command:14,comment:[14,15],commit:9,common:2,commun:7,compar:7,compat:[13,14,15],compil:14,complet:[9,14],complex:[4,7],compliant:9,compos:[5,6],composit:4,comput:[1,2,3,7,14,15],compute_on_step:1,conceiv:7,conceptu:7,conda:[9,13,14],condit:6,config:[0,2,5,6,9,10,15,16],configur:[5,6,7,10,11,15,16],configure_optim:2,confmat:1,confus:[1,7],consecut:4,consid:2,constant:10,contain:[2,4,6,10,14,15],content:[5,15],context:16,continu:14,contrast:6,contribut:7,control:[5,15,16],conveni:16,convent:[9,15,16],cooldown:0,copi:[4,14,15],copyfullpo:[0,4],copyfullpreparedtarget:[0,4],copysampledpo:[0,4],core:[1,5],correct:[4,14],corresond:14,correspond:6,cost:7,coupl:[5,14],cours:7,cp39:14,cpu:[2,7,13,14],creat:[4,9,10,13,14,15,16],create_hdf5:[4,6,16],creation:[4,16],credenti:[10,15],criterion:0,cross:14,crossentropyloss:0,csv:[4,10,16],cu113:[13,14],cuda:[5,11,13],cudatoolkit:[13,14],current:15,current_epoch:1,custom:[1,10,16],customcompos:4,cwd:0,d:14,d_in:[0,1],data:[0,2,4,6,7,10,11,12,14],data_dir:[0,4,16],dataload:15,dataloader_idx:[1,4],datamodul:[0,5,15,16],dataset:[0,6,7,10,15],dataset_descript:[0,5,6,10,15,16],date:[10,14,15],ddp:10,deactiv:1,deb:14,debug:[0,5],decim:[0,3],decis:6,decod:7,decor:5,deep:[4,11,12,14],def:4,defaut:[7,10,13,16],defin:[3,9,10,15],define_device_from_config_param:5,del:14,demonstr:14,denser:7,densiti:[7,11,12,14],depend:[13,14,15,16],design:[11,12,14,16],detail:[7,9,15],detect:7,determin:5,dev:13,develop:[11,14,15],dict:[0,1,2,4],dictconfig:[5,6],dictionari:4,dictionnari:[2,4],differ:[3,4,6,7,16],difficult:14,digest:16,dim:[4,15],dimens:[1,4,16],dir:[4,15],direcli:7,directli:[4,7,13,14,15],directori:[1,2,4,6,13,14,15,16],dirpath:0,disabl:[0,5,10,15],displai:14,dist_sync_on_step:1,distanc:2,distinct:6,distribut:[4,14],distro:14,distronam:14,disturb:15,divid:16,divis:16,doc:2,docker:9,dockerfil:15,document:[9,14],doe:14,doesn:15,don:[4,16],done:[4,6,14,16],doom:7,down:14,download:[4,14,15],downstream:4,dpkg:14,driver:[13,14],drop:[4,15],droppointsbyclass:[0,4],dtype:4,duplic:[4,16],durat:5,dure:[2,7,14,16],e:[1,4,6,7,9,10,14,15,16],each:[1,4,7,10,15,16],earlier:14,early_stop:0,earlystop:0,eas:4,easier:[2,5,13,14],easiest:13,easili:[11,12,14],edit:[4,13,14],effect:[4,7,10,15],either:15,elev:14,els:14,elsewher:14,embed:15,empti:4,en:2,enabl:[1,7,11,12,13,14],encapsul:15,encod:7,end:[1,2,13,14],enough:[13,15,16],ensur:14,enter:14,entropi:[0,2,15],entropy_channel:[0,2,15],enumer:6,env:[0,10,13,14,15],env_exampl:10,environ:[9,10,14,15],environemnt:14,epoch:[0,1,2,6,10],epoch_:0,epsg:[0,2,4,15,16],error:14,et:7,etc:[5,14],eval:[0,7],eval_tim:5,eval_transform:4,evalu:[6,10,11,12],everi:3,everyth:[1,14],ex:14,exampl:[4,6,10,14],except:1,exclude_kei:4,exhaust:4,exist:14,expect:[4,7,13,15],experi:[2,6,7,10,11,12,15],experiment_nam:0,explicit:7,extend:[11,12],extra:[4,5,14],extradim:2,f:[13,14],face:7,factor:[0,15],factori:2,fail:[4,14],fals:[0,1,3,4],far:2,fashion:[4,7],faster:[7,13,15],featur:[2,4,9,14,16],fed:7,feed:4,feedback:7,few:[7,9,14],field:[4,5,16],figur:14,file:[0,1,2,4,5,6,10,13,14,15,16],filenam:0,filepath:2,fill:[10,15,16],filter:4,find:14,find_file_in_dir:4,finder:10,finetun:[1,6],finetune_funct:1,finetuningfreezeunfreez:1,first:[4,7,10,14],fit:[0,2,4,6,11,12,16],fix:[7,16],fixed_num_point:16,fixedpoint:7,flag:[10,15],flexibl:[2,7,11,12],fly:[4,16],focus:[7,11,12,14],folder:[0,10,15],follow:[4,6,7,9,10,13,14,16],follow_batch:4,forc:[2,4,5],forg:[13,14],format:[4,11,12,15],former:3,forward:[2,3,7,14],found:[14,16],framework:3,free:14,freez:1,freeze_before_train:1,french:[10,15,16],frequent:7,friendli:5,from:[1,4,5,6,7,10,11,12,13,14,16],full:[1,2,3,7,10,11,12],fuller:7,fulli:[2,14],functionn:[1,9],functool:0,further:9,g:[4,6,7,9,10,15,16],gain:7,game:14,geforc:14,gener:[4,11],geometr:[4,7,8,11,12,13,14],geometricnoneproofcollat:4,geometricnoneproofdataload:4,get:[1,2,4,7,14],get_all_iou_by_class_object:1,get_comet_logg:1,get_iter:4,get_logg:5,get_metadata:4,get_method:0,get_neural_net_class:2,get_pdal_info_metadata:4,get_pdal_read:4,git:14,github:[9,13,14,15],given:[4,13,16],glanc:0,glibcxx_3:14,glob:15,gnu:14,go:14,good:[1,16],gpg:14,gpu:[0,2,4,5,14,15],gpus_param:5,grid:7,gridsampl:[0,7],ground:[0,7],group:[15,16],guid:[14,15],ha:[1,7,15],hand:7,happen:[4,16],hardwar:4,have:[4,13,14,15,16],hd:[10,15,16],hdf5:[0,6,10,16],hdf5_file_path:[0,4,16],hdf5dataset:4,hdf5lidardatamodul:[0,4],heavili:[11,12],help:[14,15],here:[0,4,7,14,15],hierarch:7,high:[7,9,11,12,14],higher:[14,16],hinder:7,hint:15,hoc:9,hold:14,home:[13,14],homogen:15,hood:16,hook:3,host:[9,15],hous:9,how:[9,11],howev:[4,15],html:2,http:[2,13,14],hu:7,hydra:[0,2,5,6,10,11,12,15],hyperparamet:10,hypothesi:7,i:[1,4,6,7,9,10,14,15,16],id:15,identifi:[2,15],idx_in_original_cloud:[2,4],ign:16,ignf:[13,14],ignor:[3,4],ignore_index:[0,1],ignore_warn:0,ii:7,imag:[9,10],imageri:16,implement:[2,3,4,7,9,11,12,15,16],importerror:14,improv:15,includ:[2,4],increas:15,index:[4,11,14],indic:16,infer:[4,6,7,11,12,13,14],inferencedataset:4,info:4,inform:[0,16],infrar:16,init:14,initi:[1,2,4,5,14],inject:10,input:[0,2,4,15,16],input_data_dir:4,instal:[10,11,15],instanc:[3,13,15],instanti:[4,6],instead:[1,3,16],instruct:[10,13,15],integ:4,integr:15,intens:[4,16],interest:13,interestingli:7,interpol:[0,7,11,15],interpolation_k:[0,2],intersect:[1,7],interv:16,intric:7,invers:2,io:2,iou:[0,1,2,10,11,12],iou_dict:1,iou_for_class_nam:1,ipc:15,irregular:15,iter:[7,11,12],its:[4,5,6,9,15],jaccard:1,jaccardindex:[0,1],just:[14,16],keep:[2,10,11,12,14,15],kei:[4,14],kernel:14,keyword:15,kind:7,knn:11,kpconv:7,kwarg:[2,4],la:[0,2,4,6,15,16],label_smooth:0,larg:[4,7,11,12,14,15,16],larger:15,las1:4,las2:4,las_fil:4,las_filepath:4,las_path:4,las_paths_by_split_dict:4,las_paths_by_split_dict_typ:4,lasting_abov:0,later:[4,7,16],latest:[2,14],latter:3,launch_hdf5:6,launch_predict:6,launch_train:6,layer:[1,6],ld_library_path:[13,14],lead:[6,14],learn:[2,4,6,11,12,14],learningratemonitor:0,less:7,level:[1,7,9,15],leverag:[7,9],lib:[13,14],libarari:14,libcuspars:[13,14],librari:[5,9,10,11,12,13,14,16],libstdc:14,licens:14,lidar:[4,7,10,11,12,14,15,16],lidar_hd:0,lidar_hd_pre_transform:[0,4,16],light:2,lightn:[1,2,4,5,6,10,11,12,15],lightning_model:0,lightning_modul:2,lightningdatamodul:5,lightningloggerbas:5,lightningmodul:[1,2,5],like:[4,7,16],limit:[7,15],limit_test_batch:0,limit_train_batch:0,limit_val_batch:0,line:[13,14,15],link:[14,16],lint:9,linux:[11,14,15],linux_x86_64:14,list:[2,4,5,14,15,16],liter:[2,4],loact:4,load:[2,4,6,16],load_full_las_for_upd:2,loader:4,loader_a:4,loader_b:4,loader_n:4,local:[7,10,14,15],local_11:14,local_input:15,local_instal:14,local_output:15,localhost:14,locat:14,log:[1,2,4,5,10],log_cod:0,log_every_n_step:0,log_hyperparamet:5,log_iou:1,log_iou_by_class:0,log_logs_dir:0,log_momentum:0,logcod:[0,1],logger:[0,1,5,10,15],logging_callback:0,logging_interv:0,logic:[2,11,12,15,16],logioubyclass:[0,1],logit:[1,2,7],loglogspath:[0,1],logs_dir:10,look:[4,15],loss:2,loss_epoch:0,lower:16,lowest:4,lr:[0,6],lr_monitor:0,lr_schedul:[0,6],m:9,machin:14,made:2,mai:[7,9,10,14,15,16],main:[5,7,9,13,14],make:[2,3,4,9,10,11,12,13,14,15],make_toy_dataset_from_test_fil:4,mamba:13,manag:[0,13,14,15],mani:[1,7],manual:[10,14],map:[4,15],match:[4,13,14,15],matrix:[1,7,13],max_epoch:0,maxim:2,maximumnumnod:[0,4],md:9,mean:[7,9,10,14,15],meatadata:15,meet:7,memori:[2,7,15,16],mention:15,merg:[9,11],metadata:[4,16],method:[4,5,7,14],metric:[1,7],might:[7,10,13,14],min:0,min_delta:0,min_epoch:0,min_num_nod:0,mind:7,miniconda3:[13,14],minim:15,minimumnumnod:[0,4],minut:14,mismatch:14,miss:15,ml:[1,10],mmodel:7,mnist:4,mnist_load:4,mode:[0,5,7,13,14],model:[0,1,4,5,6,9,11,12,14,15,16],model_checkpoint:0,modelcheckpoint:0,modifi:[5,15],modul:[2,11,15],momentum:0,monitor:0,more:[0,4,7,10,14,15],most:[7,14],mount:15,move:[2,14],much:14,multi:[4,5],multiclass:[11,12,14],multigpu:10,multipl:[4,11,15,16],multiple_fil:15,multipli:[7,15],multithread:15,must:[6,7,14,15,16],mv:14,myria3d:[0,7,9,12,15,16],n:[2,7,13,15],name:[2,4,5,9,10,14,15,16],nation:7,navig:14,nb_point:2,ndarrai:[2,4],ndvi:[4,16],necessari:[2,4,14],need:[2,3,4,7,10,13,14,15,16],neg:15,nest:16,net:[2,6,7],network:[2,6,11,12],neural:[2,6,11,12],neural_net_class_nam:0,neural_net_hparam:0,newer:13,next:[7,10,14],nexu:9,nn:[0,2],non:[14,15],none:[1,2,4,5,10,15],noneproof:4,normal:[0,4],normalizations_list:0,normalizepo:[0,4],note:[15,16],now:14,np:4,nullifylowestz:[0,4],num:4,num_class:[0,1,3,6],num_featur:[0,3],num_neighbor:[0,3],num_sanity_val_step:0,num_work:0,number:[4,5,6,10,15,16],numpi:[2,4],nvidia:[13,14],nvml:14,o:4,object:[1,4,6,7,13,14,15,16],oc:[0,15],occlud:16,occur:[7,14],offici:[7,16],old:14,older:13,omegaconf:[5,6],on_fit_start:[1,2],on_init_end:1,on_test_batch_end:1,on_test_start:1,on_train_batch_end:1,on_train_start:1,on_validation_batch_end:1,on_validation_epoch_end:2,onc:[10,16],one:[2,3,4,6,10,14,15],ones:4,onli:[2,4,7,13,14,16],onlin:14,open:[13,14,16],oper:[7,14],opini:[11,12],opposit:7,optim:[0,1,2,11,12],optimizer_idx:1,option:[1,2,4,5],optionn:[2,14,15],optionnali:6,order:[4,5,6,7,15],org:14,origin:[2,4,15],oserror:[13,14],other:[7,10,14,15],otherwis:[4,14],our:[3,7],out:[1,4,10,14,15],outdoor:7,output:[1,2,6],output_dir:[0,2,15],over:[1,7],overfit:10,overlap:[4,8],overrid:[4,15],overridden:3,own:[3,7,16],packag:[9,14,15,16],package_metadata:9,page:[4,9,10,14,16],paper:[7,10],param:[4,5,15],paramet:[1,2,4,5,6,15,16],parcimoni:7,part:[13,14,15,16],partial:0,particular:[7,10,13],pass:[2,3,7,9],path:[0,2,4,10,14,15,16],patienc:[0,6],pattern:[4,15],pctl:[0,11,16],pdal:[4,16],pdal_read_las_arrai:4,pdal_read_las_array_as_float32:4,pdaltool:16,pep8:9,per:10,perfom:10,perform:[3,4,6,10,11,16],persist:14,phase:[1,7],pin:14,pip:[13,14],pipelin:[4,6],pl_modul:1,place:[5,7],placehold:14,pleas:[4,14],plu:[15,16],po:[2,3,4],point:[2,3,4,11,12,14,16],pointcloud:7,pointnet:7,points_budget:16,points_pre_transform:[0,16],posit:[2,4],possibl:16,postiv:4,powershel:14,ppa:14,pre:4,pre_filt:[0,4],pre_filter_below_n_point:[0,4],precomput:4,predict:[0,2,4,5,7,10,11],predict_dataload:4,predict_step:2,predicted_classification_channel:[0,2,15],predictedclassif:[0,2,15],prefer:[7,14],prefetch_factor:0,prefix:14,prepar:[0,2,4,6,10,11],preparations_eval_list:0,preparations_predict_list:0,preparations_train_list:0,prepare_data:4,prepared_data_dir:4,preprocess:[4,16],present:15,press:14,price:15,print:5,print_config:[0,5],proba:[2,15],probabilit:[2,15],probabl:[2,6,13,15],probas_to_sav:[0,2,15],problem:14,proce:10,process:[3,4,7,9,11,12,14],process_group:1,prod:9,produc:15,product:9,progress:8,progress_bar_refresh_r:0,project:15,project_nam:0,prompt:14,propag:7,properli:14,properti:4,provid:[10,15,16],proxi:15,ptr:3,pub:14,pull:[7,9],pure:[13,14],purpos:[4,14],push:9,py:[10,15,16],pyg:[4,14],pyg_randla_net:3,pygrandlanet:[0,3],pytest:9,python:[5,9,10,15,16],pytorch:[2,4,6,7,10,11,12,13,14,15],pytorch_geometr:[14,16],pytorch_lightn:[0,1,5,6],pytorchlight:1,qi:7,quadro:14,queri:4,quit:14,quot:15,r:[14,16],ra:9,randla:7,randlanet:10,randlanet_base_run_fr:10,randlanetdebug:0,randlanetdebugfinetun:6,random:7,rang:[4,10],rapid:[11,12],rate:[2,6],raw:[4,16],raw_path:2,read:[2,4,16],reader:4,readi:[4,10,14,16],readm:15,readthedoc:2,recent:13,recept:[4,16],recip:[3,13],recommend:[4,14],reconstruct:16,recudelronplateau:6,reduc:[7,10],reduce_predicted_logit:2,reduce_predictions_and_sav:2,reducelronplateau:0,reduct:[1,7],refer:[0,5,10,15],referenc:16,regist:3,regroup:16,regular:[8,15],rel:[4,7],relat:[13,14],releas:[9,13],reli:[11,12],reliabl:[7,11,12],reload:4,reload_dataloaders_every_n_epoch:4,remov:[13,14],renam:10,replac:[13,14],repo:14,repositori:[9,14,15],repres:7,request:[2,7,9],requir:[7,13,14],reset:6,resolut:7,resolv:5,restart:14,result:[4,7,10,11,12,15],resum:6,return_logit:[0,3],review:14,rgb:[4,16],rgbi:16,rich:[5,7],right:14,robust:7,role:9,root:4,rtx:14,run:[1,3,9,13,14,16],runtim:[0,10,15],runtimeerror:14,s3di:7,s:[4,11,13,14,15,16],safe:1,same:[2,7,14],sampl:[4,7,15,16],sampler:4,samples_hdf5_path:4,save:[2,5,10,15],save_last:0,save_top_k:0,scale:[4,7,11,12,14,16],schedul:[2,6],schema:[1,16],scheme:2,scope:[11,12,14],script:11,scroll:14,section:[10,14],see:[4,6,7,9,10,13,14,15,16],seed:[0,5],segment:[6,7,11,12,14,16],select:[14,16],self:4,semant:[6,7,9,11,12,14],semantic3d:7,semantickitti:7,semin:7,sequenc:[4,5],sequenti:1,serv:9,set:[1,4,6,7,10,15,16],setup:[1,2,4],setup_env:13,sever:[4,15],sh:14,share:[13,14,15,16],shm:15,should:[3,4,13,14,15,16],show:[0,15],shown:14,shuffl:4,shut:14,shutdown:14,signatur:[11,12],silent:3,similar:16,similarli:16,simpl:[4,7],simpli:[1,15,16],simplic:7,simplifi:7,sinc:[3,7],singl:[1,4,10,11,12,16],singleclassi:1,situat:7,size:[3,7,10,15,16],small:[4,16],smaller:[7,16],smi:14,smooth:15,so:[2,10,13,14,15],solut:7,some:[4,10,11,12,14],someth:14,sota:7,sourc:[0,1,2,3,4,5,6,14,16],space:15,spatial:15,special:6,specif:[4,6,7,13,14,15,16],specifi:[4,5,6,7,10,15,16],spent:7,spit:16,spli:16,split:[4,16],split_cloud_into_sampl:4,split_csv:4,split_csv_path:[0,16],squar:15,src_la:[0,2,15],src_las_path:4,stage:[2,4,9],standalon:15,standard:[4,11,12,16],standardize_channel:4,standardizergbandintens:[0,4],start:[1,2,6,7,13],state:[4,6,14],stem:10,step:[0,1,2,7,9,10,14],still:[13,14,15],store:[15,16],store_predict:2,str:[1,2,4,5],strategi:7,stronger:6,structur:[5,11,12],subclass:3,subdir:6,subdirectori:[4,16],subfold:[4,10],suboptim:7,subsampl:[2,4],subsystem:14,subtil:4,subtile_overlap:[0,4,15],subtile_overlap_predict:0,subtile_overlap_train:[0,4],subtile_width:[0,4],success:[9,15],sudo:14,suit:16,sumbsampl:2,superior:7,supervis:7,support:[10,11,12],sure:14,swicth:15,system:[1,13,14],t:[4,15,16],tabl:14,tag:9,take:[2,3,7,14,16],taken:14,tarbal:[13,14],target:[1,2,4,14],targettransform:[0,4],task:[0,5,6,10,15,16],task_nam:[0,6,10,15],td_prepar:4,team:14,templat:[11,12],tensor:[1,2,4],term:[7,11,12],termin:14,test:[0,1,2,4,6,7,8,14,16],test_dataload:4,test_step:[2,4],text:14,than:[7,10,13,14],thank:13,thei:15,them:[3,4,7],therefor:2,thi:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16],third:7,thoma:7,threshold:1,thu:7,tile:4,tile_width:[0,4],time:[2,4,7,8,10,11,12,14,16],tini:7,todo:11,togeth:4,toi:[4,10],tool:16,toolchain:14,toolkit:[13,14,16],torch:[0,1,2,4,13,14],torch_clust:14,torch_geometr:[0,2,4,7],torch_scatt:14,torch_spars:14,torchmetr:[0,1],totensor:4,toy_dataset:[0,16],track:9,train:[0,1,2,4,7,11,12,15],train_dataload:4,train_transform:4,trainabl:5,trained_model_asset:15,trainer:[0,1,5,6,10],trainin:2,training_step:2,transform:[0,2,7,15,16],tree:5,tri:14,tricki:14,trigger:7,tupl:2,turn:[4,16],tutori:[9,10,15],two:16,type:[2,4,6,14],typic:6,ubuntu:[13,14],uncertainti:15,unclassifi:[0,4],under:[15,16],unfreez:1,unfreeze_decoder_train_epoch:1,unfreeze_fc_end_epoch:1,union:[1,2,4,7],unless:4,unmodifi:14,unorm:4,unseen:[6,11,12],until:7,unus:2,up:[10,15],updat:[1,2,14,15],upgrad:[13,14],upload:1,upon:[11,12],urban:7,url:14,us:[1,2,3,4,5,6,7,9,10,13,14,15,16],useful:4,user:[13,14,15],usernam:14,usual:7,util:[0,11,14],v3:7,v:[9,15],val:[0,1,4,16],val_dataload:4,valid:[2,4,6,7,10,15],validation_step:[2,4],valu:[0,4,6,14,15],variabl:[7,10,15,16],variou:14,vector:4,veget:[0,7,15],verbos:0,veri:15,version:[7,13,14],via:[9,13,15,16],virtual:[10,14,15],visibl:15,volum:15,wa:[7,11,12,14,16],wai:[7,13,14],want:[7,13,14,15,16],warn:[5,8],water:0,we:[0,2,7,13,14,15,16],weight:6,weightn:2,weights_summari:0,well:[2,6,14,15],were:[7,15],wget:14,what:[2,5,15],wheel:[13,14],when:[1,4,9,10,15],where:[4,10],whether:[5,14],which:[2,4,5,6,7,9,10,11,12,13,14,15,16],whl:14,whole:4,whose:[15,16],why:14,width:4,window:[14,15],wise:4,within:[3,7,14,16],without:[2,4,14,16],work:[1,7,8,13,14,15],work_dir:0,workflow:9,workspac:0,would:4,write:14,wsl2:11,www:14,x10:7,x5:7,x86_64:14,x:[2,3,4,15,16],xy:4,xyz:2,y:[2,4,13,14,15],y_mean:4,y_std:4,yaml:[6,9,10,15,16],ye:14,yet:[1,14],yield:4,yml:[13,14],you:[4,10,13,14,15,16],your:[2,10,13,14,15,16],yourself:4,z:4},titles:["Default configuration","myria3d.callbacks","myria3d.models","myria3d.models.modules","myria3d.pctl","myria3d.utils","Scripts","General design of the package","KNN-Interpolation to merge multiple predictions [TODO]","Developer\u2019s guide","How to train new models","Myria3D > Documentation","<no title>","Install Myria3D on Linux","Install Myria3D on WSL2 with CUDA support","Performing inference on new data","Preparing data for training"],titleterms:{"default":0,"function":16,"import":7,"new":[10,15],addit:15,anaconda:14,approach:7,artefact:15,background:11,callback:1,cd:9,ci:9,cloud:7,code:9,comet_callback:1,compos:4,configur:0,content:1,continu:9,cuda:14,data:[15,16],dataload:4,datamodul:4,dataset:[4,16],deliveri:9,design:7,develop:9,dimens:15,docker:15,document:11,dure:15,environ:13,essenc:7,evalu:7,fast:7,field:15,finetuning_callback:1,from:15,gener:7,geometr:3,get:[11,16],gpu:10,guid:[9,11],hdf5:4,how:10,ignor:15,imag:15,improv:7,indic:11,infer:[10,15],instal:[13,14],integr:9,interpol:[2,8],iter:4,kei:7,knn:8,learn:10,lidar_hd:4,linux:13,logging_callback:1,merg:8,model:[2,3,7,10],modul:[1,3],multi:10,multipl:8,myria3d:[1,2,3,4,5,6,11,13,14],net:3,optim:10,option:15,output:15,overlap:15,packag:[7,11,13],pctl:4,peprocess:16,perform:[7,15],point:[7,15],points_pre_transform:4,practic:7,predict:[6,8,15],prepar:16,prerequisit:13,pytorch:3,quick:10,quickli:16,randla:3,rate:10,recept:15,refer:11,right:7,run:[6,10,15],s:9,script:6,select:7,set:[13,14],setup:10,should:7,sourc:[13,15],speed:7,start:[11,16],structur:7,submodul:1,subsampl:7,support:14,tabl:11,test:[9,10],time:15,todo:8,toi:16,toy_dataset:4,train:[6,10,16],transform:4,troubleshoot:[13,14],up:[13,14],util:[4,5],version:9,virtual:13,within:15,wsl2:14,wsl:14}}) \ No newline at end of file diff --git a/tutorials/install_on_linux.html b/tutorials/install_on_linux.html index 45af7fce..863b0d82 100644 --- a/tutorials/install_on_linux.html +++ b/tutorials/install_on_linux.html @@ -4,7 +4,7 @@ - Install Myria3D on Linux — myria3d 3.5.2 documentation + Install Myria3D on Linux — myria3d 3.6.0 documentation diff --git a/tutorials/install_on_wsl2.html b/tutorials/install_on_wsl2.html index 1e2bb3b9..b2ce253c 100644 --- a/tutorials/install_on_wsl2.html +++ b/tutorials/install_on_wsl2.html @@ -4,7 +4,7 @@ - Install Myria3D on WSL2 with CUDA support — myria3d 3.5.2 documentation + Install Myria3D on WSL2 with CUDA support — myria3d 3.6.0 documentation diff --git a/tutorials/make_predictions.html b/tutorials/make_predictions.html index 517c62b4..237f2ae0 100644 --- a/tutorials/make_predictions.html +++ b/tutorials/make_predictions.html @@ -4,7 +4,7 @@ - Performing inference on new data — myria3d 3.5.2 documentation + Performing inference on new data — myria3d 3.6.0 documentation @@ -192,7 +192,8 @@

      Run inference from source
      python run.py task.task_name=predict --help
       
      -

      Note that predict.src_las may be any valid glob pattern (e.g. /path/to/multiple_files/*.las), in order to predict on multiple files successively.

      +

      Note that predict.src_las may be any valid glob pattern (e.g. /path/to/multiple_files/*.las), in order to predict on multiple files successively.
      +If the lidar file doesn’t specify an EPSG in its meatadata, it HAS TO BE be specified with datamodule.epsg=...

      Run inference from sources

      diff --git a/tutorials/prepare_dataset.html b/tutorials/prepare_dataset.html index b4a05884..dec72e82 100644 --- a/tutorials/prepare_dataset.html +++ b/tutorials/prepare_dataset.html @@ -4,7 +4,7 @@ - Preparing data for training — myria3d 3.5.2 documentation + Preparing data for training — myria3d 3.6.0 documentation @@ -188,6 +188,7 @@

      Preparing the dataset

      Under the hood, the path of each LAS file will be reconstructed like this: ‘{data_dir}/{split}/{basename}’.

      Large input point clouds need to be divided in smaller clouds that can be digested by segmentation models. We found that a receptive field of 50m x 50m was a good balance between context and memory intensity. The division is performed once, to avoid loading large file in memory multiple times during training.

      +

      To be able to read the lidar files, an EPSG is needed. If the files don’t all specify an EPSG in their metadata, it should be given as a parameter with datamodule.epsg=...

      After division, the smaller clouds are preprocessed (i.e. selection of specific LAS dimensions, on-the-fly creation of dimensions) and regrouped into a single HDF5 file whose path is specified via the datamodule.hdf5_file_path parameter.

      The HDF5 dataset is created at training time. It should only happens once. Once this is done, you do not need sources anymore, and simply specifying the path to the HDF5 dataset is enough (there is no need for data_dir or split_csv_path parameters anymore).

      It’s also possible to create the hdf5 file without training any model: just fill the datamodule.hdf5_file_path parameter as before to specify the file path, but use task=create_hdf5 instead of task=fit.