pybaseutils 2.0.5__tar.gz → 2.0.6__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 (245) hide show
  1. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/PKG-INFO +1 -1
  2. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/__init__.py +1 -1
  3. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_cvat2labelme.py +9 -4
  4. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_labelme.py +7 -4
  5. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/image_utils.py +1 -1
  6. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/plot_roc.py +8 -7
  7. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/PKG-INFO +1 -1
  8. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/SOURCES.txt +2 -0
  9. pybaseutils-2.0.6/test_py/aije/convert_cvat2labelme.py +21 -0
  10. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_labelme_crop.py +3 -2
  11. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_cvat2labelme.py +5 -4
  12. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/get_pair_data.py +4 -5
  13. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo1.py +7 -6
  14. pybaseutils-2.0.6/test_py/demo_kpts.py +68 -0
  15. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_lableme_vis.py +12 -3
  16. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/LICENCE +0 -0
  17. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/README.md +0 -0
  18. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/__init__.py +0 -0
  19. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/audio_utils.py +0 -0
  20. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/pyaudio_utils.py +0 -0
  21. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/vad_utils.py +0 -0
  22. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/base64_utils.py +0 -0
  23. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/batch_utils.py +0 -0
  24. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/build_utils/__init__.py +0 -0
  25. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/build_utils/cython_utils.py +0 -0
  26. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
  27. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/__init__.py +0 -0
  28. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/kmean.py +0 -0
  29. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/maxmin_distance.py +0 -0
  30. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/similarity.py +0 -0
  31. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/color_utils.py +0 -0
  32. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/config_utils.py +0 -0
  33. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/__init__.py +0 -0
  34. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_coco.py +0 -0
  35. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_cvat.py +0 -0
  36. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_labelme.py +0 -0
  37. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_voc.py +0 -0
  38. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/concat_coco.py +0 -0
  39. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_coco2labelme.py +0 -0
  40. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_coco2voc.py +0 -0
  41. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  42. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
  43. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  44. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  45. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2coco.py +0 -0
  46. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2labelme.py +0 -0
  47. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2voc.py +0 -0
  48. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2yolo.py +0 -0
  49. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_yolo2voc.py +0 -0
  50. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/coords_utils.py +0 -0
  51. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/__init__.py +0 -0
  52. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/corner_utils.py +0 -0
  53. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/monitor.py +0 -0
  54. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/mouse_utils.py +0 -0
  55. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/video_utils.py +0 -0
  56. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/__init__.py +0 -0
  57. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/base_coco.py +0 -0
  58. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/base_dataset.py +0 -0
  59. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_coco_det.py +0 -0
  60. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
  61. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
  62. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_voc.py +0 -0
  63. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_yolo.py +0 -0
  64. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  65. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/file_utils.py +0 -0
  66. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/QueueTable.py +0 -0
  67. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/__init__.py +0 -0
  68. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/demo.py +0 -0
  69. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/kalman_filter.py +0 -0
  70. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/mean_filter.py +0 -0
  71. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/motion_filter.py +0 -0
  72. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/pose_filter.py +0 -0
  73. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/font_style/__init__.py +0 -0
  74. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/font_utils.py +0 -0
  75. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/geometry_tools.py +0 -0
  76. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/heatmap_utils.py +0 -0
  77. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/json_utils.py +0 -0
  78. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/log.py +0 -0
  79. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/logger.py +0 -0
  80. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/__init__.py +0 -0
  81. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/accuracy.py +0 -0
  82. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/average_meter.py +0 -0
  83. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/class_report.py +0 -0
  84. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/plot_pr.py +0 -0
  85. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/numpy_utils.py +0 -0
  86. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pandas_utils.py +0 -0
  87. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/plot_utils.py +0 -0
  88. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/__init__.py +0 -0
  89. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/bones_utils.py +0 -0
  90. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/human_pose.py +0 -0
  91. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/pose_utils.py +0 -0
  92. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pycpp/__init__.py +0 -0
  93. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pycpp/demo.py +0 -0
  94. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pycpp/main.py +0 -0
  95. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/server/__init__.py +0 -0
  96. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/server/apm_server.py +0 -0
  97. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/setup_config.py +0 -0
  98. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/singleton_utils.py +0 -0
  99. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/thread_utils.py +0 -0
  100. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/time_utils.py +0 -0
  101. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracemalloc_utils.py +0 -0
  102. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracemalloc_utils2.py +0 -0
  103. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/QueueTable.py +0 -0
  104. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/__init__.py +0 -0
  105. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/demo.py +0 -0
  106. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/kalman_filter.py +0 -0
  107. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/mean_filter.py +0 -0
  108. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/motion_filter.py +0 -0
  109. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/pose_filter.py +0 -0
  110. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/__init__.py +0 -0
  111. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/affine_transform.py +0 -0
  112. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/augment_utils.py +0 -0
  113. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/face_alignment.py +0 -0
  114. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/transform_utils.py +0 -0
  115. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/word_utils.py +0 -0
  116. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/worker.py +0 -0
  117. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/yaml_utils.py +0 -0
  118. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/dependency_links.txt +0 -0
  119. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/not-zip-safe +0 -0
  120. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/top_level.txt +0 -0
  121. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/setup.cfg +0 -0
  122. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/setup.py +0 -0
  123. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/WebCrawler/__init__.py +0 -0
  124. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/WebCrawler/search_image.py +0 -0
  125. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
  126. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/__init__.py +0 -0
  127. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/__init__.py +0 -0
  128. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/action_dataset.py +0 -0
  129. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/build_cython.py +0 -0
  130. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/build_pyarmor.py +0 -0
  131. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/build_service.py +0 -0
  132. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/convert_labelme2coco.py +0 -0
  133. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/convert_labelme2voc.py +0 -0
  134. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/copy_move.py +0 -0
  135. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_video_aije.py +0 -0
  136. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_voc_crop.py +0 -0
  137. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_voc_vis.py +0 -0
  138. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/video_convertor.py +0 -0
  139. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/__init__.py +0 -0
  140. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/demo.py +0 -0
  141. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/main.py +0 -0
  142. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/main_read.py +0 -0
  143. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/segment.py +0 -0
  144. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  145. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/speechbrain_demo.py +0 -0
  146. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/captcha/__init__.py +0 -0
  147. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/captcha/demo.py +0 -0
  148. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/class_attribute.py +0 -0
  149. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/class_names.py +0 -0
  150. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/AffectNet.py +0 -0
  151. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/AsianMovie.py +0 -0
  152. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/BITVehicle2voc.py +0 -0
  153. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/BSTLD2voc.py +0 -0
  154. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/CCPD.py +0 -0
  155. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/CCPD2voc.py +0 -0
  156. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/FL3D_dataset.py +0 -0
  157. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/FreiHAND2coco.py +0 -0
  158. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/MTFL2voc.py +0 -0
  159. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/TT100K.py +0 -0
  160. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/WaterMeters1.py +0 -0
  161. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/WaterMeters2.py +0 -0
  162. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/__init__.py +0 -0
  163. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/concat_coco.py +0 -0
  164. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_coco2voc.py +0 -0
  165. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_gesture2hand.py +0 -0
  166. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_labelme2coco.py +0 -0
  167. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_labelme2cvat.py +0 -0
  168. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_labelme2voc.py +0 -0
  169. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_voc2labelme.py +0 -0
  170. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/fatigue_driving.py +0 -0
  171. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/fdd_dataset.py +0 -0
  172. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/handpose2coco.py +0 -0
  173. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/insects_for_aichallenger.py +0 -0
  174. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/tt100k_utils.py +0 -0
  175. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/ua_detrac2voc.py +0 -0
  176. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/ucf101_dataset.py +0 -0
  177. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/voc_sbd2labelme.py +0 -0
  178. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/__init__.py +0 -0
  179. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/build_cython.py +0 -0
  180. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/build_pyarmor.py +0 -0
  181. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/cryptography_demo.py +0 -0
  182. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/fun_sum.py +0 -0
  183. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/main.py +0 -0
  184. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/model_des_enctypt.py +0 -0
  185. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/model_enctypt.py +0 -0
  186. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo2.py +0 -0
  187. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo3.py +0 -0
  188. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_async_await1.py +0 -0
  189. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_async_await2.py +0 -0
  190. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_coco_vis.py +0 -0
  191. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_copy_files.py +0 -0
  192. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_copy_files_for_voc.py +0 -0
  193. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_ffmpy.py +0 -0
  194. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_for_pair_file.py +0 -0
  195. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_for_polygon.py +0 -0
  196. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_for_trt.py +0 -0
  197. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_get_file_list.py +0 -0
  198. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_gif.py +0 -0
  199. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_gif_video.py +0 -0
  200. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_image_crop.py +0 -0
  201. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_labelme.py +0 -0
  202. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_labelme_crop.py +0 -0
  203. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_metrics.py +0 -0
  204. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_mouse.py +0 -0
  205. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_nii.py +0 -0
  206. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_pandas.py +0 -0
  207. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_plot.py +0 -0
  208. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_rename.py +0 -0
  209. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_standard_image .py +0 -0
  210. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_standard_video .py +0 -0
  211. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_taichi.py +0 -0
  212. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_video.py +0 -0
  213. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_voc_crop.py +0 -0
  214. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_voc_vis.py +0 -0
  215. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_word_similar.py +0 -0
  216. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_worker1.py +0 -0
  217. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_worker2.py +0 -0
  218. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/__init__.py +0 -0
  219. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/demo.py +0 -0
  220. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/detect_face_person.py +0 -0
  221. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/predet_labelme.py +0 -0
  222. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/__init__.py +0 -0
  223. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/demo.py +0 -0
  224. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/text_matching.py +0 -0
  225. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/text_utils.py +0 -0
  226. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/flask_demo/__init__.py +0 -0
  227. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/flask_demo/func.py +0 -0
  228. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/flask_demo/server.py +0 -0
  229. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/__init__.py +0 -0
  230. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/demo_correction_v1.py +0 -0
  231. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/demo_correction_v2.py +0 -0
  232. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/demo_correction_v3.py +0 -0
  233. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/kafka_worker.py +0 -0
  234. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/men_tracemalloc.py +0 -0
  235. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/performance.py +0 -0
  236. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/pose/__init__.py +0 -0
  237. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/pose/human_pose.py +0 -0
  238. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/__init__.py +0 -0
  239. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/base.py +0 -0
  240. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/component.py +0 -0
  241. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/main.py +0 -0
  242. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/register.py +0 -0
  243. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/test_fr/__init__.py +0 -0
  244. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/test_fr/demo11.py +0 -0
  245. {pybaseutils-2.0.5 → pybaseutils-2.0.6}/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.5
