IGNF / myria3d

Myria3D: Aerial Lidar HD Semantic Segmentation with Deep Learning
https://ignf.github.io/myria3d/
BSD 3-Clause "New" or "Revised" License
170 stars 23 forks source link

Revoir l'interface spécifiant les données d'entrées #17

Closed CharlesGaydon closed 2 years ago

CharlesGaydon commented 2 years ago

Je comprends pourquoi cela a été fait comme cela, pour imposer un loader à chaque fois qu'on veut un nouveau type de LAS, mais l'usage n'est pas d'imposer aux autres d'écrire du code mais de leur imposer des specs d'entrée (le LAS doit avoir telles et telles colonnes, avec telles restrictions...). Ainsi, ils peuvent faire le "convertisseur de LAS" de la manière qu'ils souhaitent, y compris un autre langage, quitte à fournir à côté un convertisseur python en exemple qui correspondrait aux methodes "load_las()"

_Originally posted by @MichelDaab in https://github.com/IGNF/lidar-deep-segmentation/pull/14#discussion_r872023324_

Je reconnais qu'il doit être possible de mieux contraindre le format d'entrée, sans obliger l'utilisateur à coder son propre format en cas de nouvelles données. Mais laisser la possibilité d'ajouter/d'enlever facilement des canaux me paraît tout de même important. A discuter.

CharlesGaydon commented 2 years ago

Ce genre de valeurs "en dur" ne devrait pas être dans le code mais dans un fichier de config quelconque

_Originally posted by @MichelDaab in https://github.com/IGNF/myria3d/pull/14#discussion_r875845134_

A mon avis cette remarque rejoint la question de l'interface et de sa flexibilité éventuelle. A creuser.

CharlesGaydon commented 2 years ago

Après discussion : il est attendu et souhaité que ce package fixe les caractéristiques des données Lidar HD, en termes d'encoding des RGB, de classes particulières (artefacts, points virtuels), de canaux disponibles (NIR notamment). TODO : mieux documenter le format des données attendues, en particulier SRS, version LAS.

MichelDaab commented 2 years ago

En fait j'ai dit fichier de config mais c'est plutôt histoire d'avoir tous les paramètres fixés à un seul endroit, cela peut être un simple fichier que les autres importent dès qu'ils ont besoin d'une constante. Cela permet d'avoir toutes les valeurs figées au même endroit au lieu de les avoirs qui se baladent partout dans le code. C'est donc plus une question de propreté que de fonctionnalité en plus

CharlesGaydon commented 2 years ago

Toutes les constantes sont dans une fonction pre_transform_points de lidar_hd. Package facilement extensible pour d'autres format en créant une nouvelle fonction pre_transform: points -> Data. https://github.com/IGNF/myria3d/pull/33