Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 23 Next »

Upload, running the pipeline, and storage

Batch Upload

Benchbot operators manually upload batches to “upload” blob container.

Upload batches include images and metadata from a single location and capture period. Batches are named after location ID and date, for example, NC_2022-03-22.

Benchbot operators will manually upload (by dragging and dropping) batch folder into the “Uploads” blob container using Azure Storage Explorer.

Running the pipeline and storage

Blob containers are mounted to VM.

A cron job is scheduled to start the pipeline every N hours.

To avoid processing the same batch multiple times, new batches are selected using a batch log file.

The pipeline runs and stores data to temporary locations until complete.

While blob container do not technically use directories or “folders”, this project uses a pseudo-directory structure for organizing the multiple data products that are being created and updated. The temporary storage locations replicate the pseudo-directory structure used in blob containers.

After the pipeline finishes, the processed batch is logged to the batch log file.

Lastly, temporary batch data is moved permanently to the appropriate blob containers.

  • AutoSfM runs in a docker container

  • All code is written in Python 3.9

Pipeline

The pipeline includes seven main processes and places data in five temporary storage locations

Preprocessing

Raw images are preprocessed using color calibration card.

Mapping and Detection

AutoSfM

The AutoSfM process takes in developed images and ground control point metadata to create a global CRS. An orthomosaic, or collage of stitched images, and detailed camera reference information is generated, the latter being used to convert local image coordinates into global potting area locations.

For example, an image 2000 pixels high and 4000 pixels wide has a local center point at (1000, 2000), half its height and half its width, measure in pixel. Camera reference information allows us to convert this local center point to a geographical potting area location in meters, (1.23m, 4.56m) for example.

Detection

Object detection is performed to identify plant locations and create local bounding box coordinates. More detailed pixel wise segmentation is performed with the bounding box areas.

Detection results from 2022-03-11

Remap

Infers global bounding box positions using autoSfM camera reference information.

WHY?

The plant detection model only detect plants and cannot differentiate between species. However, to create species-level annotation, each bounding box detection needs a species label.

Species mapping: Species level detection for this project (24 species) is unrealistic at this early stage. When a user-defined species map and geospatial data are applied, AutoSfM results can provide specie level information. If we know what row or general geographic area these species are located, then we can label each bounding box appropriately.

Unique detection result: Provides unique (primary) bounding box information. The benchbot is taking 6 images along a single row of 4 pots. These images overlap considerably and the same plant is often detected, and thus segmented, multiple times at different angles. While multiple angles are good, its important to identify the unique, or primary detection result (when the camera is directly over the plants). Doing so allows us to:

  1. maximize synthetic image diversity and avoid using the same plant segment (albeit at slightly different angles) multiple times.

  2. us monitor and understand the distribution of primary vs non-primary data for training models. A dataset with many non-unique duplicates, while large, will not be diverse and will lead to poor model performance.

  3. Lastly, being able to identify unique plant/pot position allows us to monitor individual plants throughout their growth

Monitoring: Monitor for inconsistencies and error in image capture across sites using detailed reporting of camera reference information

Segment Vegetation and Cutout Data

Developed images are passed through the segmentation pipeline that separates vegetation from background. Vegetation is segmented using a combination of digital image processing techniques including index thresholding, unsupervised classification, and morphological operations.

Process Bounding Box Area

  • Crop image to bbox

  • Multiply VI by some factor X

  • Perform unsupervised classification

  • Apply combination of morphological opening and closing operations

  • Resulting cutout

Separate Components


  • No labels