3
+ Version: 2.0.6
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.5'
8
+ __version__ = '2.0.6'
@@ -43,6 +43,7 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
43
43
  将CVAT标注格式(LabelMe 3.0)转换labelme通用格式
44
44
  :param anno_dir: 标注文件目录,默认输出json文件与anno_dir同目录
45
45
  :param image_dir: 图片文件目录
46
+ :param out_dir: 输出labelme *.json文件目录
46
47
  :param vis:
47
48
  :return:
48
49
  """
@@ -50,6 +51,8 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
50
51
  xml_list = file_utils.get_files_lists(anno_dir, postfix=["*.xml"])
51
52
  for xml_file in tqdm(xml_list):
52
53
  image_name, annos, w, h = parser_annotations(xml_file)
54
+ image_id = os.path.basename(xml_file).split(".")[0]
55
+ image_name = "{}.{}".format(image_id, image_name.split(".")[1])
53
56
  points = [an['points'] for an in annos if len(an['points']) > 0]
54
57
  labels = [an['label'] for an in annos if an['label']]
55
58
  if len(points) == 0 or len(labels) == 0:
@@ -57,10 +60,10 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
57
60
  continue
58
61
  if image_dir or vis:
59
62
  image_file = os.path.join(image_dir, image_name)
60
- print(image_file, "labels:{}".format(labels))
61
63
  image = cv2.imread(image_file)
62
64
  h, w = image.shape[:2]
63
65
  if vis:
66
+ print(image_file, "labels:{}".format(labels))
64
67
  image = image_utils.draw_image_contours(image, points, texts=labels, thickness=thickness,
65
68
  fontScale=fontScale)
66
69
  image_utils.cv_show_image("det", image)
@@ -70,6 +73,8 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
70
73
 
71
74
 
72
75
  if __name__ == "__main__":
73
- image_dir = "/home/PKing/Downloads/default"
74
- anno_dir = image_dir
75
- convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, vis=False)
76
+ image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v02/JPEGImages"
77
+ anno_dir = os.path.join(os.path.dirname(image_dir), "xml")
78
+ json_dir = os.path.join(os.path.dirname(image_dir), "json")
79
+ convert_cvat2labelme.convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, out_dir=json_dir,
80
+ thickness=1, fontScale=2.0, vis=True)
@@ -107,8 +107,7 @@ class LabelMeDataset(Dataset):
107
107
  """
