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.
Files changed (433) hide show
  1. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/PKG-INFO +15 -1
  2. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/README.md +14 -0
  3. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/__init__.py +1 -1
  4. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/val.py +3 -4
  5. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/readiness.py +44 -50
  6. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_nyu_depth.py +25 -18
  7. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_widerface.py +40 -11
  8. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/base.py +6 -2
  9. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_anchor_post.py +25 -5
  10. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_anchorless_post.py +57 -0
  11. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_dflfree_post.py +37 -0
  12. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/yolo_nmsfree_post.py +97 -0
  13. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/PKG-INFO +15 -1
  14. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_benchmark_vision.py +34 -0
  15. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_dataset_readiness.py +56 -22
  16. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_coco.py +45 -35
  17. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_nyu_depth.py +12 -0
  18. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_widerface.py +31 -0
  19. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_postprocess_hierarchy.py +303 -0
  20. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/LICENSE +0 -0
  21. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_api.py +0 -0
  22. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_compat.py +0 -0
  23. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_model_paths.py +0 -0
  24. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/_tasks.py +0 -0
  25. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/__init__.py +0 -0
  26. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/argparse_utils.py +0 -0
  27. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/chart_utils.py +0 -0
  28. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/io_utils.py +0 -0
  29. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/benchmark/summary_utils.py +0 -0
  30. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/__init__.py +0 -0
  31. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/__main__.py +0 -0
  32. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/_vision.py +0 -0
  33. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/compile.py +0 -0
  34. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/main.py +0 -0
  35. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/cli/predict.py +0 -0
  36. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/compile/__init__.py +0 -0
  37. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/compile/vision.py +0 -0
  38. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/__init__.py +0 -0
  39. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/ade20k.yaml +0 -0
  40. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/cityscapes.yaml +0 -0
  41. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/coco.yaml +0 -0
  42. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/dotav1.yaml +0 -0
  43. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/imagenet.yaml +0 -0
  44. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/imagenet_synsets.txt +0 -0
  45. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/nyu-depth.yaml +0 -0
  46. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/registry.py +0 -0
  47. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/datasets/widerface.yaml +0 -0
  48. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/depth_estimation/__init__.py +0 -0
  49. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/face_detection/__init__.py +0 -0
  50. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/image_classification/__init__.py +0 -0
  51. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/instance_segmentation/__init__.py +0 -0
  52. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/AlexNet.yaml +0 -0
  53. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_B36.yaml +0 -0
  54. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_M36.yaml +0 -0
  55. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_S18.yaml +0 -0
  56. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CAFormer_S36.yaml +0 -0
  57. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CoAtNet_0_RW_224.yaml +0 -0
  58. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CoAtNet_1_RW_224.yaml +0 -0
  59. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/CoAtNet_2_RW_224.yaml +0 -0
  60. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_B36.yaml +0 -0
  61. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_M36.yaml +0 -0
  62. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_S18.yaml +0 -0
  63. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvFormer_S36.yaml +0 -0
  64. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Base.yaml +0 -0
  65. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Large.yaml +0 -0
  66. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Small.yaml +0 -0
  67. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ConvNext_Tiny.yaml +0 -0
  68. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Base_Patch16_224.yaml +0 -0
  69. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Base_Patch16_384.yaml +0 -0
  70. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Large_Patch16_224.yaml +0 -0
  71. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Large_Patch16_384.yaml +0 -0
  72. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Medium_Patch16_224.yaml +0 -0
  73. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Small_Patch16_224.yaml +0 -0
  74. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT3_Small_Patch16_384.yaml +0 -0
  75. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Base_Patch16_224.yaml +0 -0
  76. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Base_Patch16_384.yaml +0 -0
  77. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Small_Patch16_224.yaml +0 -0
  78. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DeiT_Tiny_Patch16_224.yaml +0 -0
  79. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet121.yaml +0 -0
  80. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet161.yaml +0 -0
  81. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet169.yaml +0 -0
  82. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/DenseNet201.yaml +0 -0
  83. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientFormer_L1.yaml +0 -0
  84. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientFormer_L3.yaml +0 -0
  85. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientFormer_L7.yaml +0 -0
  86. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B0.yaml +0 -0
  87. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B1.yaml +0 -0
  88. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B2.yaml +0 -0
  89. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B3.yaml +0 -0
  90. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B4.yaml +0 -0
  91. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B5.yaml +0 -0
  92. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B6.yaml +0 -0
  93. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_B7.yaml +0 -0
  94. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_V2_L.yaml +0 -0
  95. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_V2_M.yaml +0 -0
  96. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/EfficientNet_V2_S.yaml +0 -0
  97. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/FlexiVit_Base.yaml +0 -0
  98. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/FlexiVit_Large.yaml +0 -0
  99. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/FlexiVit_Small.yaml +0 -0
  100. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANc-seg.yaml +0 -0
  101. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANc.yaml +0 -0
  102. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANe.yaml +0 -0
  103. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANm.yaml +0 -0
  104. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GELANs.yaml +0 -0
  105. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/GoogLeNet.yaml +0 -0
  106. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Inception_V3.yaml +0 -0
  107. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_128.yaml +0 -0
  108. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_128S.yaml +0 -0
  109. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_192.yaml +0 -0
  110. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_256.yaml +0 -0
  111. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/LeViT_Conv_384.yaml +0 -0
  112. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet0_5.yaml +0 -0
  113. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet0_75.yaml +0 -0
  114. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet1_0.yaml +0 -0
  115. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MNASNet1_3.yaml +0 -0
  116. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MobileNet_V2.yaml +0 -0
  117. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MobileNet_V3_Large.yaml +0 -0
  118. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/MobileNet_V3_Small.yaml +0 -0
  119. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_16GF.yaml +0 -0
  120. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_1_6GF.yaml +0 -0
  121. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_32GF.yaml +0 -0
  122. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_3_2GF.yaml +0 -0
  123. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_400MF.yaml +0 -0
  124. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_800MF.yaml +0 -0
  125. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_X_8GF.yaml +0 -0
  126. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_16GF.yaml +0 -0
  127. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_1_6GF.yaml +0 -0
  128. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_32GF.yaml +0 -0
  129. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_3_2GF.yaml +0 -0
  130. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_400MF.yaml +0 -0
  131. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_800MF.yaml +0 -0
  132. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RegNet_Y_8GF.yaml +0 -0
  133. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M0_9.yaml +0 -0
  134. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1.yaml +0 -0
  135. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1_0.yaml +0 -0
  136. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1_1.yaml +0 -0
  137. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M1_5.yaml +0 -0
  138. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M2.yaml +0 -0
  139. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M2_3.yaml +0 -0
  140. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/RepViT_M3.yaml +0 -0
  141. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNeXt101_32X8D.yaml +0 -0
  142. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNeXt101_64X4D.yaml +0 -0
  143. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNeXt50_32X4D.yaml +0 -0
  144. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet101.yaml +0 -0
  145. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet152.yaml +0 -0
  146. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet18.yaml +0 -0
  147. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet34.yaml +0 -0
  148. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ResNet50.yaml +0 -0
  149. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X0_5.yaml +0 -0
  150. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X1_0.yaml +0 -0
  151. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X1_5.yaml +0 -0
  152. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ShuffleNet_V2_X2_0.yaml +0 -0
  153. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/SqueezeNet1_0.yaml +0 -0
  154. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/SqueezeNet1_1.yaml +0 -0
  155. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Swin_B.yaml +0 -0
  156. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Swin_S.yaml +0 -0
  157. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Swin_T.yaml +0 -0
  158. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG11.yaml +0 -0
  159. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG11_BN.yaml +0 -0
  160. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG13.yaml +0 -0
  161. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG13_BN.yaml +0 -0
  162. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG16.yaml +0 -0
  163. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG16_BN.yaml +0 -0
  164. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG19.yaml +0 -0
  165. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VGG19_BN.yaml +0 -0
  166. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_B_16.yaml +0 -0
  167. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_B_32.yaml +0 -0
  168. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch16_224.yaml +0 -0
  169. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch16_384.yaml +0 -0
  170. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch32_224.yaml +0 -0
  171. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch32_384.yaml +0 -0
  172. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Base_Patch8_224.yaml +0 -0
  173. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_L_16.yaml +0 -0
  174. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_L_32.yaml +0 -0
  175. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Large_Patch16_224.yaml +0 -0
  176. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Large_Patch16_384.yaml +0 -0
  177. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Large_Patch32_384.yaml +0 -0
  178. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch16_224.yaml +0 -0
  179. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch16_384.yaml +0 -0
  180. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch32_224.yaml +0 -0
  181. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Small_Patch32_384.yaml +0 -0
  182. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Tiny_Patch16_224.yaml +0 -0
  183. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/ViT_Tiny_Patch16_384.yaml +0 -0
  184. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VisFormer_Small.yaml +0 -0
  185. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/VisFormer_Tiny.yaml +0 -0
  186. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Wide_ResNet101_2.yaml +0 -0
  187. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/Wide_ResNet50_2.yaml +0 -0
  188. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-cls.yaml +0 -0
  189. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-face.yaml +0 -0
  190. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-obb.yaml +0 -0
  191. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-pose.yaml +0 -0
  192. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l-seg.yaml +0 -0
  193. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11l.yaml +0 -0
  194. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-cls.yaml +0 -0
  195. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-face.yaml +0 -0
  196. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-obb.yaml +0 -0
  197. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-pose.yaml +0 -0
  198. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m-seg.yaml +0 -0
  199. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11m.yaml +0 -0
  200. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-cls.yaml +0 -0
  201. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-face.yaml +0 -0
  202. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-obb.yaml +0 -0
  203. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-pose.yaml +0 -0
  204. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n-seg.yaml +0 -0
  205. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11n.yaml +0 -0
  206. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-cls.yaml +0 -0
  207. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-face.yaml +0 -0
  208. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-obb.yaml +0 -0
  209. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-pose.yaml +0 -0
  210. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s-seg.yaml +0 -0
  211. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11s.yaml +0 -0
  212. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-cls.yaml +0 -0
  213. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-obb.yaml +0 -0
  214. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-pose.yaml +0 -0
  215. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x-seg.yaml +0 -0
  216. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO11x.yaml +0 -0
  217. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12l-face.yaml +0 -0
  218. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12l-seg.yaml +0 -0
  219. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12l.yaml +0 -0
  220. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12m-face.yaml +0 -0
  221. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12m-seg.yaml +0 -0
  222. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12m.yaml +0 -0
  223. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12n-face.yaml +0 -0
  224. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12n-seg.yaml +0 -0
  225. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12n.yaml +0 -0
  226. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12s-face.yaml +0 -0
  227. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12s-seg.yaml +0 -0
  228. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12s.yaml +0 -0
  229. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12x-seg.yaml +0 -0
  230. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO12x.yaml +0 -0
  231. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-cls.yaml +0 -0
  232. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-depth.yaml +0 -0
  233. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-distill.yaml +0 -0
  234. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-obb.yaml +0 -0
  235. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-pose.yaml +0 -0
  236. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-seg.yaml +0 -0
  237. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-sem-ade20k.yaml +0 -0
  238. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l-sem.yaml +0 -0
  239. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26l.yaml +0 -0
  240. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-cls.yaml +0 -0
  241. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-depth.yaml +0 -0
  242. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-distill.yaml +0 -0
  243. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-obb.yaml +0 -0
  244. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-pose.yaml +0 -0
  245. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-seg.yaml +0 -0
  246. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-sem-ade20k.yaml +0 -0
  247. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m-sem.yaml +0 -0
  248. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26m.yaml +0 -0
  249. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-cls.yaml +0 -0
  250. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-depth.yaml +0 -0
  251. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-distill.yaml +0 -0
  252. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-obb.yaml +0 -0
  253. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-pose.yaml +0 -0
  254. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-seg.yaml +0 -0
  255. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-sem-ade20k.yaml +0 -0
  256. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n-sem.yaml +0 -0
  257. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26n.yaml +0 -0
  258. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-cls.yaml +0 -0
  259. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-depth.yaml +0 -0
  260. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-distill.yaml +0 -0
  261. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-obb.yaml +0 -0
  262. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-pose.yaml +0 -0
  263. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-seg.yaml +0 -0
  264. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-sem-ade20k.yaml +0 -0
  265. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s-sem.yaml +0 -0
  266. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26s.yaml +0 -0
  267. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-cls.yaml +0 -0
  268. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-depth.yaml +0 -0
  269. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-distill.yaml +0 -0
  270. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-obb.yaml +0 -0
  271. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-pose.yaml +0 -0
  272. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-seg.yaml +0 -0
  273. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-sem-ade20k.yaml +0 -0
  274. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x-sem.yaml +0 -0
  275. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLO26x.yaml +0 -0
  276. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10b.yaml +0 -0
  277. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10l-face.yaml +0 -0
  278. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10l.yaml +0 -0
  279. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10m-face.yaml +0 -0
  280. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10m.yaml +0 -0
  281. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10n-face.yaml +0 -0
  282. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10n.yaml +0 -0
  283. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10s-face.yaml +0 -0
  284. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10s.yaml +0 -0
  285. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv10x.yaml +0 -0
  286. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-spp.yaml +0 -0
  287. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-sppu.yaml +0 -0
  288. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-tiny.yaml +0 -0
  289. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3-tinyu.yaml +0 -0
  290. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3.yaml +0 -0
  291. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv3u.yaml +0 -0
  292. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l-cls.yaml +0 -0
  293. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l-seg.yaml +0 -0
  294. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l.yaml +0 -0
  295. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l6.yaml +0 -0
  296. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5l6u.yaml +0 -0
  297. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5lu.yaml +0 -0
  298. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m-cls.yaml +0 -0
  299. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m-seg.yaml +0 -0
  300. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m.yaml +0 -0
  301. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m6.yaml +0 -0
  302. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5m6u.yaml +0 -0
  303. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5mu.yaml +0 -0
  304. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n-cls.yaml +0 -0
  305. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n-seg.yaml +0 -0
  306. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n.yaml +0 -0
  307. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n6.yaml +0 -0
  308. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5n6u.yaml +0 -0
  309. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5nu.yaml +0 -0
  310. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s-cls.yaml +0 -0
  311. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s-seg.yaml +0 -0
  312. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s.yaml +0 -0
  313. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s6.yaml +0 -0
  314. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5s6u.yaml +0 -0
  315. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5su.yaml +0 -0
  316. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x-cls.yaml +0 -0
  317. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x-seg.yaml +0 -0
  318. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x.yaml +0 -0
  319. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x6.yaml +0 -0
  320. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5x6u.yaml +0 -0
  321. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv5xu.yaml +0 -0
  322. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv6m-face.yaml +0 -0
  323. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv6n-face.yaml +0 -0
  324. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7.yaml +0 -0
  325. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7d6.yaml +0 -0
  326. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7e6.yaml +0 -0
  327. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7e6e.yaml +0 -0
  328. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7w6.yaml +0 -0
  329. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv7x.yaml +0 -0
  330. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-cls.yaml +0 -0
  331. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-face.yaml +0 -0
  332. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-obb.yaml +0 -0
  333. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-pose.yaml +0 -0
  334. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l-seg.yaml +0 -0
  335. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8l.yaml +0 -0
  336. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-cls.yaml +0 -0
  337. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-face.yaml +0 -0
  338. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-obb.yaml +0 -0
  339. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-pose.yaml +0 -0
  340. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m-seg.yaml +0 -0
  341. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8m.yaml +0 -0
  342. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-cls.yaml +0 -0
  343. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-face.yaml +0 -0
  344. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-obb.yaml +0 -0
  345. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-pose.yaml +0 -0
  346. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n-seg.yaml +0 -0
  347. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8n.yaml +0 -0
  348. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-cls.yaml +0 -0
  349. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-obb.yaml +0 -0
  350. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-pose.yaml +0 -0
  351. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s-seg.yaml +0 -0
  352. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8s.yaml +0 -0
  353. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-cls.yaml +0 -0
  354. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-obb.yaml +0 -0
  355. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-pose-p6.yaml +0 -0
  356. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-pose.yaml +0 -0
  357. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x-seg.yaml +0 -0
  358. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv8x.yaml +0 -0
  359. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9c-seg.yaml +0 -0
  360. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9c.yaml +0 -0
  361. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9e-seg.yaml +0 -0
  362. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9e.yaml +0 -0
  363. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9m.yaml +0 -0
  364. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9s.yaml +0 -0
  365. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/models/YOLOv9t.yaml +0 -0
  366. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/obb/__init__.py +0 -0
  367. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/object_detection/__init__.py +0 -0
  368. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/pose_estimation/__init__.py +0 -0
  369. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/py.typed +0 -0
  370. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/semantic_segmentation/__init__.py +0 -0
  371. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/__init__.py +0 -0
  372. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/__init__.py +0 -0
  373. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/ade20k.py +0 -0
  374. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/cityscapes.py +0 -0
  375. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/coco.py +0 -0
  376. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/dataloader.py +0 -0
  377. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/dotav1.py +0 -0
  378. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/imagenet.py +0 -0
  379. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/datasets/organizer.py +0 -0
  380. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/__init__.py +0 -0
  381. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/_result.py +0 -0
  382. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_ade20k.py +0 -0
  383. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_cityscapes.py +0 -0
  384. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_coco.py +0 -0
  385. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_dota.py +0 -0
  386. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/evaluation/eval_imagenet.py +0 -0
  387. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/letterbox.py +0 -0
  388. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/__init__.py +0 -0
  389. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/_letterbox.py +0 -0
  390. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/build_post.py +0 -0
  391. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/cls_post.py +0 -0
  392. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/common.py +0 -0
  393. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/depth_post.py +0 -0
  394. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/postprocess/semantic_seg_post.py +0 -0
  395. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/__init__.py +0 -0
  396. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/_validation.py +0 -0
  397. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/base.py +0 -0
  398. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/build_pre.py +0 -0
  399. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/center_crop.py +0 -0
  400. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/letterbox.py +0 -0
  401. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/normalize.py +0 -0
  402. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/order.py +0 -0
  403. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/reader.py +0 -0
  404. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/resize.py +0 -0
  405. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/preprocess/yolo_pre.py +0 -0
  406. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/results.py +0 -0
  407. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/utils/types.py +0 -0
  408. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision/wrapper.py +0 -0
  409. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/SOURCES.txt +0 -0
  410. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/dependency_links.txt +0 -0
  411. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/entry_points.txt +0 -0
  412. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/requires.txt +0 -0
  413. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/mblt_vision_python.egg-info/top_level.txt +0 -0
  414. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/pyproject.toml +0 -0
  415. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/setup.cfg +0 -0
  416. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_api.py +0 -0
  417. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_cli.py +0 -0
  418. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_compile_vision.py +0 -0
  419. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_dataloader.py +0 -0
  420. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_dataset_organizer.py +0 -0
  421. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_depth_estimation.py +0 -0
  422. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_dota.py +0 -0
  423. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_eval_imagenet.py +0 -0
  424. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_face_detection.py +0 -0
  425. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_model_aliasing.py +0 -0
  426. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_model_metadata.py +0 -0
  427. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_mxq_inference.py +0 -0
  428. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_onnx_classification.py +0 -0
  429. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_onnx_yolo.py +0 -0
  430. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_preprocess_validation.py +0 -0
  431. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_results.py +0 -0
  432. {mblt_vision_python-0.0.0 → mblt_vision_python-0.0.2}/tests/test_semantic_segmentation.py +0 -0
  433. {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.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
+ [![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.2"
23
23
 
24
24
  _TASK_MODULES = (
25
25
  face_detection,
@@ -439,10 +439,9 @@ def _run_validation(args: argparse.Namespace) -> float:
439
439
  )
440
440
  print(
441
441
  "Validation score "
442
- f"(Easy AP): {widerface_result.easy_ap:.5f}, "
443
- f"(Medium AP): {widerface_result.medium_ap:.5f}, "
444
- f"(Hard AP): {widerface_result.hard_ap:.5f}, "
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
 
@@ -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] = {}
@@ -31,27 +31,33 @@ class NYUDepthResult:
31
31
 
32
32
  @property
33
33
  def secondary_score(self) -> float:
34
- """Return the secondary NYU Depth validation metric."""
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 over every valid NYU depth pixel."""
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 pixel sums."""
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.squared_error_sum = 0.0
51
- self.valid_pixel_count = 0
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 valid-pixel statistics."""
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
- valid_pixel_count = int(valid.sum())
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
- self.delta1_sum += float(np.sum(ratio < 1.25))
87
- self.abs_rel_sum += float(np.sum(np.abs(actual - aligned) / actual))
88
- self.squared_error_sum += float(np.sum((actual - aligned) ** 2))
89
- self.valid_pixel_count += valid_pixel_count
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 metrics pooled over all accumulated valid pixels."""
99
+ """Return mean per-image metrics."""
93
100
 
94
- if self.valid_pixel_count == 0:
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.valid_pixel_count,
98
- abs_rel=self.abs_rel_sum / self.valid_pixel_count,
99
- rmse=float(np.sqrt(self.squared_error_sum / self.valid_pixel_count)),
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 official pooled metrics for one median-aligned NYU sample."""
126
+ """Calculate median-aligned NYU metrics for one sample."""
120
127
 
121
128
  accumulator = NYUDepthMetricAccumulator()
122
129
  accumulator.update(prediction, target)
@@ -34,22 +34,22 @@ class WiderFaceResult(NamedTuple):
34
34
  hard_ap: float
35
35
 
36
36
  @property
37
- def mean_ap(self) -> float:
38
- """Return the mean AP across Easy, Medium, and Hard."""
37
+ def primary_score(self) -> float:
38
+ """Return Hard-set AP as the primary WiderFace metric."""
39
39
 
40
- return (self.easy_ap + self.medium_ap + self.hard_ap) / 3.0
40
+ return self.hard_ap
41
41
 
42
42
  @property
43
- def primary_score(self) -> float:
44
- """Return mean AP across the three validation splits."""
43
+ def secondary_score(self) -> float:
44
+ """Return Medium-set AP for singular-score compatibility."""
45
45
 
46
- return self.mean_ap
46
+ return self.medium_ap
47
47
 
48
48
  @property
49
- def secondary_score(self) -> float:
50
- """Return Hard-set AP."""
49
+ def secondary_scores(self) -> tuple[float, float]:
50
+ """Return Medium- and Easy-set AP in secondary-metric order."""
51
51
 
52
- return self.hard_ap
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 = 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:
@@ -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
- ) -> list[Any]:
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
- if len(x) != self.nl:
103
- raise ValueError(f"Expected {self.nl} detection heads, got {len(x)}.")
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 i in range(self.nl):
106
- tmp = x[i]
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