mblt-vision-python 0.0.0__tar.gz → 0.0.1__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.
Files changed (433) hide show
  1. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/PKG-INFO +15 -1
  2. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/README.md +14 -0
  3. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/__init__.py +1 -1
  4. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/readiness.py +44 -50
  5. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_widerface.py +31 -2
  6. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision_python.egg-info/PKG-INFO +15 -1
  7. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_dataset_readiness.py +56 -22
  8. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_eval_coco.py +45 -35
  9. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_eval_widerface.py +21 -0
  10. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/LICENSE +0 -0
  11. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/_api.py +0 -0
  12. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/_compat.py +0 -0
  13. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/_model_paths.py +0 -0
  14. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/_tasks.py +0 -0
  15. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/benchmark/__init__.py +0 -0
  16. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/benchmark/argparse_utils.py +0 -0
  17. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/benchmark/chart_utils.py +0 -0
  18. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/benchmark/io_utils.py +0 -0
  19. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/benchmark/summary_utils.py +0 -0
  20. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/__init__.py +0 -0
  21. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/__main__.py +0 -0
  22. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/_vision.py +0 -0
  23. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/compile.py +0 -0
  24. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/main.py +0 -0
  25. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/predict.py +0 -0
  26. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/cli/val.py +0 -0
  27. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/compile/__init__.py +0 -0
  28. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/compile/vision.py +0 -0
  29. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/__init__.py +0 -0
  30. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/ade20k.yaml +0 -0
  31. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/cityscapes.yaml +0 -0
  32. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/coco.yaml +0 -0
  33. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/dotav1.yaml +0 -0
  34. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/imagenet.yaml +0 -0
  35. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/imagenet_synsets.txt +0 -0
  36. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/nyu-depth.yaml +0 -0
  37. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/registry.py +0 -0
  38. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/datasets/widerface.yaml +0 -0
  39. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/depth_estimation/__init__.py +0 -0
  40. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/face_detection/__init__.py +0 -0
  41. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/image_classification/__init__.py +0 -0
  42. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/instance_segmentation/__init__.py +0 -0
  43. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/AlexNet.yaml +0 -0
  44. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CAFormer_B36.yaml +0 -0
  45. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CAFormer_M36.yaml +0 -0
  46. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CAFormer_S18.yaml +0 -0
  47. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CAFormer_S36.yaml +0 -0
  48. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CoAtNet_0_RW_224.yaml +0 -0
  49. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CoAtNet_1_RW_224.yaml +0 -0
  50. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/CoAtNet_2_RW_224.yaml +0 -0
  51. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvFormer_B36.yaml +0 -0
  52. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvFormer_M36.yaml +0 -0
  53. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvFormer_S18.yaml +0 -0
  54. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvFormer_S36.yaml +0 -0
  55. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvNext_Base.yaml +0 -0
  56. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvNext_Large.yaml +0 -0
  57. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvNext_Small.yaml +0 -0
  58. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ConvNext_Tiny.yaml +0 -0
  59. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Base_Patch16_224.yaml +0 -0
  60. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Base_Patch16_384.yaml +0 -0
  61. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Large_Patch16_224.yaml +0 -0
  62. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Large_Patch16_384.yaml +0 -0
  63. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Medium_Patch16_224.yaml +0 -0
  64. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Small_Patch16_224.yaml +0 -0
  65. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT3_Small_Patch16_384.yaml +0 -0
  66. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT_Base_Patch16_224.yaml +0 -0
  67. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT_Base_Patch16_384.yaml +0 -0
  68. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT_Small_Patch16_224.yaml +0 -0
  69. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DeiT_Tiny_Patch16_224.yaml +0 -0
  70. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DenseNet121.yaml +0 -0
  71. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DenseNet161.yaml +0 -0
  72. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DenseNet169.yaml +0 -0
  73. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/DenseNet201.yaml +0 -0
  74. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientFormer_L1.yaml +0 -0
  75. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientFormer_L3.yaml +0 -0
  76. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientFormer_L7.yaml +0 -0
  77. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B0.yaml +0 -0
  78. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B1.yaml +0 -0
  79. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B2.yaml +0 -0
  80. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B3.yaml +0 -0
  81. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B4.yaml +0 -0
  82. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B5.yaml +0 -0
  83. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B6.yaml +0 -0
  84. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_B7.yaml +0 -0
  85. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_V2_L.yaml +0 -0
  86. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_V2_M.yaml +0 -0
  87. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/EfficientNet_V2_S.yaml +0 -0
  88. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/FlexiVit_Base.yaml +0 -0
  89. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/FlexiVit_Large.yaml +0 -0
  90. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/FlexiVit_Small.yaml +0 -0
  91. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/GELANc-seg.yaml +0 -0
  92. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/GELANc.yaml +0 -0
  93. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/GELANe.yaml +0 -0
  94. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/GELANm.yaml +0 -0
  95. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/GELANs.yaml +0 -0
  96. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/GoogLeNet.yaml +0 -0
  97. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/Inception_V3.yaml +0 -0
  98. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/LeViT_Conv_128.yaml +0 -0
  99. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/LeViT_Conv_128S.yaml +0 -0
  100. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/LeViT_Conv_192.yaml +0 -0
  101. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/LeViT_Conv_256.yaml +0 -0
  102. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/LeViT_Conv_384.yaml +0 -0
  103. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MNASNet0_5.yaml +0 -0
  104. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MNASNet0_75.yaml +0 -0
  105. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MNASNet1_0.yaml +0 -0
  106. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MNASNet1_3.yaml +0 -0
  107. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MobileNet_V2.yaml +0 -0
  108. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MobileNet_V3_Large.yaml +0 -0
  109. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/MobileNet_V3_Small.yaml +0 -0
  110. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_16GF.yaml +0 -0
  111. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_1_6GF.yaml +0 -0
  112. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_32GF.yaml +0 -0
  113. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_3_2GF.yaml +0 -0
  114. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_400MF.yaml +0 -0
  115. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_800MF.yaml +0 -0
  116. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_X_8GF.yaml +0 -0
  117. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_16GF.yaml +0 -0
  118. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_1_6GF.yaml +0 -0
  119. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_32GF.yaml +0 -0
  120. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_3_2GF.yaml +0 -0
  121. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_400MF.yaml +0 -0
  122. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_800MF.yaml +0 -0
  123. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RegNet_Y_8GF.yaml +0 -0
  124. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M0_9.yaml +0 -0
  125. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M1.yaml +0 -0
  126. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M1_0.yaml +0 -0
  127. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M1_1.yaml +0 -0
  128. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M1_5.yaml +0 -0
  129. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M2.yaml +0 -0
  130. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M2_3.yaml +0 -0
  131. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/RepViT_M3.yaml +0 -0
  132. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNeXt101_32X8D.yaml +0 -0
  133. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNeXt101_64X4D.yaml +0 -0
  134. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNeXt50_32X4D.yaml +0 -0
  135. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNet101.yaml +0 -0
  136. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNet152.yaml +0 -0
  137. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNet18.yaml +0 -0
  138. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNet34.yaml +0 -0
  139. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ResNet50.yaml +0 -0
  140. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ShuffleNet_V2_X0_5.yaml +0 -0
  141. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ShuffleNet_V2_X1_0.yaml +0 -0
  142. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ShuffleNet_V2_X1_5.yaml +0 -0
  143. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ShuffleNet_V2_X2_0.yaml +0 -0
  144. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/SqueezeNet1_0.yaml +0 -0
  145. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/SqueezeNet1_1.yaml +0 -0
  146. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/Swin_B.yaml +0 -0
  147. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/Swin_S.yaml +0 -0
  148. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/Swin_T.yaml +0 -0
  149. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG11.yaml +0 -0
  150. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG11_BN.yaml +0 -0
  151. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG13.yaml +0 -0
  152. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG13_BN.yaml +0 -0
  153. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG16.yaml +0 -0
  154. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG16_BN.yaml +0 -0
  155. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG19.yaml +0 -0
  156. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VGG19_BN.yaml +0 -0
  157. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_B_16.yaml +0 -0
  158. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_B_32.yaml +0 -0
  159. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Base_Patch16_224.yaml +0 -0
  160. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Base_Patch16_384.yaml +0 -0
  161. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Base_Patch32_224.yaml +0 -0
  162. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Base_Patch32_384.yaml +0 -0
  163. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Base_Patch8_224.yaml +0 -0
  164. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_L_16.yaml +0 -0
  165. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_L_32.yaml +0 -0
  166. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Large_Patch16_224.yaml +0 -0
  167. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Large_Patch16_384.yaml +0 -0
  168. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Large_Patch32_384.yaml +0 -0
  169. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Small_Patch16_224.yaml +0 -0
  170. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Small_Patch16_384.yaml +0 -0
  171. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Small_Patch32_224.yaml +0 -0
  172. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Small_Patch32_384.yaml +0 -0
  173. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Tiny_Patch16_224.yaml +0 -0
  174. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/ViT_Tiny_Patch16_384.yaml +0 -0
  175. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VisFormer_Small.yaml +0 -0
  176. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/VisFormer_Tiny.yaml +0 -0
  177. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/Wide_ResNet101_2.yaml +0 -0
  178. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/Wide_ResNet50_2.yaml +0 -0
  179. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11l-cls.yaml +0 -0
  180. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11l-face.yaml +0 -0
  181. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11l-obb.yaml +0 -0
  182. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11l-pose.yaml +0 -0
  183. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11l-seg.yaml +0 -0
  184. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11l.yaml +0 -0
  185. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11m-cls.yaml +0 -0
  186. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11m-face.yaml +0 -0
  187. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11m-obb.yaml +0 -0
  188. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11m-pose.yaml +0 -0
  189. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11m-seg.yaml +0 -0
  190. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11m.yaml +0 -0
  191. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11n-cls.yaml +0 -0
  192. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11n-face.yaml +0 -0
  193. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11n-obb.yaml +0 -0
  194. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11n-pose.yaml +0 -0
  195. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11n-seg.yaml +0 -0
  196. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11n.yaml +0 -0
  197. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11s-cls.yaml +0 -0
  198. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11s-face.yaml +0 -0
  199. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11s-obb.yaml +0 -0
  200. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11s-pose.yaml +0 -0
  201. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11s-seg.yaml +0 -0
  202. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11s.yaml +0 -0
  203. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11x-cls.yaml +0 -0
  204. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11x-obb.yaml +0 -0
  205. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11x-pose.yaml +0 -0
  206. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11x-seg.yaml +0 -0
  207. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO11x.yaml +0 -0
  208. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12l-face.yaml +0 -0
  209. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12l-seg.yaml +0 -0
  210. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12l.yaml +0 -0
  211. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12m-face.yaml +0 -0
  212. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12m-seg.yaml +0 -0
  213. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12m.yaml +0 -0
  214. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12n-face.yaml +0 -0
  215. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12n-seg.yaml +0 -0
  216. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12n.yaml +0 -0
  217. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12s-face.yaml +0 -0
  218. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12s-seg.yaml +0 -0
  219. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12s.yaml +0 -0
  220. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12x-seg.yaml +0 -0
  221. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO12x.yaml +0 -0
  222. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-cls.yaml +0 -0
  223. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-depth.yaml +0 -0
  224. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-distill.yaml +0 -0
  225. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-obb.yaml +0 -0
  226. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-pose.yaml +0 -0
  227. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-seg.yaml +0 -0
  228. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-sem-ade20k.yaml +0 -0
  229. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l-sem.yaml +0 -0
  230. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26l.yaml +0 -0
  231. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-cls.yaml +0 -0
  232. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-depth.yaml +0 -0
  233. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-distill.yaml +0 -0
  234. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-obb.yaml +0 -0
  235. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-pose.yaml +0 -0
  236. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-seg.yaml +0 -0
  237. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-sem-ade20k.yaml +0 -0
  238. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m-sem.yaml +0 -0
  239. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26m.yaml +0 -0
  240. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-cls.yaml +0 -0
  241. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-depth.yaml +0 -0
  242. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-distill.yaml +0 -0
  243. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-obb.yaml +0 -0
  244. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-pose.yaml +0 -0
  245. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-seg.yaml +0 -0
  246. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-sem-ade20k.yaml +0 -0
  247. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n-sem.yaml +0 -0
  248. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26n.yaml +0 -0
  249. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-cls.yaml +0 -0
  250. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-depth.yaml +0 -0
  251. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-distill.yaml +0 -0
  252. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-obb.yaml +0 -0
  253. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-pose.yaml +0 -0
  254. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-seg.yaml +0 -0
  255. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-sem-ade20k.yaml +0 -0
  256. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s-sem.yaml +0 -0
  257. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26s.yaml +0 -0
  258. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-cls.yaml +0 -0
  259. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-depth.yaml +0 -0
  260. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-distill.yaml +0 -0
  261. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-obb.yaml +0 -0
  262. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-pose.yaml +0 -0
  263. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-seg.yaml +0 -0
  264. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-sem-ade20k.yaml +0 -0
  265. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x-sem.yaml +0 -0
  266. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLO26x.yaml +0 -0
  267. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10b.yaml +0 -0
  268. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10l-face.yaml +0 -0
  269. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10l.yaml +0 -0
  270. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10m-face.yaml +0 -0
  271. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10m.yaml +0 -0
  272. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10n-face.yaml +0 -0
  273. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10n.yaml +0 -0
  274. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10s-face.yaml +0 -0
  275. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10s.yaml +0 -0
  276. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv10x.yaml +0 -0
  277. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv3-spp.yaml +0 -0
  278. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv3-sppu.yaml +0 -0
  279. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv3-tiny.yaml +0 -0
  280. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv3-tinyu.yaml +0 -0
  281. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv3.yaml +0 -0
  282. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv3u.yaml +0 -0
  283. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5l-cls.yaml +0 -0
  284. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5l-seg.yaml +0 -0
  285. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5l.yaml +0 -0
  286. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5l6.yaml +0 -0
  287. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5l6u.yaml +0 -0
  288. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5lu.yaml +0 -0
  289. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5m-cls.yaml +0 -0
  290. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5m-seg.yaml +0 -0
  291. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5m.yaml +0 -0
  292. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5m6.yaml +0 -0
  293. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5m6u.yaml +0 -0
  294. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5mu.yaml +0 -0
  295. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5n-cls.yaml +0 -0
  296. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5n-seg.yaml +0 -0
  297. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5n.yaml +0 -0
  298. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5n6.yaml +0 -0
  299. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5n6u.yaml +0 -0
  300. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5nu.yaml +0 -0
  301. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5s-cls.yaml +0 -0
  302. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5s-seg.yaml +0 -0
  303. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5s.yaml +0 -0
  304. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5s6.yaml +0 -0
  305. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5s6u.yaml +0 -0
  306. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5su.yaml +0 -0
  307. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5x-cls.yaml +0 -0
  308. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5x-seg.yaml +0 -0
  309. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5x.yaml +0 -0
  310. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5x6.yaml +0 -0
  311. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5x6u.yaml +0 -0
  312. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv5xu.yaml +0 -0
  313. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv6m-face.yaml +0 -0
  314. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv6n-face.yaml +0 -0
  315. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv7.yaml +0 -0
  316. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv7d6.yaml +0 -0
  317. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv7e6.yaml +0 -0
  318. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv7e6e.yaml +0 -0
  319. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv7w6.yaml +0 -0
  320. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv7x.yaml +0 -0
  321. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8l-cls.yaml +0 -0
  322. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8l-face.yaml +0 -0
  323. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8l-obb.yaml +0 -0
  324. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8l-pose.yaml +0 -0
  325. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8l-seg.yaml +0 -0
  326. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8l.yaml +0 -0
  327. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8m-cls.yaml +0 -0
  328. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8m-face.yaml +0 -0
  329. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8m-obb.yaml +0 -0
  330. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8m-pose.yaml +0 -0
  331. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8m-seg.yaml +0 -0
  332. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8m.yaml +0 -0
  333. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8n-cls.yaml +0 -0
  334. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8n-face.yaml +0 -0
  335. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8n-obb.yaml +0 -0
  336. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8n-pose.yaml +0 -0
  337. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8n-seg.yaml +0 -0
  338. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8n.yaml +0 -0
  339. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8s-cls.yaml +0 -0
  340. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8s-obb.yaml +0 -0
  341. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8s-pose.yaml +0 -0
  342. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8s-seg.yaml +0 -0
  343. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8s.yaml +0 -0
  344. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8x-cls.yaml +0 -0
  345. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8x-obb.yaml +0 -0
  346. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8x-pose-p6.yaml +0 -0
  347. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8x-pose.yaml +0 -0
  348. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8x-seg.yaml +0 -0
  349. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv8x.yaml +0 -0
  350. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9c-seg.yaml +0 -0
  351. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9c.yaml +0 -0
  352. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9e-seg.yaml +0 -0
  353. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9e.yaml +0 -0
  354. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9m.yaml +0 -0
  355. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9s.yaml +0 -0
  356. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/models/YOLOv9t.yaml +0 -0
  357. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/obb/__init__.py +0 -0
  358. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/object_detection/__init__.py +0 -0
  359. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/pose_estimation/__init__.py +0 -0
  360. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/py.typed +0 -0
  361. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/semantic_segmentation/__init__.py +0 -0
  362. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/__init__.py +0 -0
  363. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/__init__.py +0 -0
  364. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/ade20k.py +0 -0
  365. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/cityscapes.py +0 -0
  366. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/coco.py +0 -0
  367. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/dataloader.py +0 -0
  368. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/dotav1.py +0 -0
  369. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/imagenet.py +0 -0
  370. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/datasets/organizer.py +0 -0
  371. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/__init__.py +0 -0
  372. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/_result.py +0 -0
  373. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_ade20k.py +0 -0
  374. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_cityscapes.py +0 -0
  375. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_coco.py +0 -0
  376. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_dota.py +0 -0
  377. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_imagenet.py +0 -0
  378. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/evaluation/eval_nyu_depth.py +0 -0
  379. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/letterbox.py +0 -0
  380. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/__init__.py +0 -0
  381. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/_letterbox.py +0 -0
  382. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/base.py +0 -0
  383. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/build_post.py +0 -0
  384. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/cls_post.py +0 -0
  385. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/common.py +0 -0
  386. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/depth_post.py +0 -0
  387. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/semantic_seg_post.py +0 -0
  388. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/yolo_anchor_post.py +0 -0
  389. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/yolo_anchorless_post.py +0 -0
  390. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/yolo_dflfree_post.py +0 -0
  391. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/postprocess/yolo_nmsfree_post.py +0 -0
  392. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/__init__.py +0 -0
  393. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/_validation.py +0 -0
  394. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/base.py +0 -0
  395. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/build_pre.py +0 -0
  396. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/center_crop.py +0 -0
  397. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/letterbox.py +0 -0
  398. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/normalize.py +0 -0
  399. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/order.py +0 -0
  400. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/reader.py +0 -0
  401. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/resize.py +0 -0
  402. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/preprocess/yolo_pre.py +0 -0
  403. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/results.py +0 -0
  404. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/utils/types.py +0 -0
  405. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision/wrapper.py +0 -0
  406. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision_python.egg-info/SOURCES.txt +0 -0
  407. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision_python.egg-info/dependency_links.txt +0 -0
  408. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision_python.egg-info/entry_points.txt +0 -0
  409. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision_python.egg-info/requires.txt +0 -0
  410. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/mblt_vision_python.egg-info/top_level.txt +0 -0
  411. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/pyproject.toml +0 -0
  412. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/setup.cfg +0 -0
  413. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_api.py +0 -0
  414. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_benchmark_vision.py +0 -0
  415. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_cli.py +0 -0
  416. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_compile_vision.py +0 -0
  417. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_dataloader.py +0 -0
  418. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_dataset_organizer.py +0 -0
  419. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_depth_estimation.py +0 -0
  420. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_eval_dota.py +0 -0
  421. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_eval_imagenet.py +0 -0
  422. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_eval_nyu_depth.py +0 -0
  423. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_face_detection.py +0 -0
  424. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_model_aliasing.py +0 -0
  425. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_model_metadata.py +0 -0
  426. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_mxq_inference.py +0 -0
  427. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_onnx_classification.py +0 -0
  428. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_onnx_yolo.py +0 -0
  429. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_postprocess_hierarchy.py +0 -0
  430. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_preprocess_validation.py +0 -0
  431. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_results.py +0 -0
  432. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/tests/test_semantic_segmentation.py +0 -0
  433. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.1}/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.0