108
108
  print("Please wait, it's in checking")
109
109
  dst_ids = []
110
- # image_ids = image_ids[:100]
111
- # image_ids = image_ids[100:]
110
+ class_name = []
112
111
  for image_id in tqdm(image_ids):
113
112
  image_file, anno_file, image_id = self.get_image_anno_file(image_id)
114
113
  if not os.path.exists(anno_file):
@@ -122,6 +121,10 @@ class LabelMeDataset(Dataset):
122
121
  if len(label) == 0:
123
122
  continue
124
123
  dst_ids.append(image_id)
124
+ class_name += label
125
+ if self.class_name is None:
126
+ class_name = sorted(list(set(class_name)))
127
+ self.class_name, self.class_dict = self.parser_classes(class_name)
125
128
  print("have nums image:{},legal image:{}".format(len(image_ids), len(dst_ids)))
126
129
  return dst_ids
127
130
 
@@ -381,12 +384,12 @@ def parser_labelme(anno_file, class_dict={}, shape=None):
381
384
  return bboxes, labels, points, groups
382
385
 
383
386
 
384
- def show_target_image(image, bboxes, labels, points, color=()):
387
+ def show_target_image(image, bboxes, labels, points, color=(), thickness=1):
385
388
  # image = image_utils.draw_image_bboxes_text(image, bboxes, labels, color=(255, 0, 0),
