Recent Releases of AgML
AgML - AgML 0.7.4
This is a small release:
- Introduces a new dataset
soybean_insect_classification
. - Fixes an error with
peachpear_flower_segmentation
. - Adds some quality of life improvements to information messages printed by the library, including progress bars.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi 9 days ago

AgML - AgML 0.7.3
This release introduces the iNatAg dataset (and its companion dataset iNatAg-mini), one of the world's largest datasets of agricultural images. This introduces over 4.7 million images into AgML, across 2,900+ species.
You can load the iNatAg dataset with agml.data.AgMLDataLoader.from_parent('iNatAg')
, and specify various filters
to load specific subsets of specific species.
In addition, this release contains a couple of small bugfixes and updates.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi about 1 month ago

AgML - AgML 0.7.2
This is a relatively major release that introduces a significant number of new datasets into AgML, alongside various bugfixes and improvements.
New Datasets
The following new datasets have been introduced: embrapa_wgisd_grape_detection
, growliflower_cauliflower_segmentation
, strawberry_detection_2023
, strawberry_detection_2022
, almond_harvest_2021
, almond_bloom_2023
, gemini_flower_detection_2022
, gemini_leaf_detection_2022
, gemini_pod_detection_2022
, gemini_plant_detection_2022
, paddy_disease_classification
, onion_leaf_classification
, chilli_leaf_classification
, orange_leaf_disease_classification
, papaya_leaf_disease_classification
, blackgram_plant_leaf_disease_classification
, arabica_coffee_leaf_disease_classification
, banana_leaf_disease_classification
, coconut_tree_disease_classification
, rice_leaf_disease_classification
, tea_leaf_disease_classification
, betel_leaf_disease_classification
, java_plum_leaf_disease_classification
, sunflower_disease_classification
, and cucumber_disease_classification
. This is the largest individual release to-date of datasets. Specifically, 10+ datasets designed for disease classification have been introduced, alongside a variety of publicly-sourced object detection datasets.
Documentation
New documentation has been introduced for AgML. At the moment, it provides an interface for inspecting data online with ease, and will expand to include more information about library usage in general. Check out the documentation at: https://project-agml.github.io/AgML/index.html.
Major Updates
- The
agml.synthetic
API has been improved and is now tested to work on Windows, in addition to Mac and Linux. Breaking changes that had been introduced into Helios have now been integrated into the AgML API as well. - The Raditation API that is introduced in Helios, for more accurate and efficient synthetic data generation, has also been incorporated into AgML in an early stage.
Quality Changes
- New tools for testing and uploading datasets, as well as version management on PyPi have been introduced.
- Code quality has been improved throughout the library, improving readability.
More Detailed Information
- Dev by @amogh7joshi in https://github.com/Project-AgML/AgML/pull/58
- Add Radiation Project by @smbanx in https://github.com/Project-AgML/AgML/pull/59
- pyproject_toml and use uv to sync deps. by @lalmei in https://github.com/Project-AgML/AgML/pull/60
- feat/tests by @lalmei in https://github.com/Project-AgML/AgML/pull/61
- Add format and linter by @lalmei in https://github.com/Project-AgML/AgML/pull/62
- add documentaiton config init by @lalmei in https://github.com/Project-AgML/AgML/pull/63
- release draft fix by @lalmei in https://github.com/Project-AgML/AgML/pull/64
- docs:hot-fix by @lalmei in https://github.com/Project-AgML/AgML/pull/65
- fix lesser filter by @lalmei in https://github.com/Project-AgML/AgML/pull/67
- Feat/config test by @lalmei in https://github.com/Project-AgML/AgML/pull/68
- New Datasets [Feb 2025] by @naitikjain3071 in https://github.com/Project-AgML/AgML/pull/70
- AgML 0.7.1 Changes by @amogh7joshi in https://github.com/Project-AgML/AgML/pull/71
New Contributors
- @naitikjain3071 made their first contribution in https://github.com/Project-AgML/AgML/pull/70
Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.7.0...v0.7.2
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi 3 months ago

