pybaseutils 2.0.8__tar.gz → 2.0.9__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 (249) hide show
  1. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/PKG-INFO +1 -1
  2. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/__init__.py +1 -1
  3. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/coords_utils.py +5 -2
  4. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_image_folder.py +4 -3
  5. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_image_text.py +27 -22
  6. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/PKG-INFO +1 -1
  7. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo1.py +7 -5
  8. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_rename.py +2 -2
  9. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/LICENCE +0 -0
  10. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/README.md +0 -0
  11. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/__init__.py +0 -0
  12. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/audio_utils.py +0 -0
  13. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/pyaudio_utils.py +0 -0
  14. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/vad_utils.py +0 -0
  15. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/base64_utils.py +0 -0
  16. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/batch_utils.py +0 -0
  17. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/build_utils/__init__.py +0 -0
  18. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/build_utils/cython_utils.py +0 -0
  19. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
  20. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/__init__.py +0 -0
  21. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/kmean.py +0 -0
  22. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/maxmin_distance.py +0 -0
  23. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/similarity.py +0 -0
  24. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/color_utils.py +0 -0
  25. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/config_utils.py +0 -0
  26. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/__init__.py +0 -0
  27. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_coco.py +0 -0
  28. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_cvat.py +0 -0
  29. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_labelme.py +0 -0
  30. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_voc.py +0 -0
  31. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/concat_coco.py +0 -0
  32. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_coco2labelme.py +0 -0
  33. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_coco2voc.py +0 -0
  34. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
  35. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  36. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
  37. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  38. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  39. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2coco.py +0 -0
  40. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2labelme.py +0 -0
  41. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2voc.py +0 -0
  42. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2yolo.py +0 -0
  43. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_yolo2voc.py +0 -0
  44. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/__init__.py +0 -0
  45. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/corner_utils.py +0 -0
  46. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/monitor.py +0 -0
  47. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/mouse_utils.py +0 -0
  48. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/video_utils.py +0 -0
  49. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/__init__.py +0 -0
  50. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/balanced_classes.py +0 -0
  51. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/base_coco.py +0 -0
  52. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/base_dataset.py +0 -0
  53. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/data_resample.py +0 -0
  54. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_coco_det.py +0 -0
  55. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
  56. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
  57. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_labelme.py +0 -0
  58. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_voc.py +0 -0
  59. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_yolo.py +0 -0
  60. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  61. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/file_utils.py +0 -0
  62. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/QueueTable.py +0 -0
  63. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/__init__.py +0 -0
  64. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/demo.py +0 -0
  65. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/kalman_filter.py +0 -0
  66. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/mean_filter.py +0 -0
  67. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/motion_filter.py +0 -0
  68. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/pose_filter.py +0 -0
  69. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/font_style/__init__.py +0 -0
  70. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/font_utils.py +0 -0
  71. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/geometry_tools.py +0 -0
  72. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/heatmap_utils.py +0 -0
  73. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/image_utils.py +0 -0
  74. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/json_utils.py +0 -0
  75. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/log.py +0 -0
  76. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/logger.py +0 -0
  77. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/__init__.py +0 -0
  78. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/accuracy.py +0 -0
  79. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/average_meter.py +0 -0
  80. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/class_report.py +0 -0
  81. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/plot_pr.py +0 -0
  82. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/plot_roc.py +0 -0
  83. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/numpy_utils.py +0 -0
  84. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pandas_utils.py +0 -0
  85. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/plot_utils.py +0 -0
  86. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/__init__.py +0 -0
  87. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/bones_utils.py +0 -0
  88. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/human_pose.py +0 -0
  89. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/pose_utils.py +0 -0
  90. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pycpp/__init__.py +0 -0
  91. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pycpp/demo.py +0 -0
  92. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pycpp/main.py +0 -0
  93. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/server/__init__.py +0 -0
  94. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/server/apm_server.py +0 -0
  95. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/setup_config.py +0 -0
  96. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/singleton_utils.py +0 -0
  97. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/text_utils.py +0 -0
  98. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/thread_utils.py +0 -0
  99. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/time_utils.py +0 -0
  100. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracemalloc_utils.py +0 -0
  101. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracemalloc_utils2.py +0 -0
  102. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/QueueTable.py +0 -0
  103. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/__init__.py +0 -0
  104. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/demo.py +0 -0
  105. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/kalman_filter.py +0 -0
  106. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/mean_filter.py +0 -0
  107. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/motion_filter.py +0 -0
  108. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/pose_filter.py +0 -0
  109. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/__init__.py +0 -0
  110. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/affine_transform.py +0 -0
  111. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/augment_utils.py +0 -0
  112. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/face_alignment.py +0 -0
  113. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/transform_utils.py +0 -0
  114. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/word_utils.py +0 -0
  115. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/worker.py +0 -0
  116. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/yaml_utils.py +0 -0
  117. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/SOURCES.txt +0 -0
  118. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/dependency_links.txt +0 -0
  119. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/not-zip-safe +0 -0
  120. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/top_level.txt +0 -0
  121. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/setup.cfg +0 -0
  122. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/setup.py +0 -0
  123. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/WebCrawler/__init__.py +0 -0
  124. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/WebCrawler/search_image.py +0 -0
  125. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
  126. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/__init__.py +0 -0
  127. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/__init__.py +0 -0
  128. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/action_dataset.py +0 -0
  129. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/build_cython.py +0 -0
  130. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/build_pyarmor.py +0 -0
  131. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/build_service.py +0 -0
  132. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/convert_cvat2labelme.py +0 -0
  133. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/convert_labelme2coco.py +0 -0
  134. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/convert_labelme2voc.py +0 -0
  135. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/copy_move.py +0 -0
  136. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_labelme_crop.py +0 -0
  137. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_video_aije.py +0 -0
  138. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_voc_crop.py +0 -0
  139. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_voc_vis.py +0 -0
  140. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/video_convertor.py +0 -0
  141. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/__init__.py +0 -0
  142. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/demo.py +0 -0
  143. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/main.py +0 -0
  144. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/main_read.py +0 -0
  145. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/segment.py +0 -0
  146. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  147. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/speechbrain_demo.py +0 -0
  148. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/captcha/__init__.py +0 -0
  149. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/captcha/demo.py +0 -0
  150. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/class_attribute.py +0 -0
  151. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/class_names.py +0 -0
  152. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/AffectNet.py +0 -0
  153. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/AsianMovie.py +0 -0
  154. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/BITVehicle2voc.py +0 -0
  155. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/BSTLD2voc.py +0 -0
  156. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/CCPD.py +0 -0
  157. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/CCPD2voc.py +0 -0
  158. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/FL3D_dataset.py +0 -0
  159. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/FreiHAND2coco.py +0 -0
  160. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/MTFL2voc.py +0 -0
  161. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/TT100K.py +0 -0
  162. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/WaterMeters1.py +0 -0
  163. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/WaterMeters2.py +0 -0
  164. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/__init__.py +0 -0
  165. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/concat_coco.py +0 -0
  166. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_coco2voc.py +0 -0
  167. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_cvat2labelme.py +0 -0
  168. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_gesture2hand.py +0 -0
  169. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_labelme2coco.py +0 -0
  170. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_labelme2cvat.py +0 -0
  171. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_labelme2voc.py +0 -0
  172. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_voc2labelme.py +0 -0
  173. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/fatigue_driving.py +0 -0
  174. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/fdd_dataset.py +0 -0
  175. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/get_pair_data.py +0 -0
  176. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/handpose2coco.py +0 -0
  177. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/insects_for_aichallenger.py +0 -0
  178. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/tt100k_utils.py +0 -0
  179. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/ua_detrac2voc.py +0 -0
  180. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/ucf101_dataset.py +0 -0
  181. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/voc_sbd2labelme.py +0 -0
  182. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/__init__.py +0 -0
  183. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/build_cython.py +0 -0
  184. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/build_pyarmor.py +0 -0
  185. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/cryptography_demo.py +0 -0
  186. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/fun_sum.py +0 -0
  187. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/main.py +0 -0
  188. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/model_des_enctypt.py +0 -0
  189. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/model_enctypt.py +0 -0
  190. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo2.py +0 -0
  191. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo3.py +0 -0
  192. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_async_await1.py +0 -0
  193. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_async_await2.py +0 -0
  194. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_coco_vis.py +0 -0
  195. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_copy_files.py +0 -0
  196. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_copy_files_for_voc.py +0 -0
  197. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_ffmpy.py +0 -0
  198. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_for_pair_file.py +0 -0
  199. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_for_polygon.py +0 -0
  200. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_for_trt.py +0 -0
  201. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_get_file_list.py +0 -0
  202. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_gif.py +0 -0
  203. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_gif_video.py +0 -0
  204. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_image_crop.py +0 -0
  205. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_kpts.py +0 -0
  206. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_labelme.py +0 -0
  207. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_labelme_crop.py +0 -0
  208. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_lableme_vis.py +0 -0
  209. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_metrics.py +0 -0
  210. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_mouse.py +0 -0
  211. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_nii.py +0 -0
  212. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_pandas.py +0 -0
  213. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_plot.py +0 -0
  214. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_standard_image .py +0 -0
  215. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_standard_video .py +0 -0
  216. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_taichi.py +0 -0
  217. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_video.py +0 -0
  218. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_voc_crop.py +0 -0
  219. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_voc_vis.py +0 -0
  220. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_word_similar.py +0 -0
  221. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_worker1.py +0 -0
  222. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_worker2.py +0 -0
  223. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/__init__.py +0 -0
  224. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/demo.py +0 -0
  225. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/detect_face_person.py +0 -0
  226. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/predet_labelme.py +0 -0
  227. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/edit_distance/__init__.py +0 -0
  228. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/edit_distance/demo.py +0 -0
  229. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/edit_distance/text_matching.py +0 -0
  230. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/flask_demo/__init__.py +0 -0
  231. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/flask_demo/func.py +0 -0
  232. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/flask_demo/server.py +0 -0
  233. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/__init__.py +0 -0
  234. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/demo_correction_v1.py +0 -0
  235. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/demo_correction_v2.py +0 -0
  236. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/demo_correction_v3.py +0 -0
  237. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/kafka_worker.py +0 -0
  238. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/men_tracemalloc.py +0 -0
  239. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/performance.py +0 -0
  240. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/pose/__init__.py +0 -0
  241. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/pose/human_pose.py +0 -0
  242. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/__init__.py +0 -0
  243. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/base.py +0 -0
  244. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/component.py +0 -0
  245. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/main.py +0 -0
  246. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/register.py +0 -0
  247. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/test_fr/__init__.py +0 -0
  248. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/test_fr/demo11.py +0 -0
  249. {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/test_fr/idcardocr.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pybaseutils
3
- Version: 2.0.8
3
+ Version: 2.0.9
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -5,4 +5,4 @@
5
5
  @Date : 2019-05-07 17:40:27
6
6
  """
7
7
 
8
- __version__ = '2.0.8'
8
+ __version__ = '2.0.9'
@@ -198,11 +198,12 @@ def shrink_polygon_pyclipper(polygon, ratio):
198
198
  return shrinked
199
199
 
200
200
 
201
- def get_square_boxes(boxes, use_max=True, baseline=-1):
201
+ def get_square_boxes(boxes, use_max=True, use_mean=False, baseline=-1):
202
202
  """
203
203
  将boxes转换为正方形的boxes
204
204
  :param boxes:
205
- :param use_max: 是否按照每个box(w,h)最大值进行转换
205
+ :param use_max: 是否按照每个box(w,h)最大值(True)/最小值(False)进行转换(默认)
206
+ :param use_mean: 是否按照每个box(w,h)平均值进行转换(优先级比use_mean高)
206
207
  :param baseline: 当baseline>0,表示正方形最小边长
207
208
  :return:
208
209
  """
@@ -213,6 +214,8 @@ def get_square_boxes(boxes, use_max=True, baseline=-1):
213
214
  b = np.max(center[:, 2:4], axis=1)
214
215
  else:
215
216
  b = np.min(center[:, 2:4], axis=1)
217
+ if use_mean:
218
+ b = np.mean(center[:, 2:4], axis=1)
216
219
  if baseline > 0:
217
220
  index = b < baseline
218
221
  b[index] = baseline
@@ -39,7 +39,7 @@ class FolderDataset(parser_image_text.TextDataset):
39
39
  def __getitem__(self, index):
40
40
  """
41
41
  :param index:
42
- :return: image,label
42
+ :return: {"image": image, "label": label}
43
43
  """
44
44
  item = self.item_list[index]
45
45
  bbox = item[2:] if len(item) == 6 else []
@@ -65,7 +65,7 @@ class FolderDataset(parser_image_text.TextDataset):
65
65
  item_list = []
66
66
  for i, dir in enumerate(filename):
67
67
  print("loading image from:{}".format(dir))
68
- if not os.path.exists(dir): raise Exception("image_dir:{}".format(dir))
68
+ if not os.path.exists(dir): raise Exception("文件不存在,image_dir:{}".format(dir))
69
69
  paths, labels = file_utils.get_files_labels(dir, postfix=file_utils.IMG_POSTFIX)
70
70
  # TODO # 避免多个数据集的相同的label
71
71
  if use_sub: labels = [os.path.join(str(i), l) for l in labels]
@@ -79,6 +79,7 @@ if __name__ == '__main__':
79
79
  from torchvision import transforms
80
80
 
81
81
  image_dir = ['/home/PKing/nasdata/release/infrastructure/DMClassification/data/dataset/train']
82
+ class_name = None
82
83
  input_size = [224, 224]
83
84
  rgb_mean = [0., 0., 0.]
84
85
  rgb_std = [1.0, 1.0, 1.0]
@@ -90,7 +91,7 @@ if __name__ == '__main__':
90
91
  dataset = FolderDataset(image_dir=image_dir,
91
92
  transform=transform,
92
93
  shuffle=True,
93
- class_name=None,
94
+ class_name=class_name,
94
95
  resample=True,
95
96
  disp=True)
96
97
  for i in range(len(dataset)):
@@ -35,8 +35,9 @@ class TextDataset(Dataset):
35
35
  :param phase:
36
36
  :param disp:
37
37
  :param check:
38
- :param kwargs:
38
+ :param kwargs: crop_scale,resample,save_info
39
39
  """
40
+ self.kwargs = kwargs
40
41
  self.use_rgb = use_rgb
41
42
  self.transform = transform
42
43
  self.phase = phase
@@ -55,9 +56,9 @@ class TextDataset(Dataset):
55
56
  self.num_images = len(self.item_list)
56
57
  self.classes = list(self.class_dict.values())
57
58
  self.num_classes = max(self.classes) + 1
58
- self.info(save=kwargs.get("save", ""))
59
+ self.info(save_info=kwargs.get("save_info", ""))
59
60
 
60
- def info(self, save=""):
61
+ def info(self, save_info=""):
61
62
  print("----------------------- {} DATASET INFO -----------------------".format(self.phase.upper()))
62
63
  print("Dataset have images :{}".format(len(self.item_list)))
63
64
  print("Dataset class_name :{}".format(self.class_name))
@@ -66,17 +67,17 @@ class TextDataset(Dataset):
66
67
  print("Dataset num images :{}".format(len(self.item_list)))
67
68
  print("Dataset num_classes :{}".format(self.num_classes))
68
69
  print("Dataset resample :{}".format(self.resample))
69
- if save:
70
- if not os.path.exists(save): os.makedirs(save)
70
+ if save_info:
71
+ if not os.path.exists(save_info): os.makedirs(save_info)
71
72
  m = np.mean(list(self.class_count.values()))
72
73
  class_lack = {n: c for n, c in self.class_count.items() if c < m * 0.5}
73
74
  class_lack = sorted(class_lack.items(), key=lambda x: x[1], reverse=True)
74
75
  class_lack = {n[0]: n[1] for n in class_lack}
75
76
  class_lack.update({"mean": m})
76
- file_utils.write_json_path(os.path.join(save, f"{self.phase}_class_dict.json"), self.class_dict)
77
- file_utils.write_json_path(os.path.join(save, f"{self.phase}_class_count.json"), self.class_count)
78
- file_utils.write_list_data(os.path.join(save, f"{self.phase}_class_name.txt"), self.class_name)
79
- file_utils.write_json_path(os.path.join(save, f"{self.phase}_class_lack.json"), class_lack)
77
+ file_utils.write_json_path(os.path.join(save_info, f"{self.phase}_class_dict.json"), self.class_dict)
78
+ file_utils.write_json_path(os.path.join(save_info, f"{self.phase}_class_count.json"), self.class_count)
79
+ file_utils.write_list_data(os.path.join(save_info, f"{self.phase}_class_name.txt"), self.class_name)
80
+ file_utils.write_json_path(os.path.join(save_info, f"{self.phase}_class_lack.json"), class_lack)
80
81
  print("loss_labels: {}".format(class_lack))
81
82
  print("------------------------------------------------------------------")
82
83
 
@@ -91,8 +92,8 @@ class TextDataset(Dataset):
91
92
  """
92
93
  data_list = self.load_dataset(filename, data_root=data_root)
93
94
  if not self.class_name:
94
- class_name = list(set([d[1] for d in data_list]))
95
- self.class_name, self.class_dict = self.parser_classes(class_name)
95
+ self.class_name = list(set([d[1] for d in data_list]))
96
+ self.class_name, self.class_dict = self.parser_classes(self.class_name)
96
97
  item_list = []
97
98
  for data in data_list:
98
99
  label = data[1]
@@ -100,6 +101,8 @@ class TextDataset(Dataset):
100
101
  data[1] = self.class_dict[label]
101
102
  item_list.append(data)
102
103
  if check: item_list = self.check_item(item_list)
104
+ assert self.class_name, f"类别为空,请检查,class_name={self.class_name}"
105
+ assert item_list, f"文件列表为空,请检查输入数据,filename={filename}"
103
106
  if shuffle:
104
107
  random.seed(100)
105
108
  random.shuffle(item_list)
@@ -156,13 +159,13 @@ class TextDataset(Dataset):
156
159
  def __getitem__(self, index):
157
160
  """
158
161
  :param index:
159
- :return: image,label
162
+ :return: {"image": image, "label": label}
160
163
  """
161
164
  item = self.item_list[index]
162
165
  bbox = item[2:] if len(item) == 6 else []
163
166
  image_file, label = item[0], item[1]
164
167
  image = self.read_image(image_file, use_rgb=self.use_rgb)
165
- image = self.crop_image(image, bbox=bbox) if bbox else image
168
+ image = self.crop_image(image, bbox=bbox, scale=self.kwargs.get("crop_scale", [1.2, 1.2])) if bbox else image
166
169
  if self.transform:
167
170
  image = Image.fromarray(image)
168
171
  image = self.transform(image)
@@ -176,10 +179,11 @@ class TextDataset(Dataset):
176
179
  self.item_list = self.data_resample.update(True)
177
180
  return len(self.item_list)
178
181
 
179
- def crop_image(self, image, bbox):
180
- """采集图片"""
182
+ def crop_image(self, image, bbox, scale=[1.2, 1.2]):
183
+ """裁剪图片"""
181
184
  if not bbox: return image
182
- boxes = image_utils.extend_xyxy([bbox], scale=[1.2, 1.2])
185
+ boxes = image_utils.get_square_boxes([bbox], use_max=True)
186
+ boxes = image_utils.extend_xyxy(boxes, scale=scale)
183
187
  image = image_utils.get_boxes_crop(image, boxes)[0]
184
188
  return image
185
189
 
@@ -241,10 +245,10 @@ if __name__ == '__main__':
241
245
  from torchvision import transforms
242
246
 
243
247
  filenames = [
244
- # '/home/PKing/nasdata/tmp/tmp/RealFakeFace/anti-spoofing-images-v1/CelebA-Spoof/CelebA_Spoof/test.txt',
245
- '/home/PKing/nasdata/tmp/tmp/RealFakeFace/anti-spoofing-images-v1/CelebA-Spoof/CelebA_Spoof/Data/train.txt',
248
+ '/home/PKing/nasdata/tmp/tmp/RealFakeFace/anti-spoofing-images-v1/train.txt',
246
249
  ]
247
- input_size = [224, 224]
250
+ class_name = None
251
+ input_size = [112, 112]
248
252
  rgb_mean = [0., 0., 0.]
249
253
  rgb_std = [1.0, 1.0, 1.0]
250
254
  transform = transforms.Compose([
@@ -254,9 +258,10 @@ if __name__ == '__main__':
254
258
  ])
255
259
  dataset = TextDataset(filename=filenames,
256
260
  transform=transform,
257
- resample=True,
258
- shuffle=True,
259
- class_name=None,
261
+ class_name=class_name,
262
+ resample=False,
263
+ shuffle=False,
264
+ # crop_scale=(1.2, 1.2),
260
265
  disp=True)
261
266
  for i in range(len(dataset)):
262
267
  data_info = dataset.__getitem__(i)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pybaseutils
3
- Version: 2.0.8
3
+ Version: 2.0.9
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -48,8 +48,10 @@ class Promote():
48
48
 
49
49
 
50
50
  if __name__ == '__main__':
51
- file = "/home/PKing/nasdata/tmp/tmp/Natural/图片描述.json"
52
- data = json_utils.read_json_data(file)
53
- for i in range(len(data)):
54
- data[i]["result"] = json.loads(data[i]["result"])
55
- print(data)
51
+ image_file = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/第3批数据/aije-action-train-v22/江门_检查工器具_20240910_172411_6606_0000.jpg"
52
+ boxe1 = [[600, 300, 850, 800]]
53
+ image = image_utils.read_image(image_file)
54
+ boxe2 = image_utils.get_square_boxes(boxe1, use_max=True, use_mean=True)
55
+ image = image_utils.draw_image_boxes(image, boxe1, color=(255, 0, 0))
56
+ image = image_utils.draw_image_boxes(image, boxe2, color=(0, 255, 0))
57
+ image_utils.cv_show_image("image", image)
@@ -24,9 +24,9 @@ def rename_image_file(image_dir, output, prefix=""):
24
24
 
25
25
  if __name__ == '__main__':
26
26
  # image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v12/黄埔数企"
27
- image_dir = "/home/PKing/Pictures/暗物16楼"
27
+ image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/第3批数据/aije-action-train-v21"
28
28
  output = image_dir + "-train"
29
- prefix = os.path.basename(image_dir)
29
+ prefix = "江门_更换熔丝"
30
30
  # image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-cls2/手与表箱门有接触/手与表箱门无接触/南沙工匠"
31
31
  # output = "/home/PKing/nasdata/dataset-dmai/AIJE/岗评项目数据/室内考题/南沙视频/室内/南沙基地视频3/南沙工匠"
32
32
  # prefix = os.path.basename(output)
File without changes
File without changes
File without changes
File without changes