386
389
  # thickness=2, fontScale=1.2, drawType="chinese")
387
390
  # image = image_utils.draw_landmark(image, points, color=(0, 255, 0))
388
391
  # image = image_utils.draw_key_point_in_image(image, points)
389
- image = image_utils.draw_image_contours(image, points, labels, color=color, thickness=1)
392
+ image = image_utils.draw_image_contours(image, points, labels, color=color, thickness=thickness)
390
393
  image_utils.cv_show_image("det", image)
391
394
 
392
395
 
@@ -2452,7 +2452,7 @@ def draw_image_contours(image, contours: List[np.ndarray], texts=[], color=(), a
2452
2452
  """
2453
2453
  for i in range(0, len(contours)):
2454
2454
  c = color if color else color_table[i + 1]
2455
- t = texts[i] if texts else ""
2455
+ t = str(texts[i]) if texts else ""
2456
2456
  p = np.asarray(contours[i], dtype=np.int32)
2457
2457
  b = (min(p[:, 0]), min(p[:, 1]), max(p[:, 0]), max(p[:, 1]))
2458
2458
  if len(p.shape) == 2: p = [p]
@@ -155,29 +155,30 @@ def get_best_accuracy(true_labels, pred_scores, threshold=(0, 1.0, 0.05), vis=Fa
155
155
  if vis:
156
156
  print("best threshold :{}".format(best_th))
157
157
  print("best Accuracy :{}".format(best_acc))
158
- plt_curve(X=threshold, Y=acc_list, xtitle="threshold", ytitle="Accuracy", title="", grid=True)
158
+ plt_curve(x=threshold, y=acc_list, xlabel="threshold", ylabel="Accuracy",
159
+ line=f"Acc={best_acc:1.3f}", title="", grid=True)
159
160
  return best_acc, best_th
160
161
 
161
162
 
162
- def plt_curve(X, Y, xtitle="", ytitle="", title="", grid=True):
163
+ def plt_curve(x, y, line="", xlabel="", ylabel="", title="", grid=True):
163
164
  """
164
165
  绘制PR-threshold曲线
165
- :param X: Precision
166
+ :param x: Precision
166
167
  :param recall: Recall
167
- :param Y
168
+ :param y
168
169
  :param title:曲线名称
169
170
  :return:
170
171
  """
171
172
  lw = 2
172
173
  plt.figure(figsize=(10, 10))
173
174
  colors = ["b", "r", "c", "m", "g", "y", "k", "w"]
174
- plt.plot(X, Y, color=colors[0], lw=lw, label=ytitle)
175
+ plt.plot(x, y, color=colors[0], lw=lw, label=line)
175
176
  plt.xlim([0.0, 1.05])
176
177
  plt.ylim([0.0, 1.05])
177
178
  # 设置横纵坐标的名称以及对应字体格式
178
179
  font = {'weight': 'normal', 'size': 20}
179
- plt.xlabel(xtitle, font)
180
- plt.ylabel('', font)
180
+ plt.xlabel(xlabel, font)
181
+ plt.ylabel(ylabel, font)
181
182
  plt.title(title, font)
182
183
  plt.legend(loc="lower right") # "upper right"
183
184
  # plt.legend(loc="upper right")#"upper right"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pybaseutils
3
- Version: 2.0.5
3
+ Version: 2.0.6
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -130,6 +130,7 @@ test_py/demo_get_file_list.py
130
130
  test_py/demo_gif.py
131
131
  test_py/demo_gif_video.py
132
132
  test_py/demo_image_crop.py
133
+ test_py/demo_kpts.py
133
134
  test_py/demo_labelme.py
134
135
  test_py/demo_labelme_crop.py
135
136
  test_py/demo_lableme_vis.py
@@ -159,6 +160,7 @@ test_py/aije/action_dataset.py
159
160
  test_py/aije/build_cython.py
160
161
  test_py/aije/build_pyarmor.py
161
162
  test_py/aije/build_service.py
163
+ test_py/aije/convert_cvat2labelme.py
162
164
  test_py/aije/convert_labelme2coco.py
163
165
  test_py/aije/convert_labelme2voc.py
164
166
  test_py/aije/copy_move.py
@@ -0,0 +1,21 @@
1
+ # -*-coding: utf-8 -*-
2
+ """
3
+ @Author : Pan
4
+ @E-mail : 390737991@qq.com
5
+ @Date : 2022-10-12 16:21:55
6
+ @Brief :
7
+ """
8
+ import os
9
+ import numpy as np
10
+ import cv2
11
+ from tqdm import tqdm
12
+ from pybaseutils.dataloader import parser_voc
13
+ from pybaseutils.converter import build_voc, build_labelme, convert_cvat2labelme
14
+ from pybaseutils import file_utils, image_utils, json_utils
15
+
16
+ if __name__ == "__main__":
17
+ image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v01/JPEGImages"
18
+ anno_dir = os.path.join(os.path.dirname(image_dir), "xml")
19
+ json_dir = os.path.join(os.path.dirname(image_dir), "json")
20
+ convert_cvat2labelme.convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, out_dir=json_dir,
21
+ thickness=1, fontScale=2.0, vis=False)
@@ -67,10 +67,11 @@ if __name__ == "__main__":
67
67
  # anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v9/json"
68
68
  anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v0/json"
69
69
  anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det-fix/dataset-v12/json"
70
+ anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-det/aije-action-train-v20/json"
70
71
  # anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v10/json"
71
72
  # anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-person-coco/json"
72
- class_name = ['手', '绝缘手套', '手穿绝缘手套', '棉纱手套', '手穿棉纱手套']
73
- # class_name = None # 室内
73
+ # class_name = ['手', '绝缘手套', '手穿绝缘手套', '棉纱手套', '手穿棉纱手套']
74
+ class_name = None # 室内
74
75
  out_dir = os.path.join(os.path.dirname(anno_dir), "crops")
75
76
  dataset = parser_labelme.LabelMeDatasets(filename=None,
76
77
  data_root=None,
@@ -14,7 +14,8 @@ from pybaseutils.converter import build_voc, build_labelme, convert_cvat2labelme
14
14
  from pybaseutils import file_utils, image_utils, json_utils
15
15
 
16
16
  if __name__ == "__main__":
17
- image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-det/aije-action-train-v20/JPEGImages"
18
- anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-det/aije-action-train-v20/xml"
19
- convert_cvat2labelme.convert_cvat2labelme(anno_dir=anno_dir, image_dir=image_dir,
20
- thickness=2, fontScale=1.2, vis=False)
17
+ image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v02/JPEGImages"
18
+ anno_dir = os.path.join(os.path.dirname(image_dir), "xml")
19
+ json_dir = os.path.join(os.path.dirname(image_dir), "json")
20
+ convert_cvat2labelme.convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, out_dir=json_dir,
21
+ thickness=1, fontScale=2.0, vis=True)
@@ -13,6 +13,7 @@ from pybaseutils import file_utils, image_utils
13
13
 
14
14
  def get_combinations_pair_data(image_dir, pair_num=0):
15
15
  """
16
+ 获得图片对数据
16
17
  :param image_dir:
17
18
  :param pair_num:
18
19
  :return:
@@ -45,14 +46,12 @@ def get_combinations_pair_data(image_dir, pair_num=0):
45
46
  pair0 = pair0[index_0, :] # 获取打乱后的训练数据
46
47
  pair1 = pair1[index_1, :] # 获取打乱后的训练数据
47
48
  pairs = np.concatenate([pair0, pair1], axis=0).tolist()
48
- print("pair0 nums:{}".format(len(pair0)))
49
- print("pair1 nums:{}".format(len(pair1)))
50
- print("have {} pairs".format(len(pairs)))
49
+ print("have {} pairs,pair0 nums:{},pair1 nums:{}".format(len(pairs), len(pair0), len(pair1)))
51
50
  return pairs
52
51
 
53
52
 
54
53
  if __name__ == '__main__':
55
- image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm/test/images"
56
- pairs_file = os.path.join(image_dir,"pairs.txt")
54
+ image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm/test-v2/images"
55
+ pairs_file = os.path.join(image_dir, "pairs.txt")
57
56
  pairs = get_combinations_pair_data(image_dir, pair_num=10000)
58
57
  file_utils.write_data(pairs_file, pairs)
@@ -9,6 +9,7 @@ import os
9
9
  import cv2
10
10
  import numpy as np
11
11
  import random
12
+ import json
12
13
  from typing import Dict
13
14
  from tqdm import tqdm
14
15
  from pybaseutils import image_utils, file_utils, json_utils, base64_utils, time_utils
@@ -41,14 +42,14 @@ class Promote():
41
42
  return len(self.promote)
42
43
 
43
44
  def __getitem__(self, index):
44
- data: str = self.promote[random.randint(0, len(self.promote)-1)]
45
+ data: str = self.promote[random.randint(0, len(self.promote) - 1)]
45
46
  data = data.format("ddd")
46
47
  return data
47
48
 
48
49
 
49
50
  if __name__ == '__main__':
50
- file = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm/promote.txt"
51
- p = Promote(promote=file)
52
- for index in range(len(p)):
53
- data = p.__getitem__(index)
54
- print(data)
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)
@@ -0,0 +1,68 @@
1
+ # -*-coding: utf-8 -*-
2
+ """
3
+ @Author : PKing
4
+ @E-mail :
5
+ @Date : 2024-09-02 16:31:38
6
+ @Brief :
7
+ """
8
+
9
+ import cv2
10
+ import numbers
11
+ import numpy as np
12
+ from pybaseutils import image_utils, file_utils
13
+
14
+ # skeleton连接线,keypoint关键点名称,num_joints关键点个数
15
+ BONES = {
16
+ "coco_person": {
17
+ "skeleton": [[15, 13], [13, 11], [16, 14], [14, 12], [11, 12], [5, 11], [6, 12], [5, 6], [5, 7],
18
+ [6, 8], [7, 9], [8, 10], [1, 2], [0, 1], [0, 2], [1, 3], [2, 4], [3, 5], [4, 6]],
19
+ "keypoint": [],
20
+ "num_joints": 17,
21
+ },
22
+ "hand": {
23
+ "skeleton": [[0, 1], [1, 2], [2, 3], [3, 4], [0, 5], [5, 6], [6, 7], [7, 8],
24
+ [5, 9], [9, 10], [10, 11], [11, 12], [9, 13], [13, 14], [14, 15], [15, 16],
25
+ [13, 17], [17, 18], [18, 19], [19, 20], [0, 17]],
26
+ "keypoint": [],
27
+ "num_joints": 21,
28
+ }
29
+ }
30
+
31
+
32
+ def example():
33
+ kpts = [[405.20834, 71.875, 0.9536487],
34
+ [415.625, 61.458332, 0.96337986],
35
+ [384.375, 61.458332, 0.9244619],
36
+ [436.45834, 61.458332, 0.99999976],
37
+ [363.54166, 71.875, 0.98517716],
38
+ [488.54166, 165.625, 0.9580497],
39
+ [321.875, 165.625, 0.87711847],
40
+ [551.0417, 248.95833, 0.88645184],
41
+ [248.95833, 259.375, 0.8369312],
42
+ [561.4583, 342.70834, 0.8438214],
43
+ [238.54167, 342.70834, 0.8260272],
44
+ [457.29166, 394.79166, 0.8504467],
45
+ [363.54166, 394.79166, 0.85016763],
46
+ [467.70834, 571.875, 0.9571377],
47
+ [363.54166, 561.4583, 0.929651],
48
+ [467.70834, 738.5417, 0.9448692],
49
+ [363.54166, 738.5417, 0.9097275]]
50
+ kpts = np.asarray(kpts)
51
+ conf = kpts[:, 2]
52
+ kpt = kpts[:, 0:2]
53
+ box = [0, 0, 800, 800]
54
+ image_file = "pose.jpg"
55
+ image = cv2.imread(image_file)
56
+ image = np.zeros_like(image)+255
57
+ skeleton = BONES["coco_person"]["skeleton"]
58
+ image = image_utils.draw_key_point_in_image(image,
59
+ key_points=[kpt],
60
+ pointline=skeleton,
61
+ boxes=[box],
62
+ thickness=2,
63
+ vis_id=True)
64
+ image_utils.cv_show_image("image", image)
65
+
66
+
67
+ if __name__ == "__main__":
68
+ example()
@@ -6,6 +6,7 @@
6
6
  @Brief :
