Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel2

Directory Structure

Processing occurs within the main SemiF-AnnotationPipeline repository which used for temporary data storage. Resulting data for each batch is then moved to the respective permanent blob locations.

Various types of data are used and produced during processing. Full resolution images are the main data input and are processed to produce plant segments, or cutouts, various types of masks, and metadata products for both original images and cutouts. This section describes how this is data structured, details its contents, and documents Image and Cutout metadata at length.

Directory Structure

Code Block
languagenone
SemiF-AnnotationPipeline
  └── data
      ├── semifield-developed-images
   
  │   ├── NC_2022-07-27

     │   │   ├── NC_2022-07-27.json
  │   │   
  │   │   ├── autosfm
  │     │   │   ├── autosfmNC_2022-07-27_preview.png
      │   │   │   ├── detections.csv
   
  │   │   │   ├── dem

     │   │   │   │   └── dem.tif
 
    │   │   │   ├── downscaled_photos
  
   │   │   │   │   ├── NC_1658926241.png
   
  │   │   │   │   ├── NC_1658926255.png
   
  │   │   │   │   └── ...

     │   │   │   ├── downscaled_masks
 
    │   │   │   │   ├── NC_1658926241_mask.png
  
   │   │   │   │   ├── NC_1658926255_mask.png
   
  │   │   │   │   └── ...
   
  │   │   │   ├── ortho

     │   │   │   │   └── orthomosaic.tif
 
    │   │   │   ├── project
  
   │   │   │   │   ├── NC_2022-07-27.psx
   
  │   │   │   │   └── NC_2022-07-27.files
   
  │   │   │   └── reference

     │   │   │       ├── camera_reference.csv
 
    │   │   │       ├── error_statistic.csv
  
   │   │   │       ├── fov.csv
   
  │   │   │       └──gcp_reference.csv
      │   │   │
      │   │   ├── images
 
    │   │   │   ├── NC_1658926241.png
  
   │   │   │   ├── NC_1658926255.png
   
  │   │   │   └── ...
   
  │   │   │

     │   │   ├── masks
 
    │   │   │   ├── NC_1658926241_mask.png
  
   │   │   │   ├── NC_1658926255_mask.png
   
  │   │   │   └── ...
      │   │   │
      │   │   └──├── metadataplant-detections
  │      │   │       ├── NC_1658926241.jsoncsv
  │      │   │       ├── NC_1658926255.jsoncsv
      │   │       └── ...
  │      │   │
      │   └── ...
      │
      ├── semifield-cutouts
      │   ├── NC_2022-07-27
  metadata
   │   │   ├── NC_1658926241_0.png
      │   │   ├── NC_1658926241_0.json
   
  │   │   ├── NC_1658926241_1.png
      │   │   ├── NC_1658926241_1.json
      │   ├── NC_1658926255_0.png
      │   │   ├── NC_1658926255_0.json

     │   │   └── ...
      │   └── ...
      
      ├── semifield-models
      │   └── plant_detector
      │       └── best.pt
      │
      ├── semifield-upload-images
      │   └── ...
      │
      └── semifield-utils
          ├── MD
  
       │   ├── shapefiles
          │   │ 
 │   ├── MD.shp
          │   │   └── ...
       metamasks
  │   │   └── GroundControlPoints.csv   ├── semantic_masks
  │   │       │   ├── NC_1658926241.png
          │   ├── shapefiles
          │  │   │       │   ├── NC_1658926255.shppng
  │       │        │   └── ...
  │   │         │   └── GroundControlPoints.csv                            
          └── species_info.json
          

Metadata

Batches

blob_home and data_root - storage location information

batch_id - unique batch identifier

upload_datetime - when image were uploaded to “uploads” blob storage

image_list - list of images contained in a single batch folder

schema_version - version of data schema used for organizing metadata

Code Block
languagejson
{
    "blob_home": "data",
    "data_root": "semifield-developed-images",
    "batch_id": "NC_2022-08-05",
    "upload_datetime": "2022-08-19_21:28:37",
    "image_list": [
        "images/NC_1659710908.jpg",
        "images/NC_1659711200.jpg",
        "images/NC_1659706234.jpg",
           └── instance_masks
  │   │           ├── NC_1658926241.png
  │   │           ├── NC_1658926255.png
  │   │           └── ...  
     └── "images/NC_1659709264.jpg",
        "images/NC_1659715086.jpg",
        "images/NC_1659706245.jpg"
  
     ],
    "schema_version": "1.0"
}

Images - general

...

languagejson

...

├── semifield-cutouts
  │   ├── NC_2022-07-27

...


  │   

...

Images - Exif

