Supplies dashboards to investigate datasets and training results. Dashboards are defined as classes, to show the dashboard use the .show() function on an dashboard instance.
INFO     - The mmdet config folder already exists. No need to downloaded it. Path : /home/frederik/.icevision/mmdetection_configs/mmdetection_configs-2.20.1/configs | icevision.models.mmdet.download_configs:download_mmdet_configs:17

Test data setup

import icedata
from pathlib import Path
test_data_dir = icedata.fridge.load_data()
test_class_map = icedata.fridge.class_map()
test_parser = icedata.fridge.parser(test_data_dir)
test_train_records, test_valid_records = test_parser.parse()
test_valid_record_dataset = BboxRecordDataset(test_valid_records, test_class_map)
test_train_record_dataset = BboxRecordDataset(test_train_records, test_class_map)
test_very_large_record_dataset = BboxRecordDataset(test_valid_records._records._list*10, test_class_map)
test_record_dataset_no_class_map = BboxRecordDataset(test_train_records)
test_data_path_instance_segmentation = icedata.pennfudan.load_data()
test_instance_segmentation_parser = icedata.pennfudan.parser(data_dir=test_data_path_instance_segmentation)
test_instance_segmentation_train_records, test_instance_segmentation_valid_records = test_instance_segmentation_parser.parse()
test_instance_segmentation_class_map = test_instance_segmentation_train_records[0].detection.class_map
test_instance_segmentation_valid_record_dataset = InstanceSegmentationRecordDataset(test_instance_segmentation_valid_records, test_instance_segmentation_class_map)
test_instance_segmentation_train_record_dataset = InstanceSegmentationRecordDataset(test_instance_segmentation_train_records, test_instance_segmentation_class_map)
test_instance_segmentation_very_large_record_dataset = InstanceSegmentationRecordDataset(test_instance_segmentation_valid_records._records._list*10, test_instance_segmentation_class_map)
test_instance_segmentation_record_dataset_no_class_map = InstanceSegmentationRecordDataset(test_instance_segmentation_train_records)

Object Detection

class ObjectDetectionDatasetOverview[source]

ObjectDetectionDatasetOverview(dataset:GenericDataset, height:int=500, width:int=500) :: DatasetOverview

Dataset overview for ObjectDetectionRecordDatasets

test_object_detection_overview = ObjectDetectionDatasetOverview(test_valid_record_dataset, width=1500, height=900)
test_object_detection_overview.show()

class ObjectDetectionDatasetComparison[source]

ObjectDetectionDatasetComparison(datasets:List[GenericDataset], height:int=500, width:int=500) :: DatasetComparison

Dataset comparison for ObjectDetectionRecordDatasets.

test_object_detection_comparison = ObjectDetectionDatasetComparison([test_valid_record_dataset, test_train_record_dataset], width=1700, height=700)
test_object_detection_comparison.show()

class ObjectDetectionDatasetGeneratorScatter[source]

ObjectDetectionDatasetGeneratorScatter(dataset, with_dataset_overview=True, width=500, height=500) :: DatasetGeneratorScatter

Dataset generator for ObjectDetectionRecordDatasets

test_dataset_generator = ObjectDetectionDatasetGeneratorScatter(test_valid_record_dataset, height=700, width=1000)
test_dataset_generator.show()

class ObjectDetectionDatasetGeneratorRange[source]

ObjectDetectionDatasetGeneratorRange(dataset, with_dataset_overview=True, width=500, height=500) :: DatasetGenerator

Dataset generator for ObjectDetectionRecordDatasets

test_dataset_generator = ObjectDetectionDatasetGeneratorRange(test_valid_record_dataset, height=700, width=1000)
test_dataset_generator.show()

class ObjectDetectionResultOverview[source]

ObjectDetectionResultOverview(dataset, height=700, width=1000) :: Dashboard

Result dashboard for instance segmentation results. Init tasks an InstanceSegmentationResultDataset

odrd = ObjectDetectionResultsDataset.load("test_data/object_detection_result_ds.dat")

# make sure the path in the df are correct
odrd.base_data["filepath"] = odrd.base_data["filepath"].apply(lambda x: str(test_data_dir).split(".icevision")[0] + ".icevision" + str(x).split(".icevision")[-1])

odrdash = ObjectDetectionResultOverview(odrd, width=1500)
odrdash.show()

Instance Segmentation

class InstanceSegmentationDatasetOverview[source]

InstanceSegmentationDatasetOverview(dataset:GenericDataset, height:int=500, width:int=500) :: ObjectDetectionDatasetOverview

Dataset overview for ObjectDetectionRecordDatasets

test_instance_segmentation_overview = InstanceSegmentationDatasetOverview(test_instance_segmentation_valid_record_dataset, width=1500, height=900)
test_instance_segmentation_overview.show()

class InstanceSegmentationDatasetComparison[source]

InstanceSegmentationDatasetComparison(datasets:List[GenericDataset], height:int=500, width:int=500) :: ObjectDetectionDatasetComparison

Dataset comparison for ObjectDetectionRecordDatasets.

test_instance_segmentation_comparison = InstanceSegmentationDatasetComparison([test_instance_segmentation_valid_record_dataset, test_instance_segmentation_train_record_dataset], width=1700, height=700)
test_instance_segmentation_comparison.show()

class InstanceSegmentationDatasetGeneratorScatter[source]

InstanceSegmentationDatasetGeneratorScatter(dataset, with_dataset_overview=True, width=500, height=500) :: DatasetGeneratorScatter

Dataset generator for InstanceSgementationRecordDatasets

test_instance_segmentation_dataset_generator = InstanceSegmentationDatasetGeneratorScatter(test_instance_segmentation_train_record_dataset, height=700, width=1000)
test_instance_segmentation_dataset_generator.show()

class InstanceSegmentationDatasetGeneratorRange[source]

InstanceSegmentationDatasetGeneratorRange(dataset, with_dataset_overview=True, width=500, height=500) :: DatasetGenerator

Dataset generator for InstanceSegmentationRecordDatasets

test_instance_segmentation_dataset_generator = InstanceSegmentationDatasetGeneratorRange(test_instance_segmentation_valid_record_dataset, height=700, width=1000)
test_instance_segmentation_dataset_generator.show()

class InstanceSegmentationResultOverview[source]

InstanceSegmentationResultOverview(dataset, height=700, width=1000) :: ObjectDetectionResultOverview

Result dashboard for instance segmentation results. Init tasks an InstanceSegmentationResultDataset

isrd = InstanceSegmentationResultsDataset.load("test_data/instance_segmentation_result_ds_valid.dat")
isrd = InstanceSegmentationResultsDataset(isrd.base_data.iloc[:10])
# make sure the path in the df are correct
isrd.base_data["filepath"] = isrd.base_data["filepath"].apply(lambda x: str(test_data_dir).split(".icevision")[0] + ".icevision" + str(x).split(".icevision")[-1])

isrdash = InstanceSegmentationResultOverview(isrd, width=1500)
isrdash.show()