AgML - AgML 0.7.0
This is a major update to AgML that includes a new agml.models
API, new datasets, new tools, and a suite of bugfixes and improvements across the board.
Major Changes
- The
agml.models.Detector
API has been introduced. This API wraps the Ultralytics YOLO11 model (see ultralytics for more information) and provides an easy-to-use interface for training and inference with state-of-the-art object detection models.- Use
agml.models.Detector.train(loader, 'yolo_model')
to quickly train an AgML dataset using your choice of YOLO model - all right within the AgML API. - Use
agml.models.Detector.load('model_name')
to load a trained model easily, stored directly within the AgML local model repository. - Use
agml.models.Detector.load_benchmark('dataset_name', 'yolo_name')
to access a pre-trained agricultural object detection model from a set of available pretrained benchmarks. - Note: If you want fine-grained transfer learning and finetuning capabilities, use the standard
agml.models.DetectionModel
API, but theagml.models.Detector
API is a much more user-friendly quick-start for quick training and inference.
- Use
- We have added four new datasets:
tomato_ripeness_detection
: Object Detectioncorn_maize_leaf_disease
: Image Classificationtomato_leaf_disease
: Image Classificationvine_virus_photo_dataset
: Image Classification
- A new export tool has been added
agml.data.extensions.restructure_cvat_annotations
, that automatically reformats the exported COCO annotations from the CVAT tool into the format used in AgML. This increases AgML's interoperability with existing machine learning frameworks.
Major Bugfixes
- Helios compilation and execution is now fixed and works for Windows systems - Windows users can now use the
agml.synthetic
API to generate their own simulated data.
Other Changes and Improvements
- The documentation for AgML datasets has been improved to show more representative samples, and datasets without documentation now have theirs added.
- Improvements have been made to the
agml.data.ImageLoader
, and there is now a new methodagml.data.AgMLDataLoader.take_images()
which enables you to extract just the images from anAgMLDataLoader
, useful for inference and other image-only applications. - A bug which prevented saving and loading splits for object detection has been fixed: you can now load and save object detection data splits successfully.
- Some small errors with visualization have been fixed, including orientation and number of images in certain methods.
- The
agml.data.tools.convert_bbox_format
tool now has new formatsxyxy
andyxyx
which wrap longer strings, for ease of use.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi 6 months ago

AgML - AgML v0.6.2
This release introduces a new export tool for AgML datasets, various expansions to methods, and some bugfixes.
Major Changes
- A new method
agml.data.exporters.export_yolo()
has been added (alongside a companion wrapper to a dataset,loader.export_yolo()
), that enables exporting datasets to the Ultralytics YOLO format. The resulting datasets can be directly integrated in one line of code into Ultralytics/Darknet YOLO training pipelines, which augments AgML's object detection resources.
Improvements
- Splitting datasets, specifically with multi-dataset loaders, now works properly.
Bugfixes
- Added an
export_tensorflow()
method for multi-loaders, which was previously missing. - Updated Helios compilation instructions to be compatible with the C++17 standard needed for updated Helios versions.
- All example notebooks have been updated to be consistent with new AgML methods.
- AgML visualization methods now no longer double-display in Jupyter notebooks.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi 7 months ago

AgML - AgML 0.6.1
This is a small update.
- A new dataset
vegann_multicrop_presence_segmentation
has been added: this is the AgML-incorporation of the VegAnn dataset. - Fixed an issue with the class names in the
rangeland_weeds_australia
dataset: the awry "no_weeds" class has been removed and the dataset now follows the original specification of the DeepWeeds dataset. - A bug that prevented the storage/loading of custom splits has been fixed.
- A bug that cut off text when visualizing image classification data samples has been fixed.
Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.6.0...v0.6.1
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi 12 months ago

