pybaseutils 2.2.1__tar.gz → 2.2.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 (270) hide show
  1. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/PKG-INFO +1 -1
  2. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/__init__.py +1 -1
  3. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_labelme.py +16 -13
  4. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_voc.py +13 -3
  5. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_yolo.py +7 -10
  6. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/heatmap_utils.py +48 -0
  7. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/transforms/augment_utils.py +48 -2
  8. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils.egg-info/PKG-INFO +1 -1
  9. pybaseutils-2.2.2/test_py/demo2.py +37 -0
  10. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_lableme_vis.py +2 -1
  11. pybaseutils-2.2.1/test_py/demo2.py +0 -23
  12. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/LICENCE +0 -0
  13. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/README.md +0 -0
  14. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/audio/__init__.py +0 -0
  15. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/audio/audio_utils.py +0 -0
  16. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/audio/pyaudio_utils.py +0 -0
  17. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/audio/vad_utils.py +0 -0
  18. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/base64_utils.py +0 -0
  19. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/batch_utils.py +0 -0
  20. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/build_utils/__init__.py +0 -0
  21. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/build_utils/cython_utils.py +0 -0
  22. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
  23. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cluster/__init__.py +0 -0
  24. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cluster/kmean.py +0 -0
  25. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cluster/maxmin_distance.py +0 -0
  26. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cluster/similarity.py +0 -0
  27. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/color_utils.py +0 -0
  28. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/config_utils.py +0 -0
  29. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/__init__.py +0 -0
  30. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/build_coco.py +0 -0
  31. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/build_cvat.py +0 -0
  32. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/build_labelme.py +0 -0
  33. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/build_voc.py +0 -0
  34. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/concat_coco.py +0 -0
  35. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_coco2labelme.py +0 -0
  36. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_coco2voc.py +0 -0
  37. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
  38. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  39. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
  40. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  41. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  42. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_voc2coco.py +0 -0
  43. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_voc2labelme.py +0 -0
  44. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_voc2voc.py +0 -0
  45. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_voc2yolo.py +0 -0
  46. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/converter/convert_yolo2voc.py +0 -0
  47. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/coords_utils.py +0 -0
  48. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cvutils/__init__.py +0 -0
  49. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cvutils/corner_utils.py +0 -0
  50. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cvutils/monitor.py +0 -0
  51. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cvutils/mouse_utils.py +0 -0
  52. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cvutils/nms_utils.py +0 -0
  53. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/cvutils/video_utils.py +0 -0
  54. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/__init__.py +0 -0
  55. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/balanced_classes.py +0 -0
  56. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/base_coco.py +0 -0
  57. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/base_dataset.py +0 -0
  58. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/data_resample.py +0 -0
  59. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_coco_det.py +0 -0
  60. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
  61. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
  62. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_image_folder.py +0 -0
  63. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/parser_image_text.py +0 -0
  64. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  65. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/file_utils.py +0 -0
  66. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/QueueTable.py +0 -0
  67. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/__init__.py +0 -0
  68. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/demo.py +0 -0
  69. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/kalman_filter.py +0 -0
  70. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/mean_filter.py +0 -0
  71. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/motion_filter.py +0 -0
  72. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/filter/pose_filter.py +0 -0
  73. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/font_style/__init__.py +0 -0
  74. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/font_utils.py +0 -0
  75. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/geometry_tools.py +0 -0
  76. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/image_utils.py +0 -0
  77. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/json_utils.py +0 -0
  78. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/log.py +0 -0
  79. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/log_utils.py +0 -0
  80. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/logger.py +0 -0
  81. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/metrics/__init__.py +0 -0
  82. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/metrics/accuracy.py +0 -0
  83. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/metrics/average_meter.py +0 -0
  84. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/metrics/class_report.py +0 -0
  85. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/metrics/plot_pr.py +0 -0
  86. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/metrics/plot_roc.py +0 -0
  87. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/numpy_utils.py +0 -0
  88. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pandas_utils.py +0 -0
  89. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/plot_utils.py +0 -0
  90. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pose/__init__.py +0 -0
  91. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pose/bones_utils.py +0 -0
  92. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pose/human_pose.py +0 -0
  93. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pose/pose_utils.py +0 -0
  94. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pycpp/__init__.py +0 -0
  95. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pycpp/demo.py +0 -0
  96. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/pycpp/main.py +0 -0
  97. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/server/__init__.py +0 -0
  98. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/server/apm_server.py +0 -0
  99. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/setup_config.py +0 -0
  100. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/singleton_utils.py +0 -0
  101. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/text_utils.py +0 -0
  102. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/thread_utils.py +0 -0
  103. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/time_utils.py +0 -0
  104. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracemalloc_utils.py +0 -0
  105. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracemalloc_utils2.py +0 -0
  106. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/QueueTable.py +0 -0
  107. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/__init__.py +0 -0
  108. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/demo.py +0 -0
  109. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/kalman_filter.py +0 -0
  110. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/mean_filter.py +0 -0
  111. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/motion_filter.py +0 -0
  112. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/tracking/pose_filter.py +0 -0
  113. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/transforms/__init__.py +0 -0
  114. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/transforms/affine_transform.py +0 -0
  115. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/transforms/face_alignment.py +0 -0
  116. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/transforms/transform_utils.py +0 -0
  117. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/word_utils.py +0 -0
  118. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/worker.py +0 -0
  119. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils/yaml_utils.py +0 -0
  120. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils.egg-info/SOURCES.txt +0 -0
  121. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils.egg-info/dependency_links.txt +0 -0
  122. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils.egg-info/not-zip-safe +0 -0
  123. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/pybaseutils.egg-info/top_level.txt +0 -0
  124. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/setup.cfg +0 -0
  125. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/setup.py +0 -0
  126. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/Image_enhance/__init__.py +0 -0
  127. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/Image_enhance/dmeo01.py +0 -0
  128. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/WebCrawler/__init__.py +0 -0
  129. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/WebCrawler/search_image.py +0 -0
  130. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
  131. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/__init__.py +0 -0
  132. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/__init__.py +0 -0
  133. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/action_dataset.py +0 -0
  134. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/build_cython.py +0 -0
  135. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/build_pyarmor.py +0 -0
  136. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/build_service.py +0 -0
  137. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/convert_cvat2labelme.py +0 -0
  138. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/convert_labelme2coco.py +0 -0
  139. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/convert_labelme2voc.py +0 -0
  140. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/copy_move.py +0 -0
  141. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/demo_labelme_crop.py +0 -0
  142. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/demo_video_aije.py +0 -0
  143. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/demo_voc_crop.py +0 -0
  144. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/demo_voc_vis.py +0 -0
  145. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/get_pair_data.py +0 -0
  146. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/aije/video_convertor.py +0 -0
  147. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/__init__.py +0 -0
  148. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/demo.py +0 -0
  149. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/main.py +0 -0
  150. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/main_read.py +0 -0
  151. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/segment.py +0 -0
  152. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  153. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/audio/speechbrain_demo.py +0 -0
  154. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/captcha/__init__.py +0 -0
  155. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/captcha/demo.py +0 -0
  156. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/class_attribute.py +0 -0
  157. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/class_names.py +0 -0
  158. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/AffectNet.py +0 -0
  159. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/AsianMovie.py +0 -0
  160. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/BITVehicle2voc.py +0 -0
  161. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/BSTLD2voc.py +0 -0
  162. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/CCPD.py +0 -0
  163. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/CCPD2voc.py +0 -0
  164. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/FL3D_dataset.py +0 -0
  165. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/FreiHAND2coco.py +0 -0
  166. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/MTFL2voc.py +0 -0
  167. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/TT100K.py +0 -0
  168. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/WaterMeters1.py +0 -0
  169. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/WaterMeters2.py +0 -0
  170. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/__init__.py +0 -0
  171. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/concat_coco.py +0 -0
  172. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_coco2voc.py +0 -0
  173. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_cvat2labelme.py +0 -0
  174. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_gesture2hand.py +0 -0
  175. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_labelme2coco.py +0 -0
  176. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_labelme2cvat.py +0 -0
  177. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_labelme2voc.py +0 -0
  178. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/convert_voc2labelme.py +0 -0
  179. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/fatigue_driving.py +0 -0
  180. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/fdd_dataset.py +0 -0
  181. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/get_pair_data.py +0 -0
  182. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/handpose2coco.py +0 -0
  183. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/insects_for_aichallenger.py +0 -0
  184. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/tt100k_utils.py +0 -0
  185. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/ua_detrac2voc.py +0 -0
  186. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/ucf101_dataset.py +0 -0
  187. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/converter/voc_sbd2labelme.py +0 -0
  188. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/__init__.py +0 -0
  189. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/build_cython.py +0 -0
  190. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/build_pyarmor.py +0 -0
  191. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/cryptography_demo.py +0 -0
  192. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/fun_sum.py +0 -0
  193. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/main.py +0 -0
  194. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/model_des_enctypt.py +0 -0
  195. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/cython_build/model_enctypt.py +0 -0
  196. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo1.py +0 -0
  197. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo3.py +0 -0
  198. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_async_await1.py +0 -0
  199. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_async_await2.py +0 -0
  200. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_coco_vis.py +0 -0
  201. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_copy_files.py +0 -0
  202. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_copy_files_for_voc.py +0 -0
  203. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_ffmpy.py +0 -0
  204. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_for_pair_file.py +0 -0
  205. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_for_polygon.py +0 -0
  206. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_for_trt.py +0 -0
  207. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_get_file_label.py +0 -0
  208. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_get_file_list.py +0 -0
  209. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_gif.py +0 -0
  210. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_gif_video.py +0 -0
  211. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_image_crop.py +0 -0
  212. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_kpts.py +0 -0
  213. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_labelme.py +0 -0
  214. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_labelme_crop.py +0 -0
  215. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_metrics.py +0 -0
  216. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_mouse.py +0 -0
  217. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_nii.py +0 -0
  218. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_pandas.py +0 -0
  219. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_plot.py +0 -0
  220. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_rename.py +0 -0
  221. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_standard_image .py +0 -0
  222. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_standard_video .py +0 -0
  223. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_taichi.py +0 -0
  224. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_video.py +0 -0
  225. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_video_crop.py +0 -0
  226. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_voc_crop.py +0 -0
  227. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_voc_vis.py +0 -0
  228. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_word_similar.py +0 -0
  229. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_worker1.py +0 -0
  230. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/demo_worker2.py +0 -0
  231. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/detector/__init__.py +0 -0
  232. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/detector/demo.py +0 -0
  233. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/detector/detect_face_person.py +0 -0
  234. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/detector/predet_labelme.py +0 -0
  235. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/edit_distance/__init__.py +0 -0
  236. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/edit_distance/demo.py +0 -0
  237. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/edit_distance/text_matching.py +0 -0
  238. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/flask_demo/__init__.py +0 -0
  239. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/flask_demo/func.py +0 -0
  240. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/flask_demo/server.py +0 -0
  241. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/get_file_list.py +0 -0
  242. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/image_correction/__init__.py +0 -0
  243. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/image_correction/demo_correction_v1.py +0 -0
  244. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/image_correction/demo_correction_v2.py +0 -0
  245. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/image_correction/demo_correction_v3.py +0 -0
  246. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/kafka_worker.py +0 -0
  247. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/men_tracemalloc.py +0 -0
  248. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/milvus_demo/__init__.py +0 -0
  249. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/milvus_demo/demo01.py +0 -0
  250. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/milvus_demo/demo02.py +0 -0
  251. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/milvus_demo/hello_milvus.py +0 -0
  252. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/milvus_demo/milvus_client.py +0 -0
  253. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/performance.py +0 -0
  254. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/pose/__init__.py +0 -0
  255. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/pose/human_pose.py +0 -0
  256. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/redis_py/__init__.py +0 -0
  257. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/redis_py/knn_search.py +0 -0
  258. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/redis_py/redis_client.py +0 -0
  259. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/registry/__init__.py +0 -0
  260. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/registry/base.py +0 -0
  261. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/registry/component.py +0 -0
  262. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/registry/main.py +0 -0
  263. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/registry/register.py +0 -0
  264. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/single_class/GRU.py +0 -0
  265. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/single_class/TCN.py +0 -0
  266. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/single_class/__init__.py +0 -0
  267. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/single_class/demo.py +0 -0
  268. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/test_fr/__init__.py +0 -0
  269. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/test_py/test_fr/demo11.py +0 -0
  270. {pybaseutils-2.2.1 → pybaseutils-2.2.2}/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.2.1
