pybaseutils 2.4.9__tar.gz → 2.4.11__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 (327) hide show
  1. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/PKG-INFO +1 -1
  2. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/__init__.py +1 -1
  3. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/build_utils/pyarmor_utils.py +11 -4
  4. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_labelme.py +6 -4
  5. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2labelme.py +3 -1
  6. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/camera.py +8 -8
  7. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/video_utils.py +2 -1
  8. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/image_utils.py +3 -3
  9. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/log.py +5 -5
  10. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/PKG-INFO +1 -1
  11. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_labelme_crop_ailt.py +3 -4
  12. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_voc2labelme.py +5 -4
  13. pybaseutils-2.4.11/test_py/demo1.py +43 -0
  14. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo2.py +3 -6
  15. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_video2frame.py +2 -1
  16. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_camera.py +3 -1
  17. pybaseutils-2.4.9/test_py/demo1.py +0 -46
  18. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/LICENCE +0 -0
  19. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/README.md +0 -0
  20. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/__init__.py +0 -0
  21. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/audio_utils.py +0 -0
  22. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/pyaudio_utils.py +0 -0
  23. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/vad_utils.py +0 -0
  24. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/__init__.py +0 -0
  25. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/dict_queue.py +0 -0
  26. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/list_queue.py +0 -0
  27. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/producer_consumer.py +0 -0
  28. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base64_utils.py +0 -0
  29. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/batch_utils.py +0 -0
  30. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/build_utils/__init__.py +0 -0
  31. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/build_utils/cython_utils.py +0 -0
  32. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/__init__.py +0 -0
  33. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/kmean.py +0 -0
  34. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/maxmin_distance.py +0 -0
  35. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/similarity.py +0 -0
  36. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/color_utils.py +0 -0
  37. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/config_utils.py +0 -0
  38. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/__init__.py +0 -0
  39. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_coco.py +0 -0
  40. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_cvat.py +0 -0
  41. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_voc.py +0 -0
  42. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/concat_coco.py +0 -0
  43. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_coco2labelme.py +0 -0
  44. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_coco2voc.py +0 -0
  45. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
  46. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2coco.py +0 -0
  47. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
  48. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2labelme.py +0 -0
  49. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2voc.py +0 -0
  50. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
  51. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2coco.py +0 -0
  52. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2voc.py +0 -0
  53. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2yolo.py +0 -0
  54. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_yolo2labelme.py +0 -0
  55. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_yolo2voc.py +0 -0
  56. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/prelabelme.py +0 -0
  57. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/coords_utils.py +0 -0
  58. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/__init__.py +0 -0
  59. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/corner_utils.py +0 -0
  60. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/monitor.py +0 -0
  61. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/mouse_utils.py +0 -0
  62. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/nms_utils.py +0 -0
  63. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/data_utils.py +0 -0
  64. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/__init__.py +0 -0
  65. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/balanced_classes.py +0 -0
  66. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/base_coco.py +0 -0
  67. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/base_dataset.py +0 -0
  68. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/data_resample.py +0 -0
  69. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_coco_det.py +0 -0
  70. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
  71. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
  72. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_image_folder.py +0 -0
  73. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_image_text.py +0 -0
  74. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_labelme.py +0 -0
  75. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_labelme_crop.py +0 -0
  76. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_labelme_line.py +0 -0
  77. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_video_folder.py +0 -0
  78. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_video_text.py +0 -0
  79. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_voc.py +0 -0
  80. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_yolo.py +0 -0
  81. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
  82. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dict_uils.py +0 -0
  83. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/file_utils.py +0 -0
  84. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/QueueTable.py +0 -0
  85. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/__init__.py +0 -0
  86. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/demo.py +0 -0
  87. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/kalman_filter.py +0 -0
  88. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/mean_filter.py +0 -0
  89. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/motion_filter.py +0 -0
  90. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/pose_filter.py +0 -0
  91. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/font_style/__init__.py +0 -0
  92. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/font_utils.py +0 -0
  93. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/geometry_tools.py +0 -0
  94. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/heatmap_utils.py +0 -0
  95. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/http_utils.py +0 -0
  96. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/json_utils.py +0 -0
  97. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/log_utils.py +0 -0
  98. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/media/__init__.py +0 -0
  99. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/media/ffmpeg_utils.py +0 -0
  100. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/__init__.py +0 -0
  101. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/accuracy.py +0 -0
  102. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/average_meter.py +0 -0
  103. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/class_report.py +0 -0
  104. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/plot_pr.py +0 -0
  105. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/plot_roc.py +0 -0
  106. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/nets_utils.py +0 -0
  107. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/numpy_utils.py +0 -0
  108. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pandas_utils.py +0 -0
  109. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/plot_utils.py +0 -0
  110. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/__init__.py +0 -0
  111. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/bones_utils.py +0 -0
  112. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/human_pose.py +0 -0
  113. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/pose_utils.py +0 -0
  114. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pycpp/__init__.py +0 -0
  115. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pycpp/demo.py +0 -0
  116. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pycpp/main.py +0 -0
  117. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/server/__init__.py +0 -0
  118. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/server/apm_server.py +0 -0
  119. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/setup_config.py +0 -0
  120. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/singleton_utils.py +0 -0
  121. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/text_utils.py +0 -0
  122. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/thread_utils.py +0 -0
  123. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/time_utils.py +0 -0
  124. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracemalloc_utils.py +0 -0
  125. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracemalloc_utils2.py +0 -0
  126. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/QueueTable.py +0 -0
  127. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/__init__.py +0 -0
  128. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/demo.py +0 -0
  129. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/kalman_filter.py +0 -0
  130. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/mean_filter.py +0 -0
  131. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/motion_filter.py +0 -0
  132. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/pose_filter.py +0 -0
  133. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/__init__.py +0 -0
  134. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/affine_transform.py +0 -0
  135. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/build_transform.py +0 -0
  136. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/face_alignment.py +0 -0
  137. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/imgaug_utils.py +0 -0
  138. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/transform_utils.py +0 -0
  139. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/__init__.py +0 -0
  140. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/app_gradio_image.py +0 -0
  141. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/app_stweb_image.py +0 -0
  142. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/app_webio_image.py +0 -0
  143. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/demo.py +0 -0
  144. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/word_utils.py +0 -0
  145. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/worker.py +0 -0
  146. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/yaml_utils.py +0 -0
  147. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/SOURCES.txt +0 -0
  148. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/dependency_links.txt +0 -0
  149. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/not-zip-safe +0 -0
  150. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/top_level.txt +0 -0
  151. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/setup.cfg +0 -0
  152. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/setup.py +0 -0
  153. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/Image_enhance/__init__.py +0 -0
  154. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/Image_enhance/dmeo01.py +0 -0
  155. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/WebCrawler/__init__.py +0 -0
  156. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/WebCrawler/search_baidu.py +0 -0
  157. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/WebCrawler/search_biying.py +0 -0
  158. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/__init__.py +0 -0
  159. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/__init__.py +0 -0
  160. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/action_dataset.py +0 -0
  161. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/build_cython.py +0 -0
  162. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/build_pyarmor.py +0 -0
  163. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/build_service.py +0 -0
  164. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/convert_cvat2labelme.py +0 -0
  165. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/convert_labelme2coco.py +0 -0
  166. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/convert_labelme2voc.py +0 -0
  167. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/copy_move.py +0 -0
  168. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_labelme_crop_aije.py +0 -0
  169. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_labelme_shock.py +0 -0
  170. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_motion_blur.py +0 -0
  171. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_video_aije.py +0 -0
  172. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_voc_crop.py +0 -0
  173. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_voc_vis.py +0 -0
  174. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/get_pair_data.py +0 -0
  175. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/mask_image.py +0 -0
  176. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/video_convertor.py +0 -0
  177. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/__init__.py +0 -0
  178. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/demo.py +0 -0
  179. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/main.py +0 -0
  180. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/main_read.py +0 -0
  181. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/segment.py +0 -0
  182. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
  183. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/speechbrain_demo.py +0 -0
  184. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio_demo1.py +0 -0
  185. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/camera/__init__.py +0 -0
  186. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/camera/demo.py +0 -0
  187. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/captcha/__init__.py +0 -0
  188. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/captcha/demo.py +0 -0
  189. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/class_attribute.py +0 -0
  190. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/class_names.py +0 -0
  191. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/AffectNet.py +0 -0
  192. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/AsianMovie.py +0 -0
  193. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/BITVehicle2voc.py +0 -0
  194. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/BSTLD2voc.py +0 -0
  195. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/CCPD.py +0 -0
  196. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/CCPD2voc.py +0 -0
  197. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/FL3D_dataset.py +0 -0
  198. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/FreiHAND2coco.py +0 -0
  199. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/MTFL2voc.py +0 -0
  200. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/TT100K.py +0 -0
  201. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/WaterMeters1.py +0 -0
  202. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/WaterMeters2.py +0 -0
  203. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/__init__.py +0 -0
  204. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/concat_coco.py +0 -0
  205. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_coco2voc.py +0 -0
  206. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_cvat2labelme.py +0 -0
  207. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_gesture2hand.py +0 -0
  208. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2coco.py +0 -0
  209. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2cvat.py +0 -0
  210. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2labelme.py +0 -0
  211. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2voc.py +0 -0
  212. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_yolo2labelme.py +0 -0
  213. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/fall_dataset.py +0 -0
  214. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/fatigue_driving.py +0 -0
  215. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/fdd_dataset.py +0 -0
  216. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/get_pair_data.py +0 -0
  217. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/handpose2coco.py +0 -0
  218. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/insects_for_aichallenger.py +0 -0
  219. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/parking_rois_gopro.py +0 -0
  220. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/tt100k_utils.py +0 -0
  221. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/ua_detrac2voc.py +0 -0
  222. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/ucf101_dataset.py +0 -0
  223. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/voc_sbd2labelme.py +0 -0
  224. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/__init__.py +0 -0
  225. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/build_cython.py +0 -0
  226. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/build_pyarmor.py +0 -0
  227. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/cryptography_demo.py +0 -0
  228. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/fun_sum.py +0 -0
  229. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/main.py +0 -0
  230. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/model_des_enctypt.py +0 -0
  231. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/model_enctypt.py +0 -0
  232. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/date_dataset.py +0 -0
  233. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/date_demo.py +0 -0
  234. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/datedataset_bk.py +0 -0
  235. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo3.py +0 -0
  236. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo4.py +0 -0
  237. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_async_await1.py +0 -0
  238. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_async_await2.py +0 -0
  239. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_coco_vis.py +0 -0
  240. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_copy_files.py +0 -0
  241. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_copy_files_for_voc.py +0 -0
  242. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_ffmpy.py +0 -0
  243. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_annular_to_rect.py +0 -0
  244. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_pair_file.py +0 -0
  245. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_polygon.py +0 -0
  246. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_trt.py +0 -0
  247. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_get_file_label.py +0 -0
  248. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_get_file_list.py +0 -0
  249. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_gif.py +0 -0
  250. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_gif_video.py +0 -0
  251. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_image_crop.py +0 -0
  252. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_kpts.py +0 -0
  253. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_labelme.py +0 -0
  254. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_labelme_crop.py +0 -0
  255. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_lableme_vis.py +0 -0
  256. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_letterbox.py +0 -0
  257. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_metrics.py +0 -0
  258. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_mosaic.py +0 -0
  259. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_mouse.py +0 -0
  260. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_nii.py +0 -0
  261. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_pandas.py +0 -0
  262. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_plot.py +0 -0
  263. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_prelabelme.py +0 -0
  264. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_rename.py +0 -0
  265. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_standard_image .py +0 -0
  266. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_standard_video .py +0 -0
  267. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_taichi.py +0 -0
  268. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_video_crop.py +0 -0
  269. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_voc_crop.py +0 -0
  270. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_voc_vis.py +0 -0
  271. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_word_similar.py +0 -0
  272. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_worker1.py +0 -0
  273. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_worker2.py +0 -0
  274. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/__init__.py +0 -0
  275. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/demo.py +0 -0
  276. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/detect_face_person.py +0 -0
  277. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/predet_labelme.py +0 -0
  278. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/edit_distance/__init__.py +0 -0
  279. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/edit_distance/demo.py +0 -0
  280. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/edit_distance/text_matching.py +0 -0
  281. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/fast_api/__init__.py +0 -0
  282. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/fast_api/create_image_url.py +0 -0
  283. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/fast_api/get_image_url.py +0 -0
  284. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/__init__.py +0 -0
  285. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/app.py +0 -0
  286. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/utils/__init__.py +0 -0
  287. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/utils/utils.py +0 -0
  288. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/get_file_list.py +0 -0
  289. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/gradio_app.py +0 -0
  290. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/gradio_app_v2.py +0 -0
  291. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/__init__.py +0 -0
  292. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/demo_correction_v1.py +0 -0
  293. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/demo_correction_v2.py +0 -0
  294. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/demo_correction_v3.py +0 -0
  295. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/kafka_worker.py +0 -0
  296. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/men_tracemalloc.py +0 -0
  297. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/__init__.py +0 -0
  298. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/demo01.py +0 -0
  299. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/demo02.py +0 -0
  300. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/hello_milvus.py +0 -0
  301. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/milvus_client.py +0 -0
  302. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/model_process.py +0 -0
  303. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/performance.py +0 -0
  304. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/pose/__init__.py +0 -0
  305. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/pose/human_pose.py +0 -0
  306. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/qrcode/__init__.py +0 -0
  307. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/qrcode/demo.py +0 -0
  308. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/redis_py/__init__.py +0 -0
  309. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/redis_py/knn_search.py +0 -0
  310. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/redis_py/redis_client.py +0 -0
  311. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/__init__.py +0 -0
  312. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/base.py +0 -0
  313. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/component.py +0 -0
  314. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/main.py +0 -0
  315. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/register.py +0 -0
  316. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/GRU.py +0 -0
  317. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/TCN.py +0 -0
  318. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/__init__.py +0 -0
  319. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/demo.py +0 -0
  320. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/slowfastnet.py +0 -0
  321. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_fr/__init__.py +0 -0
  322. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_fr/demo11.py +0 -0
  323. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_fr/idcardocr.py +0 -0
  324. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/__init__.py +0 -0
  325. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/asr_clients.py +0 -0
  326. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/asr_service.py +0 -0
  327. {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/chat_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pybaseutils
3
- Version: 2.4.9
3
+ Version: 2.4.11
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -8,4 +8,4 @@
8
8
  # --------------------------------------------------------
9
9
  """
10
10
 
11
- __version__ = '2.4.9'
11
+ __version__ = '2.4.11'
@@ -38,7 +38,7 @@ def build_pyarmor_project(root,
38
38
  :param exclude_dirs: 不需要处理的文件
39
39
  :return:
40
40
  """
41
- app = os.path.dirname(entry)
41
+ dir = os.path.dirname(entry)
42
42
  file_utils.copy_dir(root, build, exclude=exclude_dirs)
43
43
  os.system(f'pyarmor --version')
44
44
  os.system(f'rm -rf .pyarmor_config')
@@ -47,9 +47,16 @@ def build_pyarmor_project(root,
47
47
  if manifest:
48
48
  os.system(f'pyarmor config --manifest="{manifest}"')
49
49
  os.system(f'pyarmor build --output={build} --force')
50
- # os.system(f'cd {build} && cp -r pytransform {os.path.join(build, app)}')
51
- file_utils.move_dir(os.path.join(build, "pytransform"), os.path.join(build, app, "pytransform"))
52
- file_utils.remove_dir(os.path.join(build, "pytransform"))
50
+ src = os.path.join(build, "pytransform")
51
+ dst = os.path.join(build, dir)
52
+ if src != os.path.join(dst, "pytransform"):
53
+ cmd = f"cp -rf {src} {dst}"
54
+ print(cmd)
55
+ os.system(cmd)
56
+ os.system(f"rm -rf {src}")
57
+ # os.system(f'cd {build} && cp -r pytransform {os.path.join(build, dir)}')
58
+ # file_utils.move_dir(os.path.join(build, "pytransform"), os.path.join(build, dir, "pytransform"))
59
+ # file_utils.remove_dir(os.path.join(build, "pytransform"))
53
60
  # 将pyarmor编译结果保存到
54
61
  # file_utils.copy_dir(os.path.join(root, "dist"), build, exclude=[])
55
62
 
@@ -13,7 +13,7 @@ from pybaseutils import image_utils, file_utils, json_utils
13
13
 
14
14
 
15
15
  def save_labelme(out_root, image_file, points, names, class_dict={}, group=None, image=None, prefix="",
16
- index=0, vis=False, delay=0):
16
+ index=0, shape_type="polygon", vis=False, delay=0):
17
17
  """
18
18
  :param out_root: 输出根目录
19
19
  :param image_file: 图片路径
@@ -24,6 +24,7 @@ def save_labelme(out_root, image_file, points, names, class_dict={}, group=None,
24
24
  :param image: 图像
25
25
  :param prefix: 前缀,如果提供,则重新命名
26
26
  :param index: 提供前缀需要重新名称
27
+ :param shape_type: polygon,rotation
27
28
  :return:
28
29
  """
29
30
  if class_dict: names = [class_dict.get(n, n) for n in names]
@@ -43,7 +44,7 @@ def save_labelme(out_root, image_file, points, names, class_dict={}, group=None,
43
44
  image_id, postfix = file_utils.split_postfix(image_name)
44
45
  json_file = file_utils.create_dir(out_root, "images", f"{image_id}.json")
45
46
  file_path = file_utils.create_dir(out_root, "images", f"{image_name}")
46
- maker_labelme(json_file, points, names, image_name, group=group, image_size=(w, h), image_bs64=None)
47
+ maker_labelme(json_file, points, names, image_name, group=group, image_size=(w, h), image_bs64=None,shape_type=shape_type)
47
48
  if isinstance(image, np.ndarray):
48
49
  cv2.imwrite(file_path, image)
49
50
  else:
@@ -52,7 +53,8 @@ def save_labelme(out_root, image_file, points, names, class_dict={}, group=None,
52
53
  print("points is empty,file={}".format(file_path))
53
54
 
54
55
 
55
- def maker_labelme(json_file, points, labels, image_name, image_size, group=None, image_bs64=None, keypoints=[]):
56
+ def maker_labelme(json_file, points, labels, image_name, image_size, group=None, image_bs64=None, keypoints=[],
57
+ shape_type="polygon"):
56
58
  """
57
59
  制作label数据格式
58
60
  :param json_file: 保存json文件路径
@@ -76,7 +78,7 @@ def maker_labelme(json_file, points, labels, image_name, image_size, group=None,
76
78
  if not isinstance(point[0], list): point = [point]
77
79
  kpts = keypoints[i] if keypoints else []
78
80
  item = {"label": label, "score": None, "keypoints": kpts, "line_color": None, "fill_color": None,
79
- "group_id": group[i], "points": point, "shape_type": "polygon", "flags": {}, "description": ""}
81
+ "group_id": group[i], "points": point, "shape_type": shape_type, "flags": {}, "description": ""}
80
82
  shapes.append(item)
81
83
  data = {
82
84
  "version": "3.16.7", "flags": {},
@@ -23,6 +23,7 @@ def convert_voc2labelme(filename=None,
23
23
  class_dict={},
24
24
  prefix="",
25
25
  max_num=-1,
26
+ shape_type='polygon',
26
27
  vis=True):
27
28
  """
28
29
  将voc格式转换为labelme格式
@@ -52,7 +53,8 @@ def convert_voc2labelme(filename=None,
52
53
  image_file = data_info["image_file"]
53
54
  points = image_utils.boxes2polygons(boxes)
54
55
  build_labelme.save_labelme(out_root, image_file=image_file, points=points, names=names,
55
- class_dict=class_dict, image=image, prefix=prefix, index=i, vis=vis)
56
+ class_dict=class_dict, image=image, prefix=prefix, index=i, shape_type=shape_type,
57
+ vis=vis)
56
58
 
57
59
 
58
60
  if __name__ == "__main__":
@@ -8,7 +8,7 @@ class CameraCapture(object):
8
8
  def __init__(self, video: str or int = 0, size=(1920, 1080), fps=30):
9
9
  """
10
10
  :param video: 视频设备路径或索引(如 0 或 "/dev/video0")
11
- :param size: 视频分辨率 (宽, 高)
11
+ :param size: 视频分辨率 (宽, 高),(1280,720),(1920,1080)
12
12
  :param fps: 视频帧率
13
13
  """
14
14
  self.size = size
@@ -47,9 +47,9 @@ class CameraCapture(object):
47
47
  if len(buf) != self.size[0] * self.size[1] * 3:
48
48
  self.stop()
49
49
  return False, None # 读取失败或结束
50
- # 将字节流转换为 numpy 数组
51
- frame = np.frombuffer(buf, dtype=np.uint8).reshape((self.size[1], self.size[0], 3))
52
- return True, frame
50
+ # TODO 将字节流转换为numpy数组图像(bgr)
51
+ bgr = np.frombuffer(buf, dtype=np.uint8).reshape((self.size[1], self.size[0], 3))
52
+ return True, bgr
53
53
 
54
54
  def release(self):
55
55
  self.stop()
@@ -66,7 +66,7 @@ class CameraCapture(object):
66
66
  self.pipe.communicate() # 再次尝试清理
67
67
  print(err)
68
68
 
69
- def display(self):
69
+ def display(self, title="camera", delay=30):
70
70
  while True:
71
71
  t1 = time.time()
72
72
  ret, frame = self.read()
@@ -75,9 +75,9 @@ class CameraCapture(object):
75
75
  break
76
76
  t21 = (t2 - t1) * 1000
77
77
  print(f"image shape: {frame.shape},耗时: {t21:.3f}ms")
78
- cv2.imshow('FFmpeg Low Latency', frame)
79
- if cv2.waitKey(30) & 0xFF == ord('q'):
80
- break
78
+ cv2.namedWindow(title, flags=cv2.WINDOW_NORMAL)
79
+ cv2.imshow(title, frame)
80
+ cv2.waitKey(delay)
81
81
 
82
82
 
83
83
  if __name__ == '__main__':
@@ -36,7 +36,8 @@ def get_usb_camera(video=-1, max_index=50):
36
36
  camera = -1
37
37
  for i in range(max_index):
38
38
  cap = cv2.VideoCapture(i)
39
- if cap.isOpened():
39
+ ret, frame = cap.read()
40
+ if cap.isOpened() and ret:
40
41
  camera = i
41
42
  cap.release()
42
43
  break
@@ -1772,7 +1772,7 @@ def draw_image_arrowed_lines(image,
1772
1772
  return image
1773
1773
 
1774
1774
 
1775
- def draw_image_polylines(image, points, color=(0, 0, 255)):
1775
+ def draw_image_polylines(image, points, color=(0, 0, 255), closed=True, thickness=2):
1776
1776
  """
1777
1777
  # points是三维坐标,分别表示(多边形个数,多边形坐标点x,多边形坐标点y)=(num_polylines,num_point,2)
1778
1778
  points = np.asarray([[[100, 100], [200, 100], [400, 200]],
@@ -1784,8 +1784,8 @@ def draw_image_polylines(image, points, color=(0, 0, 255)):
1784
1784
  参数4 color:必选参数。用于设置多边形的颜色
1785
1785
  参数5 lineType:可选参数。用于设置线段的类型,可选8(8邻接连接线-默认)、4(4邻接连接线)和cv2.LINE_AA 为抗锯齿
1786
1786
  """
1787
- points = np.asarray(points, dtype=np.int32)
1788
- image = cv2.polylines(image, points, isClosed=True, color=color, thickness=2) # 画任意多边形
1787
+ pts = [np.array(p, dtype=np.int32) for p in points]
1788
+ image = cv2.polylines(image, pts, isClosed=closed, color=color, thickness=thickness) # 画任意多边形
1789
1789
  return image
1790
1790
 
1791
1791
 
@@ -13,11 +13,11 @@ from loguru import logger
13
13
 
14
14
  LOG_FORMAT = {
15
15
  "simple": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}| {message}</level>",
16
- "name": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name} {line:4}| {message}</level>", # 打印文件名
17
- "module": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module} {line:4}| {message}</level>", # 打印模块名
18
- # "function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{function} {line:4}| {message}</level>", # 打印函数
19
- "function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module}.{function} {line:4}| {message}</level>", # 打印函数
20
- "all": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name}.{module}.{function} {line:4}| {message}</level>", # 打印函数
16
+ "name": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name} {line}| {message}</level>", # 打印文件名
17
+ "module": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module} {line}| {message}</level>", # 打印模块名
18
+ # "function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{function} {line}| {message}</level>", # 打印函数
19
+ "function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module}.{function} {line}| {message}</level>", # 打印函数
20
+ "all": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name}.{module}.{function} {line}| {message}</level>", # 打印函数
21
21
  }
