Skip to content

Evaluate a 3D reconstruction and automated measures with a virtual plant as ground truthLink

Generate, analyze and visualize virtual plant images using public docker containers.

ObjectiveLink

Instead of installing virtual-plant-imager, plant-3d-vision and plant-3d-explorer on your computer you can pull their corresponding docker images and use directly the pre-installed software. After reading this tutorial, you should be able to generate, analyze and visualize virtual plant images using only public docker images.

PrerequisiteLink

You must have docker and docker-compose installed on your system and ideally your user account has sudo privileges.

1. Prepare the databaseLink

First, you have to give the right access to your database path

sudo chmod -R 777 /path/of/your/db

Todo

Fix these instructions as they are WRONG! We now use Unix group rights to access the database path!

2. Generate virtual dataset with plant-imagerLink

Pull the public docker image of virtual-plant-imager

docker pull roboticsmicrofarms/virtual-plant-imager:latest

Run the docker image with the database mounted volume

docker run --rm -it --gpus all -v /path/to/your_db:/myapp/db roboticsmicrofarms/virtual-plant-imager:latest /bin/bash

Inside docker container, run VirtualScan task to generate a dataset named virtual_ds_example

romi_run_task --config plant-imager/configs/vscan_lpy_blender.toml VirtualScan /myapp/db/virtual_ds_example

Wait for the generation time, after complete, make sure that virtual_ds_example has been generated correctly.

Exit docker container

exit

3. Angles and Internodes analysis and visualization generation of the datasetLink

Pull the public docker image of plant-3d-vision

docker pull roboticsmicrofarms/plant-3d-vision:latest

Run the docker image with the database mounted volume

docker run --rm -it --gpus all -v /path/to/your_db:/myapp/db roboticsmicrofarms/plant-3d-vision:latest /bin/bash

If not already activated, activate the right virtual environment

source /venv/bin/activate

Inside docker container, run AnglesAndInternodes task

romi_run_task --config configs/geom_pipe_virtual.toml AnglesAndInternodes /myapp/db/virtual_ds_example/

Make sure that the folder AnglesAndInternodes has been generated

Run the Visualization task

romi_run_task --config configs/geom_pipe_virtual.toml Visualization /myapp/db/virtual_ds_example/

Make sure the Visualization folder has been generated

Exit the docker container

exit

4. Visualize the virtual dataset on plant-3d-explorerLink

Pull the public docker image of plantdb

docker pull roboticsmicrofarms/plantdb

Pull the public docker image of plant-3d-explorer

docker pull roboticsmicrofarms/plant-3d-explorer

Set ROMI_DB environment variable to point to your database

export ROMI_DB=/path/to/your/db

Create a file named docker-compose.yml so that it will contain the following:

version: '3'
services:
 plantdb:
   image: "roboticsmicrofarms/plantdb"
   volumes:
     - ${ROMI_DB}:/myapp/db
   ports:
     - "5000:5000"
   healthcheck:
     test: "exit 0"
 plant-3d-explorer:
   image: "roboticsmicrofarms/plant-3d-explorer"
   depends_on:
     - plantdb
   environment:
       REACT_APP_API_URL: http://localhost:5000
   ports:
     - "3000:3000"

Run the docker compose in the directory that contains docker-compose.yml

docker-compose up -d

After a while, if everything is okay, you can visualize the database (containing virtual_ds_example) in your internet browser

at the addres http://localhost:3000/

Make sure that virtual_ds_example can be visualized correctly.

Stop docker compose

docker-compose stop