3
+ Version: 2.2.2
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.2.1'
8
+ __version__ = '2.2.2'
@@ -115,9 +115,9 @@ class LabelMeDataset(Dataset):
115
115
  if not os.path.exists(image_file):
116
116
  continue
117
117
  annotation, width, height = self.load_annotations(anno_file)
118
- box, label, point, group = self.parser_annotation(annotation, self.class_dict,
119
- min_points=self.min_points,
120
- unique=self.unique)
118
+ box, label, point, group, names = self.parser_annotation(annotation, self.class_dict,
119
+ min_points=self.min_points,
120
+ unique=self.unique)
121
121
  if len(label) == 0:
122
122
  continue
123
123
  dst_ids.append(image_id)
@@ -171,9 +171,9 @@ class LabelMeDataset(Dataset):
171
171
  annotation, width, height = self.load_annotations(anno_file)
172
172
  image = self.read_image(image_file, use_rgb=self.use_rgb)
173
173
  shape = image.shape
174
- boxes, labels, points, groups = self.parser_annotation(annotation, self.class_dict, shape,
175
- min_points=self.min_points, unique=self.unique)
176
- data = {"image": image, "points": points, "boxes": boxes, "labels": labels, "groups": groups,
174
+ boxes, labels, points, groups, names = self.parser_annotation(annotation, self.class_dict, shape,
175
+ min_points=self.min_points, unique=self.unique)
176
+ data = {"image": image, "points": points, "boxes": boxes, "labels": labels, "groups": groups, "names": names,
177
177
  "image_file": image_file, "anno_file": anno_file, "size": [shape[1], shape[0]]}
178
178
  return data
179
179
 
@@ -186,14 +186,16 @@ class LabelMeDataset(Dataset):
186
186
  :param min_points: 当标注的轮廓点的个数小于等于min_points,会被剔除;负数不剔除
187
187
  :return:
188
188
  """
189
- bboxes, labels, points, groups = [], [], [], []
189
+ bboxes, labels, points, groups, names = [], [], [], [], []
190
190
  for anno in annotation:
191
- label = "unique" if unique else anno["label"]
191
+ name = "unique" if unique else anno["label"]
192
+ label = name
192
193
  if class_dict:
193
- if not label in class_dict:
194
+ if not name in class_dict:
194
195
  continue
195
196
  if isinstance(class_dict, dict):
196
- label = class_dict[label]
197
+ label = class_dict[name]
198
+ if isinstance(label, str): name = label
197
199
  pts = np.asarray(anno["points"], dtype=np.int32)
198
200
  if min_points > 0 and len(pts) <= min_points:
199
201
  continue
@@ -204,11 +206,12 @@ class LabelMeDataset(Dataset):
204
206
  pts[:, 0] = np.clip(pts[:, 0], 0, w - 1)
205
207
  pts[:, 1] = np.clip(pts[:, 1], 0, h - 1)
206
208
  box = image_utils.polygons2boxes([pts])[0]
209
+ names.append(name)
207
210
  labels.append(label)
208
211
  bboxes.append(box)
209
212
  points.append(pts)
210
213
  groups.append(group_id)
211
- return bboxes, labels, points, groups
214
+ return bboxes, labels, points, groups, names
212
215
 
213
216
  def index2id(self, index):
214
217
  """
@@ -380,8 +383,8 @@ def parser_labelme(anno_file, class_dict={}, shape=None):
380
383
  :return:
381
384
  """
382
385
  annotation, width, height = LabelMeDataset.load_annotations(anno_file)
383
- bboxes, labels, points, groups = LabelMeDataset.parser_annotation(annotation, class_dict, shape)
384
- return bboxes, labels, points, groups
386
+ bboxes, labels, points, groups, names = LabelMeDataset.parser_annotation(annotation, class_dict, shape)
387
+ return bboxes, labels, points, groups, names
385
388
 
386
389
 
387
390
  def show_target_image(image, bboxes, labels, points, color=(), thickness=1):
@@ -50,6 +50,7 @@ class VOCDataset(Dataset):
50
50
  self.class_name, self.class_dict = self.parser_classes(class_name)
51
51
  parser = self.parser_paths(filename, data_root, anno_dir, image_dir)
52
52
  self.data_root, self.anno_dir, self.image_dir, self.image_ids = parser
53
+ self.image_ids = self.add_image_postfix(self.image_dir, self.image_ids)
53
54
  self.seg_dir = seg_dir
54
55
  if check or (self.class_dict is None):
55
56
  self.image_ids = self.checking(self.image_ids, class_dict=self.class_dict)
@@ -70,12 +71,23 @@ class VOCDataset(Dataset):
70
71
  print("Dataset num_classes :{}".format(self.num_classes))
71
72
  print("------" * 10)
72
73
 
74
+ def add_image_postfix(self, image_dir, image_ids):
75
+ """
76
+ 获得图像文件后缀名
77
+ :param image_dir:
78
+ :return:
79
+ """
80
+ if "." not in image_ids[0]:
81
+ image_list = glob.glob(os.path.join(image_dir, "*"))
82
+ postfix = os.path.basename(image_list[0]).split(".")[1]
83
+ image_ids = [f"{image_id}.{postfix}" for image_id in image_ids]
84
+ return image_ids
85
+
73
86
  def __get_image_anno_file(self, image_dir, anno_dir, image_name: str):
74
87
  """
75
88
  :param image_dir:
76
89
  :param anno_dir:
77
90
  :param image_name:
78
- :param img_postfix:
79
91
  :return:
80
92
  """
81
93
  img_postfix = image_name.split(".")[-1]
@@ -92,8 +104,6 @@ class VOCDataset(Dataset):
92
104
  """
93
105
  print("Please wait, it's in checking")
94
106
  dst_ids = []
95
- # image_ids = image_ids[:100]
96
- # image_ids = image_ids[100:]
97
107
  class_set = []
98
108
  for image_id in tqdm(image_ids):
99
109
  image_file, annotation_file = self.get_image_anno_file(image_id)
@@ -68,7 +68,7 @@ class YOLODataset(Dataset):
68
68
  self.class_name, self.class_dict = self.parser_classes(class_name)
69
69
  parser = self.parser_paths(filename, data_root, anno_dir, image_dir)
70
70
  self.data_root, self.anno_dir, self.image_dir, self.image_ids = parser
71
- self.postfix = self.get_image_postfix(self.image_dir, self.image_ids)
71
+ self.image_ids = self.add_image_postfix(self.image_dir, self.image_ids)
72
72
  self.classes = list(self.class_dict.values()) if self.class_dict else None
73
73
  self.num_classes = max(list(self.class_dict.values())) + 1 if self.class_dict else None
74
74
  self.class_weights = None
@@ -114,18 +114,17 @@ class YOLODataset(Dataset):
114
114
  class_dict = None
115
115
  return class_name, class_dict
116
116
 
117
- def get_image_postfix(self, image_dir, image_id):
117
+ def add_image_postfix(self, image_dir, image_ids):
118
118
  """
119
119
  获得图像文件后缀名
120
120
  :param image_dir:
121
121
  :return:
122
122
  """
123
- if "." in image_id[0]:
124
- postfix = ""
125
- else:
123
+ if "." not in image_ids[0]:
126
124
  image_list = glob.glob(os.path.join(image_dir, "*"))
127
125
  postfix = os.path.basename(image_list[0]).split(".")[1]
128
- return postfix
126
+ image_ids = [f"{image_id}.{postfix}" for image_id in image_ids]
127
+ return image_ids
129
128
 
130
129
  def get_image_anno_file(self, index):
131
130
  """
@@ -135,16 +134,14 @@ class YOLODataset(Dataset):
135
134
  image_id = self.index2id(index)
136
135
  image_file, annotation_file, image_id = self.__get_image_anno_file(self.image_dir,
137
136
  self.anno_dir,
138
- image_id,
139
- self.postfix)
137
+ image_id)
140
138
  return image_file, annotation_file, image_id
141
139
 
142
- def __get_image_anno_file(self, image_dir, anno_dir, image_name: str, img_postfix):
140
+ def __get_image_anno_file(self, image_dir, anno_dir, image_name: str):
143
141
  """
144
142
  :param image_dir:
145
143
  :param anno_dir:
146
144
  :param image_id:
147
- :param img_postfix:
148
145
  :return:
149
146
  """
150
147
  img_postfix = image_name.split(".")[-1]
@@ -9,6 +9,54 @@ import numpy as np
9
9
  import numpy.matlib
10
10
 
11
11
 
12
+ def generate_heatmap(joints, input_size, heatmap_size, sigma=2):
13
+ """
14
+ :param joints: [num_joints, 3]
15
+ :param joints_vis: [num_joints, 3]
16
+ :return: target, target_weight(1: visible, 0: invisible)
17
+ """
18
+ num_joints = int(len(joints))
19
+ target_weight = np.ones((num_joints), dtype=np.float32)
20
+ target_heatmap = []
21
+ tmp_size = sigma * 3
22
+ for joint_id in range(num_joints):
23
+ target = np.zeros((heatmap_size[1], heatmap_size[0]), dtype=np.float32)
24
+ y_r = input_size[1] / heatmap_size[1]
25
+ x_r = input_size[0] / heatmap_size[0]
26
+ # feat_stride = image_size / self.heatmap_size
27
+ mu_x = int(joints[joint_id][0] / x_r + 0.5) # y
28
+ mu_y = int(joints[joint_id][1] / y_r + 0.5) # x
29
+ x, y = joints[joint_id][0], joints[joint_id][1]
30
+ # Check that any part of the gaussian is in-bounds
31
+ ul = [int(mu_x - tmp_size), int(mu_y - tmp_size)]
32
+ br = [int(mu_x + tmp_size + 1), int(mu_y + tmp_size + 1)]
33
+ if ul[0] >= heatmap_size[0] or ul[1] >= heatmap_size[1] or br[0] < 0 or br[1] < 0:
34
+ target_weight[joint_id] = 0
35
+ elif x < 0 or x > input_size[0] or y < 0 or y > input_size[1]:
36
+ target_weight[joint_id] = 0
37
+ else:
38
+ target_weight[joint_id] = 1.0
39
+ # # Generate gaussian
40
+ size = 2 * tmp_size + 1
41
+ x = np.arange(0, size, 1, np.float32)
42
+ y = x[:, np.newaxis]
43
+ x0 = y0 = size // 2
44
+ # The gaussian is not normalized, we want the center value to equal 1
45
+ g = np.exp(- ((x - x0) ** 2 + (y - y0) ** 2) / (2 * sigma ** 2))
46
+ # Usable gaussian range
47
+ g_x = max(0, -ul[0]), min(br[0], heatmap_size[0]) - ul[0]
48
+ g_y = max(0, -ul[1]), min(br[1], heatmap_size[1]) - ul[1]
49
+ # Image range
50
+ img_x = max(0, ul[0]), min(br[0], heatmap_size[0])
51
+ img_y = max(0, ul[1]), min(br[1], heatmap_size[1])
52
+ target[img_y[0]:img_y[1], img_x[0]:img_x[1]] = np.maximum(
53
+ target[img_y[0]:img_y[1], img_x[0]:img_x[1]],
54
+ g[g_y[0]:g_y[1], g_x[0]:g_x[1]])
55
+ target_heatmap.append(target)
56
+ target_heatmap = np.asarray(target_heatmap)
57
+ return target_heatmap, target_weight
58
+
59
+
12
60
  def create_gaussian_mask(width, height, center, radius=5):
13
61
  """
14
62
  生成二维高斯分布蒙版,width, height很大时,速度很慢
@@ -1,7 +1,7 @@
1
1
  # -*-coding: utf-8 -*-
2
2
  """
3
3
  @Author : PKing
4
- @E-mail :
4
+ @E-mail :
5
5
  @Date : 2024-07-25 08:33:57
6
6
  @Brief : https://imgaug.readthedocs.io/en/latest/index.html
7
7
  """
@@ -9,7 +9,10 @@ import os
9
9
  import cv2
10
10
  import numpy as np
11
11
  from typing import List, Tuple
12
+ import torch
12
13
  from imgaug import augmenters as iaa
14
+ from imgaug import parameters as iap
15
+ import imgaug.augmenters.meta as meta
13
16
  from pybaseutils import file_utils, image_utils
14
17
  from imgaug.augmentables.segmaps import SegmentationMapsOnImage
15
18
  from imgaug.augmentables.kps import KeypointsOnImage
@@ -45,6 +48,49 @@ class Compose(object):
45
48
  return image
46
49
 
47
50
 
51
+ class Transpose(meta.Augmenter):
52
+ def __init__(self, p=1, seed=None, name=None, random_state="deprecated", deterministic="deprecated"):
53
+ super(Transpose, self).__init__(
54
+ seed=seed, name=name,
55
+ random_state=random_state, deterministic=deterministic)
56
+ self.p = iap.handle_probability_param(p, "p")
57
+
58
+ def get_parameters(self):
59
+ """See :func:`~imgaug.augmenters.meta.Augmenter.get_parameters`."""
60
+ return [self.p]
61
+
62
+ def _augment_images(self, images, random_state, parents, hooks):
63
+ images = [self.task(img) for img in images]
64
+ return images
65
+
66
+ def task(self, image, **kwargs):
67
+ image = image.transpose(2, 0, 1)
68
+ return image
69
+
70
+
71
+ class Normalize(meta.Augmenter):
72
+ def __init__(self, mean, std, p=1, seed=None, name=None, random_state="deprecated", deterministic="deprecated"):
73
+ self.mean = mean
74
+ self.std = std
75
+ super(Normalize, self).__init__(
76
+ seed=seed, name=name,
77
+ random_state=random_state, deterministic=deterministic)
78
+ self.p = iap.handle_probability_param(p, "p")
79
+
80
+ def get_parameters(self):
81
+ """See :func:`~imgaug.augmenters.meta.Augmenter.get_parameters`."""
82
+ return [self.p]
83
+
84
+ def _augment_images(self, images, random_state, parents, hooks):
85
+ images = [self.task(img) for img in images]
86
+ return images
87
+
88
+ def task(self, image, **kwargs):
89
+ image = np.asarray(image, dtype=np.float32) / 255.0
90
+ image = (image - self.mean) / self.std
91
+ return image
92
+
93
+
48
94
  def augment_example(input_size=(224, 224)):
49
95
  transforms = [
50
96
  iaa.Resize({"width": int(input_size[0] * 1.2), "height": "keep-aspect-ratio"}),
@@ -112,7 +158,7 @@ def demo_for_keypoint():
112
158
  image = image_utils.read_image("../../data/test.png")
113
159
  mask = image_utils.read_image("../../data/mask.png")
114
160
  mask = image_utils.get_image_mask(mask)
115
- contours = image_utils.find_mask_contours(mask)
161
+ contours = image_utils.find_mask_contours(mask) # [(N,2)]
116
162
  auimg, contours = augment(image=image, keypoints=contours)
117
163
  h, w = auimg.shape[:2]
118
164
  mask = image_utils.draw_mask_contours(contours, size=(w, h))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pybaseutils
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -0,0 +1,37 @@
1
+ # -*-coding: utf-8 -*-
2
+ """
3
+ @Author : PKing
4
+ @E-mail : 390737991@qq.com
5
+ @Date : 2022-12-31 11:37:30
6
+ @Brief : https://blog.csdn.net/qdPython/article/details/121381363
7
+ """
8
+ import os
9
+ import cv2
10
+ import random
11
+ import types
12
+ import torch
13
+ import numpy as np
14
+ from typing import Callable
15
+ from pybaseutils import image_utils, file_utils, text_utils
16
+ from pybaseutils.cvutils import video_utils
17
+ import cv2
18
+ import re
19
+
20
+ if __name__ == '__main__':
21
+ file = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/action-names.txt"
22
+ files = file_utils.read_data(file, split=None)
23
+ names = []
24
+ for file in files:
25
+ name = os.path.basename(file)
26
+ names.append(name)
27
+ names = list(set(names))
28
+ names = text_utils.find_match_texts(texts=names, pattern=["手拿*"])
29
+ names = list(set(names))
30
+ print(names)
31
+ names = ['手拿钳形电流表', '手拿相序表', '手拿护目镜', '手拿万用表', '手拿尖嘴钳', '手拿螺丝刀', '手拿万能表', '手拿扳手',
32
+ '手拿安全帽', '手拿安全带', '手拿安全围网', '手拿安全绳', '手拿吊物绳', '手拿抹布', '手拿熔断器熔管', '手拿工具袋',
33
+ '手拿采集器', '手拿瓷横担绝缘子', '手拿玻璃绝缘子', '手拿棉纱手套', '手拿绝缘手套,手拿橡胶手套,手拿其他手套',
34
+ '手拿长筒靴', '手拿绝缘垫', '手拿垫子', '手拿熔断器', '手拿卡线器', '手拿紧线器', '手拿验电器', '手拿验电笔', '手拿遮拦杆',
35
+ '手拿核相器', '手拿钢丝绳', '手拿美工刀', '手拿脚扣', '手拿兆欧表', '手拿绝缘胶布', '手拿绝缘杆', '手拿绝缘棒',
36
+ '手拿绝缘挡板', '手拿从此进入指示牌,手拿从此进出标示牌,手拿止步高压危险指示牌,手拿止步高压危险表示牌,手拿止步高压危险标示牌,手拿在此工作标示牌,手拿禁止合闸线路有人工作标示牌']
37
+ print(len(names))
@@ -25,7 +25,8 @@ if __name__ == "__main__":
25
25
  # anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-v23/json"
26
26
  anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-test/json"
27
27
  anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/dataset-v25/json"
28
- anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/dataset-v29/json"
28
+ anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-negetive/dataset-v02/json"
29
+ anno_dir = "/home/PKing/Downloads/aije-negetive/dataset-v01/sample"
29
30
  names = None
30
31
  # names = ['身穿工作服,未穿工作服', '手,手穿绝缘手套,手穿棉纱手套,手穿其他手套']
31
32
  dataset = parser_labelme.LabelMeDatasets(filename=None,
@@ -1,23 +0,0 @@
1
- # -*-coding: utf-8 -*-
2
- """
3
- @Author : PKing
4
- @E-mail : 390737991@qq.com
5
- @Date : 2022-12-31 11:37:30
6
- @Brief : https://blog.csdn.net/qdPython/article/details/121381363
7
- """
8
- import cv2
9
- import random
10
- import types
11
- import torch
12
- import numpy as np
13
- from typing import Callable
14
- from pybaseutils import image_utils, file_utils, text_utils
15
- from pybaseutils.cvutils import video_utils
16
- import cv2
17
- import re
18
-
19
- if __name__ == '__main__':
20
- accs = np.asarray([0.6205, 0.5752, 0.9296, 0.9906, 0.4833, 0.0756, 0.000001, 0, 0, 0.8205, 0.9205])
21
- print(accs,np.mean(accs))
22
- accs = accs[accs > 0]
23
- print(accs,np.mean(accs))
File without changes
File without changes