Table of Contents | ||||
---|---|---|---|---|
|
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 | ||
---|---|---|
|
...
data |
...
├── semifield-developed-images |
...
│ ├── NC_2022-07-27
|
...
│ │ ├── NC_2022-07-27.json │ │ │ │ │ |
...
├── autosfm │ |
...
│ │ ├── |
...
NC_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 |
...
│ │ │ └── ... |
...
|
...
│ │ │
|
...
│ │ |
...
├── |
...
plant-detections │ |
...
│ │ |
...
├── NC_1658926241. |
...
csv |
...
│ |
...
│ │ |
...
├── NC_1658926255. |
...
csv |
...
│ │ │ |
...
└── ... │ |
...
│ │ |
...
│ |
...
│ ├── |
...
metadata │ |
...
│ │ ├── NC_1658926241 |
...
.json |
...
│ │ |
...
|
...
│ |
...
|
...
├── NC_1658926255 |
...
. |
...
json
|
...
│ |
...
│ |
...
|
...
│ |
...
|
...
└── ... |
...
|
...
│ |
...
|
...
│ │
|
...
│ │ |
...
└── |
...
metamasks |
...
│ │ |
...
|
...
├── semantic_masks │ │ │ ├── NC_1658926241.png |
...
│ │ |
...
|
...
│ ├── NC_1658926255. |
...
png │ |
...
│ |
...
|
...
│ └── ... │ │ |
...
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
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 | ||
---|---|---|
| ||
{
"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",
...
"images/NC_1659709264.jpg",
"images/NC_1659715086.jpg",
"images/NC_1659706245.jpg"
],
"schema_version": "1.0"
} |
Code Block | ||
---|---|---|
| ||
{
"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",
...
"images/NC_1659709264.jpg",
"images/NC_1659715086.jpg",
"images/NC_1659706245.jpg"
],
"schema_version": "1.0"
} |
Images - general
blob_home
and data_root
- storage location information
batch_id
- unique batch identifier
image_id
- unique image id comprised of state abbreviation and UNIX timestamp
image_path
- Image filename with a single parent directory
plant_date
- plant date for entire batch. Does not account for replantings.
growth_stage
- estimated growth stage based on planting date
width
and height
- image height and width in pixels. May be downscaled as a result of autosfm; however, image in the “images”directory are full sized images. See fullres_width
and fullres_height
exif_meta
camera_info
cutout_ids
bboxes
fullres_height
fullres_width
fullres_width
...
language | json |
---|
...
└── instance_masks │ │ ├── NC_1658926241.png │ │ ├── NC_1658926255.png │ │ └── ... │ └── ... │ ├── semifield-cutouts │ ├── NC_2022-07-27 |
...
│ |
...
Images - Exif
Uses Exif-Py
pip install exifread
Technical tag information can be found here
Code Block | ||
---|---|---|
| ||
"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
camera_info
camera_location
pixel_width
& pixel_height
yaw
, pitch
, roll
focal_length
fov
is_scaleable
Code Block | ||
---|---|---|
| ||
"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
cutout_ids
Code Block | ||
---|---|---|
| ||
"cutout_ids": [
"NC_1658926241_0",
"NC_1658926241_1",
"NC_1658926241_2",
"NC_1658926241_3"
], |
Images - Bounding Boxes
Code Block | ||
---|---|---|
| ||
"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
...
language | json |
---|
...
│ ├── 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 |
...
|
...