You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/data_organization.rst
+53-4Lines changed: 53 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,25 @@ LabelFusion Data Organization
3
3
====================
4
4
5
5
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
this directory gets mounted inside the docker to `/root/labelfusion/data`.
22
+
23
+
24
+
Highest level directory structure
7
25
--------------------
8
26
9
27
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
13
31
- :code:`object-meshses` - Contains the meshes for all objects across all datasets
14
32
- :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.
15
33
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
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
17
66
------------------------------
18
67
19
68
The purpose of each of the :code:`logs*` directories are:
20
69
21
70
- :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.
22
71
- :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.
23
72
24
-
3. Each log organization
73
+
Each log organization
25
74
------------------------
26
75
27
76
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
66
115
registration_result.yaml
67
116
transforms.yaml
68
117
69
-
4. Dataset status
118
+
Script for viewing dataset status
70
119
-----------------
71
120
72
121
The :code:`dataset_update_status` script provides a way to keep track of status for each log.
0 commit comments