pybaseutils 2.0.8__tar.gz → 2.0.9__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.0.8 → pybaseutils-2.0.9}/PKG-INFO +1 -1
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/__init__.py +1 -1
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/coords_utils.py +5 -2
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_image_folder.py +4 -3
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_image_text.py +27 -22
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/PKG-INFO +1 -1
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo1.py +7 -5
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_rename.py +2 -2
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/LICENCE +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/README.md +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/audio_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/pyaudio_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/audio/vad_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/base64_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/batch_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/build_utils/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/build_utils/cython_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/kmean.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/maxmin_distance.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cluster/similarity.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/color_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/config_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_cvat.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/build_voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/concat_coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_coco2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_voc2yolo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/converter/convert_yolo2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/corner_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/monitor.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/mouse_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/cvutils/video_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/balanced_classes.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/base_coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/base_dataset.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/data_resample.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_coco_det.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/parser_yolo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/file_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/QueueTable.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/kalman_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/mean_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/motion_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/filter/pose_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/font_style/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/font_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/geometry_tools.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/heatmap_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/image_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/json_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/log.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/logger.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/accuracy.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/average_meter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/class_report.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/plot_pr.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/metrics/plot_roc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/numpy_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pandas_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/plot_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/bones_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/human_pose.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pose/pose_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pycpp/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pycpp/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/pycpp/main.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/server/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/server/apm_server.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/setup_config.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/singleton_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/text_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/thread_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/time_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracemalloc_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracemalloc_utils2.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/QueueTable.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/kalman_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/mean_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/motion_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/tracking/pose_filter.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/affine_transform.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/augment_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/face_alignment.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/transforms/transform_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/word_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/worker.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils/yaml_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/SOURCES.txt +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/dependency_links.txt +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/not-zip-safe +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/pybaseutils.egg-info/top_level.txt +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/setup.cfg +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/setup.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/WebCrawler/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/WebCrawler/search_image.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/action_dataset.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/build_cython.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/build_pyarmor.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/build_service.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/convert_labelme2coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/convert_labelme2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/copy_move.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_labelme_crop.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_video_aije.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_voc_crop.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/demo_voc_vis.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/aije/video_convertor.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/main.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/main_read.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/segment.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/audio/speechbrain_demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/captcha/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/captcha/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/class_attribute.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/class_names.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/AffectNet.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/AsianMovie.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/BITVehicle2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/BSTLD2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/CCPD.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/CCPD2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/FL3D_dataset.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/FreiHAND2coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/MTFL2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/TT100K.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/WaterMeters1.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/WaterMeters2.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/concat_coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_gesture2hand.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/fatigue_driving.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/fdd_dataset.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/get_pair_data.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/handpose2coco.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/insects_for_aichallenger.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/tt100k_utils.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/ua_detrac2voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/ucf101_dataset.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/converter/voc_sbd2labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/build_cython.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/build_pyarmor.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/cryptography_demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/fun_sum.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/main.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/model_des_enctypt.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/cython_build/model_enctypt.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo2.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo3.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_async_await1.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_async_await2.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_coco_vis.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_copy_files.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_copy_files_for_voc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_ffmpy.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_for_pair_file.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_for_polygon.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_for_trt.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_get_file_list.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_gif.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_gif_video.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_image_crop.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_kpts.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_labelme_crop.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_lableme_vis.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_metrics.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_mouse.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_nii.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_pandas.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_plot.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_standard_image .py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_standard_video .py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_taichi.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_video.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_voc_crop.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_voc_vis.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_word_similar.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_worker1.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/demo_worker2.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/detect_face_person.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/detector/predet_labelme.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/edit_distance/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/edit_distance/demo.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/edit_distance/text_matching.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/flask_demo/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/flask_demo/func.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/flask_demo/server.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/demo_correction_v1.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/demo_correction_v2.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/image_correction/demo_correction_v3.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/kafka_worker.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/men_tracemalloc.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/performance.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/pose/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/pose/human_pose.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/base.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/component.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/main.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/registry/register.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/test_fr/__init__.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/test_fr/demo11.py +0 -0
- {pybaseutils-2.0.8 → pybaseutils-2.0.9}/test_py/test_fr/idcardocr.py +0 -0
|
@@ -198,11 +198,12 @@ def shrink_polygon_pyclipper(polygon, ratio):
|
|
|
198
198
|
return shrinked
|
|
199
199
|
|
|
200
200
|
|
|
201
|
-
def get_square_boxes(boxes, use_max=True, baseline=-1):
|
|
201
|
+
def get_square_boxes(boxes, use_max=True, use_mean=False, baseline=-1):
|
|
202
202
|
"""
|
|
203
203
|
将boxes转换为正方形的boxes
|
|
204
204
|
:param boxes:
|
|
205
|
-
:param use_max: 是否按照每个box(w,h)
|
|
205
|
+
:param use_max: 是否按照每个box(w,h)最大值(True)/最小值(False)进行转换(默认)
|
|
206
|
+
:param use_mean: 是否按照每个box(w,h)平均值进行转换(优先级比use_mean高)
|
|
206
207
|
:param baseline: 当baseline>0,表示正方形最小边长
|
|
207
208
|
:return:
|
|
208
209
|
"""
|
|
@@ -213,6 +214,8 @@ def get_square_boxes(boxes, use_max=True, baseline=-1):
|
|
|
213
214
|
b = np.max(center[:, 2:4], axis=1)
|
|
214
215
|
else:
|
|
215
216
|
b = np.min(center[:, 2:4], axis=1)
|
|
217
|
+
if use_mean:
|
|
218
|
+
b = np.mean(center[:, 2:4], axis=1)
|
|
216
219
|
if baseline > 0:
|
|
217
220
|
index = b < baseline
|
|
218
221
|
b[index] = baseline
|
|
@@ -39,7 +39,7 @@ class FolderDataset(parser_image_text.TextDataset):
|
|
|
39
39
|
def __getitem__(self, index):
|
|
40
40
|
"""
|
|
41
41
|
:param index:
|
|
42
|
-
:return: image,label
|
|
42
|
+
:return: {"image": image, "label": label}
|
|
43
43
|
"""
|
|
44
44
|
item = self.item_list[index]
|
|
45
45
|
bbox = item[2:] if len(item) == 6 else []
|
|
@@ -65,7 +65,7 @@ class FolderDataset(parser_image_text.TextDataset):
|
|
|
65
65
|
item_list = []
|
|
66
66
|
for i, dir in enumerate(filename):
|
|
67
67
|
print("loading image from:{}".format(dir))
|
|
68
|
-
if not os.path.exists(dir): raise Exception("image_dir:{}".format(dir))
|
|
68
|
+
if not os.path.exists(dir): raise Exception("文件不存在,image_dir:{}".format(dir))
|
|
69
69
|
paths, labels = file_utils.get_files_labels(dir, postfix=file_utils.IMG_POSTFIX)
|
|
70
70
|
# TODO # 避免多个数据集的相同的label
|
|
71
71
|
if use_sub: labels = [os.path.join(str(i), l) for l in labels]
|
|
@@ -79,6 +79,7 @@ if __name__ == '__main__':
|
|
|
79
79
|
from torchvision import transforms
|
|
80
80
|
|
|
81
81
|
image_dir = ['/home/PKing/nasdata/release/infrastructure/DMClassification/data/dataset/train']
|
|
82
|
+
class_name = None
|
|
82
83
|
input_size = [224, 224]
|
|
83
84
|
rgb_mean = [0., 0., 0.]
|
|
84
85
|
rgb_std = [1.0, 1.0, 1.0]
|
|
@@ -90,7 +91,7 @@ if __name__ == '__main__':
|
|
|
90
91
|
dataset = FolderDataset(image_dir=image_dir,
|
|
91
92
|
transform=transform,
|
|
92
93
|
shuffle=True,
|
|
93
|
-
class_name=
|
|
94
|
+
class_name=class_name,
|
|
94
95
|
resample=True,
|
|
95
96
|
disp=True)
|
|
96
97
|
for i in range(len(dataset)):
|
|
@@ -35,8 +35,9 @@ class TextDataset(Dataset):
|
|
|
35
35
|
:param phase:
|
|
36
36
|
:param disp:
|
|
37
37
|
:param check:
|
|
38
|
-
:param kwargs:
|
|
38
|
+
:param kwargs: crop_scale,resample,save_info
|
|
39
39
|
"""
|
|
40
|
+
self.kwargs = kwargs
|
|
40
41
|
self.use_rgb = use_rgb
|
|
41
42
|
self.transform = transform
|
|
42
43
|
self.phase = phase
|
|
@@ -55,9 +56,9 @@ class TextDataset(Dataset):
|
|
|
55
56
|
self.num_images = len(self.item_list)
|
|
56
57
|
self.classes = list(self.class_dict.values())
|
|
57
58
|
self.num_classes = max(self.classes) + 1
|
|
58
|
-
self.info(
|
|
59
|
+
self.info(save_info=kwargs.get("save_info", ""))
|
|
59
60
|
|
|
60
|
-
def info(self,
|
|
61
|
+
def info(self, save_info=""):
|
|
61
62
|
print("----------------------- {} DATASET INFO -----------------------".format(self.phase.upper()))
|
|
62
63
|
print("Dataset have images :{}".format(len(self.item_list)))
|
|
63
64
|
print("Dataset class_name :{}".format(self.class_name))
|
|
@@ -66,17 +67,17 @@ class TextDataset(Dataset):
|
|
|
66
67
|
print("Dataset num images :{}".format(len(self.item_list)))
|
|
67
68
|
print("Dataset num_classes :{}".format(self.num_classes))
|
|
68
69
|
print("Dataset resample :{}".format(self.resample))
|
|
69
|
-
if
|
|
70
|
-
if not os.path.exists(
|
|
70
|
+
if save_info:
|
|
71
|
+
if not os.path.exists(save_info): os.makedirs(save_info)
|
|
71
72
|
m = np.mean(list(self.class_count.values()))
|
|
72
73
|
class_lack = {n: c for n, c in self.class_count.items() if c < m * 0.5}
|
|
73
74
|
class_lack = sorted(class_lack.items(), key=lambda x: x[1], reverse=True)
|
|
74
75
|
class_lack = {n[0]: n[1] for n in class_lack}
|
|
75
76
|
class_lack.update({"mean": m})
|
|
76
|
-
file_utils.write_json_path(os.path.join(
|
|
77
|
-
file_utils.write_json_path(os.path.join(
|
|
78
|
-
file_utils.write_list_data(os.path.join(
|
|
79
|
-
file_utils.write_json_path(os.path.join(
|
|
77
|
+
file_utils.write_json_path(os.path.join(save_info, f"{self.phase}_class_dict.json"), self.class_dict)
|
|
78
|
+
file_utils.write_json_path(os.path.join(save_info, f"{self.phase}_class_count.json"), self.class_count)
|
|
79
|
+
file_utils.write_list_data(os.path.join(save_info, f"{self.phase}_class_name.txt"), self.class_name)
|
|
80
|
+
file_utils.write_json_path(os.path.join(save_info, f"{self.phase}_class_lack.json"), class_lack)
|
|
80
81
|
print("loss_labels: {}".format(class_lack))
|
|
81
82
|
print("------------------------------------------------------------------")
|
|
82
83
|
|
|
@@ -91,8 +92,8 @@ class TextDataset(Dataset):
|
|
|
91
92
|
"""
|
|
92
93
|
data_list = self.load_dataset(filename, data_root=data_root)
|
|
93
94
|
if not self.class_name:
|
|
94
|
-
class_name = list(set([d[1] for d in data_list]))
|
|
95
|
-
self.class_name, self.class_dict = self.parser_classes(class_name)
|
|
95
|
+
self.class_name = list(set([d[1] for d in data_list]))
|
|
96
|
+
self.class_name, self.class_dict = self.parser_classes(self.class_name)
|
|
96
97
|
item_list = []
|
|
97
98
|
for data in data_list:
|
|
98
99
|
label = data[1]
|
|
@@ -100,6 +101,8 @@ class TextDataset(Dataset):
|
|
|
100
101
|
data[1] = self.class_dict[label]
|
|
101
102
|
item_list.append(data)
|
|
102
103
|
if check: item_list = self.check_item(item_list)
|
|
104
|
+
assert self.class_name, f"类别为空,请检查,class_name={self.class_name}"
|
|
105
|
+
assert item_list, f"文件列表为空,请检查输入数据,filename={filename}"
|
|
103
106
|
if shuffle:
|
|
104
107
|
random.seed(100)
|
|
105
108
|
random.shuffle(item_list)
|
|
@@ -156,13 +159,13 @@ class TextDataset(Dataset):
|
|
|
156
159
|
def __getitem__(self, index):
|
|
157
160
|
"""
|
|
158
161
|
:param index:
|
|
159
|
-
:return: image,label
|
|
162
|
+
:return: {"image": image, "label": label}
|
|
160
163
|
"""
|
|
161
164
|
item = self.item_list[index]
|
|
162
165
|
bbox = item[2:] if len(item) == 6 else []
|
|
163
166
|
image_file, label = item[0], item[1]
|
|
164
167
|
image = self.read_image(image_file, use_rgb=self.use_rgb)
|
|
165
|
-
image = self.crop_image(image, bbox=bbox) if bbox else image
|
|
168
|
+
image = self.crop_image(image, bbox=bbox, scale=self.kwargs.get("crop_scale", [1.2, 1.2])) if bbox else image
|
|
166
169
|
if self.transform:
|
|
167
170
|
image = Image.fromarray(image)
|
|
168
171
|
image = self.transform(image)
|
|
@@ -176,10 +179,11 @@ class TextDataset(Dataset):
|
|
|
176
179
|
self.item_list = self.data_resample.update(True)
|
|
177
180
|
return len(self.item_list)
|
|
178
181
|
|
|
179
|
-
def crop_image(self, image, bbox):
|
|
180
|
-
"""
|
|
182
|
+
def crop_image(self, image, bbox, scale=[1.2, 1.2]):
|
|
183
|
+
"""裁剪图片"""
|
|
181
184
|
if not bbox: return image
|
|
182
|
-
boxes = image_utils.
|
|
185
|
+
boxes = image_utils.get_square_boxes([bbox], use_max=True)
|
|
186
|
+
boxes = image_utils.extend_xyxy(boxes, scale=scale)
|
|
183
187
|
image = image_utils.get_boxes_crop(image, boxes)[0]
|
|
184
188
|
return image
|
|
185
189
|
|
|
@@ -241,10 +245,10 @@ if __name__ == '__main__':
|
|
|
241
245
|
from torchvision import transforms
|
|
242
246
|
|
|
243
247
|
filenames = [
|
|
244
|
-
|
|
245
|
-
'/home/PKing/nasdata/tmp/tmp/RealFakeFace/anti-spoofing-images-v1/CelebA-Spoof/CelebA_Spoof/Data/train.txt',
|
|
248
|
+
'/home/PKing/nasdata/tmp/tmp/RealFakeFace/anti-spoofing-images-v1/train.txt',
|
|
246
249
|
]
|
|
247
|
-
|
|
250
|
+
class_name = None
|
|
251
|
+
input_size = [112, 112]
|
|
248
252
|
rgb_mean = [0., 0., 0.]
|
|
249
253
|
rgb_std = [1.0, 1.0, 1.0]
|
|
250
254
|
transform = transforms.Compose([
|
|
@@ -254,9 +258,10 @@ if __name__ == '__main__':
|
|
|
254
258
|
])
|
|
255
259
|
dataset = TextDataset(filename=filenames,
|
|
256
260
|
transform=transform,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
261
|
+
class_name=class_name,
|
|
262
|
+
resample=False,
|
|
263
|
+
shuffle=False,
|
|
264
|
+
# crop_scale=(1.2, 1.2),
|
|
260
265
|
disp=True)
|
|
261
266
|
for i in range(len(dataset)):
|
|
262
267
|
data_info = dataset.__getitem__(i)
|
|
@@ -48,8 +48,10 @@ class Promote():
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
if __name__ == '__main__':
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
image_file = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/第3批数据/aije-action-train-v22/江门_检查工器具_20240910_172411_6606_0000.jpg"
|
|
52
|
+
boxe1 = [[600, 300, 850, 800]]
|
|
53
|
+
image = image_utils.read_image(image_file)
|
|
54
|
+
boxe2 = image_utils.get_square_boxes(boxe1, use_max=True, use_mean=True)
|
|
55
|
+
image = image_utils.draw_image_boxes(image, boxe1, color=(255, 0, 0))
|
|
56
|
+
image = image_utils.draw_image_boxes(image, boxe2, color=(0, 255, 0))
|
|
57
|
+
image_utils.cv_show_image("image", image)
|
|
@@ -24,9 +24,9 @@ def rename_image_file(image_dir, output, prefix=""):
|
|
|
24
24
|
|
|
25
25
|
if __name__ == '__main__':
|
|
26
26
|
# image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v12/黄埔数企"
|
|
27
|
-
image_dir = "/home/PKing/
|
|
27
|
+
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/第3批数据/aije-action-train-v21"
|
|
28
28
|
output = image_dir + "-train"
|
|
29
|
-
prefix =
|
|
29
|
+
prefix = "江门_更换熔丝"
|
|
30
30
|
# image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-cls2/手与表箱门有接触/手与表箱门无接触/南沙工匠"
|
|
31
31
|
# output = "/home/PKing/nasdata/dataset-dmai/AIJE/岗评项目数据/室内考题/南沙视频/室内/南沙基地视频3/南沙工匠"
|
|
32
32
|
# prefix = os.path.basename(output)
|
|
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
|