pybaseutils 2.2.17__tar.gz → 2.2.19__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.
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/PKG-INFO +1 -1
- pybaseutils-2.2.19/pybaseutils/__init__.py +11 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/audio_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/pyaudio_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/audio/vad_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/base64_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/batch_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/build_utils/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/build_utils/cython_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/build_utils/pyarmor_utils.py +1 -1
- {pybaseutils-2.2.17/pybaseutils/converter → pybaseutils-2.2.19/pybaseutils/cluster}/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cluster/kmean.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cluster/maxmin_distance.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cluster/similarity.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/config_utils.py +9 -1
- {pybaseutils-2.2.17/pybaseutils/cluster → pybaseutils-2.2.19/pybaseutils/converter}/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_cvat.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_coco2labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_coco2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_cvat2labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2cvat.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2yolo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_yolo2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/coords_utils.py +7 -4
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/corner_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/mouse_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/nms_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/video_utils.py +2 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/balanced_classes.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/base_coco.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/base_dataset.py +3 -3
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/data_resample.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_coco_det.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_coco_ins.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_coco_kps.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_labelme.py +4 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_yolo.py +1 -1
- {pybaseutils-2.2.17/pybaseutils/tracking → pybaseutils-2.2.19/pybaseutils/filter}/QueueTable.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/__init__.py +1 -1
- {pybaseutils-2.2.17/pybaseutils/tracking → pybaseutils-2.2.19/pybaseutils/filter}/demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/kalman_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/mean_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/motion_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/filter/pose_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/font_style/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/geometry_tools.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/heatmap_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/http_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/image_utils.py +57 -33
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/json_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/log.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/log_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/accuracy.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/average_meter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/class_report.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/plot_pr.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/metrics/plot_roc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/numpy_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pandas_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/plot_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/bones_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/human_pose.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pose/pose_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pycpp/main.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/server/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/server/apm_server.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/setup_config.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/singleton_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/text_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/thread_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/time_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracemalloc_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracemalloc_utils2.py +1 -1
- {pybaseutils-2.2.17/pybaseutils/filter → pybaseutils-2.2.19/pybaseutils/tracking}/QueueTable.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/__init__.py +1 -1
- {pybaseutils-2.2.17/pybaseutils/filter → pybaseutils-2.2.19/pybaseutils/tracking}/demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/kalman_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/mean_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/motion_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/tracking/pose_filter.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/affine_transform.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/augment_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/face_alignment.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/transforms/transform_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/web/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/web/st_image_web.py +38 -20
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/word_utils.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/worker.py +7 -5
- pybaseutils-2.2.19/pybaseutils/yaml_utils.py +19 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/PKG-INFO +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/setup.py +7 -4
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/Image_enhance/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/Image_enhance/dmeo01.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/WebCrawler/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/action_dataset.py +1 -1
- {pybaseutils-2.2.17/test_py/cython_build → pybaseutils-2.2.19/test_py/aije}/build_cython.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/build_pyarmor.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/build_service.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/convert_cvat2labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/convert_labelme2coco.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/convert_labelme2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/copy_move.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_labelme_crop.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_labelme_shock.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_video_aije.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_voc_crop.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/demo_voc_vis.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/get_pair_data.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/aije/video_convertor.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/main.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/main_read.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/segment.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/speechbrain_demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/camera/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/captcha/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/captcha/demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/class_attribute.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/class_names.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/BITVehicle2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/BSTLD2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/CCPD.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/CCPD2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/FL3D_dataset.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/FreiHAND2coco.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/MTFL2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/TT100K.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/WaterMeters1.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/WaterMeters2.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_coco2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_cvat2labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_gesture2hand.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_labelme2coco.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_labelme2cvat.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_voc2labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/fatigue_driving.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/fdd_dataset.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/get_pair_data.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/handpose2coco.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/insects_for_aichallenger.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/ua_detrac2voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/ucf101_dataset.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/voc_sbd2labelme.py +2 -2
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/__init__.py +1 -1
- {pybaseutils-2.2.17/test_py/aije → pybaseutils-2.2.19/test_py/cython_build}/build_cython.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/build_pyarmor.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/cryptography_demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/fun_sum.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/main.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/date_demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo1.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo2.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_async_await1.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_async_await2.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_coco_vis.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_copy_files.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_copy_files_for_voc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_ffmpy.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_for_pair_file.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_for_polygon.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_for_trt.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_gif.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_gif_video.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_image_crop.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_kpts.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_labelme.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_labelme_crop.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_lableme_vis.py +8 -6
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_metrics.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_mouse.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_nii.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_pandas.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_plot.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_rename.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_standard_image .py +6 -4
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_standard_video .py +7 -7
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_taichi.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_video.py +1 -1
- pybaseutils-2.2.19/test_py/demo_video_crop.py +24 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_voc_crop.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_voc_vis.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_word_similar.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_worker1.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_worker2.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/edit_distance/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/edit_distance/demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/edit_distance/text_matching.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/flask_demo/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/flask_demo/func.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/flask_demo/server.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/get_file_list.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/demo_correction_v1.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/demo_correction_v2.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/image_correction/demo_correction_v3.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/kafka_worker.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/men_tracemalloc.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/demo01.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/demo02.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/hello_milvus.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/milvus_demo/milvus_client.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/performance.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/pose/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/pose/human_pose.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/redis_py/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/redis_py/knn_search.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/base.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/component.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/main.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/registry/register.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/GRU.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/TCN.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/single_class/demo.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/test_fr/__init__.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/test_fr/demo11.py +1 -1
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/test_fr/idcardocr.py +1 -1
- pybaseutils-2.2.17/pybaseutils/__init__.py +0 -8
- pybaseutils-2.2.17/pybaseutils/yaml_utils.py +0 -13
- pybaseutils-2.2.17/test_py/demo_video_crop.py +0 -21
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/LICENCE +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/README.md +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/color_utils.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/build_coco.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/concat_coco.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/converter/convert_voc2coco.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/cvutils/monitor.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_image_folder.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_image_text.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/parser_voc.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/file_utils.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/font_utils.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pycpp/__init__.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils/pycpp/demo.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/SOURCES.txt +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/dependency_links.txt +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/not-zip-safe +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/pybaseutils.egg-info/top_level.txt +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/setup.cfg +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/WebCrawler/search_image.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/camera/demo.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/AffectNet.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/AsianMovie.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/concat_coco.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/converter/tt100k_utils.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/model_des_enctypt.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/cython_build/model_enctypt.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/date_dataset.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/datedataset_bk.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo3.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_get_file_label.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/demo_get_file_list.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/demo.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/detect_face_person.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/detector/predet_labelme.py +0 -0
- {pybaseutils-2.2.17 → pybaseutils-2.2.19}/test_py/redis_py/redis_client.py +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
# --------------------------------------------------------
|
|
4
|
+
# @Author : Pan
|
|
5
|
+
# @E-mail :
|
|
6
|
+
# @Date : 2025-02-18 16:10:49
|
|
7
|
+
# @Brief :
|
|
8
|
+
# --------------------------------------------------------
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
__version__ = '2.2.19'
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
# -*- coding:utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
# --------------------------------------------------------
|
|
4
|
+
# @Author : Pan
|
|
5
|
+
# @E-mail :
|
|
6
|
+
# @Date : 2025-02-18 16:10:49
|
|
7
|
+
# @Brief :
|
|
8
|
+
# --------------------------------------------------------
|
|
9
|
+
"""
|
|
2
10
|
import os
|
|
3
11
|
import argparse
|
|
4
12
|
import numbers
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
# -*-coding: utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
2
|
"""
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
# --------------------------------------------------------
|
|
4
|
+
# @Author : Pan
|
|
5
|
+
# @E-mail :
|
|
6
|
+
# @Date : 2025-02-18 16:10:49
|
|
7
|
+
# @Brief :
|
|
8
|
+
# --------------------------------------------------------
|
|
6
9
|
"""
|
|
7
10
|
|
|
8
11
|
import math
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# -*-coding: utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
2
|
"""
|
|
3
3
|
@Author : Pan
|
|
4
4
|
@E-mail : 390737991@qq.com
|
|
@@ -242,6 +242,7 @@ def video_capture(video_file: int or str, save_video: str or int = None, interva
|
|
|
242
242
|
w, h, num_frames, fps = image_utils.get_video_info(video_cap)
|
|
243
243
|
start = int(kwargs.get("start", 0) * fps)
|
|
244
244
|
end = int(kwargs.get("end", num_frames / fps) * fps) if fps > 0 else 0
|
|
245
|
+
if num_frames <= 0: num_frames = end
|
|
245
246
|
end = min(end, num_frames) # TODO 当num_frames<0时,使用0<end<count继续播放
|
|
246
247
|
interval = fps if interval == -1 else interval # 当interval=-1,表示interval=fps,即一秒一帧
|
|
247
248
|
save_fps = max(kwargs.get("speed", 1) * fps // interval, 1)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# -*-coding: utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
2
|
"""
|
|
3
3
|
@Author : PKing
|
|
4
4
|
@E-mail :
|
|
@@ -67,8 +67,6 @@ class Dataset(object):
|
|
|
67
67
|
"""
|
|
68
68
|
if isinstance(class_name, str):
|
|
69
69
|
class_name = Dataset.read_file(class_name)
|
|
70
|
-
elif isinstance(class_name, list) and "unique" in class_name:
|
|
71
|
-
self.unique = True
|
|
72
70
|
if isinstance(class_name, list) and len(class_name) > 0:
|
|
73
71
|
class_dict = {}
|
|
74
72
|
for i, name in enumerate(class_name):
|
|
@@ -85,6 +83,8 @@ class Dataset(object):
|
|
|
85
83
|
for n, i in class_dict.items():
|
|
86
84
|
class_name[i] = "{},{}".format(class_name[i], n) if i in class_name else n
|
|
87
85
|
class_name = list(class_name.values())
|
|
86
|
+
if isinstance(class_name, list) and "unique" in class_name:
|
|
87
|
+
self.unique = True
|
|
88
88
|
return class_name, class_dict
|
|
89
89
|
|
|
90
90
|
@staticmethod
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# -*-coding: utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
2
|
"""
|
|
3
3
|
@Author : PKing
|
|
4
4
|
@E-mail :
|
|
@@ -193,6 +193,7 @@ class LabelMeDataset(Dataset):
|
|
|
193
193
|
bboxes, labels, points, groups, names, keypoints = [], [], [], [], [], []
|
|
194
194
|
for anno in annotation:
|
|
195
195
|
name = "unique" if unique else anno["label"]
|
|
196
|
+
shape_type = anno.get("shape_type", "polygon")
|
|
196
197
|
label = name
|
|
197
198
|
if class_dict:
|
|
198
199
|
if not name in class_dict:
|
|
@@ -211,6 +212,8 @@ class LabelMeDataset(Dataset):
|
|
|
211
212
|
pts[:, 0] = np.clip(pts[:, 0], 0, w - 1)
|
|
212
213
|
pts[:, 1] = np.clip(pts[:, 1], 0, h - 1)
|
|
213
214
|
box = image_utils.polygons2boxes([pts])[0]
|
|
215
|
+
if shape_type == "rectangle":
|
|
216
|
+
pts = image_utils.boxes2polygons([box])[0]
|
|
214
217
|
names.append(name)
|
|
215
218
|
labels.append(label)
|
|
216
219
|
bboxes.append(box)
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
# -*-coding: utf-8 -*-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
2
|
"""
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
# --------------------------------------------------------
|
|
4
|
+
# @Author : Pan
|
|
5
|
+
# @E-mail :
|
|
6
|
+
# @Date : 2025-02-18 16:10:49
|
|
7
|
+
# @Brief :
|
|
8
|
+
# --------------------------------------------------------
|
|
6
9
|
"""
|
|
7
10
|
|
|
8
11
|
import os
|
|
@@ -99,34 +102,6 @@ def boxes_protection(boxes, width, height):
|
|
|
99
102
|
return boxes
|
|
100
103
|
|
|
101
104
|
|
|
102
|
-
def tensor2image(batch_tensor, index=0):
|
|
103
|
-
"""
|
|
104
|
-
convert tensor to image
|
|
105
|
-
:param batch_tensor:
|
|
106
|
-
:param index:
|
|
107
|
-
:return:
|
|
108
|
-
"""
|
|
109
|
-
image_tensor = batch_tensor[index, :]
|
|
110
|
-
image = np.array(image_tensor, dtype=np.float32)
|
|
111
|
-
image = np.squeeze(image)
|
|
112
|
-
image = image.transpose(1, 2, 0) # 通道由[c,h,w]->[h,w,c]
|
|
113
|
-
return image
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
def get_image_tensor(image_path, image_size, transpose=False):
|
|
117
|
-
image = read_image(image_path)
|
|
118
|
-
# transform = default_transform(image_size)
|
|
119
|
-
# torch_image = transform(image).detach().numpy()
|
|
120
|
-
image = resize_image(image, size=(int(128 * image_size[0] / 112), int(128 * image_size[1] / 112)))
|
|
121
|
-
image = center_crop(image, crop_size=image_size)
|
|
122
|
-
image_tensor = image_normalize(image, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
|
|
123
|
-
if transpose:
|
|
124
|
-
image_tensor = image_tensor.transpose(2, 0, 1) # NHWC->NCHW
|
|
125
|
-
image_tensor = image_tensor[np.newaxis, :]
|
|
126
|
-
# std = np.std(torch_image-image_tensor)
|
|
127
|
-
return image_tensor
|
|
128
|
-
|
|
129
|
-
|
|
130
105
|
def image_clip(image):
|
|
131
106
|
"""
|
|
132
107
|
:param image:
|
|
@@ -316,6 +291,55 @@ def swap_image(image):
|
|
|
316
291
|
return image
|
|
317
292
|
|
|
318
293
|
|
|
294
|
+
def image2tensor(image, size=(), mean=(), std=()):
|
|
295
|
+
"""
|
|
296
|
+
transform = transforms.Compose([
|
|
297
|
+
transforms.Resize(size=(input_size[1], input_size[0])),
|
|
298
|
+
transforms.ToTensor(),
|
|
299
|
+
transforms.Normalize(mean=rgb_mean, std=rgb_std),
|
|
300
|
+
])
|
|
301
|
+
:param image:
|
|
302
|
+
:param input_size:
|
|
303
|
+
:return:
|
|
304
|
+
"""
|
|
305
|
+
if size: image = cv2.resize(image, dsize=size)
|
|
306
|
+
image = np.array(image, dtype=np.float32) / 255.0
|
|
307
|
+
if mean: image = image - np.asarray(mean, dtype=np.float32)
|
|
308
|
+
if std: image = image / np.asarray(std, dtype=np.float32)
|
|
309
|
+
tensor = image.transpose(2, 0, 1) # HWC->CHW
|
|
310
|
+
tensor = tensor[np.newaxis, :]
|
|
311
|
+
return tensor
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
def tensor2image(tensor, mean=(), std=()):
|
|
315
|
+
"""
|
|
316
|
+
:param tensor: (b,c,h,w)
|
|
317
|
+
:param index:
|
|
318
|
+
:return:
|
|
319
|
+
"""
|
|
320
|
+
image = np.array(tensor, dtype=np.float32)
|
|
321
|
+
image = image.transpose(0, 2, 3, 1) # (b0,c1,h2,w3)->(b0,h2,w3,c1)
|
|
322
|
+
if std: image = image * np.asarray(std, dtype=np.float32)
|
|
323
|
+
if mean: image = image + np.asarray(mean, dtype=np.float32)
|
|
324
|
+
image = np.clip(image * 255, 0, 255)
|
|
325
|
+
image = np.array(image, dtype=np.uint8)
|
|
326
|
+
return image
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
def get_image_tensor(image_path, image_size, transpose=False):
|
|
330
|
+
image = read_image(image_path)
|
|
331
|
+
# transform = default_transform(image_size)
|
|
332
|
+
# torch_image = transform(image).detach().numpy()
|
|
333
|
+
image = resize_image(image, size=(int(128 * image_size[0] / 112), int(128 * image_size[1] / 112)))
|
|
334
|
+
image = center_crop(image, crop_size=image_size)
|
|
335
|
+
image_tensor = image_normalize(image, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
|
|
336
|
+
if transpose:
|
|
337
|
+
image_tensor = image_tensor.transpose(2, 0, 1) # NHWC->NCHW
|
|
338
|
+
image_tensor = image_tensor[np.newaxis, :]
|
|
339
|
+
# std = np.std(torch_image-image_tensor)
|
|
340
|
+
return image_tensor
|
|
341
|
+
|
|
342
|
+
|
|
319
343
|
def image_normalize(image, mean=None, std=None):
|
|
320
344
|
'''
|
|
321
345
|
正则化,归一化
|
|
@@ -2979,7 +3003,7 @@ def get_video_info(video_cap: cv2.VideoCapture, vis=True):
|
|
|
2979
3003
|
width = int(video_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
|
|
2980
3004
|
height = int(video_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
|
|
2981
3005
|
num_frames = int(video_cap.get(cv2.CAP_PROP_FRAME_COUNT))
|
|
2982
|
-
fps =
|
|
3006
|
+
fps = video_cap.get(cv2.CAP_PROP_FPS)
|
|
2983
3007
|
if vis: print("read video:width:{},height:{},fps:{},num_frames:{}".format(width, height, fps, num_frames))
|
|
2984
3008
|
return width, height, num_frames, fps
|
|
2985
3009
|
|