LAST-Straw

Lincoln’s Annotated Spatio-Temporal Strawberry Dataset

Lincoln Centre for Autonomous Systems
University of Lincoln, UK

*Indicates Equal Contribution

Data preview: Example point cloud, alternating between original textures and instance annotations.

Data preview: Example time series of the same plant with original textures (row 1),
class annotations (row 2), instance annotations (row 3), and temporally consistent leaf instance annotations (row 4).

The dataset

This dataset contains point clouds of 6 strawberry plants, each captured 14 times over the span of 11 weeks (13/05/2022 - 29/07/2022). The 6 plants are of two varieties, Driscoll's Katrina (variety A) and Driscoll's Zara (variety B), with three individuals of each. A total of 84 point clouds are provided with an average of over 1.17 million points per scan. Of these, 13 are annotated with class and instance labels for each point in the cloud.

Methodology

The scans were recorded using the Shining 3D Einscan Pro 2x handheld scanner, equipped with the 'Color Pack' add-on. The scanner operates based on structured-light projections, so while the plants were regularly housed under polytunnels at the University of Lincoln Riseholme campus farm, the plants were carefully moved into a controlled scanning environment for each data collection. The scanning chamber was set up to provide low and diffuse indirect light, optimizing conditions for data capture.
The scanner was calibrated before each use. All scans are true to real-world scale (in mm). Each sequence of scans of the same plant were aligned manually using CloudCompare, and thus a common global coordinate frame between different plants can not be assumed.

Data structure and file format

We provide each scan as an .xyz text file with up to 8 columns per points (X, Y, Z, R, G, B, class, instance), providing the 3D coordinates, followed by RGB values, and the class and instance labels where available. Files are named by their plant variety and ID, followed by the capture date in year-month-day format, e.g. A2_20220729.xyz
An added '_a' at the end of the file name indicates that the scan is annotated.
The scan B3_20220715 is missing colour information.

Annotations

Where available, two labels are provided per point: one class label and one instance label to distinguish individual organ instances of the same class. Please note that the instance labels are not ordered by emergence date of each organ and not temporally consistent. We use seven classes to distinguish different plant organs and two additional classes for background information inadvertently captured during the scanning process. The semantic classes are:

  1. leaf or leaflet
  2. stem (incl. petiole, peduncle, pedicel, and stolon)
  3. berry
  4. flower
  5. crown
  6. background (incl. soil, grow bags, neighboring plants, and any other objects captured in the background)
  7. other (any unidentifiable structure within the plant, which may include newly emerging organs that are not yet identifyable)
  8. the scanning table
  9. emergent leaf or leaflet

Ground truth skeletons are provided for all stem-like structures for the annotated scans. Please note that the associated json file should be used to associate their file names with the annotation id of each stem.

Code and resources

We provide a small python code sample here for loading the dataset, optionally using Open3D or Numpy. We also recommend using CloudCompare to inspect the data.

Make sure to flick through these two drop-down menus in the Properties window to display the labels where available. You can display original colour, class labels, and instance labels.

How to cite

If you find this dataset useful and would like to use it in your work, please cite the following paper:

@misc{uol2024laststraw,
   title = {{Lincoln's Annotated Spatio-Temporal Strawberry Dataset (LAST-Straw)}}, 
   author = {James, Katherine Margaret Frances and Heiwolt, Karoline and Sargent, Daniel James and Cielniak, Grzegorz},
   year = {2024},
   eprint = {2403.00566},
   archivePrefix = {arXiv},
   primaryClass = {cs.CV}
}