romi / plant-imager

ROMI library controlling the PlantImager (hardware) or the VirtualPlantImager (Blender) to acquire images of (virtual) single potted plants.
https://romi.github.io/plant-imager/
GNU Lesser General Public License v3.0
1 stars 0 forks source link

Investigate blender use, install & usage... still cryptic. #2

Closed jlegrand62 closed 7 months ago

jlegrand62 commented 4 years ago
  1. Fichier de config pour Luigi :

    [ObjFileset]
    scan_id = "myscan"
    [PaletteFileset]
    scan_id = "vscan_data"
    [HdriFileset]
    scan_id = "vscan_data"
    [SceneFileset]
    scan_id = "vscan_data"
    [ScanPath]
    class_name = "Circle"
    [VirtualScan]
    obj_fileset = "ObjFileset"
    use_palette = true
    use_hdri = true
    load_scene = false
    scene_file_id = "pot"
    render_ground_truth = true
    [Voxels]
    type = "averaging"
    voxel_size = 0.05
    [ScanPath.kwargs]
    center_x = -2
    center_y = 3
    z = 34.17519302880196
    tilt = 8
    radius = 30
    n_points = 72
    [VirtualScan.scanner]
    width = 896
    height = 896
    focal = 24
    flash = true
    add_leaf_displacement = true
  2. Installation (sûrement il y a d'autres façon de faire, je documente juste ce que j'ai fait) :

  1. Base de données (fsdb) : Dans la bdd, il faut un "scan" qui s'appelle vscan_data qui contient les filesets des images HRDI, de la palette de couleurs, des scenes (scenes???) [TODO]. Dans la bdd, dans le scan "myscan", il fait un fileset "data", avec les fichiers VirtualPlant_mtl.mtl et VirtualPlant.obj . Voici le files.json :

    {
    "filesets": [
        {
            "files": [
                {
                    "file": "VirtualPlant.obj",
                    "id": "VirtualPlant"
                },
                {
                    "file": "VirtualPlant_mtl.mtl",
                    "id": "VirtualPlant_mtl"
                }
            ],
            "id": "data"
        }
     ]
    }
  2. Run : romi_run_task --config path/to/scan.toml VirtualScan path/to/db/myscan --local-scheduler

  3. Pour lancer Blender sur une machine distante (sans display). D'abord il faut récupérer l'adresse du bus PCI de la cart graphique :

    $ nvidia-xconfig --query-gpu-info
    Number of GPUs: 2
    GPU #0:
    Name      : GeForce GTX 1080 Ti
    UUID      : GPU-51fd343f-5147-2f34-1f52-b47893a7ac6e
    PCI BusID : PCI:59:0:0
    Number of Display Devices: 0
    GPU #1:
    Name      : GeForce GTX 1080 Ti
    UUID      : GPU-854e79c3-546c-f891-f6b4-58e4d60e33a8
    PCI BusID : PCI:175:0:0
    Number of Display Devices: 0

    Créer un fichier config pour X (ça devrait être fait qu'une seule fois) : $ sudo nvidia-xconfig --busid=PCI:175:0:0 --use-display-device=none --virtual=1280x1024 Lancer X : $ sudo Xorg :1 (C'est probalement mieux de créer un fichier de config à part plutôt que d'écraser la config X existante de la machine (à tester) :)

    $ sudo nvidia-xconfig --busid=PCI:175:0:0 --use-display-device=none --virtual=1280x1024 -o my-xserver.conf
    $ sudo Xorg :1 -config my-xserver.conf

    Puis dans une autre console :

    $ export DISPLAY=:1
    $ blender -b -P script.py
jlegrand62 commented 4 years ago

https://devtalk.blender.org/t/blender-2-8-unable-to-open-a-display-by-the-rendering-on-the-background-eevee/1436/29

jlegrand62 commented 4 years ago

https://devtalk.blender.org/t/blender-2-8-unable-to-open-a-display-by-the-rendering-on-the-background-eevee/1436/24

jlegrand62 commented 4 years ago

MAJ du commentaire initial pour utiliser romidata comme repo au lieu de data-storage.