Code Block
languagejson
    "exif_meta": {
        "ImageWidth": 9560,
        "ImageLength": 6368,
        "BitsPerSample": 8,
        "Compression": 1,
        "PhotometricInterpretation": 2,
        "Make": "SONY",
        "Model": "ILCE-7RM4",
        "Orientation": 1,
        "SamplesPerPixel": 3,
        "XResolution": "300",
        "YResolution": "300",
        "PlanarConfiguration": 1,
        "ResolutionUnit": 2,
        "Software": "RawTherapee 5.8",
        "DateTime": "2022:07:27 08:49:15",
        "Rating": 0,
        "ExifOffset": 4449,
        "ExposureTime": "1/200",
        "FNumber": "10",
        "ExposureProgram": 1,
        "ISOSpeedRatings": 100,
        "RecommendedExposureIndex": 100,
        "ExifVersion": [
            48,
            50,
            51,
            49
        ],
        "DateTimeOriginal": "2022:07:27 08:49:15",
        "DateTimeDigitized": "2022:07:27 08:49:15",
        "BrightnessValue": "9207/1280",
        "ExposureBiasValue": "0",
        "MaxApertureValue": "217/128",
        "MeteringMode": 5,
        "LightSource": 0,
        "Flash": 16,
        "FocalLength": "55",
        "FileSource": 3,
        "SceneType": 1,
        "CustomRendered": 0,
        "ExposureMode": 1,
        "WhiteBalance": 0,
        "DigitalZoomRatio": "1",
        "FocalLengthIn35mmFilm": 55,
        "SceneCaptureType": 0,
        "Contrast": 0,
        "Saturation": 0,
        "Sharpness": 0,
        "LensSpecification": [
            "55",
            "55",
            "9/5",
            "9/5"
        ],
        "LensModel": "FE 55mm F1.8 ZA",
        "BodySerialNumber": null,
        "MakerNote": null,
        "ImageDescription": "                               ",
        "UserComment": null,
        "ApplicationNotes": null,
        "Tag": null,
        "SubIFDs": 4450
    }

Images - Camera Info

Code Block
languagejson
    "camera_info": {
        "camera_location": [
            -0.1992725638544925,
            9.926811159768054,
            2.130928709515993
        ],
        "pixel_width": 0.0075333198937023,
        "pixel_height": 0.0075333198937023,
        "yaw": 183.89777711639093,
        "pitch": -2.3366362127596525,
        "roll": 0.7135915032770658,
        "focal_length": 8747.80961719926,
        "fov": {
            "top_left": [
                -0.8064812117393512,
                10.27414293412319
            ],
            "top_right": [
                0.3552128560424488,
                10.353294011316107
            ],
            "bottom_left": [
                -0.7537579837514339,
                9.50032830822
            ],
            "bottom_right": [
                0.4079360840303661,
                9.579479385412917
            ],
            "is_scaleable": true
        }
    }

Images - Cutouts

Code Block
languagejson
"cutout_ids": [
        "NC_1658926241_0",
        "NC_1658926241_1",
        "NC_1658926241_2",
        "NC_1658926241_3"
    ],

Images - Bounding Boxes

Code Block
languagejson
"bboxes": [
        {
            "bbox_id": "NC_1658926241_0",
            "image_id": "NC_1658926241",
            "local_centroid": [
                0.7247684299945831,
                0.782112181186676
            ],
            "local_coordinates": {
                "top_left": [
                    4559.100573062897,
                    3592.980739593506
                ],
                "top_right": [
                    9298.47180843353,
                    3592.980739593506
                ],
                "bottom_left": [
                    4559.100573062897,
                    6368.0
                ],
                "bottom_right": [
                    9298.47180843353,
                    6368.0
                ],
                "is_scaleable": true
            },
            "global_centroid": [
                -0.3805987383493097,
                10.21634506227248
            ],
            "global_coordinates": {
                "top_left": [
                    -0.1245738268094071,
                    10.015139374543459
                ],
                "top_right": [
                    -0.7303918468219674,
                    10.11728321515172
                ],
                "bottom_left": [
                    -0.07889030276824338,
                    10.4175507500015
                ],
                "bottom_right": [
                    -0.682307173930376,
                    10.458062046757698
                ],
                "is_scaleable": true
            },
            "cls": {
                "scientific_name": "Amaranthus palmeri",
                "common_name": "Palmer amaranth",
                "USDA_symbol": "AMPA",
                "EPPO": "AMAPA",
                "authority": "Watson",
                "collection_location": "NC",
                "polygon_id": ""
            },
            "is_primary": false,
            "overlapping_bbox_ids": []
        },
      
        {
            ...
        }
        
    ],
          

Cutouts

...

languagejson

...

│   ├── NC_1658926241_0.png
  │   │   ├── NC_1658926241_0.json
  │   │   ├── NC_1658926241_0.jpg
  │   │   ├── NC_1658926241_0_mask.png
  │   │   └── ...
  │   └── ...
  │
  └── semifield-utils
      ├── MD
      │   ├── shapefiles
      │   │   │   ├── MD.shp
      │   │   │   └── ...
      │   │   └── GroundControlPoints.csv 
      ├── NC
      │   ├── shapefiles
      │   │   ├── NC.shp
      │   │   └── ...
      │   └── GroundControlPoints.csv         

...

 

...

         

...

 

...

        

...

 

...

     

...

└── species_info.json
      

...

    

...


...