pybaseutils 2.4.1__tar.gz → 2.4.3__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.4.1 → pybaseutils-2.4.3}/PKG-INFO +1 -1
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/__init__.py +1 -1
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/video_utils.py +7 -3
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_labelme.py +15 -17
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/file_utils.py +16 -13
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/PKG-INFO +1 -1
- pybaseutils-2.4.3/test_py/demo4.py +19 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_lableme_vis.py +4 -4
- pybaseutils-2.4.1/test_py/demo4.py +0 -25
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/LICENCE +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/README.md +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/audio_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/pyaudio_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/audio/vad_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base/dict_queue.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base/list_queue.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/base64_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/batch_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/build_utils/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/build_utils/cython_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/kmean.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/maxmin_distance.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cluster/similarity.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/color_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/config_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_cvat.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/build_voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/concat_coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_coco2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_voc2yolo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_yolo2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/convert_yolo2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/converter/prelabelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/coords_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/corner_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/monitor.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/mouse_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/cvutils/nms_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/data_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/balanced_classes.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/base_coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/base_dataset.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/data_resample.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_coco_det.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_image_folder.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_image_text.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_labelme_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/parser_yolo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/dict_uils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/QueueTable.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/kalman_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/mean_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/motion_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/filter/pose_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/font_style/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/font_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/geometry_tools.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/heatmap_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/http_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/image_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/json_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/log.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/log_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/media/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/media/ffmpeg_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/accuracy.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/average_meter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/class_report.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/plot_pr.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/metrics/plot_roc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/numpy_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pandas_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/plot_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/bones_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/human_pose.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pose/pose_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pycpp/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pycpp/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/pycpp/main.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/server/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/server/apm_server.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/setup_config.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/singleton_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/text_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/thread_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/time_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracemalloc_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracemalloc_utils2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/QueueTable.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/kalman_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/mean_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/motion_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/tracking/pose_filter.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/affine_transform.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/augment_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/face_alignment.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/transforms/transform_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/app_gradio_image.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/app_stweb_image.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/app_webio_image.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/web/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/word_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/worker.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils/yaml_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/SOURCES.txt +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/dependency_links.txt +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/not-zip-safe +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/pybaseutils.egg-info/top_level.txt +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/setup.cfg +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/setup.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/Image_enhance/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/Image_enhance/dmeo01.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/WebCrawler/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/WebCrawler/search_baidu.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/WebCrawler/search_biying.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/action_dataset.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/build_cython.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/build_pyarmor.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/build_service.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/convert_labelme2coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/convert_labelme2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/copy_move.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_labelme_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_labelme_shock.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_video_aije.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_voc_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/demo_voc_vis.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/get_pair_data.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/aije/video_convertor.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/main.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/main_read.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/segment.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio/speechbrain_demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/audio_demo1.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/camera/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/camera/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/captcha/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/captcha/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/class_attribute.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/class_names.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/AffectNet.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/AsianMovie.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/BITVehicle2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/BSTLD2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/CCPD.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/CCPD2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/FL3D_dataset.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/FreiHAND2coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/MTFL2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/TT100K.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/WaterMeters1.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/WaterMeters2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/concat_coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_gesture2hand.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/fatigue_driving.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/fdd_dataset.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/get_pair_data.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/handpose2coco.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/insects_for_aichallenger.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/tt100k_utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/ua_detrac2voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/ucf101_dataset.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/converter/voc_sbd2labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/build_cython.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/build_pyarmor.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/cryptography_demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/fun_sum.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/main.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/model_des_enctypt.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/cython_build/model_enctypt.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/date_dataset.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/date_demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/datedataset_bk.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo1.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo3.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_async_await1.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_async_await2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_coco_vis.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_copy_files.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_copy_files_for_voc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_ffmpy.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_annular_to_rect.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_pair_file.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_polygon.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_for_trt.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_get_file_label.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_get_file_list.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_gif.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_gif_video.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_image_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_kpts.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_labelme_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_metrics.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_mosaic.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_mouse.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_nii.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_pandas.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_plot.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_prelabelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_rename.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_standard_image .py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_standard_video .py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_taichi.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_video.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_video_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_voc_crop.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_voc_vis.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_word_similar.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_worker1.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/demo_worker2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/detect_face_person.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/detector/predet_labelme.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/edit_distance/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/edit_distance/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/edit_distance/text_matching.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/app.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/utils/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/flask_demo/utils/utils.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/get_file_list.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/gradio_app.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/gradio_app_v2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/demo_correction_v1.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/demo_correction_v2.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/image_correction/demo_correction_v3.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/kafka_worker.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/men_tracemalloc.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/demo01.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/demo02.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/hello_milvus.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/milvus_demo/milvus_client.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/model_process.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/performance.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/pose/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/pose/human_pose.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/redis_py/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/redis_py/knn_search.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/redis_py/redis_client.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/base.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/component.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/main.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/registry/register.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/GRU.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/TCN.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/single_class/demo.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/slowfastnet.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/test_fr/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/test_fr/demo11.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/test_fr/idcardocr.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/__init__.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/asr_clients.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/asr_service.py +0 -0
- {pybaseutils-2.4.1 → pybaseutils-2.4.3}/test_py/web_socket/chat_service.py +0 -0
|
@@ -222,7 +222,8 @@ def video_capture(video_file: int or str, save_video: str or int = None, interva
|
|
|
222
222
|
title: 控制显示窗口名
|
|
223
223
|
:return:
|
|
224
224
|
"""
|
|
225
|
-
|
|
225
|
+
video_file = file_utils.str2number(video_file)
|
|
226
|
+
if isinstance(video_file, str): assert os.path.exists(video_file), f"video_file={video_file}"
|
|
226
227
|
video_cap = image_utils.get_video_capture(video_file)
|
|
227
228
|
w, h, num_frames, fps = image_utils.get_video_info(video_cap)
|
|
228
229
|
start = int(kwargs.get("start", 0) * fps)
|
|
@@ -279,7 +280,7 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
|
|
|
279
280
|
speed: 播放速度
|
|
280
281
|
:return: frame, count, w, h, fps =data_info['frame'],data_info['count'],data_info['w'],data_info['h'],data_info['fps']
|
|
281
282
|
"""
|
|
282
|
-
|
|
283
|
+
video_file = file_utils.str2number(video_file)
|
|
283
284
|
if isinstance(video_file, str): assert os.path.exists(video_file), f"video_file={video_file}"
|
|
284
285
|
video_cap = image_utils.get_video_capture(video_file, fps=None)
|
|
285
286
|
w, h, num_frames, fps = image_utils.get_video_info(video_cap)
|
|
@@ -292,6 +293,7 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
|
|
|
292
293
|
count = 0
|
|
293
294
|
video_writer = None
|
|
294
295
|
use_fast = kwargs.get("use_fast", False)
|
|
296
|
+
data_info = {}
|
|
295
297
|
while True:
|
|
296
298
|
ret, frame = (False, None) if use_fast else video_cap.read()
|
|
297
299
|
if count % interval == 0 and count >= start:
|
|
@@ -302,7 +304,8 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
|
|
|
302
304
|
if not ret or 0 < end < count or frame is None: break
|
|
303
305
|
if size: frame = image_utils.resize_image(frame, size=size)
|
|
304
306
|
if task: frame = task(frame, **kwargs)
|
|
305
|
-
|
|
307
|
+
t = round(count / fps, 3)
|
|
308
|
+
data_info = {"count": count, "time": t, "frame": frame, "w": w, "h": h, "fps": fps, "offset": count}
|
|
306
309
|
# TODO 返回data_info
|
|
307
310
|
yield data_info
|
|
308
311
|
frame = data_info["frame"]
|
|
@@ -316,6 +319,7 @@ def video_iterator(video_file: int or str, save_video: str or int = None, interv
|
|
|
316
319
|
if video_writer:
|
|
317
320
|
print("save video:{}".format(save_video))
|
|
318
321
|
video_writer.release()
|
|
322
|
+
# yield data_info # TODO FIX 最后一帧数据重复返回
|
|
319
323
|
|
|
320
324
|
|
|
321
325
|
def resize_task(frame, **kwargs):
|
|
@@ -14,8 +14,6 @@ import glob
|
|
|
14
14
|
import random
|
|
15
15
|
import numbers
|
|
16
16
|
import json
|
|
17
|
-
|
|
18
|
-
from shapely.predicates import is_valid
|
|
19
17
|
from tqdm import tqdm
|
|
20
18
|
from pybaseutils import image_utils, file_utils, json_utils, text_utils
|
|
21
19
|
from pybaseutils.dataloader.base_dataset import Dataset, ConcatDataset
|
|
@@ -152,7 +150,8 @@ class LabelMeDataset(Dataset):
|
|
|
152
150
|
if not os.path.exists(image_file):
|
|
153
151
|
continue
|
|
154
152
|
annotation, width, height = self.load_annotations(anno_file)
|
|
155
|
-
data_info = self.parser_annotation(annotation, self.total_names,
|
|
153
|
+
data_info = self.parser_annotation(annotation, self.total_names, size=(width, height),
|
|
154
|
+
min_points=self.min_points,
|
|
156
155
|
unique=self.unique)
|
|
157
156
|
if self.use_kpt:
|
|
158
157
|
data_info = self.get_kpts_info(data_info, anno_file=anno_file, check_kpt=self.check_kpt, disp=True)
|
|
@@ -210,12 +209,12 @@ class LabelMeDataset(Dataset):
|
|
|
210
209
|
annotation, width, height = self.load_annotations(anno_file)
|
|
211
210
|
if self.kwargs.get("read_image", True): # 是否读取图片
|
|
212
211
|
image = self.read_image(image_file, use_rgb=self.use_rgb)
|
|
213
|
-
|
|
214
|
-
size = (
|
|
212
|
+
height, width = image.shape[:2]
|
|
213
|
+
size = (width, height)
|
|
215
214
|
else:
|
|
216
|
-
image,
|
|
217
|
-
data_info = self.parser_annotation(annotation, self.total_names,
|
|
218
|
-
|
|
215
|
+
image, size = None, (width, height)
|
|
216
|
+
data_info = self.parser_annotation(annotation, self.total_names, size=size, min_points=self.min_points,
|
|
217
|
+
unique=self.unique)
|
|
219
218
|
if self.use_kpt:
|
|
220
219
|
data_info = self.get_kpts_info(data_info, anno_file=anno_file, check_kpt=self.check_kpt)
|
|
221
220
|
# TODO dict(boxes, labels, points, groups, names, keypoints)
|
|
@@ -319,11 +318,11 @@ class LabelMeDataset(Dataset):
|
|
|
319
318
|
return image
|
|
320
319
|
|
|
321
320
|
@staticmethod
|
|
322
|
-
def parser_annotation(annotation: dict, class_dict={},
|
|
321
|
+
def parser_annotation(annotation: dict, class_dict={}, size=(), min_points=-1, unique=False):
|
|
323
322
|
"""
|
|
324
323
|
:param annotation: labelme标注的数据
|
|
325
324
|
:param class_dict: label映射,如{"person":0,"car":1}
|
|
326
|
-
:param
|
|
325
|
+
:param size: 图片(W,H),可进行坐标点的维度检查,避免越界
|
|
327
326
|
:param min_points: 当标注的轮廓点的个数小于等于min_points,会被剔除;负数不剔除
|
|
328
327
|
:return:
|
|
329
328
|
"""
|
|
@@ -344,10 +343,9 @@ class LabelMeDataset(Dataset):
|
|
|
344
343
|
continue
|
|
345
344
|
gid = anno.get("group_id", gid_index) or gid_index
|
|
346
345
|
kpt = anno.get("keypoints", [])
|
|
347
|
-
if
|
|
348
|
-
|
|
349
|
-
pts[:,
|
|
350
|
-
pts[:, 1] = np.clip(pts[:, 1], 0, h - 1)
|
|
346
|
+
if size:
|
|
347
|
+
pts[:, 0] = np.clip(pts[:, 0], 0, size[0] - 1)
|
|
348
|
+
pts[:, 1] = np.clip(pts[:, 1], 0, size[1] - 1)
|
|
351
349
|
box = image_utils.polygons2boxes([pts])[0]
|
|
352
350
|
if shape_type == "rectangle":
|
|
353
351
|
pts = image_utils.boxes2polygons([box])[0]
|
|
@@ -533,15 +531,15 @@ def LabelMeDatasets(filename=None,
|
|
|
533
531
|
return datasets
|
|
534
532
|
|
|
535
533
|
|
|
536
|
-
def parser_labelme(anno_file, class_dict={},
|
|
534
|
+
def parser_labelme(anno_file, class_dict={}, size=()):
|
|
537
535
|
"""
|
|
538
536
|
:param annotation: labelme标注的数据
|
|
539
537
|
:param class_dict: label映射
|
|
540
|
-
:param
|
|
538
|
+
:param size: 图片shape(W,H),可进行坐标点的维度检查,避免越界
|
|
541
539
|
:return:
|
|
542
540
|
"""
|
|
543
541
|
annotation, width, height = LabelMeDataset.load_annotations(anno_file)
|
|
544
|
-
data_info = LabelMeDataset.parser_annotation(annotation, class_dict,
|
|
542
|
+
data_info = LabelMeDataset.parser_annotation(annotation, class_dict, size=size)
|
|
545
543
|
return data_info
|
|
546
544
|
|
|
547
545
|
|
|
@@ -38,6 +38,7 @@ def check_postfix(file, postfix=IMG_POSTFIX):
|
|
|
38
38
|
:param postfix:
|
|
39
39
|
:return:
|
|
40
40
|
"""
|
|
41
|
+
if not isinstance(file, str): return False
|
|
41
42
|
return any(file.endswith(p[1:]) for p in postfix)
|
|
42
43
|
|
|
43
44
|
|
|
@@ -72,7 +73,7 @@ def get_time(format="p"):
|
|
|
72
73
|
"""
|
|
73
74
|
if format.lower() == "s": # 精确到秒
|
|
74
75
|
# time = datetime.strftime(datetime.now(), '%Y%m%d%H%M%S')
|
|
75
|
-
time = datetime.now().strftime("%Y%m%d%H%M%S")
|
|
76
|
+
time = datetime.now().strftime("%Y%m%d%H%M%S") # 20200508143059
|
|
76
77
|
elif format.lower() == "p": # 精确到微妙
|
|
77
78
|
# time = datetime.strftime(datetime.now(), '%Y%m%d_%H%M%S_%f') # 20200508_143059_379116
|
|
78
79
|
time = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
|
|
@@ -80,6 +81,9 @@ def get_time(format="p"):
|
|
|
80
81
|
elif format.lower() == "y": # 2025-06-18 11:02:05
|
|
81
82
|
# time = datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S") #
|
|
82
83
|
time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
|
84
|
+
elif format.lower() == "id": #
|
|
85
|
+
# time = datetime.strftime(datetime.now(), '%Y%m%d_%H%M%S_%f') # 20200508-14-30-59-379116
|
|
86
|
+
time = datetime.now().strftime("%Y%m%d-%H-%M-%S-%f")
|
|
83
87
|
else:
|
|
84
88
|
time = (str(datetime.now())[:-10]).replace(' ', '-').replace(':', '-')
|
|
85
89
|
return time
|
|
@@ -302,15 +306,17 @@ class WriterTXT(object):
|
|
|
302
306
|
self.f.close()
|
|
303
307
|
|
|
304
308
|
|
|
305
|
-
def write_file(file, data, mode='
|
|
306
|
-
"""
|
|
309
|
+
def write_file(file, data, mode='w'):
|
|
310
|
+
"""写数据"""
|
|
307
311
|
with open(file, mode) as f: f.write(data)
|
|
308
312
|
|
|
309
313
|
|
|
310
|
-
def read_file(file, mode='
|
|
311
|
-
"""
|
|
312
|
-
with open(file, mode) as f:
|
|
313
|
-
|
|
314
|
+
def read_file(file, mode='r'):
|
|
315
|
+
"""读取数据"""
|
|
316
|
+
with open(file, mode) as f: data = f.read()
|
|
317
|
+
if mode == 'r':
|
|
318
|
+
data = data.strip().strip('\ufeff').strip('\xef\xbb\xbf')
|
|
319
|
+
return data
|
|
314
320
|
|
|
315
321
|
|
|
316
322
|
def write_data(file, data, split=",", mode='w'):
|
|
@@ -348,13 +354,11 @@ def read_data(filename, split=",", convertNum=True):
|
|
|
348
354
|
with open(filename, mode="r", encoding='utf-8') as f:
|
|
349
355
|
lines = f.readlines()
|
|
350
356
|
lines = [line.strip().strip('\ufeff').strip('\xef\xbb\xbf') for line in lines]
|
|
351
|
-
if split
|
|
352
|
-
return lines
|
|
353
|
-
else:
|
|
357
|
+
if split:
|
|
354
358
|
lines = [line.split(split) for line in lines]
|
|
355
359
|
if convertNum:
|
|
356
360
|
for i, line in enumerate(lines):
|
|
357
|
-
line = [str2number(l) for l in line]
|
|
361
|
+
line = [str2number(l) for l in line] if isinstance(line, list) else str2number(line)
|
|
358
362
|
lines[i] = line
|
|
359
363
|
return lines
|
|
360
364
|
|
|
@@ -362,7 +366,7 @@ def read_data(filename, split=",", convertNum=True):
|
|
|
362
366
|
def str2number(x):
|
|
363
367
|
"""
|
|
364
368
|
:param x:
|
|
365
|
-
:return:
|
|
369
|
+
:return: 数值类型(int, float)或原始字符串
|
|
366
370
|
"""
|
|
367
371
|
# 如果已经是数值类型,直接处理
|
|
368
372
|
if isinstance(x, (int, float)):
|
|
@@ -1561,4 +1565,3 @@ if __name__ == '__main__':
|
|
|
1561
1565
|
|
|
1562
1566
|
path = '/tmp/gradio/b988f43f2c87669461bbb6c831c5b3801017bc02cf6076c57ad1f4d581f76b35/image01.j'
|
|
1563
1567
|
print(is_image(path))
|
|
1564
|
-
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
# --------------------------------------------------------
|
|
4
|
+
# @Author : Pan
|
|
5
|
+
# @E-mail :
|
|
6
|
+
# @Date : 2025-07-08 14:10:15
|
|
7
|
+
# @Brief : 转换labelme标注数据为voc格式
|
|
8
|
+
# --------------------------------------------------------
|
|
9
|
+
"""
|
|
10
|
+
import os
|
|
11
|
+
import numpy as np
|
|
12
|
+
import cv2
|
|
13
|
+
from pybaseutils.converter import convert_labelme2voc
|
|
14
|
+
from pybaseutils import time_utils, image_utils, file_utils
|
|
15
|
+
|
|
16
|
+
if __name__ == "__main__":
|
|
17
|
+
image_dir = "/home/PKing/Downloads/image/摄像头ID.txt"
|
|
18
|
+
lines = file_utils.read_file(image_dir)
|
|
19
|
+
print(lines)
|
|
@@ -37,16 +37,16 @@ if __name__ == "__main__":
|
|
|
37
37
|
names = None
|
|
38
38
|
# names = ['person,身穿工作服,未穿工作服']
|
|
39
39
|
# names = ['身穿工作服,未穿工作服', '手,手穿绝缘手套,手穿棉纱手套,手穿其他手套']
|
|
40
|
-
anno_dir = ["/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/
|
|
40
|
+
anno_dir = ["/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det/23-更换绝缘子/dataset-v14-special/bugs/images"]
|
|
41
41
|
|
|
42
|
-
anno_dir = ["/media/PKing/新加卷/project/smart-dinner/dataset/smart-dinner-01/images"]
|
|
43
|
-
names = [ '人体', '转盘' ]
|
|
42
|
+
# anno_dir = ["/media/PKing/新加卷/project/smart-dinner/dataset/smart-dinner-01/images"]
|
|
43
|
+
# names = [ '人体', '转盘' ]
|
|
44
44
|
dataset = parser_labelme.LabelMeDatasets(filename=None,
|
|
45
45
|
data_root=None,
|
|
46
46
|
anno_dir=anno_dir,
|
|
47
47
|
image_dir=None,
|
|
48
48
|
class_name=names,
|
|
49
|
-
check=
|
|
49
|
+
check=True ,
|
|
50
50
|
phase="val",
|
|
51
51
|
shuffle=False)
|
|
52
52
|
class_name = dataset.class_name
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
# --------------------------------------------------------
|
|
4
|
-
# @Author : Pan
|
|
5
|
-
# @E-mail :
|
|
6
|
-
# @Date : 2025-07-08 14:10:15
|
|
7
|
-
# @Brief : 转换labelme标注数据为voc格式
|
|
8
|
-
# --------------------------------------------------------
|
|
9
|
-
"""
|
|
10
|
-
import os
|
|
11
|
-
import numpy as np
|
|
12
|
-
import cv2
|
|
13
|
-
from pybaseutils.converter import convert_labelme2voc
|
|
14
|
-
from pybaseutils import time_utils, image_utils,file_utils
|
|
15
|
-
|
|
16
|
-
if __name__ == "__main__":
|
|
17
|
-
image_dir = "/home/PKing/Downloads/image"
|
|
18
|
-
image_list = file_utils.get_images_list(image_dir)
|
|
19
|
-
for image_file in image_list:
|
|
20
|
-
src = image_utils.read_image(image_file, use_rgb=True)
|
|
21
|
-
image_utils.show_image("src", src, delay=10)
|
|
22
|
-
src = cv2.cvtColor(src, cv2.COLOR_BGR2RGB) # 将BGR转为RGB
|
|
23
|
-
bs6 = image_utils.image2base64(src, use_rgb=True)
|
|
24
|
-
out = image_utils.base642image(bs6, use_rgb=True)
|
|
25
|
-
image_utils.show_image("out", out)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|