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: README.md
+27-10
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,23 @@ All code related to our work on detection in laser (aka lidar aka 2D range) data
7
7
8
8
If you use anything provided here, please cite both papers in your work, see [citations below](https://github.com/VisualComputingInstitute/DROW#citations) below for the citation format.
9
9
10
-
11
10
# DROW v2 Detector Training and Evaluation
12
11
13
12
Code for training and evaluating DROW (v2) resides in various notebooks in the `v2` subfolder.
14
13
All notebooks are highly similar, and each notebook is used for obtaining one different curve in the paper.
15
14
Our final best model was obtained in `v2/Clean Final* [T=5,net=drow3xLF2p,odom=rot,trainval].ipynb`.
16
15
16
+
## What's new in v2?
17
+
18
+
Our second paper ("Deep Person Detection in 2D Range Data") adds the following:
19
+
20
+
- Annotations of persons in the dataset.
21
+
- Inclusion of odometry in the dataset.
22
+
- New network architecture.
23
+
- Publishing of pre-trained weights.
24
+
- Temporal integration of intormation in the model while respecting odometry.
25
+
- Comparison to well-tuned competing state-of-the-art person detectors. (In the paper only, not this repo.)
26
+
17
27
## Pre-trained weights
18
28
19
29
For DROW v2, we are able to provide the weights of the various models used in the paper here on GitHub in the [releases section](https://github.com/VisualComputingInstitute/DROW/releases).
which can easily be solved by adding `map_location={'cuda:1': 'cuda:0'}` to the `load()` call, [additional details here](https://discuss.pytorch.org/t/saving-and-loading-torch-models-on-2-machines-with-different-number-of-gpu-devices/6666).
27
37
28
38
29
-
# DROW v1 Detector ROS Node
30
-
31
-
We will add here a ROS detector node that can be used with a trained model and outputs standard `PoseArray` messages.
32
-
Until we add it here, you can already get a sneak-peek in the [STRANDS repositories](https://github.com/strands-project/strands_perception_people/tree/indigo-devel/wheelchair_detector).
33
-
34
-
35
39
# DROW v1 Training and Evaluation
36
40
37
41
All code for training and evaluating DROW (v1) resides in the `v1/train-eval.ipynb` notebook, which you can open here on github or run for yourself.
38
42
Most, but not all, of this notebook was used during actual training of the final model for the paper.
39
43
While it was not intended to facilitate training your own model, it could be used for that after some careful reading.
40
44
41
45
46
+
## DROW v1 Detector ROS Node
47
+
48
+
We will add here a ROS detector node that can be used with a trained model and outputs standard `PoseArray` messages.
49
+
Until we add it here, you can already get a sneak-peek in the [STRANDS repositories](https://github.com/strands-project/strands_perception_people/tree/indigo-devel/wheelchair_detector).
50
+
51
+
42
52
# DROW Laser Dataset
43
53
44
54
You can obtain our full dataset here on GitHub in the [releases section](https://github.com/VisualComputingInstitute/DROW/releases),
@@ -47,7 +57,7 @@ specifically the file [DROW-data.zip](https://github.com/VisualComputingInstitut
47
57
PLEASE read the v1 paper carefully before asking about the dataset, as we describe it at length in Section III.A.
48
58
Further details about the data storage format are given below in this README.
49
59
50
-
## Citations
60
+
## Citations and Thanks
51
61
52
62
If you use this dataset or code in your work, please cite **both** the following papers:
53
63
@@ -77,6 +87,9 @@ BibTex:
77
87
}
78
88
```
79
89
90
+
Walker and wheelchair annotations by Lucas Beyer (@lucasb-eyer) and Alexander Hermans (@Pandoro),
91
+
and huge thanks to Supinya Beyer (@SupinyaMay) who created the person annotations for v2.
92
+
80
93
## License
81
94
82
95
The whole dataset is published under the MIT license, [roughly meaning](https://tldrlegal.com/license/mit-license) you can use it for whatever you want as long as you credit us.
@@ -101,9 +114,9 @@ Within a sequence, we only annotate every 4th batch, leading to a total of 5 % o
101
114
102
115
## Dataset Use and Format
103
116
104
-
We highly recommend you use the `load_scan`and `load_dets` functions in `utils.py` for loading raw laser scans and detection annotations, respectively.
117
+
We highly recommend you use the `load_scan`, `load_dets`, and `load_odom` functions in `utils.py` for loading raw laser scans, detection annotations, and odometry data, respectively.
105
118
Please see the code's doc-comments or the DROW reference code for details on how to use them.
106
-
Please note that each scan (or frame), as well as detections, comes with a **sequence number that is only unique within a file, but not across files**.
119
+
Please note that each scan (or frame), as well as detections and odometry, comes with a **sequence number that is only unique within a file, but not across files**.
107
120
108
121
### Detailed format description
109
122
@@ -120,3 +133,7 @@ Then follows a json-encoded list of `(r,φ)` pairs, which are the detections in
120
133
For each detection, `r` represents the distance from the laser scanner and `φ ∈ [-π,π]` the angle in radians, zero being right in the front centered of the scanner ("up"), positive values going to the left and negative ones to the right.
121
134
There's an important difference between an empty frame and an un-annotated one:
122
135
An empty frame is present in the data as `123456,[]` and means that no detection of that type (person/wheelchair/walker) is present in the frame, whereas an un-annotated frame is simply not present in the file: the sequence number is skipped.
136
+
137
+
Finally, the `.odom2` files again contain one line per frame and start with a sequence number which should be used to match the odometry data to the scan **in the corresponding `.csv` file only**.
138
+
Then follows a comma-separated sequence of floating points, which correspond to `time` in seconds, `Tx` and `Ty` translation in meters, and `φ ∈ [-π,π]` orientation in radians of the robot's scanner.
139
+
These values are all relative to some arbitrary initial value which is not provided, so one should only work with differences.
0 commit comments