pybaseutils 2.1.1__tar.gz → 2.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/PKG-INFO +1 -1
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/__init__.py +1 -1
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/numpy_utils.py +77 -51
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils.egg-info/PKG-INFO +1 -1
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/LICENCE +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/README.md +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/audio/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/audio/audio_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/audio/pyaudio_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/audio/vad_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/base64_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/batch_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/build_utils/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/build_utils/cython_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cluster/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cluster/kmean.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cluster/maxmin_distance.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cluster/similarity.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/color_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/config_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/build_coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/build_cvat.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/build_labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/build_voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/concat_coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_coco2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_voc2coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_voc2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_voc2yolo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/converter/convert_yolo2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/coords_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cvutils/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cvutils/corner_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cvutils/monitor.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cvutils/mouse_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/cvutils/video_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/balanced_classes.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/base_coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/base_dataset.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/data_resample.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_coco_det.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_image_folder.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_image_text.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/parser_yolo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/file_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/QueueTable.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/kalman_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/mean_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/motion_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/filter/pose_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/font_style/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/font_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/geometry_tools.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/heatmap_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/image_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/json_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/log.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/logger.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/metrics/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/metrics/accuracy.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/metrics/average_meter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/metrics/class_report.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/metrics/plot_pr.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/metrics/plot_roc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pandas_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/plot_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pose/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pose/bones_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pose/human_pose.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pose/pose_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pycpp/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pycpp/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/pycpp/main.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/server/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/server/apm_server.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/setup_config.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/singleton_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/text_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/thread_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/time_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracemalloc_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracemalloc_utils2.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/QueueTable.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/kalman_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/mean_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/motion_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/tracking/pose_filter.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/transforms/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/transforms/affine_transform.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/transforms/augment_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/transforms/face_alignment.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/transforms/transform_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/word_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/worker.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils/yaml_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils.egg-info/SOURCES.txt +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils.egg-info/dependency_links.txt +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils.egg-info/not-zip-safe +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/pybaseutils.egg-info/top_level.txt +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/setup.cfg +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/setup.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/WebCrawler/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/WebCrawler/search_image.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/action_dataset.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/build_cython.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/build_pyarmor.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/build_service.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/convert_labelme2coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/convert_labelme2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/copy_move.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/demo_labelme_crop.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/demo_video_aije.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/demo_voc_crop.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/demo_voc_vis.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/aije/video_convertor.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/main.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/main_read.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/segment.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/audio/speechbrain_demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/captcha/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/captcha/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/class_attribute.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/class_names.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/AffectNet.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/AsianMovie.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/BITVehicle2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/BSTLD2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/CCPD.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/CCPD2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/FL3D_dataset.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/FreiHAND2coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/MTFL2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/TT100K.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/WaterMeters1.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/WaterMeters2.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/concat_coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_gesture2hand.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/fatigue_driving.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/fdd_dataset.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/get_pair_data.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/handpose2coco.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/insects_for_aichallenger.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/tt100k_utils.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/ua_detrac2voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/ucf101_dataset.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/converter/voc_sbd2labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/build_cython.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/build_pyarmor.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/cryptography_demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/fun_sum.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/main.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/model_des_enctypt.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/cython_build/model_enctypt.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo1.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo2.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo3.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_async_await1.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_async_await2.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_coco_vis.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_copy_files.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_copy_files_for_voc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_ffmpy.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_for_pair_file.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_for_polygon.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_for_trt.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_get_file_list.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_gif.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_gif_video.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_image_crop.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_kpts.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_labelme_crop.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_lableme_vis.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_metrics.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_mouse.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_nii.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_pandas.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_plot.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_rename.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_standard_image .py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_standard_video .py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_taichi.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_video.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_voc_crop.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_voc_vis.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_word_similar.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_worker1.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/demo_worker2.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/detector/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/detector/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/detector/detect_face_person.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/detector/predet_labelme.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/edit_distance/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/edit_distance/demo.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/edit_distance/text_matching.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/flask_demo/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/flask_demo/func.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/flask_demo/server.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/image_correction/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/image_correction/demo_correction_v1.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/image_correction/demo_correction_v2.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/image_correction/demo_correction_v3.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/kafka_worker.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/men_tracemalloc.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/performance.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/pose/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/pose/human_pose.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/registry/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/registry/base.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/registry/component.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/registry/main.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/registry/register.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/test_fr/__init__.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/test_fr/demo11.py +0 -0
- {pybaseutils-2.1.1 → pybaseutils-2.1.2}/test_py/test_fr/idcardocr.py +0 -0
|
@@ -11,30 +11,54 @@ from sklearn import metrics, preprocessing
|
|
|
11
11
|
import heapq
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
def
|
|
14
|
+
def feature_norm(x, axis=-1):
|
|
15
15
|
"""
|
|
16
|
-
|
|
16
|
+
特征归一化:
|
|
17
|
+
y = x / x.norm(dim=-1, keepdim=True) # torch
|
|
18
|
+
y = x / np.linalg.norm(x, axis=-1, keepdims=True) # numpy
|
|
19
|
+
:param x: 输入二维矩阵(N,embedding-size),每行是一个样本,样本特征维度为embedding-size
|
|
20
|
+
:param axis:
|
|
21
|
+
:return:
|
|
22
|
+
"""
|
|
23
|
+
y = x / np.linalg.norm(x, axis=axis, keepdims=True)
|
|
24
|
+
return y
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def feature_similarity(inputs, target):
|
|
28
|
+
"""
|
|
29
|
+
计算特征相似性
|
|
30
|
+
similarity = inputs @ target.T # torch
|
|
31
|
+
similarity = np.sum(inputs * target, axis=-1) # numpy
|
|
17
32
|
:param inputs: 输入待匹配的特点,shape=(n,D),其中n表示样本个数,D表示特征维度
|
|
18
33
|
:param target: 目标匹配数据库,shape=(N,D),其中N表示数据库样本个数,D表示特征维度
|
|
19
|
-
:
|
|
20
|
-
:return: indexes: 与target匹配的索引
|
|
21
|
-
distance:与target匹配的最小L2距离(欧式距离=np.sqrt(L2)=np.sqrt(distance))
|
|
34
|
+
:return: similarity
|
|
22
35
|
"""
|
|
23
36
|
assert inputs.shape[1] == target.shape[1] # 特征维度必须一致
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
inputs_ = np.expand_dims(inputs, axis=1) # (b,512)->(b,1,512)
|
|
38
|
+
target_ = np.expand_dims(target, axis=0) # (n, 512)->(1, n, 512)
|
|
39
|
+
similarity = np.sum(inputs_ * target_, axis=-1) # (b,1,512) * (1, n, 512)
|
|
40
|
+
return similarity
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def feature_matching(inputs, target, use_max=True):
|
|
44
|
+
"""
|
|
45
|
+
按照相似程度进行特征匹配,输入特征数据必须进行特征归一化:
|
|
46
|
+
y = x / x.norm(dim=-1, keepdim=True) # torch
|
|
47
|
+
y = x / np.linalg.norm(x, axis=-1, keepdims=True) # numpy
|
|
48
|
+
:param inputs: 输入待匹配的特点,shape=(n,D),其中n表示样本个数,D表示特征维度
|
|
49
|
+
:param target: 目标匹配数据库,shape=(N,D),其中N表示数据库样本个数,D表示特征维度
|
|
50
|
+
:param use_max:按照相似程度进行匹配
|
|
51
|
+
:return: index: 与target匹配的索引
|
|
52
|
+
score:与target匹配的最小L2距离(欧式距离=np.sqrt(L2)=np.sqrt(distance))
|
|
53
|
+
"""
|
|
54
|
+
similarity = feature_similarity(inputs, target)
|
|
29
55
|
if use_max:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
# distance = np.asarray([dist[i][c] for i, c in enumerate(indexes)])
|
|
56
|
+
index = np.argmax(similarity, axis=1)
|
|
57
|
+
score = np.max(similarity, axis=1)
|
|
33
58
|
else:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return indexes, distance
|
|
59
|
+
index = np.argmin(similarity, axis=1)
|
|
60
|
+
score = np.min(similarity, axis=1)
|
|
61
|
+
return index, score
|
|
38
62
|
|
|
39
63
|
|
|
40
64
|
def get_nearest_point(points, center, axis=1, use_max=False):
|
|
@@ -296,8 +320,31 @@ def __print(data, info=""):
|
|
|
296
320
|
print("{}".format(data[index]))
|
|
297
321
|
|
|
298
322
|
|
|
323
|
+
def euclidean_distance(p1, p2, axis=1):
|
|
324
|
+
"""
|
|
325
|
+
计算欧氏距离
|
|
326
|
+
point1 = [[3, 4], [4, 3], [4, 3]]
|
|
327
|
+
center = [[0, 0]]
|
|
328
|
+
point1 = np.asarray(point1)
|
|
329
|
+
center = np.asarray(center)
|
|
330
|
+
|
|
331
|
+
L2-norm=np.sqrt(np.sum(np.square(x), axis=axis))
|
|
332
|
+
L1-norm=np.sum(np.abs(x), axis=axis))
|
|
333
|
+
# 下面三个计算是等价的
|
|
334
|
+
d1 = np.sqrt(numpy_tools.l2(point1 - center, axis=1)) # L2开根号就是欧式距离
|
|
335
|
+
d2 = numpy_utils.norm(point1 - center, p=2, axis=1)
|
|
336
|
+
d3 = numpy_utils.euclidean_distance(point1, center, axis=1)
|
|
337
|
+
"""
|
|
338
|
+
d = np.sqrt(np.sum(np.square(p1 - p2), axis=axis))
|
|
339
|
+
return d
|
|
340
|
+
|
|
341
|
+
|
|
299
342
|
def norm(x, p=1, axis=0):
|
|
300
|
-
"""
|
|
343
|
+
"""
|
|
344
|
+
L-p范数
|
|
345
|
+
L2-norm=np.sqrt(np.sum(np.square(x), axis=axis))
|
|
346
|
+
L1-norm=np.sum(np.abs(x), axis=axis))
|
|
347
|
+
"""
|
|
301
348
|
y = np.linalg.norm(x, ord=p, axis=axis, keepdims=True)
|
|
302
349
|
return y
|
|
303
350
|
|
|
@@ -308,8 +355,14 @@ def l2(x, axis=0):
|
|
|
308
355
|
return y
|
|
309
356
|
|
|
310
357
|
|
|
358
|
+
def l2_norm(x, axis=0):
|
|
359
|
+
"""L-2范数"""
|
|
360
|
+
y = np.sqrt(l2(x, axis=axis))
|
|
361
|
+
return y
|
|
362
|
+
|
|
363
|
+
|
|
311
364
|
def l1(x, axis=0):
|
|
312
|
-
"""L-1
|
|
365
|
+
"""L-1范数:"""
|
|
313
366
|
y = np.sum(np.abs(x), axis=axis)
|
|
314
367
|
return y
|
|
315
368
|
|
|
@@ -334,22 +387,6 @@ def mean_absolute_error(y_true, y_pre):
|
|
|
334
387
|
return l1 / y_true.size
|
|
335
388
|
|
|
336
389
|
|
|
337
|
-
def euclidean_distance(p1, p2, axis=1):
|
|
338
|
-
"""
|
|
339
|
-
计算欧氏距离
|
|
340
|
-
point1 = [[3, 4], [4, 3], [4, 3]]
|
|
341
|
-
center = [[0, 0]]
|
|
342
|
-
point1 = np.asarray(point1)
|
|
343
|
-
center = np.asarray(center)
|
|
344
|
-
# 下面三个计算是等价的
|
|
345
|
-
d1 = np.sqrt(numpy_tools.l2(point1 - center, axis=1)) # L2开根号就是欧式距离
|
|
346
|
-
d2 = numpy_utils.norm(point1 - center, p=2, axis=1)
|
|
347
|
-
d3 = numpy_utils.euclidean_distance(point1, center, axis=1)
|
|
348
|
-
"""
|
|
349
|
-
d = np.sqrt(np.sum(np.square(p1 - p2), axis=axis))
|
|
350
|
-
return d
|
|
351
|
-
|
|
352
|
-
|
|
353
390
|
def mean(data):
|
|
354
391
|
return np.mean(data)
|
|
355
392
|
|
|
@@ -608,19 +645,8 @@ class Preprocessing(object):
|
|
|
608
645
|
if __name__ == "__main__":
|
|
609
646
|
from pybaseutils import numpy_utils
|
|
610
647
|
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
y =
|
|
615
|
-
print(y)
|
|
616
|
-
# y = Preprocessing.minmax_scaler(x)
|
|
617
|
-
# y = Preprocessing.normalization(x)
|
|
618
|
-
|
|
619
|
-
value_list = [
|
|
620
|
-
[1, 2, 3, 4, 5, 6],
|
|
621
|
-
[5, 6, 1, 2, 3, 4],
|
|
622
|
-
]
|
|
623
|
-
print(value_list)
|
|
624
|
-
top_k_value, top_k_index = get_topK(value_list, k=3, reverse=False)
|
|
625
|
-
print(top_k_value)
|
|
626
|
-
print(top_k_index)
|
|
648
|
+
y = np.array([[0., 0.1, 0], [0, 0.1, 1], [0, 0.1, 2]])
|
|
649
|
+
x = np.array([[0, 0.1, 1], [0, 0.1, 2], [0., 0.1, 0]])
|
|
650
|
+
x = feature_norm(x)
|
|
651
|
+
y = feature_norm(y)
|
|
652
|
+
print(feature_matching(x, y))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|