AgML - AgML 0.6.0
This release introduces tools for training custom agricultural machine learning models using AgML.
Main Changes
agml.models
- The
agml.models
API has been extended with new features for training, namely therun_training
method which enables quick training of image classification, semantic segmentation, and object detection models.- Simply instantiate a model with your number of classes, build an
AgMLDataLoader
with your data preprocessing, and pass it to therun_training
method alongside other training hyperparameters to train a model. - Choose your level of customizability: for newer users, options like optimizers, loss, and other hyperparameters are auto-selected, but for experienced users, you can go as far as extending the
training_step
,validation_step
, and other arguments for greater customizability over training.
- Simply instantiate a model with your number of classes, build an
Other Changes and Bugfixes
- A major bug which prevented recompliation of Helios without LiDAR has been fixed, enabling users to switch between using LiDAR-compiled Helios and standard Helios.
- A bug which caused Helios installation on basic inspection is now patched. Helios will no longer auto-install unless the
agml.synthetic
module is actively used for data generation. - You can now correctly display image samples when using
agml.viz.show_sample
with theimage_only
option. - Bugfixes have been done for
agml.models.metrics.Accuracy
andagml.models.metrics.MeanAveragePrecision
to ensure that they work with training.
Read the Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.5.2...v0.6.0
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 1 year ago

AgML - AgML 0.5.2
New Features and Bugfixes
- Added the ability to save and load data splits for individual datasets using
loader.save_split
andloader.load_split
. - Added the ability to load multiple datasets using a wildcard name instead of passing each individual dataset in a list (e.g., to load all of the apple detection datasets, use
apple_detection*
). - Use
agml.models.get_benchmark
to get benchmark information for a certain model trained on a certain dataset. - Fixed bugs with mAP calculation during training.
- Fixed bugs with image preprocessing for object detection and visualization of object detection predictions.
Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.5.1...v0.5.2
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 1 year ago

AgML - AgML 0.5.1
Main Changes
- Added a new dataset,
ghai_strawberry_fruit_detection
. - Added a new method
agml.io.read_image
for convenience. - Added the ability to generate both RGB & LiDAR data using the option
agml.synthetic.SimulationType.Both
.
Bugfixes and Updates
- You can now instantiate a collection of synthetic datasets by passing a list of them to the initialization of an
AgMLDataLoader
. - A bug which prevented the visualization of predictions when using a
SegmentationModel
has now been patched.
Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.5.0...v0.5.1
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi almost 2 years ago

AgML - AgML 0.5.0
This release introduces synthetic LiDAR data generation through Helios, a rework of the agml.viz
module with better functionality, and a number of new available datasets, amongst other features.
Major Changes
- The
agml.io
module has been added, with a few convenience functions for working with file and directory structures.- Currently available functions include
get_file_list
andget_dir_list
which also work with nested structures, as well asrecursive_dirname
,parent_path
, andrandom_file
.
- Currently available functions include
agml.data
- Three new datasets have been introduced:
- Object Detection:
ghai_iceberg_lettuce_detection
,ghai_broccoli_detection
- Image Classification:
riseholme_strawberry_classification_2021
- Object Detection:
- The
agml.data.ImageLoader
has been added, which is essentially a simple loader designed only for images.- Enables loading images from a nested directory structure.
- Enables easy resizing and transforms of the loaded images.
- The
AgMLDataLoader
now has a new methodshow_sample
which can be used to visualize samples from the dataset directly from the loader.
agml.synthetic
- LiDAR Data Generation: You can generate LiDAR-based synthetic data now, using
opt.simulation_type = agml.synthetic.SimulationType.LiDAR
. - You can recompile Helios with LiDAR enabled, as well as in parallel (for Linux and MacOS systems) using
recompile_helios(lidar_enabled = True)
andrecompile_helios(parallel = True)
[note that parallel compilation is enabled by default]. - A new loader
agml.synthetic.LiDARLoader
has been added, which can be used to load point clouds from a generated directory in the same format asImageLoader
, and can be used to get point clouds and visualize them.
agml.viz
- The entire
agml.viz
module has been reworked with new methods and a functional visualization backend which enables bothcv2
andmatplotlib
displays, depending on what the user desires. - The following is a mapping of the old functions to new functions:
visualize_images_and_labels
->show_images_and_labels
output_to_mask
->convert_mask_to_colored_image
overlay_segmentation_masks
->annotate_semantic_segmentation
visualize_image_and_mask
->show_image_and_mask
visualize_overlaid_masks
->show_image_and_overlaid_mask
visualize_image_mask_and_predicted
->show_semantic_segmentation_truth_and_prediction
annotate_bboxes_on_image
->annotate_object_detection
visualize_image_and_boxes
->show_image_and_boxes
visualize_real_and_predicted_bboxes
->show_object_detection_truth_and_prediction
visualize_images
->show_images
- To swap between viz backends, use
get_viz_backend
andset_viz_backend
. - In order to simply display an image, you can use
display_image
. - To visualize a point cloud (either in Open3D if installed, or matplotlib), use
show_point_cloud
.
Other Changes
- Major Change for New Users:
torch
,torchvision
, and other related modeling packages for theagml.models
package are no longer distributed with the AgML requirements -- you must install these on your own if you want to use them.
Minor/Functional Changes + Bugfixes
- Fixed backend swapping between TensorFlow and PyTorch when using clashing transforms.
- Added the ability to run prediction with a classification and a segmentation model without normalizing the input image using
model.predict(..., normalize = False)
. - Images no longer auto-show as matplotlib figures when using
agml.viz.show_*
methods, instead they are returned as image arrays and can be displayed in a desired format. - Improved access and setting of information in the backend
config.json
file, so information is not accidentally overwritten.
Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.4.7...v0.5.0
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi almost 2 years ago

