pybaseutils 2.0.5__tar.gz → 2.0.6__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.5 → pybaseutils-2.0.6}/PKG-INFO +1 -1
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/__init__.py +1 -1
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_cvat2labelme.py +9 -4
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_labelme.py +7 -4
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/image_utils.py +1 -1
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/plot_roc.py +8 -7
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/PKG-INFO +1 -1
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/SOURCES.txt +2 -0
- pybaseutils-2.0.6/test_py/aije/convert_cvat2labelme.py +21 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_labelme_crop.py +3 -2
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_cvat2labelme.py +5 -4
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/get_pair_data.py +4 -5
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo1.py +7 -6
- pybaseutils-2.0.6/test_py/demo_kpts.py +68 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_lableme_vis.py +12 -3
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/LICENCE +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/README.md +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/audio_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/pyaudio_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/audio/vad_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/base64_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/batch_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/build_utils/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/build_utils/cython_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/build_utils/pyarmor_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/kmean.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/maxmin_distance.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cluster/similarity.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/color_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/config_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_cvat.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/build_voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/concat_coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_coco2labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_voc2yolo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/converter/convert_yolo2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/coords_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/corner_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/monitor.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/mouse_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/cvutils/video_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/base_coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/base_dataset.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_coco_det.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/parser_yolo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/file_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/QueueTable.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/kalman_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/mean_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/motion_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/filter/pose_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/font_style/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/font_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/geometry_tools.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/heatmap_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/json_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/log.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/logger.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/accuracy.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/average_meter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/class_report.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/metrics/plot_pr.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/numpy_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pandas_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/plot_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/bones_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/human_pose.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pose/pose_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pycpp/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pycpp/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/pycpp/main.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/server/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/server/apm_server.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/setup_config.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/singleton_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/thread_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/time_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracemalloc_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracemalloc_utils2.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/QueueTable.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/kalman_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/mean_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/motion_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/tracking/pose_filter.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/affine_transform.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/augment_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/face_alignment.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/transforms/transform_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/word_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/worker.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils/yaml_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/dependency_links.txt +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/not-zip-safe +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/pybaseutils.egg-info/top_level.txt +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/setup.cfg +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/setup.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/WebCrawler/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/WebCrawler/search_image.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/WebCrawler/search_image_for_baidu.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/action_dataset.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/build_cython.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/build_pyarmor.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/build_service.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/convert_labelme2coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/convert_labelme2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/copy_move.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_video_aije.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_voc_crop.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/demo_voc_vis.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/aije/video_convertor.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/main.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/main_read.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/segment.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/audio/speechbrain_demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/captcha/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/captcha/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/class_attribute.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/class_names.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/AffectNet.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/AsianMovie.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/BITVehicle2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/BSTLD2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/CCPD.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/CCPD2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/FL3D_dataset.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/FreiHAND2coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/MTFL2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/TT100K.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/WaterMeters1.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/WaterMeters2.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/concat_coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_gesture2hand.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/convert_voc2labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/fatigue_driving.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/fdd_dataset.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/handpose2coco.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/insects_for_aichallenger.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/tt100k_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/ua_detrac2voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/ucf101_dataset.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/converter/voc_sbd2labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/build_cython.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/build_pyarmor.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/cryptography_demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/fun_sum.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/main.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/model_des_enctypt.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/cython_build/model_enctypt.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo2.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo3.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_async_await1.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_async_await2.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_coco_vis.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_copy_files.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_copy_files_for_voc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_ffmpy.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_for_pair_file.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_for_polygon.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_for_trt.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_get_file_list.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_gif.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_gif_video.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_image_crop.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_labelme_crop.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_metrics.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_mouse.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_nii.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_pandas.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_plot.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_rename.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_standard_image .py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_standard_video .py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_taichi.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_video.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_voc_crop.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_voc_vis.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_word_similar.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_worker1.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/demo_worker2.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/detect_face_person.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/detector/predet_labelme.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/demo.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/text_matching.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/edit_distance/text_utils.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/flask_demo/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/flask_demo/func.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/flask_demo/server.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/demo_correction_v1.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/demo_correction_v2.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/image_correction/demo_correction_v3.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/kafka_worker.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/men_tracemalloc.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/performance.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/pose/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/pose/human_pose.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/base.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/component.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/main.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/registry/register.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/test_fr/__init__.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/test_fr/demo11.py +0 -0
- {pybaseutils-2.0.5 → pybaseutils-2.0.6}/test_py/test_fr/idcardocr.py +0 -0
|
@@ -43,6 +43,7 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
|
|
|
43
43
|
将CVAT标注格式(LabelMe 3.0)转换labelme通用格式
|
|
44
44
|
:param anno_dir: 标注文件目录,默认输出json文件与anno_dir同目录
|
|
45
45
|
:param image_dir: 图片文件目录
|
|
46
|
+
:param out_dir: 输出labelme *.json文件目录
|
|
46
47
|
:param vis:
|
|
47
48
|
:return:
|
|
48
49
|
"""
|
|
@@ -50,6 +51,8 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
|
|
|
50
51
|
xml_list = file_utils.get_files_lists(anno_dir, postfix=["*.xml"])
|
|
51
52
|
for xml_file in tqdm(xml_list):
|
|
52
53
|
image_name, annos, w, h = parser_annotations(xml_file)
|
|
54
|
+
image_id = os.path.basename(xml_file).split(".")[0]
|
|
55
|
+
image_name = "{}.{}".format(image_id, image_name.split(".")[1])
|
|
53
56
|
points = [an['points'] for an in annos if len(an['points']) > 0]
|
|
54
57
|
labels = [an['label'] for an in annos if an['label']]
|
|
55
58
|
if len(points) == 0 or len(labels) == 0:
|
|
@@ -57,10 +60,10 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
|
|
|
57
60
|
continue
|
|
58
61
|
if image_dir or vis:
|
|
59
62
|
image_file = os.path.join(image_dir, image_name)
|
|
60
|
-
print(image_file, "labels:{}".format(labels))
|
|
61
63
|
image = cv2.imread(image_file)
|
|
62
64
|
h, w = image.shape[:2]
|
|
63
65
|
if vis:
|
|
66
|
+
print(image_file, "labels:{}".format(labels))
|
|
64
67
|
image = image_utils.draw_image_contours(image, points, texts=labels, thickness=thickness,
|
|
65
68
|
fontScale=fontScale)
|
|
66
69
|
image_utils.cv_show_image("det", image)
|
|
@@ -70,6 +73,8 @@ def convert_cvat2labelme(anno_dir, image_dir="", out_dir="", thickness=1, fontSc
|
|
|
70
73
|
|
|
71
74
|
|
|
72
75
|
if __name__ == "__main__":
|
|
73
|
-
image_dir = "/home/PKing/
|
|
74
|
-
anno_dir = image_dir
|
|
75
|
-
|
|
76
|
+
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v02/JPEGImages"
|
|
77
|
+
anno_dir = os.path.join(os.path.dirname(image_dir), "xml")
|
|
78
|
+
json_dir = os.path.join(os.path.dirname(image_dir), "json")
|
|
79
|
+
convert_cvat2labelme.convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, out_dir=json_dir,
|
|
80
|
+
thickness=1, fontScale=2.0, vis=True)
|
|
@@ -107,8 +107,7 @@ class LabelMeDataset(Dataset):
|
|
|
107
107
|
"""
|
|
108
108
|
print("Please wait, it's in checking")
|
|
109
109
|
dst_ids = []
|
|
110
|
-
|
|
111
|
-
# image_ids = image_ids[100:]
|
|
110
|
+
class_name = []
|
|
112
111
|
for image_id in tqdm(image_ids):
|
|
113
112
|
image_file, anno_file, image_id = self.get_image_anno_file(image_id)
|
|
114
113
|
if not os.path.exists(anno_file):
|
|
@@ -122,6 +121,10 @@ class LabelMeDataset(Dataset):
|
|
|
122
121
|
if len(label) == 0:
|
|
123
122
|
continue
|
|
124
123
|
dst_ids.append(image_id)
|
|
124
|
+
class_name += label
|
|
125
|
+
if self.class_name is None:
|
|
126
|
+
class_name = sorted(list(set(class_name)))
|
|
127
|
+
self.class_name, self.class_dict = self.parser_classes(class_name)
|
|
125
128
|
print("have nums image:{},legal image:{}".format(len(image_ids), len(dst_ids)))
|
|
126
129
|
return dst_ids
|
|
127
130
|
|
|
@@ -381,12 +384,12 @@ def parser_labelme(anno_file, class_dict={}, shape=None):
|
|
|
381
384
|
return bboxes, labels, points, groups
|
|
382
385
|
|
|
383
386
|
|
|
384
|
-
def show_target_image(image, bboxes, labels, points, color=()):
|
|
387
|
+
def show_target_image(image, bboxes, labels, points, color=(), thickness=1):
|
|
385
388
|
# image = image_utils.draw_image_bboxes_text(image, bboxes, labels, color=(255, 0, 0),
|
|
386
389
|
# thickness=2, fontScale=1.2, drawType="chinese")
|
|
387
390
|
# image = image_utils.draw_landmark(image, points, color=(0, 255, 0))
|
|
388
391
|
# image = image_utils.draw_key_point_in_image(image, points)
|
|
389
|
-
image = image_utils.draw_image_contours(image, points, labels, color=color, thickness=
|
|
392
|
+
image = image_utils.draw_image_contours(image, points, labels, color=color, thickness=thickness)
|
|
390
393
|
image_utils.cv_show_image("det", image)
|
|
391
394
|
|
|
392
395
|
|
|
@@ -2452,7 +2452,7 @@ def draw_image_contours(image, contours: List[np.ndarray], texts=[], color=(), a
|
|
|
2452
2452
|
"""
|
|
2453
2453
|
for i in range(0, len(contours)):
|
|
2454
2454
|
c = color if color else color_table[i + 1]
|
|
2455
|
-
t = texts[i] if texts else ""
|
|
2455
|
+
t = str(texts[i]) if texts else ""
|
|
2456
2456
|
p = np.asarray(contours[i], dtype=np.int32)
|
|
2457
2457
|
b = (min(p[:, 0]), min(p[:, 1]), max(p[:, 0]), max(p[:, 1]))
|
|
2458
2458
|
if len(p.shape) == 2: p = [p]
|
|
@@ -155,29 +155,30 @@ def get_best_accuracy(true_labels, pred_scores, threshold=(0, 1.0, 0.05), vis=Fa
|
|
|
155
155
|
if vis:
|
|
156
156
|
print("best threshold :{}".format(best_th))
|
|
157
157
|
print("best Accuracy :{}".format(best_acc))
|
|
158
|
-
plt_curve(
|
|
158
|
+
plt_curve(x=threshold, y=acc_list, xlabel="threshold", ylabel="Accuracy",
|
|
159
|
+
line=f"Acc={best_acc:1.3f}", title="", grid=True)
|
|
159
160
|
return best_acc, best_th
|
|
160
161
|
|
|
161
162
|
|
|
162
|
-
def plt_curve(
|
|
163
|
+
def plt_curve(x, y, line="", xlabel="", ylabel="", title="", grid=True):
|
|
163
164
|
"""
|
|
164
165
|
绘制PR-threshold曲线
|
|
165
|
-
:param
|
|
166
|
+
:param x: Precision
|
|
166
167
|
:param recall: Recall
|
|
167
|
-
:param
|
|
168
|
+
:param y
|
|
168
169
|
:param title:曲线名称
|
|
169
170
|
:return:
|
|
170
171
|
"""
|
|
171
172
|
lw = 2
|
|
172
173
|
plt.figure(figsize=(10, 10))
|
|
173
174
|
colors = ["b", "r", "c", "m", "g", "y", "k", "w"]
|
|
174
|
-
plt.plot(
|
|
175
|
+
plt.plot(x, y, color=colors[0], lw=lw, label=line)
|
|
175
176
|
plt.xlim([0.0, 1.05])
|
|
176
177
|
plt.ylim([0.0, 1.05])
|
|
177
178
|
# 设置横纵坐标的名称以及对应字体格式
|
|
178
179
|
font = {'weight': 'normal', 'size': 20}
|
|
179
|
-
plt.xlabel(
|
|
180
|
-
plt.ylabel(
|
|
180
|
+
plt.xlabel(xlabel, font)
|
|
181
|
+
plt.ylabel(ylabel, font)
|
|
181
182
|
plt.title(title, font)
|
|
182
183
|
plt.legend(loc="lower right") # "upper right"
|
|
183
184
|
# plt.legend(loc="upper right")#"upper right"
|
|
@@ -130,6 +130,7 @@ test_py/demo_get_file_list.py
|
|
|
130
130
|
test_py/demo_gif.py
|
|
131
131
|
test_py/demo_gif_video.py
|
|
132
132
|
test_py/demo_image_crop.py
|
|
133
|
+
test_py/demo_kpts.py
|
|
133
134
|
test_py/demo_labelme.py
|
|
134
135
|
test_py/demo_labelme_crop.py
|
|
135
136
|
test_py/demo_lableme_vis.py
|
|
@@ -159,6 +160,7 @@ test_py/aije/action_dataset.py
|
|
|
159
160
|
test_py/aije/build_cython.py
|
|
160
161
|
test_py/aije/build_pyarmor.py
|
|
161
162
|
test_py/aije/build_service.py
|
|
163
|
+
test_py/aije/convert_cvat2labelme.py
|
|
162
164
|
test_py/aije/convert_labelme2coco.py
|
|
163
165
|
test_py/aije/convert_labelme2voc.py
|
|
164
166
|
test_py/aije/copy_move.py
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# -*-coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
@Author : Pan
|
|
4
|
+
@E-mail : 390737991@qq.com
|
|
5
|
+
@Date : 2022-10-12 16:21:55
|
|
6
|
+
@Brief :
|
|
7
|
+
"""
|
|
8
|
+
import os
|
|
9
|
+
import numpy as np
|
|
10
|
+
import cv2
|
|
11
|
+
from tqdm import tqdm
|
|
12
|
+
from pybaseutils.dataloader import parser_voc
|
|
13
|
+
from pybaseutils.converter import build_voc, build_labelme, convert_cvat2labelme
|
|
14
|
+
from pybaseutils import file_utils, image_utils, json_utils
|
|
15
|
+
|
|
16
|
+
if __name__ == "__main__":
|
|
17
|
+
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v01/JPEGImages"
|
|
18
|
+
anno_dir = os.path.join(os.path.dirname(image_dir), "xml")
|
|
19
|
+
json_dir = os.path.join(os.path.dirname(image_dir), "json")
|
|
20
|
+
convert_cvat2labelme.convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, out_dir=json_dir,
|
|
21
|
+
thickness=1, fontScale=2.0, vis=False)
|
|
@@ -67,10 +67,11 @@ if __name__ == "__main__":
|
|
|
67
67
|
# anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v9/json"
|
|
68
68
|
anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v0/json"
|
|
69
69
|
anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det-fix/dataset-v12/json"
|
|
70
|
+
anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-det/aije-action-train-v20/json"
|
|
70
71
|
# anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-v10/json"
|
|
71
72
|
# anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-person-coco/json"
|
|
72
|
-
class_name = ['手', '绝缘手套', '手穿绝缘手套', '棉纱手套', '手穿棉纱手套']
|
|
73
|
-
|
|
73
|
+
# class_name = ['手', '绝缘手套', '手穿绝缘手套', '棉纱手套', '手穿棉纱手套']
|
|
74
|
+
class_name = None # 室内
|
|
74
75
|
out_dir = os.path.join(os.path.dirname(anno_dir), "crops")
|
|
75
76
|
dataset = parser_labelme.LabelMeDatasets(filename=None,
|
|
76
77
|
data_root=None,
|
|
@@ -14,7 +14,8 @@ from pybaseutils.converter import build_voc, build_labelme, convert_cvat2labelme
|
|
|
14
14
|
from pybaseutils import file_utils, image_utils, json_utils
|
|
15
15
|
|
|
16
16
|
if __name__ == "__main__":
|
|
17
|
-
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-
|
|
18
|
-
anno_dir = "
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v02/JPEGImages"
|
|
18
|
+
anno_dir = os.path.join(os.path.dirname(image_dir), "xml")
|
|
19
|
+
json_dir = os.path.join(os.path.dirname(image_dir), "json")
|
|
20
|
+
convert_cvat2labelme.convert_cvat2labelme(image_dir=image_dir, anno_dir=anno_dir, out_dir=json_dir,
|
|
21
|
+
thickness=1, fontScale=2.0, vis=True)
|
|
@@ -13,6 +13,7 @@ from pybaseutils import file_utils, image_utils
|
|
|
13
13
|
|
|
14
14
|
def get_combinations_pair_data(image_dir, pair_num=0):
|
|
15
15
|
"""
|
|
16
|
+
获得图片对数据
|
|
16
17
|
:param image_dir:
|
|
17
18
|
:param pair_num:
|
|
18
19
|
:return:
|
|
@@ -45,14 +46,12 @@ def get_combinations_pair_data(image_dir, pair_num=0):
|
|
|
45
46
|
pair0 = pair0[index_0, :] # 获取打乱后的训练数据
|
|
46
47
|
pair1 = pair1[index_1, :] # 获取打乱后的训练数据
|
|
47
48
|
pairs = np.concatenate([pair0, pair1], axis=0).tolist()
|
|
48
|
-
print("pair0 nums:{}".format(len(pair0)))
|
|
49
|
-
print("pair1 nums:{}".format(len(pair1)))
|
|
50
|
-
print("have {} pairs".format(len(pairs)))
|
|
49
|
+
print("have {} pairs,pair0 nums:{},pair1 nums:{}".format(len(pairs), len(pair0), len(pair1)))
|
|
51
50
|
return pairs
|
|
52
51
|
|
|
53
52
|
|
|
54
53
|
if __name__ == '__main__':
|
|
55
|
-
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm/test/images"
|
|
56
|
-
pairs_file = os.path.join(image_dir,"pairs.txt")
|
|
54
|
+
image_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm/test-v2/images"
|
|
55
|
+
pairs_file = os.path.join(image_dir, "pairs.txt")
|
|
57
56
|
pairs = get_combinations_pair_data(image_dir, pair_num=10000)
|
|
58
57
|
file_utils.write_data(pairs_file, pairs)
|
|
@@ -9,6 +9,7 @@ import os
|
|
|
9
9
|
import cv2
|
|
10
10
|
import numpy as np
|
|
11
11
|
import random
|
|
12
|
+
import json
|
|
12
13
|
from typing import Dict
|
|
13
14
|
from tqdm import tqdm
|
|
14
15
|
from pybaseutils import image_utils, file_utils, json_utils, base64_utils, time_utils
|
|
@@ -41,14 +42,14 @@ class Promote():
|
|
|
41
42
|
return len(self.promote)
|
|
42
43
|
|
|
43
44
|
def __getitem__(self, index):
|
|
44
|
-
data: str = self.promote[random.randint(0, len(self.promote)-1)]
|
|
45
|
+
data: str = self.promote[random.randint(0, len(self.promote) - 1)]
|
|
45
46
|
data = data.format("ddd")
|
|
46
47
|
return data
|
|
47
48
|
|
|
48
49
|
|
|
49
50
|
if __name__ == '__main__':
|
|
50
|
-
file = "/home/PKing/nasdata/
|
|
51
|
-
|
|
52
|
-
for
|
|
53
|
-
data =
|
|
54
|
-
|
|
51
|
+
file = "/home/PKing/nasdata/tmp/tmp/Natural/图片描述.json"
|
|
52
|
+
data = json_utils.read_json_data(file)
|
|
53
|
+
for i in range(len(data)):
|
|
54
|
+
data[i]["result"] = json.loads(data[i]["result"])
|
|
55
|
+
print(data)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# -*-coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
@Author : PKing
|
|
4
|
+
@E-mail :
|
|
5
|
+
@Date : 2024-09-02 16:31:38
|
|
6
|
+
@Brief :
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import cv2
|
|
10
|
+
import numbers
|
|
11
|
+
import numpy as np
|
|
12
|
+
from pybaseutils import image_utils, file_utils
|
|
13
|
+
|
|
14
|
+
# skeleton连接线,keypoint关键点名称,num_joints关键点个数
|
|
15
|
+
BONES = {
|
|
16
|
+
"coco_person": {
|
|
17
|
+
"skeleton": [[15, 13], [13, 11], [16, 14], [14, 12], [11, 12], [5, 11], [6, 12], [5, 6], [5, 7],
|
|
18
|
+
[6, 8], [7, 9], [8, 10], [1, 2], [0, 1], [0, 2], [1, 3], [2, 4], [3, 5], [4, 6]],
|
|
19
|
+
"keypoint": [],
|
|
20
|
+
"num_joints": 17,
|
|
21
|
+
},
|
|
22
|
+
"hand": {
|
|
23
|
+
"skeleton": [[0, 1], [1, 2], [2, 3], [3, 4], [0, 5], [5, 6], [6, 7], [7, 8],
|
|
24
|
+
[5, 9], [9, 10], [10, 11], [11, 12], [9, 13], [13, 14], [14, 15], [15, 16],
|
|
25
|
+
[13, 17], [17, 18], [18, 19], [19, 20], [0, 17]],
|
|
26
|
+
"keypoint": [],
|
|
27
|
+
"num_joints": 21,
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def example():
|
|
33
|
+
kpts = [[405.20834, 71.875, 0.9536487],
|
|
34
|
+
[415.625, 61.458332, 0.96337986],
|
|
35
|
+
[384.375, 61.458332, 0.9244619],
|
|
36
|
+
[436.45834, 61.458332, 0.99999976],
|
|
37
|
+
[363.54166, 71.875, 0.98517716],
|
|
38
|
+
[488.54166, 165.625, 0.9580497],
|
|
39
|
+
[321.875, 165.625, 0.87711847],
|
|
40
|
+
[551.0417, 248.95833, 0.88645184],
|
|
41
|
+
[248.95833, 259.375, 0.8369312],
|
|
42
|
+
[561.4583, 342.70834, 0.8438214],
|
|
43
|
+
[238.54167, 342.70834, 0.8260272],
|
|
44
|
+
[457.29166, 394.79166, 0.8504467],
|
|
45
|
+
[363.54166, 394.79166, 0.85016763],
|
|
46
|
+
[467.70834, 571.875, 0.9571377],
|
|
47
|
+
[363.54166, 561.4583, 0.929651],
|
|
48
|
+
[467.70834, 738.5417, 0.9448692],
|
|
49
|
+
[363.54166, 738.5417, 0.9097275]]
|
|
50
|
+
kpts = np.asarray(kpts)
|
|
51
|
+
conf = kpts[:, 2]
|
|
52
|
+
kpt = kpts[:, 0:2]
|
|
53
|
+
box = [0, 0, 800, 800]
|
|
54
|
+
image_file = "pose.jpg"
|
|
55
|
+
image = cv2.imread(image_file)
|
|
56
|
+
image = np.zeros_like(image)+255
|
|
57
|
+
skeleton = BONES["coco_person"]["skeleton"]
|
|
58
|
+
image = image_utils.draw_key_point_in_image(image,
|
|
59
|
+
key_points=[kpt],
|
|
60
|
+
pointline=skeleton,
|
|
61
|
+
boxes=[box],
|
|
62
|
+
thickness=2,
|
|
63
|
+
vis_id=True)
|
|
64
|
+
image_utils.cv_show_image("image", image)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
if __name__ == "__main__":
|
|
68
|
+
example()
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
@Brief :
|
|
7
7
|
"""
|
|
8
8
|
import os
|
|
9
|
+
from pybaseutils import file_utils
|
|
9
10
|
from pybaseutils.dataloader import parser_labelme
|
|
10
11
|
from pybaseutils.converter import build_labelme
|
|
11
12
|
|
|
@@ -20,22 +21,30 @@ if __name__ == "__main__":
|
|
|
20
21
|
# anno_dir = "/home/PKing/nasdata/tmp/tmp/WaterMeter/水表数据集/Water-Meter-Det3/train/json"
|
|
21
22
|
# names = ["BG", "unique"]
|
|
22
23
|
anno_dir = "/home/PKing/nasdata/tmp/tmp/WaterMeter/水表数据集/Water-Meter-Det1/val/json"
|
|
23
|
-
anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-
|
|
24
|
+
# anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-v01/json"
|
|
25
|
+
# anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-outdoor-det-fix/dataset-v20/json"
|
|
26
|
+
anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-indoor-det/dataset-test/json"
|
|
27
|
+
anno_dir = "/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-action-cvlm-v2/aije-action-train-v01/json"
|
|
24
28
|
names = None
|
|
29
|
+
# names = ['身穿工作服,未穿工作服', '手,手穿绝缘手套,手穿棉纱手套,手穿其他手套']
|
|
25
30
|
dataset = parser_labelme.LabelMeDatasets(filename=None,
|
|
26
31
|
data_root=None,
|
|
27
32
|
anno_dir=anno_dir,
|
|
28
33
|
image_dir=None,
|
|
29
34
|
class_name=names,
|
|
30
|
-
check=
|
|
35
|
+
check=True,
|
|
31
36
|
phase="val",
|
|
32
37
|
shuffle=True)
|
|
38
|
+
class_name = dataset.class_name
|
|
39
|
+
class_file = os.path.join(os.path.dirname(anno_dir), "class_name.txt")
|
|
40
|
+
file_utils.write_list_data(class_file, class_name)
|
|
33
41
|
print("have num:{}".format(len(dataset)))
|
|
34
42
|
for i in range(len(dataset)):
|
|
35
43
|
print(i) # i=20
|
|
36
44
|
data = dataset.__getitem__(i)
|
|
37
45
|
image, points, bboxes, labels = data["image"], data["points"], data["boxes"], data["labels"]
|
|
38
46
|
h, w = image.shape[:2]
|
|
47
|
+
if class_name: labels = [class_name[l] for l in labels]
|
|
39
48
|
image_file = data["image_file"]
|
|
40
49
|
anno_file = os.path.join("masker", "{}.json".format(os.path.basename(image_file).split(".")[0]))
|
|
41
|
-
parser_labelme.show_target_image(image, bboxes, labels, points)
|
|
50
|
+
parser_labelme.show_target_image(image, bboxes, labels, points, thickness=2)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|