Skip to content

Commit c9c0d36

Browse files
authored
Update data_organization.rst
1 parent 2f63205 commit c9c0d36

File tree

1 file changed

+53
-4
lines changed

1 file changed

+53
-4
lines changed

docs/data_organization.rst

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,25 @@ LabelFusion Data Organization
33
====================
44

55

6-
1. Highest level directory structure
6+
Introduction
7+
------------
8+
This document overviews the organization of the data in LabelFusion
9+
10+
11+
Mounting into docker
12+
--------------------
13+
14+
If you use our provided docker image, the LabelFusion data folder is a directory that lives on your host machine. When you launch the `docker` container with
15+
16+
::
17+
18+
LabelFusion/docker/docker_run.sh /path/to/data-folder
19+
20+
21+
this directory gets mounted inside the docker to `/root/labelfusion/data`.
22+
23+
24+
Highest level directory structure
725
--------------------
826

927
Here are the top-level files and directories inside :code:`LabelFusion_public_full` and their uses:
@@ -13,15 +31,46 @@ Here are the top-level files and directories inside :code:`LabelFusion_public_fu
1331
- :code:`object-meshses` - Contains the meshes for all objects across all datasets
1432
- :code:`object_data.yaml` - Critical file which is a dictionary of all objects in the database, their pixel label (i.e. "1" is the oil_bottle), and the mesh (.vtp or .obj, etc) that is used for this object.
1533

16-
2. Log high-level organization
34+
Object Meshes
35+
--------------
36+
37+
LabelFusion requires object meshes to perform the model alignment and rendering of masks. The default location for `object-meshes` is
38+
39+
```
40+
data\
41+
object-meshes\
42+
drill_mesh.vtp
43+
````
44+
45+
When running the alignment tool the software needs to know where to find the mesh for a specific object. In particular the call
46+
`gr.launchObjectAlignment(<objectName>)` will try to look up the mesh for `<objectName>`. It is assused that this information is contained in a file `object_data.yaml` which is in location
47+
48+
```
49+
data\
50+
object_data.yaml
51+
```
52+
53+
Each entry in this yaml file is of the form
54+
55+
```
56+
drill:
57+
mesh: object-meshes/handheld-scanner/drill_decimated_mesh.vtp
58+
label: 1
59+
```
60+
61+
The `mesh` entry points to the mesh file location, relative to the top-level `data` directory. The `label` entry is the global label for this object. When the greyscale mask image gets rendered pixels with a value of `1` will correspond to the drill, in this case. Note that **`0` always represents the background so it cannot be used it as an object label**.
62+
63+
64+
65+
Log high-level organization
1766
------------------------------
1867

1968
The purpose of each of the :code:`logs*` directories are:
2069

2170
- :code:`logs_test` - These are where all of our logs are. It's a bit of a misnomer, but it's there for historical reasons.
2271
- :code:`logs_arch` - These logs are imperfect (not right set of objects, too shaky for ElasticFusion, etc.) but we don't want to delete yet.
2372

24-
3. Each log organization
73+
Each log organization
2574
------------------------
2675

2776
Each log should have a unique name across all datasets. Optionally this can be a unique date in the form:
@@ -66,7 +115,7 @@ After running through all scripts, the following files and directories will be c
66115
registration_result.yaml
67116
transforms.yaml
68117

69-
4. Dataset status
118+
Script for viewing dataset status
70119
-----------------
71120

72121
The :code:`dataset_update_status` script provides a way to keep track of status for each log.

0 commit comments

Comments
 (0)