mblt-vision-python 0.0.0__tar.gz → 0.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/PKG-INFO +15 -1
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/README.md +14 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/__init__.py +1 -1
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/val.py +3 -4
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/readiness.py +44 -50
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_nyu_depth.py +25 -18
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_widerface.py +40 -11
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/base.py +6 -2
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_anchor_post.py +25 -5
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_anchorless_post.py +57 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_dflfree_post.py +37 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_nmsfree_post.py +97 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/PKG-INFO +15 -1
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_benchmark_vision.py +34 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_dataset_readiness.py +56 -22
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_coco.py +45 -35
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_nyu_depth.py +12 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_widerface.py +31 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_postprocess_hierarchy.py +303 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/LICENSE +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_api.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_compat.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_model_paths.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_tasks.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/argparse_utils.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/chart_utils.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/io_utils.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/summary_utils.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/__main__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/_vision.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/compile.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/main.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/predict.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/compile/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/compile/vision.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/ade20k.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/cityscapes.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/coco.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/dotav1.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/imagenet.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/imagenet_synsets.txt +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/nyu-depth.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/registry.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/widerface.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/depth_estimation/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/face_detection/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/image_classification/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/instance_segmentation/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/AlexNet.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_B36.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_M36.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_S18.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_S36.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CoAtNet_0_RW_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CoAtNet_1_RW_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CoAtNet_2_RW_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_B36.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_M36.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_S18.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_S36.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Base.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Large.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Small.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Tiny.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Base_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Base_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Large_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Large_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Medium_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Small_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Small_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Base_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Base_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Small_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Tiny_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet121.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet161.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet169.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet201.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientFormer_L1.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientFormer_L3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientFormer_L7.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B0.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B1.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B2.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B4.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B5.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B7.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_V2_L.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_V2_M.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_V2_S.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/FlexiVit_Base.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/FlexiVit_Large.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/FlexiVit_Small.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANc-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANc.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANe.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANm.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANs.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GoogLeNet.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Inception_V3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_128.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_128S.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_192.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_256.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet0_5.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet0_75.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet1_0.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet1_3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MobileNet_V2.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MobileNet_V3_Large.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MobileNet_V3_Small.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_16GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_1_6GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_32GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_3_2GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_400MF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_800MF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_8GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_16GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_1_6GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_32GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_3_2GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_400MF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_800MF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_8GF.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M0_9.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1_0.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1_1.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1_5.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M2.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M2_3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNeXt101_32X8D.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNeXt101_64X4D.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNeXt50_32X4D.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet101.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet152.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet18.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet34.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet50.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X0_5.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X1_0.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X1_5.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X2_0.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/SqueezeNet1_0.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/SqueezeNet1_1.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Swin_B.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Swin_S.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Swin_T.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG11.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG11_BN.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG13.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG13_BN.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG16.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG16_BN.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG19.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG19_BN.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_B_16.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_B_32.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch32_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch32_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch8_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_L_16.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_L_32.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Large_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Large_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Large_Patch32_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch32_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch32_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Tiny_Patch16_224.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Tiny_Patch16_384.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VisFormer_Small.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VisFormer_Tiny.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Wide_ResNet101_2.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Wide_ResNet50_2.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12l-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12l-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12l.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12m-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12m-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12n-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12n-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12n.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12s-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12s-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12x-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-depth.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-distill.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-sem-ade20k.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-sem.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-depth.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-distill.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-sem-ade20k.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-sem.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-depth.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-distill.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-sem-ade20k.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-sem.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-depth.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-distill.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-sem-ade20k.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-sem.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-depth.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-distill.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-sem-ade20k.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-sem.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10b.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10l-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10l.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10m-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10n-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10n.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10s-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-spp.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-sppu.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-tiny.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-tinyu.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3u.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l6u.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5lu.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m6u.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5mu.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n6u.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5nu.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s6u.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5su.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x6u.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5xu.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv6m-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv6n-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7d6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7e6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7e6e.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7w6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-face.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-cls.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-obb.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-pose-p6.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-pose.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9c-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9c.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9e-seg.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9e.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9m.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9s.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9t.yaml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/obb/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/object_detection/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/pose_estimation/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/py.typed +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/semantic_segmentation/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/ade20k.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/cityscapes.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/coco.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/dataloader.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/dotav1.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/imagenet.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/organizer.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/_result.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_ade20k.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_cityscapes.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_coco.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_dota.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_imagenet.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/letterbox.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/_letterbox.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/build_post.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/cls_post.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/common.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/depth_post.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/semantic_seg_post.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/__init__.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/_validation.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/base.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/build_pre.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/center_crop.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/letterbox.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/normalize.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/order.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/reader.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/resize.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/yolo_pre.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/results.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/types.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/wrapper.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/SOURCES.txt +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/dependency_links.txt +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/entry_points.txt +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/requires.txt +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/top_level.txt +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/pyproject.toml +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/setup.cfg +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_api.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_cli.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_compile_vision.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_dataloader.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_dataset_organizer.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_depth_estimation.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_dota.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_imagenet.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_face_detection.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_model_aliasing.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_model_metadata.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_mxq_inference.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_onnx_classification.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_onnx_yolo.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_preprocess_validation.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_results.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_semantic_segmentation.py +0 -0
- {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_wrapper.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mblt-vision-python
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.2
|
|
4
4
|
Summary: Mobilint NPU vision models: classification, detection, segmentation, pose
|
|
5
5
|
Author: Mobilint
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -44,6 +44,16 @@ Dynamic: license-file
|
|
|
44
44
|
|
|
45
45
|
# Mobilint Vision Python
|
|
46
46
|
|
|
47
|
+
<!-- markdownlint-disable MD033 -->
|
|
48
|
+
<div align="center">
|
|
49
|
+
<p>
|
|
50
|
+
<a href="https://www.mobilint.com/" target="_blank">
|
|
51
|
+
<img src="https://raw.githubusercontent.com/mobilint/.github/main/assets/Mobilint_Logo_Primary.png" alt="Mobilint Logo" width="60%">
|
|
52
|
+
</a>
|
|
53
|
+
</p>
|
|
54
|
+
</div>
|
|
55
|
+
<!-- markdownlint-enable MD033 -->
|
|
56
|
+
|
|
47
57
|
Run pre-trained Mobilint Vision models from Python. `mblt-vision-python` provides
|
|
48
58
|
model configuration, artifact loading, preprocessing, inference integration, and
|
|
49
59
|
typed postprocessing results for image classification, depth estimation, face and
|
|
@@ -54,6 +64,10 @@ Version `0.0.0` is the initial standalone release.
|
|
|
54
64
|
|
|
55
65
|
## Installation
|
|
56
66
|
|
|
67
|
+
[](https://pypi.org/project/mblt-vision-python/)
|
|
68
|
+
[](https://clickpy.clickhouse.com/dashboard/mblt-vision-python)
|
|
69
|
+
[](https://pypi.org/project/mblt-vision-python/)
|
|
70
|
+
|
|
57
71
|
```bash
|
|
58
72
|
pip install mblt-vision-python
|
|
59
73
|
```
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Mobilint Vision Python
|
|
2
2
|
|
|
3
|
+
<!-- markdownlint-disable MD033 -->
|
|
4
|
+
<div align="center">
|
|
5
|
+
<p>
|
|
6
|
+
<a href="https://www.mobilint.com/" target="_blank">
|
|
7
|
+
<img src="https://raw.githubusercontent.com/mobilint/.github/main/assets/Mobilint_Logo_Primary.png" alt="Mobilint Logo" width="60%">
|
|
8
|
+
</a>
|
|
9
|
+
</p>
|
|
10
|
+
</div>
|
|
11
|
+
<!-- markdownlint-enable MD033 -->
|
|
12
|
+
|
|
3
13
|
Run pre-trained Mobilint Vision models from Python. `mblt-vision-python` provides
|
|
4
14
|
model configuration, artifact loading, preprocessing, inference integration, and
|
|
5
15
|
typed postprocessing results for image classification, depth estimation, face and
|
|
@@ -10,6 +20,10 @@ Version `0.0.0` is the initial standalone release.
|
|
|
10
20
|
|
|
11
21
|
## Installation
|
|
12
22
|
|
|
23
|
+
[](https://pypi.org/project/mblt-vision-python/)
|
|
24
|
+
[](https://clickpy.clickhouse.com/dashboard/mblt-vision-python)
|
|
25
|
+
[](https://pypi.org/project/mblt-vision-python/)
|
|
26
|
+
|
|
13
27
|
```bash
|
|
14
28
|
pip install mblt-vision-python
|
|
15
29
|
```
|
|
@@ -439,10 +439,9 @@ def _run_validation(args: argparse.Namespace) -> float:
|
|
|
439
439
|
)
|
|
440
440
|
print(
|
|
441
441
|
"Validation score "
|
|
442
|
-
f"(
|
|
443
|
-
f"(Medium AP): {widerface_result.medium_ap:.5f}, "
|
|
444
|
-
f"(
|
|
445
|
-
f"(Mean AP): {widerface_result.mean_ap:.5f}"
|
|
442
|
+
f"(Hard AP, primary): {widerface_result.hard_ap:.5f}, "
|
|
443
|
+
f"(Medium AP, secondary): {widerface_result.medium_ap:.5f}, "
|
|
444
|
+
f"(Easy AP, secondary): {widerface_result.easy_ap:.5f}"
|
|
446
445
|
)
|
|
447
446
|
return widerface_result.primary_score
|
|
448
447
|
|
{mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/readiness.py
RENAMED
|
@@ -120,6 +120,27 @@ def _has_positive_polygon_area(polygon: list[int | float]) -> bool:
|
|
|
120
120
|
return bool(abs(signed_double_area) > 0)
|
|
121
121
|
|
|
122
122
|
|
|
123
|
+
def _polygon_union_has_rasterized_foreground(
|
|
124
|
+
polygons: list[list[int | float]], image_shape: tuple[int, int] | None
|
|
125
|
+
) -> bool:
|
|
126
|
+
"""Return whether the combined COCO polygons rasterize to foreground.
|
|
127
|
+
|
|
128
|
+
COCO polygons describe one instance as a union. Individual components can
|
|
129
|
+
be thinner than a pixel (as occurs in the official validation annotations),
|
|
130
|
+
so only the combined raster needs to contain foreground.
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
if image_shape is None:
|
|
134
|
+
return False
|
|
135
|
+
height, width = image_shape
|
|
136
|
+
try:
|
|
137
|
+
encoded = coco_mask.frPyObjects(polygons, height, width)
|
|
138
|
+
decoded = np.asarray(coco_mask.decode(encoded))
|
|
139
|
+
except (RuntimeError, TypeError, ValueError):
|
|
140
|
+
return False
|
|
141
|
+
return bool(np.any(decoded))
|
|
142
|
+
|
|
143
|
+
|
|
123
144
|
def _canonicalize_quadrilateral(
|
|
124
145
|
coordinates: list[int | float] | tuple[int | float, ...],
|
|
125
146
|
) -> tuple[float, ...]:
|
|
@@ -406,27 +427,32 @@ def _coco_task_annotations_valid(
|
|
|
406
427
|
or iscrowd not in {0, 1}
|
|
407
428
|
):
|
|
408
429
|
return False
|
|
409
|
-
if task == "pose_estimation" and area > bbox[2] * bbox[3]:
|
|
430
|
+
if task == "pose_estimation" and not iscrowd and area > bbox[2] * bbox[3]:
|
|
410
431
|
return False
|
|
411
432
|
if task == "instance_segmentation":
|
|
412
433
|
segmentation = record.get("segmentation")
|
|
413
434
|
if isinstance(segmentation, list):
|
|
414
|
-
if
|
|
415
|
-
not
|
|
416
|
-
or len(polygon) < 6
|
|
417
|
-
or len(polygon) % 2
|
|
435
|
+
if (
|
|
436
|
+
not segmentation
|
|
418
437
|
or any(
|
|
419
|
-
not isinstance(
|
|
420
|
-
or
|
|
421
|
-
or
|
|
422
|
-
|
|
438
|
+
not isinstance(polygon, list)
|
|
439
|
+
or len(polygon) < 6
|
|
440
|
+
or len(polygon) % 2
|
|
441
|
+
or any(
|
|
442
|
+
not isinstance(value, (int, float))
|
|
443
|
+
or isinstance(value, bool)
|
|
444
|
+
or not np.isfinite(value)
|
|
445
|
+
for value in polygon
|
|
446
|
+
)
|
|
447
|
+
or not _has_positive_polygon_area(polygon)
|
|
448
|
+
or not _polygon_has_positive_image_overlap(
|
|
449
|
+
polygon, image_shapes.get(image_id)
|
|
450
|
+
)
|
|
451
|
+
for polygon in segmentation
|
|
423
452
|
)
|
|
424
|
-
or not
|
|
425
|
-
|
|
426
|
-
polygon, image_shapes.get(image_id)
|
|
453
|
+
or not _polygon_union_has_rasterized_foreground(
|
|
454
|
+
segmentation, image_shapes.get(image_id)
|
|
427
455
|
)
|
|
428
|
-
or not _valid_coco_polygon(polygon, image_shapes.get(image_id))
|
|
429
|
-
for polygon in segmentation
|
|
430
456
|
):
|
|
431
457
|
return False
|
|
432
458
|
elif isinstance(segmentation, dict):
|
|
@@ -545,22 +571,6 @@ def _valid_coco_rle(
|
|
|
545
571
|
return decoded.shape == tuple(size) and bool(np.any(decoded))
|
|
546
572
|
|
|
547
573
|
|
|
548
|
-
def _valid_coco_polygon(
|
|
549
|
-
polygon: list[int | float], image_shape: tuple[int, int] | None
|
|
550
|
-
) -> bool:
|
|
551
|
-
"""Require a COCO polygon to rasterize to foreground in its image."""
|
|
552
|
-
|
|
553
|
-
if image_shape is None:
|
|
554
|
-
return True
|
|
555
|
-
height, width = image_shape
|
|
556
|
-
try:
|
|
557
|
-
encoded = coco_mask.frPyObjects([polygon], height, width)
|
|
558
|
-
decoded = np.asarray(coco_mask.decode(encoded))
|
|
559
|
-
except (RuntimeError, TypeError, ValueError):
|
|
560
|
-
return False
|
|
561
|
-
return bool(np.any(decoded))
|
|
562
|
-
|
|
563
|
-
|
|
564
574
|
def _coco_ready(root: Path, task: str) -> bool:
|
|
565
575
|
"""Check the complete COCO 2017 image split and task annotation metadata."""
|
|
566
576
|
|
|
@@ -734,24 +744,12 @@ def _widerface_difficulty_metadata_ready(
|
|
|
734
744
|
or not np.issubdtype(face_array.dtype, np.number)
|
|
735
745
|
or np.issubdtype(face_array.dtype, np.complexfloating)
|
|
736
746
|
or not np.isfinite(face_array).all()
|
|
737
|
-
or (face_array[:, 2:] <= 0).any()
|
|
738
|
-
or len(np.unique(face_array, axis=0)) != len(face_array)
|
|
739
747
|
):
|
|
740
748
|
return False
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
or width <= 0
|
|
746
|
-
or not (
|
|
747
|
-
(face_array[:, 0] < width)
|
|
748
|
-
& (face_array[:, 0] + face_array[:, 2] > 0)
|
|
749
|
-
& (face_array[:, 1] < height)
|
|
750
|
-
& (face_array[:, 1] + face_array[:, 3] > 0)
|
|
751
|
-
).all()
|
|
752
|
-
):
|
|
753
|
-
return False
|
|
754
|
-
face_counts.append(len(face_array))
|
|
749
|
+
no_face_sentinel = face_array.shape == (1, 4) and not bool(
|
|
750
|
+
np.any(face_array)
|
|
751
|
+
)
|
|
752
|
+
face_counts.append(0 if no_face_sentinel else len(face_array))
|
|
755
753
|
for difficulty_index, table in enumerate(difficulties):
|
|
756
754
|
try:
|
|
757
755
|
event_indices = table[event_index][0]
|
|
@@ -990,10 +988,6 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool:
|
|
|
990
988
|
and all(
|
|
991
989
|
path.suffix.lower() in {".jpg", ".jpeg"} for path in images.values()
|
|
992
990
|
)
|
|
993
|
-
and all(
|
|
994
|
-
not (root / file_name).is_symlink() and (root / file_name).is_file()
|
|
995
|
-
for file_name in ADE20K_METADATA_FILES
|
|
996
|
-
)
|
|
997
991
|
)
|
|
998
992
|
if normalized == "cityscapes":
|
|
999
993
|
city_counts: dict[str, int] = {}
|
{mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_nyu_depth.py
RENAMED
|
@@ -31,27 +31,33 @@ class NYUDepthResult:
|
|
|
31
31
|
|
|
32
32
|
@property
|
|
33
33
|
def secondary_score(self) -> float:
|
|
34
|
-
"""Return
|
|
34
|
+
"""Return abs_rel for singular-score compatibility."""
|
|
35
35
|
|
|
36
36
|
return self.abs_rel
|
|
37
37
|
|
|
38
|
+
@property
|
|
39
|
+
def secondary_scores(self) -> tuple[float, float]:
|
|
40
|
+
"""Return abs_rel and RMSE in secondary-metric order."""
|
|
41
|
+
|
|
42
|
+
return self.abs_rel, self.rmse
|
|
43
|
+
|
|
38
44
|
|
|
39
45
|
class NYUDepthMetricAccumulator:
|
|
40
|
-
"""Accumulate median-aligned metrics
|
|
46
|
+
"""Accumulate median-aligned metrics with equal weight for each image."""
|
|
41
47
|
|
|
42
48
|
MIN_DEPTH = 0.001
|
|
43
49
|
MAX_DEPTH = 100.0
|
|
44
50
|
|
|
45
51
|
def __init__(self) -> None:
|
|
46
|
-
"""Initialize zero-valued
|
|
52
|
+
"""Initialize zero-valued per-image metric sums."""
|
|
47
53
|
|
|
48
54
|
self.delta1_sum = 0.0
|
|
49
55
|
self.abs_rel_sum = 0.0
|
|
50
|
-
self.
|
|
51
|
-
self.
|
|
56
|
+
self.rmse_sum = 0.0
|
|
57
|
+
self.valid_sample_count = 0
|
|
52
58
|
|
|
53
59
|
def update(self, prediction: np.ndarray, target: np.ndarray) -> None:
|
|
54
|
-
"""Median-align one prediction and add its
|
|
60
|
+
"""Median-align one prediction and add its per-image metric values."""
|
|
55
61
|
|
|
56
62
|
prediction = _as_real_float32(prediction, "prediction")
|
|
57
63
|
target = _as_real_float32(target, "target")
|
|
@@ -66,8 +72,7 @@ class NYUDepthMetricAccumulator:
|
|
|
66
72
|
valid = (
|
|
67
73
|
np.isfinite(target) & (target > self.MIN_DEPTH) & (target < self.MAX_DEPTH)
|
|
68
74
|
)
|
|
69
|
-
|
|
70
|
-
if valid_pixel_count == 0:
|
|
75
|
+
if not valid.any():
|
|
71
76
|
raise ValueError(
|
|
72
77
|
"NYU Depth sample has no valid pixels in the (0.001, 100.0) range."
|
|
73
78
|
)
|
|
@@ -83,20 +88,22 @@ class NYUDepthMetricAccumulator:
|
|
|
83
88
|
aligned = predicted * (median_target / median_prediction)
|
|
84
89
|
aligned = np.clip(aligned, self.MIN_DEPTH, self.MAX_DEPTH)
|
|
85
90
|
ratio = np.maximum(actual / aligned, aligned / actual)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
self.
|
|
89
|
-
self.
|
|
91
|
+
# Match Ultralytics' depth validator: median-align and calculate all
|
|
92
|
+
# metrics per image, then average validation images equally.
|
|
93
|
+
self.delta1_sum += float(np.mean(ratio < 1.25))
|
|
94
|
+
self.abs_rel_sum += float(np.mean(np.abs(actual - aligned) / actual))
|
|
95
|
+
self.rmse_sum += float(np.sqrt(np.mean((actual - aligned) ** 2)))
|
|
96
|
+
self.valid_sample_count += 1
|
|
90
97
|
|
|
91
98
|
def result(self) -> NYUDepthResult:
|
|
92
|
-
"""Return
|
|
99
|
+
"""Return mean per-image metrics."""
|
|
93
100
|
|
|
94
|
-
if self.
|
|
101
|
+
if self.valid_sample_count == 0:
|
|
95
102
|
raise ValueError("NYU Depth evaluation received no valid pixels.")
|
|
96
103
|
return NYUDepthResult(
|
|
97
|
-
delta1=self.delta1_sum / self.
|
|
98
|
-
abs_rel=self.abs_rel_sum / self.
|
|
99
|
-
rmse=
|
|
104
|
+
delta1=self.delta1_sum / self.valid_sample_count,
|
|
105
|
+
abs_rel=self.abs_rel_sum / self.valid_sample_count,
|
|
106
|
+
rmse=self.rmse_sum / self.valid_sample_count,
|
|
100
107
|
)
|
|
101
108
|
|
|
102
109
|
|
|
@@ -116,7 +123,7 @@ def _as_real_float32(values: np.ndarray, name: str) -> np.ndarray:
|
|
|
116
123
|
def calculate_nyu_depth_metrics(
|
|
117
124
|
prediction: np.ndarray, target: np.ndarray
|
|
118
125
|
) -> NYUDepthResult:
|
|
119
|
-
"""Calculate
|
|
126
|
+
"""Calculate median-aligned NYU metrics for one sample."""
|
|
120
127
|
|
|
121
128
|
accumulator = NYUDepthMetricAccumulator()
|
|
122
129
|
accumulator.update(prediction, target)
|
{mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_widerface.py
RENAMED
|
@@ -34,22 +34,22 @@ class WiderFaceResult(NamedTuple):
|
|
|
34
34
|
hard_ap: float
|
|
35
35
|
|
|
36
36
|
@property
|
|
37
|
-
def
|
|
38
|
-
"""Return
|
|
37
|
+
def primary_score(self) -> float:
|
|
38
|
+
"""Return Hard-set AP as the primary WiderFace metric."""
|
|
39
39
|
|
|
40
|
-
return
|
|
40
|
+
return self.hard_ap
|
|
41
41
|
|
|
42
42
|
@property
|
|
43
|
-
def
|
|
44
|
-
"""Return
|
|
43
|
+
def secondary_score(self) -> float:
|
|
44
|
+
"""Return Medium-set AP for singular-score compatibility."""
|
|
45
45
|
|
|
46
|
-
return self.
|
|
46
|
+
return self.medium_ap
|
|
47
47
|
|
|
48
48
|
@property
|
|
49
|
-
def
|
|
50
|
-
"""Return
|
|
49
|
+
def secondary_scores(self) -> tuple[float, float]:
|
|
50
|
+
"""Return Medium- and Easy-set AP in secondary-metric order."""
|
|
51
51
|
|
|
52
|
-
return self.
|
|
52
|
+
return self.medium_ap, self.easy_ap
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
def _empty_prediction() -> np.ndarray:
|
|
@@ -263,6 +263,27 @@ def get_gt_boxes(gt_dir: str) -> tuple[Any, ...]:
|
|
|
263
263
|
)
|
|
264
264
|
|
|
265
265
|
|
|
266
|
+
def _normalize_ground_truth_boxes(boxes: np.ndarray) -> np.ndarray:
|
|
267
|
+
"""Convert WiderFace's all-zero no-face sentinel into an empty box table."""
|
|
268
|
+
|
|
269
|
+
if boxes.shape == (1, 4) and not bool(np.any(boxes)):
|
|
270
|
+
return np.empty((0, 4), dtype=boxes.dtype)
|
|
271
|
+
return boxes
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
def _empty_ground_truth_prediction_contribution(
|
|
275
|
+
thresh_num: int, pred_info: np.ndarray
|
|
276
|
+
) -> np.ndarray:
|
|
277
|
+
"""Return precision-recall counts for predictions on a no-face image."""
|
|
278
|
+
|
|
279
|
+
return img_pr_info(
|
|
280
|
+
thresh_num,
|
|
281
|
+
pred_info,
|
|
282
|
+
np.ones(len(pred_info), dtype=np.float32),
|
|
283
|
+
np.zeros(len(pred_info), dtype=np.float32),
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
|
|
266
287
|
def norm_score(pred: dict[str, Any]) -> dict[str, Any]:
|
|
267
288
|
"""Normalize WiderFace prediction scores to ``[0, 1]``."""
|
|
268
289
|
|
|
@@ -413,11 +434,19 @@ def evaluation(
|
|
|
413
434
|
gt_bbx_list = facebox_list[event_index][0]
|
|
414
435
|
for image_index, img_info in enumerate(img_list):
|
|
415
436
|
pred_info = pred_list[str(img_info[0][0])]
|
|
416
|
-
gt_boxes =
|
|
437
|
+
gt_boxes = _normalize_ground_truth_boxes(
|
|
438
|
+
np.array(gt_bbx_list[image_index][0], dtype=np.float32)
|
|
439
|
+
)
|
|
417
440
|
keep_index = np.array(sub_gt_list[image_index][0], dtype=np.int64)
|
|
418
441
|
count_face += len(keep_index)
|
|
419
442
|
|
|
420
|
-
if len(gt_boxes) == 0
|
|
443
|
+
if len(gt_boxes) == 0:
|
|
444
|
+
if len(pred_info) != 0:
|
|
445
|
+
pr_curve += _empty_ground_truth_prediction_contribution(
|
|
446
|
+
thresh_num, pred_info
|
|
447
|
+
)
|
|
448
|
+
continue
|
|
449
|
+
if len(pred_info) == 0:
|
|
421
450
|
continue
|
|
422
451
|
ignore = np.zeros(gt_boxes.shape[0])
|
|
423
452
|
if len(keep_index) != 0:
|
|
@@ -195,7 +195,7 @@ class YOLODetectionPostBase(PostBase):
|
|
|
195
195
|
conf_thres: float | None = None,
|
|
196
196
|
iou_thres: float | None = None,
|
|
197
197
|
multi_label: bool = False,
|
|
198
|
-
) ->
|
|
198
|
+
) -> Any:
|
|
199
199
|
"""Executes YOLO postprocessing.
|
|
200
200
|
|
|
201
201
|
Includes rearranging, decoding, and NMS.
|
|
@@ -214,6 +214,10 @@ class YOLODetectionPostBase(PostBase):
|
|
|
214
214
|
final_detections, proto_outs = self.extract_final_outputs(x)
|
|
215
215
|
if final_detections is not None:
|
|
216
216
|
if proto_outs is not None:
|
|
217
|
+
if not isinstance(final_detections, list):
|
|
218
|
+
raise TypeError(
|
|
219
|
+
"Mask prototypes require detections as a per-image list."
|
|
220
|
+
)
|
|
217
221
|
return self.masking(final_detections, proto_outs)
|
|
218
222
|
return final_detections
|
|
219
223
|
checked_input = self.check_input(x)
|
|
@@ -291,7 +295,7 @@ class YOLODetectionPostBase(PostBase):
|
|
|
291
295
|
def extract_final_outputs(
|
|
292
296
|
self,
|
|
293
297
|
x: TensorLike | ListTensorLike,
|
|
294
|
-
) -> tuple[list[torch.Tensor] | None, torch.Tensor | None]:
|
|
298
|
+
) -> tuple[list[torch.Tensor] | torch.Tensor | None, torch.Tensor | None]:
|
|
295
299
|
"""Extract already-decoded ONNX-style detections when present.
|
|
296
300
|
|
|
297
301
|
Args:
|
|
@@ -99,15 +99,35 @@ class YOLOAnchorDetectionPost(YOLODetectionPostBase):
|
|
|
99
99
|
``(batch, anchors, no)`` format, optionally paired with prototype masks in
|
|
100
100
|
segmentation subclasses.
|
|
101
101
|
"""
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
# Decode-enabled MXQ artifacts prepend their already-decoded
|
|
103
|
+
# ``(batch, anchors, features)`` output to the raw detection heads.
|
|
104
|
+
# Only raw heads participate in anchor-grid decoding.
|
|
105
|
+
heads = [
|
|
106
|
+
tmp
|
|
107
|
+
for tmp in x
|
|
108
|
+
if (tmp.ndim == 4 and tmp.shape[3] == self.no * self.na)
|
|
109
|
+
or (tmp.ndim == 5 and tmp.shape[1] == self.na and tmp.shape[-1] == self.no)
|
|
110
|
+
]
|
|
111
|
+
if len(heads) != self.nl:
|
|
112
|
+
shapes = ", ".join(str(tuple(tmp.shape)) for tmp in x)
|
|
113
|
+
raise ValueError(
|
|
114
|
+
f"Expected {self.nl} raw detection heads, got {len(heads)} "
|
|
115
|
+
f"from outputs: {shapes}."
|
|
116
|
+
)
|
|
104
117
|
y = []
|
|
105
|
-
for
|
|
106
|
-
tmp
|
|
107
|
-
if tmp.shape[3] == self.no * self.na:
|
|
118
|
+
for tmp in heads:
|
|
119
|
+
if tmp.ndim == 4 and tmp.shape[3] == self.no * self.na:
|
|
108
120
|
y.append(
|
|
109
121
|
tmp.permute(0, 3, 1, 2)
|
|
110
122
|
) # (b, 80, 80, 255) -> (b, 255, 80, 80)
|
|
123
|
+
elif tmp.ndim == 5 and tmp.shape[1] == self.na and tmp.shape[-1] == self.no:
|
|
124
|
+
# WongKinYiu YOLOv7 ONNX exports each head as
|
|
125
|
+
# (batch, anchors, height, width, features).
|
|
126
|
+
y.append(
|
|
127
|
+
tmp.permute(0, 1, 4, 2, 3).reshape(
|
|
128
|
+
tmp.shape[0], self.na * self.no, tmp.shape[2], tmp.shape[3]
|
|
129
|
+
)
|
|
130
|
+
)
|
|
111
131
|
else:
|
|
112
132
|
raise NotImplementedError(
|
|
113
133
|
f"Got unsupported shape for input: {tmp.shape}."
|
|
@@ -9,6 +9,7 @@ from typing import Literal
|
|
|
9
9
|
|
|
10
10
|
import torch
|
|
11
11
|
|
|
12
|
+
from ..types import ListTensorLike, TensorLike
|
|
12
13
|
from .base import YOLODetectionPostBase
|
|
13
14
|
from .common import (
|
|
14
15
|
YOLOOBBPostMixin,
|
|
@@ -563,6 +564,62 @@ class YOLOAnchorlessSegPost(YOLOSegPostMixin, YOLOAnchorlessDetectionPost):
|
|
|
563
564
|
class YOLOAnchorlessPosePost(YOLOPosePostMixin, YOLOAnchorlessDetectionPost):
|
|
564
565
|
"""Postprocessing for YOLO pose estimation models without anchors."""
|
|
565
566
|
|
|
567
|
+
def extract_final_outputs(
|
|
568
|
+
self, x: TensorLike | ListTensorLike
|
|
569
|
+
) -> tuple[list[torch.Tensor] | None, torch.Tensor | None]:
|
|
570
|
+
"""Accept QBCompiler's decode-enabled candidate-first pose output.
|
|
571
|
+
|
|
572
|
+
Decode-enabled MXQs emit ``(B, anchors, 5 + keypoints)`` containing
|
|
573
|
+
``xywh`` boxes, confidence, and decoded keypoint coordinates. Add the
|
|
574
|
+
single-class label column and convert the boxes once. QBCompiler leaves
|
|
575
|
+
visibility as near-zero logits in this layout, so normalize them as the
|
|
576
|
+
split-head pose decoder does.
|
|
577
|
+
"""
|
|
578
|
+
if self.e2e and isinstance(x, (list, tuple)) and len(x) == 1:
|
|
579
|
+
value = x[0]
|
|
580
|
+
if isinstance(value, torch.Tensor):
|
|
581
|
+
tensor = value
|
|
582
|
+
else:
|
|
583
|
+
try:
|
|
584
|
+
tensor = torch.as_tensor(value)
|
|
585
|
+
except (TypeError, ValueError):
|
|
586
|
+
tensor = None
|
|
587
|
+
expected_dim = 5 + self.n_extra
|
|
588
|
+
if (
|
|
589
|
+
tensor is not None
|
|
590
|
+
and tensor.ndim == 3
|
|
591
|
+
and tensor.shape[-1] == expected_dim
|
|
592
|
+
# P6 decode-enabled artifacts do not preserve a valid
|
|
593
|
+
# keypoint-to-candidate association. Fall back to the legacy
|
|
594
|
+
# path (boxes only) rather than draw misleading skeletons.
|
|
595
|
+
and self.nl != 4
|
|
596
|
+
):
|
|
597
|
+
labels = torch.zeros_like(tensor[..., :1])
|
|
598
|
+
boxes = tensor[..., :4].clone()
|
|
599
|
+
boxes[..., :2] -= boxes[..., 2:] / 2
|
|
600
|
+
boxes[..., 2:] += boxes[..., :2]
|
|
601
|
+
keypoints = tensor[..., 5:].reshape(*tensor.shape[:2], -1, 3).clone()
|
|
602
|
+
if not bool(torch.isfinite(keypoints[..., 2]).all()):
|
|
603
|
+
raise ValueError("Decoded pose visibility logits must be finite.")
|
|
604
|
+
keypoints[..., 2] = keypoints[..., 2].sigmoid()
|
|
605
|
+
detections = torch.cat(
|
|
606
|
+
(boxes, tensor[..., 4:5], labels, keypoints.flatten(2)), dim=-1
|
|
607
|
+
)
|
|
608
|
+
# Final-output extraction normally bypasses ``nms``. These
|
|
609
|
+
# compiler candidates are dense, so retain the standard
|
|
610
|
+
# confidence-sorted NMS step before rendering pose skeletons.
|
|
611
|
+
retained_batches = self._final_detection_batches(detections)
|
|
612
|
+
selected_batches = []
|
|
613
|
+
for batch in retained_batches:
|
|
614
|
+
order = torch.argsort(batch[:, 4], descending=True)
|
|
615
|
+
ordered = batch[order]
|
|
616
|
+
keep = non_max_suppression(
|
|
617
|
+
ordered[:, :4], ordered[:, 4], self.iou_thres, max_output=300
|
|
618
|
+
)
|
|
619
|
+
selected_batches.append(ordered[keep])
|
|
620
|
+
return selected_batches, None
|
|
621
|
+
return super().extract_final_outputs(x)
|
|
622
|
+
|
|
566
623
|
def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor:
|
|
567
624
|
"""Rearranges model output tensors for pose estimation tasks.
|
|
568
625
|
|
|
@@ -4,6 +4,7 @@ from typing import Any, cast
|
|
|
4
4
|
|
|
5
5
|
import torch
|
|
6
6
|
|
|
7
|
+
from ..types import ListTensorLike, TensorLike
|
|
7
8
|
from .base import YOLODetectionPostBase
|
|
8
9
|
from .common import (
|
|
9
10
|
YOLOOBBPostMixin,
|
|
@@ -14,6 +15,7 @@ from .common import (
|
|
|
14
15
|
dist2bbox,
|
|
15
16
|
dist2rbox,
|
|
16
17
|
dual_topk,
|
|
18
|
+
non_max_suppression,
|
|
17
19
|
rotated_nms,
|
|
18
20
|
yolo_multilabel_candidates,
|
|
19
21
|
)
|
|
@@ -554,6 +556,41 @@ class YOLODFLFreeSegPost(YOLOSegPostMixin, YOLODFLFreeDetectionPost):
|
|
|
554
556
|
class YOLODFLFreePosePost(YOLOPosePostMixin, YOLODFLFreeDetectionPost):
|
|
555
557
|
"""Postprocessing for YOLO NMS-free pose estimation models."""
|
|
556
558
|
|
|
559
|
+
def extract_final_outputs(
|
|
560
|
+
self, x: TensorLike | ListTensorLike
|
|
561
|
+
) -> tuple[list[torch.Tensor] | None, torch.Tensor | None]:
|
|
562
|
+
"""Accept YOLO26's decode-enabled score, xyxy, and keypoint outputs."""
|
|
563
|
+
if self.e2e and isinstance(x, (list, tuple)) and len(x) == 4:
|
|
564
|
+
tensors = [
|
|
565
|
+
value if isinstance(value, torch.Tensor) else torch.as_tensor(value)
|
|
566
|
+
for value in x
|
|
567
|
+
]
|
|
568
|
+
converted_parts = self._collect_converted_parts(tensors, require_extra=True)
|
|
569
|
+
if converted_parts is not None:
|
|
570
|
+
converted, _ = converted_parts
|
|
571
|
+
boxes = converted[..., :4]
|
|
572
|
+
scores = converted[..., 4 : 4 + self.nc]
|
|
573
|
+
keypoints = converted[..., 4 + self.nc :]
|
|
574
|
+
keypoints = keypoints.reshape(*keypoints.shape[:2], -1, 3).clone()
|
|
575
|
+
if not bool(torch.isfinite(keypoints[..., 2]).all()):
|
|
576
|
+
raise ValueError("Decoded pose visibility logits must be finite.")
|
|
577
|
+
keypoints[..., 2] = keypoints[..., 2].sigmoid()
|
|
578
|
+
labels = torch.zeros_like(scores)
|
|
579
|
+
detections = torch.cat(
|
|
580
|
+
(boxes, scores, labels, keypoints.flatten(2)), dim=-1
|
|
581
|
+
)
|
|
582
|
+
retained_batches = self._final_detection_batches(detections)
|
|
583
|
+
selected_batches = []
|
|
584
|
+
for batch in retained_batches:
|
|
585
|
+
order = torch.argsort(batch[:, 4], descending=True)
|
|
586
|
+
ordered = batch[order]
|
|
587
|
+
keep = non_max_suppression(
|
|
588
|
+
ordered[:, :4], ordered[:, 4], self.iou_thres, max_output=300
|
|
589
|
+
)
|
|
590
|
+
selected_batches.append(ordered[keep])
|
|
591
|
+
return selected_batches, None
|
|
592
|
+
return super().extract_final_outputs(x)
|
|
593
|
+
|
|
557
594
|
def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]:
|
|
558
595
|
"""Return export-style pose outputs for both converted and raw split heads."""
|
|
559
596
|
|