22
22
 
23
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pybaseutils
3
- Version: 2.4.9
3
+ Version: 2.4.11
4
4
  Summary: pybaseutils
5
5
  Home-page: https://github.com/PanJinquan/base-utils
6
6
  Author: PanJinquan
@@ -108,11 +108,10 @@ if __name__ == '__main__':
108
108
  ]
109
109
  # '*长条标签'
110
110
  datasets = [
111
- '/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260120/images',
112
- '/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260130/images',
113
- '/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260206/images',
111
+ '/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260227/images',
112
+ '/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260211/images',
114
113
  ]
115
- datasets = "/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/文件列表.txt"
114
+ # datasets = "/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/文件列表.txt"
116
115
  datasets = file_utils.read_data(datasets, split=None)
117
116
  # dataroot = '/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det'
118
117
  # datasets = get_sub_dataset(dataroot)
@@ -19,8 +19,8 @@ if __name__ == "__main__":
19
19
  Sedan # 轿车
20
20
  Truck # 卡车
21
21
  """
22
- data_root = "/home/PKing/nasdata/tmp/tmp/car-det/dataset-v3"
23
- out_root = data_root + "/labelme"
22
+ data_root = "/home/PKing/nasdata/tmp/tmp/pen/dataset-pen-finger-tip-005/train"
23
+ out_root = data_root
24
24
  class_dict = {"car": "car",
25
25
  "person": "pedestrian",
26
26
  "bicycle": "bike",
@@ -30,7 +30,8 @@ if __name__ == "__main__":
30
30
  }
31
31
  convert_voc2labelme.convert_voc2labelme(data_root=data_root,
32
32
  out_root=out_root,
33
- prefix="image2025",
33
+ prefix="",
34
34
  class_name=None,
35
- class_dict=class_dict,
35
+ class_dict={},
36
+ shape_type="rotation",
36
37
  vis=False)
@@ -0,0 +1,43 @@
1
+ import torch
2
+ import torch.nn as nn
3
+ import torch.nn.functional as F
4
+
5
+
6
+ class VariationalAutoencoder(nn.Module):
7
+ def __init__(self, input_dim=784, hidden_dim=128, latent_dim=20):
8
+ super().__init__()
9
+ self.latent_dim = latent_dim
10
+ # TODO 编码器: 输出分布参数
11
+ self.encoder = nn.Sequential(nn.Linear(input_dim, hidden_dim), nn.ReLU())
12
+ self.fc_mu_ = nn.Linear(hidden_dim, latent_dim) # 均值
13
+ self.fc_var = nn.Linear(hidden_dim, latent_dim) # 对数方差
14
+ # TODO 解码器
15
+ self.decoder = nn.Sequential(nn.Linear(latent_dim, hidden_dim), nn.ReLU(), nn.Linear(hidden_dim, input_dim),nn.Sigmoid())
16
+
17
+ def encode(self, x):
18
+ h = self.encoder(x) # VAE编码器:将输入x映射到潜在空间的分布参数(均值mu和对数方差log_var)
19
+ return self.fc_mu_(h), self.fc_var(h)
20
+
21
+ def decode(self, z):
22
+ return self.decoder(z)
23
+
24
+ def reparameterize(self, mu, log_var):
25
+ # 重参数化技巧:从N(0,1)采样,然后变换
26
+ std = torch.exp(0.5 * log_var)
27
+ eps = torch.randn_like(std)
28
+ return mu + eps * std
29
+
30
+ def forward(self, x):
31
+ mu, log_var = self.encode(x) # 输出分布参数
32
+ z = self.reparameterize(mu, log_var) # 采样
33
+ x_recon = self.decode(z) # 解码重建
34
+ return x_recon, mu, log_var
35
+
36
+ def loss_function(self, x_recon, x, mu, log_var):
37
+ # 1. 重建损失
38
+ recon_loss = F.binary_cross_entropy(x_recon, x, reduction='sum')
39
+ # 2. KL散度:让后验分布接近标准正态分布
40
+ # KL(N(mu, sigma^2) || N(0, 1)) = -0.5 * (1 + log(sigma^2) - mu^2 - sigma^2)
41
+ kl_loss = -0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())
42
+ total_loss = recon_loss + kl_loss # 总损失
43
+ return total_loss, recon_loss, kl_loss
@@ -61,9 +61,6 @@ def video_iterator(video):
61
61
 
62
62
 
63
63
  if __name__ == '__main__':
64
- from pybaseutils.cvutils import video_utils
65
-
66
- t= datetime.now().strftime("%Y%m%d_%H%M%S_%f")
67
- video = "/home/PKing/Videos/人体检测.mp4"
68
- video = 0
69
- video_capture(video)
64
+ x = 123
65
+ x = None
66
+ print(f"{str(x):7}")
@@ -19,11 +19,12 @@ def video2frames_demo(root, out, prefix="", vis=False):
19
19
  for video_file in files:
20
20
  print(video_file)
21
21
  # video_utils.video2frames_similarity(video_file, out_dir=out, func=None, interval=20, thresh=0.3, vis=True)
22
- video_utils.video2frames(video_file, out_dir=out, task=None, interval=10, vis=vis, prefix=prefix)
22
+ video_utils.video2frames(video_file, out_dir=out, task=None, interval=5, vis=vis, prefix=prefix)
23
23
 
24
24
 
25
25
  if __name__ == "__main__":
26
26
  root = "/home/PKing/edudata/dataset/AIJE/【TOP】技能人才系统_数据集管理/06-联通岗评/02-训练数据/联通入户布线_20260130_180400(补充打胶专题)/20260130_180400.mp4"
27
+ root = "/media/PKing/dev1/project/ai-cv-service/data/video1.avi"
27
28
  out = os.path.join(os.path.dirname(root), "frames")
28
29
  prefix = "image"
29
30
  # out = os.path.join(root, "frames")
@@ -2,6 +2,7 @@ import numpy as np
2
2
  import cv2
3
3
  import time
4
4
  from pybaseutils.cvutils.camera import CameraCapture
5
+ from pybaseutils.cvutils.video_utils import get_usb_camera
5
6
 
6
7
 
7
8
  def display(cap: CameraCapture):
@@ -19,10 +20,11 @@ def display(cap: CameraCapture):
19
20
 
20
21
 
21
22
  if __name__ == '__main__':
22
- fps = 5
23
+ fps = 15
23
24
  width = 1920
24
25
  height = 1080
25
26
  # video = 0 # Windows 下可能是 0 或 "video=Integrated Webcam"
26
27
  video = "/home/PKing/Videos/demo-src.mp4" # Windows 下可能是 0 或 "video=Integrated Webcam"
28
+ video = get_usb_camera()
27
29
  cap = CameraCapture(video=video, size=(width, height), fps=fps)
28
30
  display(cap)
@@ -1,46 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- import os
3
- import sys
4
-
5
- import numpy as np
6
- import pandas as pd
7
-
8
-
9
- class AppState:
10
- def __init__(self, ):
11
- self.code = 1
12
- self.db_cl_names = []
13
- self._cl_name = self.db_cl_names[0] if self.db_cl_names else None
14
-
15
- @property
16
- def cl_name(self):
17
- if not self._cl_name:
18
- self._cl_name = self.db_cl_names[0] if self.db_cl_names else None
19
- return self._cl_name
20
-
21
- @cl_name.setter
22
- def cl_name(self, v):
23
- assert v in self.db_cl_names, f'cl_name {v} not in db_cl_names {self.db_cl_names}'
24
-
25
- self._cl_name = v
26
-
27
-
28
- def is_sorted_numpy(arr: np.ndarray) -> bool:
29
- """
30
- 使用 numpy 判断数组是否为升序。
31
- 对于大型数值数组,这是最快的方法。
32
- 注意:此函数输入应为 numpy 数组。
33
- """
34
- # np.diff 计算相邻元素之差,如果升序,则所有差值都 >= 0
35
- # np.all() 检查所有条件是否为真
36
- return np.all(np.diff(arr) >= 0)
37
-
38
-
39
- if __name__ == '__main__':
40
- import numpy as np
41
-
42
- # --- 示例 ---
43
- # 假设 data 是一个 numpy 数组
44
- np_data = np.array([1, 2, 2, 3, 5, 8, 0])
45
- result = is_sorted_numpy(np_data)
46
- print(f"Numpy 数组 {np_data} 是否为升序? {result}") # 输出: True
File without changes
File without changes