AgML - AgML 0.4.7
Main Changes
- Introduced two new public object detection datasets from the Western Growers Global Harvest Automation Initiative (https://github.com/AxisAg/GHAIDatasets):
ghai_romaine_detection
, andghai_green_cabbage_detection
. - Added the ability to generate multiple different types of annotations when generating synthetic datasets with Helios.
Other Changes
- Fixed errors with different visualization utilities as well as synthetic data annotation conversions.
Full Changelog: https://github.com/Project-AgML/AgML/compare/v0.4.6...v0.4.7
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi about 2 years ago

AgML - AgML 0.4.6
Main Changes
- You can now manually generate synthetic data with Helios using your own C++ generation file and CMake parameters/XML style file, using the method
agml.synthetic.manual_generate_data
. This allows for a greater deal of customizability and control over how Helios is compiled, as well as which methods are being used. - A convenience method
agml.viz.show_sample
has been added which enables quick visualization of an image and its annotations: this works for all types of annotations, simply pass a loader as the argument.
Other Improvements
- If you want to overwrite files when generating synthetic data with the
HeliosDataGenerator
, you can now pass the argumentclear_existing_files = True
to thegenerate
method. - You can now compile Helios using the standard API in both the 'Release' and 'Debug' modes.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.4.5
This feature adds a couple of new features as well as bugfixes for the existing API.
Main Changes
- You can now use image classification models (
agml.models.ClassificationModel
) as image regression models by passingregression = True
upon instantiation. This drops the finalargmax
computation and returns the softmax regression values. - Pass a custom set of RGB values to
agml.viz.set_colormap
to use a custom colormap. - A new preprocessing function has been added to
agml.models.preprocessing
:agml.models.preprocessing.imagenet_preprocess
, which prepares images for input to an ImageNet-backend model (image classification, semantic segmentation).
Bugfixes
- The
MeanAveragePrecision
metric has been fixed, and no longer throws errors for empty predictions (or for early-stage training results). - Custom object detection datasets can now be auto-loaded and classes automatically inferred without throwing an error.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.4.4
This release introduces a number of updates and bugfixes.
Main Changes
agml.synthetic
- Helios compilation has now been optimized, meaning that canopy generation speed should be increased by 3 to 5 times.
- When using
HeliosOptions.camera.generate_positions()
, camera views are no longer angled by default.
agml.models
- The
agml.models.ClassificationModel
is now initialized withnum_classes
, rather than adataset
name. - For the
agml.models.SegmentationModel.predict()
method, a new argument,overlay
, has been added, which allows the resulting segmentation mask to be overlaid or displayed side-by-side.
agml.viz
- A new method has been added,
agml.viz.convert_figure_to_image()
, which converts the in-built Matplotlib figure when usingagml.viz
methods into an image array.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.4.3
This release contains additional bugfixes for Helios installation and compilation.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.4.2
This release fixes installation problems when installing Helios.
Bugfixes
- Helios will now auto-install when running any configuration or compilation methods, rather than throwing an installation error.
- The installation script which fetches Helios is now correctly included with the package.
Note: AgML v0.4.1 contains a partial fix of these errors, so please use this version instead. This GitHub release collapses v0.4.1 and v0.4.2 into a single release.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.4.0
This is the first release in the AgML v0.4.x cycle, introducing the agml.synthetic
module backed by the Helios API (https://baileylab.ucdavis.edu/software/helios/) for generating synthetic agricultural data.
API Changes
agml.synthetic
- Introduction of the
agml.synthetic
module. - Generate data using the
agml.synthetic.HeliosDataGenerator
.- Customize generated data, including task, environment, and canopy parameters, using
agml.synthetic.HeliosOptions
. - Convert data between the Helios and AgML formats automatically upon generation.
- Customize generated data, including task, environment, and canopy parameters, using
- Customize the compilation of Helios using
agml.synthetic.recompile_helios
. - Get default parameters and information using
agml.synthetic.available_canopies()
andagml.synthetic.default_canopy_parameters()
.
agml.data
- Load Helios-generated synthetic datasets using
agml.data.AgMLDataLoader.helios()
.
agml.viz
- Added new inspection methods for synthetic data:
agml.viz.plot_synthetic_camera_positions
creates a 3D plot from camera position and lookat vectors, to understand the geometry of the environment.agml.viz.vizualize_all_views
plots all of the views for a specific generated canopy.
agml.backend
- Similar to the methods for public datasets and models, synthetic datasets can be generated to a specific path by using
agml.backend.set_synthetic_save_path()
, and retrieved usingagml.backend.synthetic_save_path()
.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.3.0
This is the first release in AgML v0.3.x cycle, introducing the agml.models
module.
API Changes
agml.models
- Introduction of the
agml.models
module. To load the module, include animport agml.models
statement after the standardimport agml
. - Construct inference models for the following tasks:
- image classification:
agml.models.ClassificationModel
(using an EfficientNetB4 model) - semantic segmentation:
agml.models.SegmentationModel
(using a DeepLabV3 model) - object detection:
agml.models.DetectionModel
(using an EfficientDetD4 model)
- image classification:
- Use
model.predict
on an input data sample to get the prediction results, or usemodel.show_prediction
to visualize the prediction for semantic segmentation and object detection datasets. - Use
model.preprocess_input
to format inputs in the required format for each model. - Load a pretrained benchmark for an AgML public dataset using
model.load_benchmark
.- Currently available for semantic segmentation and object detection.
- Print information about the benchmark metric and training parameter using the
model.benchmark
property.
- Evaluate a model using standard metrics using
model.evaluate()
with anAgMLDataLoader
- Standard metric containers using the
agml.models.metrics
module: currently withAccuracy
for image classification andMeanAveragePrecision
for object detection. - Preprocessing pipelines using
agml.models.preprocessing
: currently withEfficientDetPreprocessor
for object detection models. - Standard loss functions with
agml.models.losses
: currently withDiceLoss
for semantic segmentation.
agml.data
- Load multiple datasets into a single
AgMLDataLoader
using the new Sequence API:agml.data.AgMLDataLoader([<d1>, <d2>])
. - Load custom datasets into an
AgMLDataLoader
usingagml.data.AgMLDataLoader.custom(<d>)
. - Merge two loaders into a single
AgMLDataLoader
usingagml.data.AgMLDataLoader.merge(<l1>, <l2>)
. - Copy the state of another
AgMLDataLoader
usingagml.data.AgMLDataLoader.copy_state(<d>)
. This copies the states of the internal managers, so the original loader will get the transforms, resizing, and training mode of the copied loader. - New Dataset Reduction Methods:
- Use
loader.take_random
to select a random number of data samples from the loader and return a new loader with this reduced number of samples. - Use
loader.take_class
on a multi-dataset object detectionAgMLDataLoader
to return a reduced loader containing all samples belonging to the specific class (or multiple classes). - Use
loader.take_dataset
on a multi-datasetAgMLDataLoader
to return one of the individual loaders in the collection.
- Use
- Preprocessing Changes:
- Select a custom method for image resizing using the
method
keyword argument inAgMLDataLoader.resize_images()
. - You can update whether the loader should be auto-shuffled internally through the
shuffle_data
property (set to True or False). - Semantic segmentation loaders now have an option
loader.mask_to_channel_basis
(the parallel ofloader.labels_to_one_hot
for image classification), which converts one-channel masks to multi-channel masks with each channel representing a binary mask for a class. - For multi-dataset object detection loaders, the
loader.generalize_class_detections
method generalizes all classes, thus resulting in the loader having only one-class (useful for localization-intensive tasks). - The
agml.data.convert_bbox_format
method now allows you to pass string formats, e.g.,pascal-voc
orefficientdet
: these get auto-expanded to the full bounding box format in the method itself.
- Select a custom method for image resizing using the
agml.backend
- Similar to the method for datasets, models can now be saved to a specific path using
agml.backend.set_model_save_path()
and this path can be retrieved usingagml.backend.model_save_path()
. - A new
agml.backend.experimental
module has been added for experimental features.- Currently, the first experimental feature is splitting already-split loaders, with
agml.backend.experimental.allow_nested_data_splitting()
.
- Currently, the first experimental feature is splitting already-split loaders, with
agml.viz
- New methods have been introduced which allow visualization of real and predicted samples:
- Visualize real and predicted bounding boxes with
agml.viz.visualize_real_and_predicted_boxes
. - Visualize an image with multiple sets of bounding boxes using
agml.viz.visualize_image_and_many_boxes
. - Visualize a real and predicted semantic segmentation mask with
agml.viz.visualize_image_mask_and_predicted
.
- Visualize real and predicted bounding boxes with
Behavior Changes
- The
AgMLDataLoader
now has a set of new properties (num_images
,num_classes
, etc). These are similar to the propertiesloader.info.num_images
,loader.images.num_classes
, etc., however, the properties directly on the loader reflect any changes applied to reduction methods.- For instance, if you call
loader.split()
, then the reducedloader.train_data
loader will have a reduced number ofloader.num_images
, whileloader.info.num_images
will continue to reflect the total number of images for the original dataset.
- For instance, if you call
- Dataset transforms are now tracked by their time of insertion; if you call
loader.transform()
twice, the transforms which are passed in the first call will be applied before those in the second call. - Any methods which use random operations (such as
loader.take_random
) now have an optionalrandom_state
keyword argument, which can be passed to control the random seed used for that method only. - All transformation methods now have an optional argument
add
which allows them to be disabled. - When converting an
AgMLDataLoader
into training mode, it now disables theauto
mode so that no inadvertent resizing is done unless the user explicitly requests it. - In all
agml.viz
methods, image arrays are auto-converted to 8-bit unsigned integer format before display. Additionally, theformat_image
method now takes an additional argumentmask
for preprocessing masks. - Array check methods now check for NumPy arrays and lists, before PyTorch tensors, before finally TensorFlow tensors: this prevents having to load in the full API for PyTorch/TensorFlow modules when unnecessary.
Other Bugfixes
- Bounding boxes for object datasets are now clipped at [0,
image_size
) on loading. - Exporting COCO datasets from a split
AgMLDataLoader
now returns the correct, reduced COCO JSON dictionary, rather than the entire dataset's COCO JSON. - Copying a loader or splitting it will now update all internal states; previously there was a chance the
TrainingManager
would have different resize/transform managers than the upper-levelDataManager
. - You can now download a list of datasets using
agml.data.download_public_dataset
. - When visualizing semantic segmentation masks with no class labels (e.g., a prediction with only zeros), now only the original image is displayed, rather than throwing an error.
- An error with namedtuples in local scopes which prevented
AgMLMetadata
from being serialized has been resolved.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.2.9
This release fixes a small breaking change, updating the AWS download URL for datasets.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 2 years ago

AgML - AgML 0.2.8
This release introduces three new semantic segmentation datasets:
peachpear_flower_segmentation
red_grapes_and_leaves_segmentation
white_grapes_and_leaves_segmentation
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi almost 3 years ago

AgML - AgML 0.2.7
This release introduces two new object detection datasets: plant_doc_detection
and wheat_head_counting
.
In addition, a number of fixes have been made to existing datasets:
plant_doc_classification
: Class names have been updated.fruit_detection_worldwide
: Class indexing has been redone from 1 instead of 0 (to fit the object detection standard).apple_detection_usa
: There was an issue where multiple images had the same ID, this has been fixed so each image has a unique ID.rice_seedling_segmentation
: Removed the redundant background class and re-indexed from 1.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi about 3 years ago

AgML - AgML 0.2.6
This is a bugfix-oriented release. The biggest new change is the removal of the cotton_seedling_counting
dataset.
Bugfixes
- Fixed an issue regarding splitting datasets using proportions (float values).
- Updated the number of images in
plant_seedlings_aarhus
to reflect the actual count. - Updated the error message displayed when accessing nonexistent metadata.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi about 3 years ago

AgML - AgML 0.2.5
This release adds three new datasets:
- Object Detection:
apple_detection_drone_brazil
andapple_detection_spain
. - Image Classification:
guava_disease_pakistan
.
It also fixes a bug which was preventing data serialization and splitting.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi about 3 years ago

AgML - AgML 0.2.4
This release adds three new object detection datasets: grape_detection_syntheticday
, grape_detection_californiaday
, and grape_detection_californianight
, as well as general bugfixes.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 3 years ago

AgML - AgML 0.2.3
This release adds a new dataset, autonomous_greenhouse_regression
, as well as general support for image regression datasets.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 3 years ago

AgML - AgML 0.2.2
This release provides some small updates and bugfixes.
Changes
agml.data
- Added calculated mean and standard deviation for all public datasets.
- Added a new
normalize_images()
method for theAgMLDataLoader
which automatically scales images to the 0-1 range and applies normalization. - Updated data splitting and fixed a number of bugs including creating copies of the original managers, correctly instantiating new
DataObject
s, and applying batching.
agml.backend
- Updated an instantiation bug which sometimes occurred when newly installing the module and generating the
config.json
.
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 3 years ago

AgML - AgML 0.2.1
This release reworks the AgMLDataLoader
internals and updates its compatibility with TensorFlow/PyTorch training pipelines.
Changes
agml.data
- Reworks the
AgMLDataLoader
architecture, removing the task-type-based subclasses and adding internal data management classes. - The
batch
,split
, andshuffle
methods can be used to perform different operations on the data within theAgMLDataLoader
itself. - The
transform
andresize_images
methods can be used to apply transforms to the data or resize the images to a specific size (or auto-resize the images smartly).- The new method
labels_to_one_hot
convert labels to one-hot-vectors for image classification tasks.
- The new method
- The
as_keras_sequence
andas_torch_dataset
methods (alongside thereset_preprocessing
,disable_preprocessing
, andeval
methods) enable theAgMLDataLoader
to be used for training and evaluation modes independently, and directly in TensorFlow/PyTorch pipelines. - The
export_contents
method exports the raw data mapping for the user to use outside ofagml
. - The
export_torch
andexport_tensorflow
methods convert the loader to atorch.utils.data.DataLoader
ortf.data.Dataset
, respectively.
agml.backend
- Added the capability to set a global path to save datasets, using
agml.backend.set_data_save_path
. Once run, this will change the path all datasets are downloaded to until it is either reset or changed back.
agml.viz
- Bugfixes and improved visualization for different types of input images (both normalized and unnormalized).
Consumption - Agriculture and Nutrition
- Python
Published by amogh7joshi over 3 years ago