7
7
  """
8
8
  import os
9
+ from pybaseutils import file_utils
9
10
  from pybaseutils.dataloader import parser_labelme
10
11
  from pybaseutils.converter import build_labelme
11
12
 
@@ -20,22 +21,30 @@ if __name__ == "__main__":
20
21
  # anno_dir = "/home/PKing/nasdata/tmp/tmp/WaterMeter/水表数据集/Water-Meter-Det3/train/json"
21
22
  # names = ["BG", "unique"]
22
23
  anno_dir = "/home/PKing/nasdata/tmp/tmp/WaterMeter/水表数据集/Water-Meter-Det1/val/json"
23
- anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-v20/json"
24
+ # anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-v01/json"
25
+ # anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-v20/json"
26
+ anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-test/json"
27
+ anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v01/json"
24
28
  names = None
29
+ # names = ['身穿工作服,未穿工作服', '手,手穿绝缘手套,手穿棉纱手套,手穿其他手套']
25
30
  dataset = parser_labelme.LabelMeDatasets(filename=None,
26
31
  data_root=None,
27
32
  anno_dir=anno_dir,
28
33
  image_dir=None,
29
34
  class_name=names,
30
- check=False,
35
+ check=True,
31
36
  phase="val",
32
37
  shuffle=True)
38
+ class_name = dataset.class_name
39
+ class_file = os.path.join(os.path.dirname(anno_dir), "class_name.txt")
40
+ file_utils.write_list_data(class_file, class_name)
33
41
  print("have num:{}".format(len(dataset)))
34
42
  for i in range(len(dataset)):
35
43
  print(i) # i=20
36
44
  data = dataset.__getitem__(i)
37
45
  image, points, bboxes, labels = data["image"], data["points"], data["boxes"], data["labels"]
38
46
  h, w = image.shape[:2]
47
+ if class_name: labels = [class_name[l] for l in labels]
39
48
  image_file = data["image_file"]
40
49
  anno_file = os.path.join("masker", "{}.json".format(os.path.basename(image_file).split(".")[0]))
41
- parser_labelme.show_target_image(image, bboxes, labels, points)
50
+ parser_labelme.show_target_image(image, bboxes, labels, points, thickness=2)
File without changes
File without changes