Skip to content

Commit 622ac28

Browse files
committed
Describe v2 data in README.
1 parent 394f0b3 commit 622ac28

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

README.md

+27-10
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,23 @@ All code related to our work on detection in laser (aka lidar aka 2D range) data
77

88
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.
99

10-
1110
# DROW v2 Detector Training and Evaluation
1211

1312
Code for training and evaluating DROW (v2) resides in various notebooks in the `v2` subfolder.
1413
All notebooks are highly similar, and each notebook is used for obtaining one different curve in the paper.
1514
Our final best model was obtained in `v2/Clean Final* [T=5,net=drow3xLF2p,odom=rot,trainval].ipynb`.
1615

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+
1727
## Pre-trained weights
1828

1929
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).
@@ -26,19 +36,19 @@ cuda runtime error (10) : invalid device ordinal
2636
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).
2737

2838

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-
3539
# DROW v1 Training and Evaluation
3640

3741
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.
3842
Most, but not all, of this notebook was used during actual training of the final model for the paper.
3943
While it was not intended to facilitate training your own model, it could be used for that after some careful reading.
4044

4145

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+
4252
# DROW Laser Dataset
4353

4454
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
4757
PLEASE read the v1 paper carefully before asking about the dataset, as we describe it at length in Section III.A.
4858
Further details about the data storage format are given below in this README.
4959

50-
## Citations
60+
## Citations and Thanks
5161

5262
If you use this dataset or code in your work, please cite **both** the following papers:
5363

@@ -77,6 +87,9 @@ BibTex:
7787
}
7888
```
7989

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+
8093
## License
8194

8295
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
101114

102115
## Dataset Use and Format
103116

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.
105118
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**.
107120

108121
### Detailed format description
109122

@@ -120,3 +133,7 @@ Then follows a json-encoded list of `(r,φ)` pairs, which are the detections in
120133
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.
121134
There's an important difference between an empty frame and an un-annotated one:
122135
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

Comments
 (0)