3
+ Version: 0.0.1
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
+ [![PyPI - Version](https://img.shields.io/pypi/v/mblt-vision-python?logo=pypi&logoColor=white)](https://pypi.org/project/mblt-vision-python/)
68
+ [![PyPI Downloads](https://static.pepy.tech/badge/mblt-vision-python?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://clickpy.clickhouse.com/dashboard/mblt-vision-python)
69
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mblt-vision-python?logo=python&logoColor=gold)](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
+ [![PyPI - Version](https://img.shields.io/pypi/v/mblt-vision-python?logo=pypi&logoColor=white)](https://pypi.org/project/mblt-vision-python/)
24
+ [![PyPI Downloads](https://static.pepy.tech/badge/mblt-vision-python?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://clickpy.clickhouse.com/dashboard/mblt-vision-python)
25
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mblt-vision-python?logo=python&logoColor=gold)](https://pypi.org/project/mblt-vision-python/)
26
+
13
27
  ```bash
14
28
  pip install mblt-vision-python
15
29
  ```
@@ -19,7 +19,7 @@ from ._api import list_models as list_models
19
19
  from ._api import list_tasks as list_tasks
20
20
  from .wrapper import MBLT_Engine as MBLT_Engine
21
21
 
22
- __version__ = "0.0.0"
22
+ __version__ = "0.0.1"
23
23
 
24
24
  _TASK_MODULES = (
25
25
  face_detection,
@@ -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 not segmentation or any(
415
- not isinstance(polygon, list)
416
- or len(polygon) < 6
417
- or len(polygon) % 2
435
+ if (
436
+ not segmentation
418
437
  or any(
419
- not isinstance(value, (int, float))
420
- or isinstance(value, bool)
421
- or not np.isfinite(value)
422
- for value in polygon
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 _has_positive_polygon_area(polygon)
425
- or not _polygon_has_positive_image_overlap(
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
- if image_shapes is not None:
742
- height, width = image_shapes[event_index][image_index]
743
- if (
744
- height <= 0
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] = {}
@@ -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 = np.array(gt_bbx_list[image_index][0], dtype=np.float32)
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 or len(pred_info) == 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:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mblt-vision-python
3
- Version: 0.0.0
3
+ Version: 0.0.1
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
+ [![PyPI - Version](https://img.shields.io/pypi/v/mblt-vision-python?logo=pypi&logoColor=white)](https://pypi.org/project/mblt-vision-python/)
68
+ [![PyPI Downloads](https://static.pepy.tech/badge/mblt-vision-python?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://clickpy.clickhouse.com/dashboard/mblt-vision-python)
69
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mblt-vision-python?logo=python&logoColor=gold)](https://pypi.org/project/mblt-vision-python/)
70
+
57
71
  ```bash
58
72
  pip install mblt-vision-python
59
73
  ```
@@ -380,6 +380,47 @@ def test_coco_readiness_decodes_and_validates_rle_segmentations(
380
380
  )
381
381
 
382
382
 
383
+ def test_coco_readiness_rejects_polygon_union_without_rasterized_foreground(
384
+ monkeypatch: pytest.MonkeyPatch, tmp_path: Path
385
+ ) -> None:
386
+ """Reject polygon instances whose combined mask contains no pixels."""
387
+
388
+ monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1)
389
+ monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1)
390
+ monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1)
391
+ monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1}))
392
+ _write_image(tmp_path / "val2017" / "000000000001.jpg", (10, 10))
393
+ (tmp_path / "instances_val2017.json").write_text(
394
+ json.dumps(
395
+ {
396
+ "images": [
397
+ {
398
+ "id": 1,
399
+ "file_name": "000000000001.jpg",
400
+ "height": 10,
401
+ "width": 10,
402
+ }
403
+ ],
404
+ "categories": [{"id": 1}],
405
+ "annotations": [
406
+ {
407
+ "id": 1,
408
+ "image_id": 1,
409
+ "category_id": 1,
410
+ "bbox": [9, 9, 1, 1],
411
+ "area": 0.01,
412
+ "iscrowd": 0,
413
+ "segmentation": [[9.9, 9.9, 9.99, 9.9, 9.99, 9.99]],
414
+ }
415
+ ],
416
+ }
417
+ ),
418
+ encoding="utf-8",
419
+ )
420
+
421
+ assert not readiness.dataset_ready(tmp_path, "instance_segmentation", "coco")
422
+
423
+
383
424
  def test_coco_readiness_rejects_corrupt_or_mismatched_images(
384
425
  monkeypatch: pytest.MonkeyPatch, tmp_path: Path
385
426
  ) -> None:
@@ -685,10 +726,10 @@ def test_widerface_readiness_rejects_all_empty_difficulty_indices(
685
726
  )
686
727
 
687
728
 
688
- def test_widerface_readiness_rejects_face_boxes_outside_images(
729
+ def test_widerface_readiness_accepts_official_out_of_image_boxes(
689
730
  monkeypatch: pytest.MonkeyPatch, tmp_path: Path
690
731
  ) -> None:
691
- """Face ground truth must retain foreground in its decoded source image."""
732
+ """Permit the slight out-of-image boxes present in official metadata."""
692
733
 
693
734
  face_boxes = np.empty((1, 1), dtype=object)
694
735
  event_faces = np.empty((1, 1), dtype=object)
@@ -706,7 +747,7 @@ def test_widerface_readiness_rejects_face_boxes_outside_images(
706
747
 
707
748
  monkeypatch.setattr(readiness, "loadmat", _loadmat)
708
749
 
709
- assert not readiness._widerface_difficulty_metadata_ready(
750
+ assert readiness._widerface_difficulty_metadata_ready(
710
751
  tmp_path,
711
752
  {"0--Parade": {"sample.jpg"}},
712
753
  image_shapes=[[(10, 10)]],
@@ -716,13 +757,17 @@ def test_widerface_readiness_rejects_face_boxes_outside_images(
716
757
  def test_widerface_readiness_allows_empty_event_difficulty_contributions(
717
758
  monkeypatch: pytest.MonkeyPatch, tmp_path: Path
718
759
  ) -> None:
719
- """A difficulty split may have no eligible faces in one event but not all."""
760
+ """Accept the official no-face sentinel when no split indexes it."""
720
761
 
721
762
  face_boxes = np.empty((2, 1), dtype=object)
722
763
  difficulty = np.empty((2, 1), dtype=object)
723
764
  for event_index in range(2):
724
765
  event_faces = np.empty((1, 1), dtype=object)
725
- event_faces[0, 0] = np.array([[0, 0, 1, 1]], dtype=np.float64)
766
+ event_faces[0, 0] = (
767
+ np.array([[0, 0, 0, 0]], dtype=np.float64)
768
+ if event_index == 0
769
+ else np.array([[0, 0, 1, 1]], dtype=np.float64)
770
+ )
726
771
  face_boxes[event_index, 0] = event_faces
727
772
  event_indices = np.empty((1, 1), dtype=object)
728
773
  event_indices[0, 0] = (
@@ -745,10 +790,10 @@ def test_widerface_readiness_allows_empty_event_difficulty_contributions(
745
790
  )
746
791
 
747
792
 
748
- def test_widerface_readiness_rejects_duplicate_face_boxes(
793
+ def test_widerface_readiness_accepts_duplicate_official_face_boxes(
749
794
  monkeypatch: pytest.MonkeyPatch, tmp_path: Path
750
795
  ) -> None:
751
- """Duplicate ground-truth rows cannot alter the WiderFace recall denominator."""
796
+ """Permit duplicate rows present in the official WiderFace metadata."""
752
797
 
753
798
  face_boxes = np.empty((1, 1), dtype=object)
754
799
  event_faces = np.empty((1, 1), dtype=object)
@@ -766,7 +811,7 @@ def test_widerface_readiness_rejects_duplicate_face_boxes(
766
811
 
767
812
  monkeypatch.setattr(readiness, "loadmat", _loadmat)
768
813
 
769
- assert not readiness._widerface_difficulty_metadata_ready(
814
+ assert readiness._widerface_difficulty_metadata_ready(
770
815
  tmp_path, {"0--Parade": {"sample.jpg"}}
771
816
  )
772
817
 
@@ -777,7 +822,7 @@ def test_dotav1_readiness_requires_complete_image_label_pairs(
777
822
  tmp_path: Path,
778
823
  relative_image_dir: str,
779
824
  ) -> None:
780
- """Accept flat and legacy DOTA images only when every image has a label."""
825
+ """Allow normalized labels when an original DOTA label is unavailable."""
781
826
 
782
827
  monkeypatch.setattr(readiness, "DOTAV1_VALIDATION_SAMPLE_COUNT", 2)
783
828
  for stem in ("P0001", "P0002"):
@@ -870,11 +915,11 @@ def test_widerface_readiness_rejects_tree_not_named_by_metadata(
870
915
  assert not readiness.dataset_ready(tmp_path, "face_detection", "widerface")
871
916
 
872
917
 
873
- def test_ade20k_readiness_requires_source_metadata(
918
+ def test_ade20k_readiness_does_not_require_unused_source_metadata(
874
919
  monkeypatch: pytest.MonkeyPatch,
875
920
  tmp_path: Path,
876
921
  ) -> None:
877
- """Require both ADE20K metadata files before reusing an organized cache."""
922
+ """Allow organized ADE20K evaluation data without unused source metadata."""
878
923
 
879
924
  monkeypatch.setattr(readiness, "ADE20K_VALIDATION_SAMPLE_COUNT", 1)
880
925
  _write_image(tmp_path / "images" / "ADE_val_00000001.jpg", (1, 1))
@@ -882,12 +927,6 @@ def test_ade20k_readiness_requires_source_metadata(
882
927
  annotation_path.parent.mkdir(parents=True, exist_ok=True)
883
928
  Image.new("L", (1, 1), color=1).save(annotation_path)
884
929
 
885
- assert not readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k")
886
-
887
- _write_file(tmp_path / "objectInfo150.txt")
888
- assert not readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k")
889
-
890
- _write_file(tmp_path / "sceneCategories.txt")
891
930
  assert readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k")
892
931
 
893
932
 
@@ -899,7 +938,6 @@ def test_ade20k_readiness_requires_source_metadata(
899
938
  ("nyu-depth", "depth_estimation", "images/extra.jpg"),
900
939
  ("ade20k", "semantic_segmentation", "images/ADE_val_00000001.jpg"),
901
940
  ("ade20k", "semantic_segmentation", "annotations/ADE_val_00000001.png"),
902
- ("ade20k", "semantic_segmentation", "objectInfo150.txt"),
903
941
  ],
904
942
  )
905
943
  def test_dense_readiness_rejects_symlinked_files(
@@ -919,8 +957,6 @@ def test_dense_readiness_rejects_symlinked_files(
919
957
  else:
920
958
  _write_file(tmp_path / "images" / "ADE_val_00000001.jpg")
921
959
  _write_file(tmp_path / "annotations" / "ADE_val_00000001.png")
922
- for file_name in readiness.ADE20K_METADATA_FILES:
923
- _write_file(tmp_path / file_name)
924
960
  external_file = tmp_path.parent / f"{tmp_path.name}-outside"
925
961
  external_file.write_bytes(b"outside dataset")
926
962
  source_path = tmp_path / relative_path
@@ -946,8 +982,6 @@ def test_dense_readiness_rejects_symlinked_root_ancestors(
946
982
  ade20k_root = target_parent / "ade20k"
947
983
  _write_file(ade20k_root / "images" / "ADE_val_00000001.jpg")
948
984
  _write_file(ade20k_root / "annotations" / "ADE_val_00000001.png")
949
- for file_name in readiness.ADE20K_METADATA_FILES:
950
- _write_file(ade20k_root / file_name)
951
985
  symlinked_parent = tmp_path / "datasets"
952
986
  symlinked_parent.symlink_to(target_parent, target_is_directory=True)
953
987
 
@@ -250,38 +250,31 @@ def test_coco_evaluation_rejects_polygons_outside_image_bounds(
250
250
  )
251
251
 
252
252
 
253
- def test_coco_evaluation_rejects_polygons_without_rasterized_foreground(
254
- monkeypatch: pytest.MonkeyPatch,
255
- ) -> None:
256
- """Continuous subpixel overlap must not admit an empty raster mask."""
253
+ def test_coco_evaluation_accepts_official_thin_polygons() -> None:
254
+ """Accept valid COCO polygons that have no foreground after rasterization."""
257
255
 
258
256
  dataset = SimpleNamespace(
259
257
  coco=SimpleNamespace(
260
- cats={1: {}},
261
- imgs={1: {"height": 10, "width": 10}},
258
+ cats={35: {}},
259
+ imgs={361919: {"height": 425, "width": 640}},
262
260
  anns={
263
- 7: {
264
- "id": 7,
265
- "image_id": 1,
266
- "category_id": 1,
267
- "bbox": [9, 9, 1, 1],
268
- "area": 1,
261
+ 1847218: {
262
+ "id": 1847218,
263
+ "image_id": 361919,
264
+ "category_id": 35,
265
+ "bbox": [179.52, 371.41, 6.9, 1.97],
266
+ "area": 3.1930999999999816,
269
267
  "iscrowd": 0,
270
- "segmentation": [[9.9, 9.9, 9.99, 9.9, 9.99, 9.99]],
268
+ "segmentation": [
269
+ [179.52, 371.9, 181.49, 372.89, 181.49, 372.64, 181.24, 371.41],
270
+ [183.95, 372.15, 185.43, 373.38, 186.42, 372.89, 185.43, 371.9],
271
+ ],
271
272
  }
272
273
  },
273
274
  )
274
275
  )
275
- monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset)
276
276
 
277
- with pytest.raises(ValueError, match="invalid task-specific annotations"):
278
- eval_coco_module.eval_coco_metrics(
279
- SimpleNamespace(
280
- post_cfg={"task": "instance_segmentation", "dataset": "coco"}
281
- ),
282
- "/dataset",
283
- batch_size=1,
284
- )
277
+ eval_coco_module._validate_coco_dataset_taxonomy(dataset, "instance_segmentation")
285
278
 
286
279
 
287
280
  @pytest.mark.parametrize("visibility", [1, 2])
@@ -320,22 +313,44 @@ def test_coco_evaluation_rejects_labeled_keypoints_outside_images(
320
313
  )
321
314
 
322
315
 
323
- def test_coco_evaluation_rejects_pose_area_larger_than_its_box(
324
- monkeypatch: pytest.MonkeyPatch,
325
- ) -> None:
326
- """Do not let inflated pose areas weaken OKS matching thresholds."""
316
+ def test_coco_evaluation_accepts_crowd_pose_area_larger_than_its_box() -> None:
317
+ """Accept official COCO crowd annotations with RLE area rounding differences."""
327
318
 
328
319
  dataset = SimpleNamespace(
329
320
  coco=SimpleNamespace(
330
321
  cats={1: {}},
331
- imgs={1: {"height": 10, "width": 10}},
322
+ imgs={305317: {"height": 640, "width": 640}},
323
+ anns={
324
+ 900100305317: {
325
+ "id": 900100305317,
326
+ "image_id": 305317,
327
+ "category_id": 1,
328
+ "bbox": [223, 405, 12, 27],
329
+ "area": 351,
330
+ "iscrowd": 1,
331
+ "keypoints": [0, 0, 0] * 17,
332
+ "num_keypoints": 0,
333
+ }
334
+ },
335
+ )
336
+ )
337
+ eval_coco_module._validate_coco_dataset_taxonomy(dataset, "pose_estimation")
338
+
339
+
340
+ def test_coco_evaluation_rejects_non_crowd_pose_area_larger_than_its_box() -> None:
341
+ """Keep area validation for non-crowd pose annotations used in OKS scoring."""
342
+
343
+ dataset = SimpleNamespace(
344
+ coco=SimpleNamespace(
345
+ cats={1: {}},
346
+ imgs={1: {"height": 640, "width": 640}},
332
347
  anns={
333
348
  7: {
334
349
  "id": 7,
335
350
  "image_id": 1,
336
351
  "category_id": 1,
337
- "bbox": [0, 0, 1, 1],
338
- "area": 100,
352
+ "bbox": [223, 405, 12, 27],
353
+ "area": 351,
339
354
  "iscrowd": 0,
340
355
  "keypoints": [0, 0, 0] * 17,
341
356
  "num_keypoints": 0,
@@ -343,14 +358,9 @@ def test_coco_evaluation_rejects_pose_area_larger_than_its_box(
343
358
  },
344
359
  )
345
360
  )
346
- monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset)
347
361
 
348
362
  with pytest.raises(ValueError, match="invalid task-specific annotations"):
349
- eval_coco_module.eval_coco_metrics(
350
- SimpleNamespace(post_cfg={"task": "pose_estimation", "dataset": "coco"}),
351
- "/dataset",
352
- batch_size=1,
353
- )
363
+ eval_coco_module._validate_coco_dataset_taxonomy(dataset, "pose_estimation")
354
364
 
355
365
 
356
366
  def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None:
@@ -165,3 +165,24 @@ def test_widerface_evaluation_rejects_unequal_box_and_score_counts() -> None:
165
165
 
166
166
  with pytest.raises(ValueError, match="unequal box and score counts"):
167
167
  eval_widerface_module._boxes_scores_to_prediction([[0, 0, 1, 1]], [])
168
+
169
+
170
+ def test_widerface_evaluation_normalizes_no_face_sentinel() -> None:
171
+ """Do not score the official all-zero no-face marker as a ground-truth box."""
172
+
173
+ boxes = eval_widerface_module._normalize_ground_truth_boxes(
174
+ np.zeros((1, 4), dtype=np.float32)
175
+ )
176
+
177
+ assert boxes.shape == (0, 4)
178
+
179
+
180
+ def test_widerface_evaluation_counts_predictions_on_no_face_image() -> None:
181
+ """Predictions on an official no-face image must contribute false positives."""
182
+
183
+ contribution = eval_widerface_module._empty_ground_truth_prediction_contribution(
184
+ 2, np.array([[0, 0, 1, 1, 0.9]], dtype=np.float32)
185
+ )
186
+
187
+ np.testing.assert_array_equal(contribution[:, 0], np.ones(2))
188
+ np.testing.assert_array_equal(contribution[:, 1], np.zeros(2))