pybaseutils 2.4.9__tar.gz → 2.4.11__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.9 → pybaseutils-2.4.11}/PKG-INFO +1 -1
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/__init__.py +1 -1
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/build_utils/pyarmor_utils.py +11 -4
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_labelme.py +6 -4
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2labelme.py +3 -1
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/camera.py +8 -8
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/video_utils.py +2 -1
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/image_utils.py +3 -3
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/log.py +5 -5
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/PKG-INFO +1 -1
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_labelme_crop_ailt.py +3 -4
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_voc2labelme.py +5 -4
- pybaseutils-2.4.11/test_py/demo1.py +43 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo2.py +3 -6
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_video2frame.py +2 -1
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_camera.py +3 -1
- pybaseutils-2.4.9/test_py/demo1.py +0 -46
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/LICENCE +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/README.md +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/audio_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/pyaudio_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/audio/vad_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/dict_queue.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/list_queue.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base/producer_consumer.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/base64_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/batch_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/build_utils/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/build_utils/cython_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/kmean.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/maxmin_distance.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cluster/similarity.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/color_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/config_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_cvat.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/build_voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/concat_coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_coco2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_labelme2yolo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_voc2yolo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_yolo2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/convert_yolo2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/converter/prelabelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/coords_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/corner_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/monitor.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/mouse_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/cvutils/nms_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/data_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/balanced_classes.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/base_coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/base_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/data_resample.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_coco_det.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_coco_ins.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_coco_kps.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_image_folder.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_image_text.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_labelme_crop.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_labelme_line.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_video_folder.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_video_text.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/parser_yolo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dataloader/voc_seg_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/dict_uils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/file_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/QueueTable.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/kalman_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/mean_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/motion_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/filter/pose_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/font_style/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/font_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/geometry_tools.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/heatmap_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/http_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/json_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/log_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/media/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/media/ffmpeg_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/accuracy.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/average_meter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/class_report.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/plot_pr.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/metrics/plot_roc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/nets_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/numpy_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pandas_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/plot_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/bones_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/human_pose.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pose/pose_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pycpp/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pycpp/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/pycpp/main.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/server/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/server/apm_server.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/setup_config.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/singleton_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/text_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/thread_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/time_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracemalloc_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracemalloc_utils2.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/QueueTable.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/kalman_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/mean_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/motion_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/tracking/pose_filter.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/affine_transform.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/build_transform.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/face_alignment.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/imgaug_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/transforms/transform_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/app_gradio_image.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/app_stweb_image.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/app_webio_image.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/web/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/word_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/worker.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils/yaml_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/SOURCES.txt +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/dependency_links.txt +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/not-zip-safe +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/pybaseutils.egg-info/top_level.txt +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/setup.cfg +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/setup.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/Image_enhance/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/Image_enhance/dmeo01.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/WebCrawler/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/WebCrawler/search_baidu.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/WebCrawler/search_biying.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/action_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/build_cython.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/build_pyarmor.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/build_service.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/convert_labelme2coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/convert_labelme2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/copy_move.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_labelme_crop_aije.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_labelme_shock.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_motion_blur.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_video_aije.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_voc_crop.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/demo_voc_vis.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/get_pair_data.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/mask_image.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/aije/video_convertor.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/main.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/main_read.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/segment.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/speechbrain_asr_indoor_prod.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio/speechbrain_demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/audio_demo1.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/camera/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/camera/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/captcha/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/captcha/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/class_attribute.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/class_names.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/AffectNet.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/AsianMovie.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/BITVehicle2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/BSTLD2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/CCPD.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/CCPD2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/FL3D_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/FreiHAND2coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/MTFL2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/TT100K.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/WaterMeters1.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/WaterMeters2.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/concat_coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_coco2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_cvat2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_gesture2hand.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2cvat.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_labelme2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/convert_yolo2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/fall_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/fatigue_driving.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/fdd_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/get_pair_data.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/handpose2coco.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/insects_for_aichallenger.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/parking_rois_gopro.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/tt100k_utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/ua_detrac2voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/ucf101_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/converter/voc_sbd2labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/build_cython.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/build_pyarmor.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/cryptography_demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/fun_sum.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/main.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/model_des_enctypt.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/cython_build/model_enctypt.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/date_dataset.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/date_demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/datedataset_bk.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo3.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo4.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_async_await1.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_async_await2.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_coco_vis.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_copy_files.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_copy_files_for_voc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_ffmpy.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_annular_to_rect.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_pair_file.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_polygon.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_for_trt.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_get_file_label.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_get_file_list.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_gif.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_gif_video.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_image_crop.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_kpts.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_labelme_crop.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_lableme_vis.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_letterbox.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_metrics.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_mosaic.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_mouse.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_nii.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_pandas.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_plot.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_prelabelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_rename.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_standard_image .py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_standard_video .py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_taichi.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_video_crop.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_voc_crop.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_voc_vis.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_word_similar.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_worker1.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/demo_worker2.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/detect_face_person.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/detector/predet_labelme.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/edit_distance/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/edit_distance/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/edit_distance/text_matching.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/fast_api/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/fast_api/create_image_url.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/fast_api/get_image_url.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/app.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/utils/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/flask_demo/utils/utils.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/get_file_list.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/gradio_app.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/gradio_app_v2.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/demo_correction_v1.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/demo_correction_v2.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/image_correction/demo_correction_v3.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/kafka_worker.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/men_tracemalloc.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/demo01.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/demo02.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/hello_milvus.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/milvus_demo/milvus_client.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/model_process.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/performance.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/pose/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/pose/human_pose.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/qrcode/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/qrcode/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/redis_py/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/redis_py/knn_search.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/redis_py/redis_client.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/base.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/component.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/main.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/registry/register.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/GRU.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/TCN.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/single_class/demo.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/slowfastnet.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_fr/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_fr/demo11.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/test_fr/idcardocr.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/__init__.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/asr_clients.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/asr_service.py +0 -0
- {pybaseutils-2.4.9 → pybaseutils-2.4.11}/test_py/web_socket/chat_service.py +0 -0
|
@@ -38,7 +38,7 @@ def build_pyarmor_project(root,
|
|
|
38
38
|
:param exclude_dirs: 不需要处理的文件
|
|
39
39
|
:return:
|
|
40
40
|
"""
|
|
41
|
-
|
|
41
|
+
dir = os.path.dirname(entry)
|
|
42
42
|
file_utils.copy_dir(root, build, exclude=exclude_dirs)
|
|
43
43
|
os.system(f'pyarmor --version')
|
|
44
44
|
os.system(f'rm -rf .pyarmor_config')
|
|
@@ -47,9 +47,16 @@ def build_pyarmor_project(root,
|
|
|
47
47
|
if manifest:
|
|
48
48
|
os.system(f'pyarmor config --manifest="{manifest}"')
|
|
49
49
|
os.system(f'pyarmor build --output={build} --force')
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
src = os.path.join(build, "pytransform")
|
|
51
|
+
dst = os.path.join(build, dir)
|
|
52
|
+
if src != os.path.join(dst, "pytransform"):
|
|
53
|
+
cmd = f"cp -rf {src} {dst}"
|
|
54
|
+
print(cmd)
|
|
55
|
+
os.system(cmd)
|
|
56
|
+
os.system(f"rm -rf {src}")
|
|
57
|
+
# os.system(f'cd {build} && cp -r pytransform {os.path.join(build, dir)}')
|
|
58
|
+
# file_utils.move_dir(os.path.join(build, "pytransform"), os.path.join(build, dir, "pytransform"))
|
|
59
|
+
# file_utils.remove_dir(os.path.join(build, "pytransform"))
|
|
53
60
|
# 将pyarmor编译结果保存到
|
|
54
61
|
# file_utils.copy_dir(os.path.join(root, "dist"), build, exclude=[])
|
|
55
62
|
|
|
@@ -13,7 +13,7 @@ from pybaseutils import image_utils, file_utils, json_utils
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def save_labelme(out_root, image_file, points, names, class_dict={}, group=None, image=None, prefix="",
|
|
16
|
-
index=0, vis=False, delay=0):
|
|
16
|
+
index=0, shape_type="polygon", vis=False, delay=0):
|
|
17
17
|
"""
|
|
18
18
|
:param out_root: 输出根目录
|
|
19
19
|
:param image_file: 图片路径
|
|
@@ -24,6 +24,7 @@ def save_labelme(out_root, image_file, points, names, class_dict={}, group=None,
|
|
|
24
24
|
:param image: 图像
|
|
25
25
|
:param prefix: 前缀,如果提供,则重新命名
|
|
26
26
|
:param index: 提供前缀需要重新名称
|
|
27
|
+
:param shape_type: polygon,rotation
|
|
27
28
|
:return:
|
|
28
29
|
"""
|
|
29
30
|
if class_dict: names = [class_dict.get(n, n) for n in names]
|
|
@@ -43,7 +44,7 @@ def save_labelme(out_root, image_file, points, names, class_dict={}, group=None,
|
|
|
43
44
|
image_id, postfix = file_utils.split_postfix(image_name)
|
|
44
45
|
json_file = file_utils.create_dir(out_root, "images", f"{image_id}.json")
|
|
45
46
|
file_path = file_utils.create_dir(out_root, "images", f"{image_name}")
|
|
46
|
-
maker_labelme(json_file, points, names, image_name, group=group, image_size=(w, h), image_bs64=None)
|
|
47
|
+
maker_labelme(json_file, points, names, image_name, group=group, image_size=(w, h), image_bs64=None,shape_type=shape_type)
|
|
47
48
|
if isinstance(image, np.ndarray):
|
|
48
49
|
cv2.imwrite(file_path, image)
|
|
49
50
|
else:
|
|
@@ -52,7 +53,8 @@ def save_labelme(out_root, image_file, points, names, class_dict={}, group=None,
|
|
|
52
53
|
print("points is empty,file={}".format(file_path))
|
|
53
54
|
|
|
54
55
|
|
|
55
|
-
def maker_labelme(json_file, points, labels, image_name, image_size, group=None, image_bs64=None, keypoints=[]
|
|
56
|
+
def maker_labelme(json_file, points, labels, image_name, image_size, group=None, image_bs64=None, keypoints=[],
|
|
57
|
+
shape_type="polygon"):
|
|
56
58
|
"""
|
|
57
59
|
制作label数据格式
|
|
58
60
|
:param json_file: 保存json文件路径
|
|
@@ -76,7 +78,7 @@ def maker_labelme(json_file, points, labels, image_name, image_size, group=None,
|
|
|
76
78
|
if not isinstance(point[0], list): point = [point]
|
|
77
79
|
kpts = keypoints[i] if keypoints else []
|
|
78
80
|
item = {"label": label, "score": None, "keypoints": kpts, "line_color": None, "fill_color": None,
|
|
79
|
-
"group_id": group[i], "points": point, "shape_type":
|
|
81
|
+
"group_id": group[i], "points": point, "shape_type": shape_type, "flags": {}, "description": ""}
|
|
80
82
|
shapes.append(item)
|
|
81
83
|
data = {
|
|
82
84
|
"version": "3.16.7", "flags": {},
|
|
@@ -23,6 +23,7 @@ def convert_voc2labelme(filename=None,
|
|
|
23
23
|
class_dict={},
|
|
24
24
|
prefix="",
|
|
25
25
|
max_num=-1,
|
|
26
|
+
shape_type='polygon',
|
|
26
27
|
vis=True):
|
|
27
28
|
"""
|
|
28
29
|
将voc格式转换为labelme格式
|
|
@@ -52,7 +53,8 @@ def convert_voc2labelme(filename=None,
|
|
|
52
53
|
image_file = data_info["image_file"]
|
|
53
54
|
points = image_utils.boxes2polygons(boxes)
|
|
54
55
|
build_labelme.save_labelme(out_root, image_file=image_file, points=points, names=names,
|
|
55
|
-
class_dict=class_dict, image=image, prefix=prefix, index=i,
|
|
56
|
+
class_dict=class_dict, image=image, prefix=prefix, index=i, shape_type=shape_type,
|
|
57
|
+
vis=vis)
|
|
56
58
|
|
|
57
59
|
|
|
58
60
|
if __name__ == "__main__":
|
|
@@ -8,7 +8,7 @@ class CameraCapture(object):
|
|
|
8
8
|
def __init__(self, video: str or int = 0, size=(1920, 1080), fps=30):
|
|
9
9
|
"""
|
|
10
10
|
:param video: 视频设备路径或索引(如 0 或 "/dev/video0")
|
|
11
|
-
:param size: 视频分辨率 (宽, 高)
|
|
11
|
+
:param size: 视频分辨率 (宽, 高),(1280,720),(1920,1080)
|
|
12
12
|
:param fps: 视频帧率
|
|
13
13
|
"""
|
|
14
14
|
self.size = size
|
|
@@ -47,9 +47,9 @@ class CameraCapture(object):
|
|
|
47
47
|
if len(buf) != self.size[0] * self.size[1] * 3:
|
|
48
48
|
self.stop()
|
|
49
49
|
return False, None # 读取失败或结束
|
|
50
|
-
# 将字节流转换为
|
|
51
|
-
|
|
52
|
-
return True,
|
|
50
|
+
# TODO 将字节流转换为numpy数组图像(bgr)
|
|
51
|
+
bgr = np.frombuffer(buf, dtype=np.uint8).reshape((self.size[1], self.size[0], 3))
|
|
52
|
+
return True, bgr
|
|
53
53
|
|
|
54
54
|
def release(self):
|
|
55
55
|
self.stop()
|
|
@@ -66,7 +66,7 @@ class CameraCapture(object):
|
|
|
66
66
|
self.pipe.communicate() # 再次尝试清理
|
|
67
67
|
print(err)
|
|
68
68
|
|
|
69
|
-
def display(self):
|
|
69
|
+
def display(self, title="camera", delay=30):
|
|
70
70
|
while True:
|
|
71
71
|
t1 = time.time()
|
|
72
72
|
ret, frame = self.read()
|
|
@@ -75,9 +75,9 @@ class CameraCapture(object):
|
|
|
75
75
|
break
|
|
76
76
|
t21 = (t2 - t1) * 1000
|
|
77
77
|
print(f"image shape: {frame.shape},耗时: {t21:.3f}ms")
|
|
78
|
-
cv2.
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
cv2.namedWindow(title, flags=cv2.WINDOW_NORMAL)
|
|
79
|
+
cv2.imshow(title, frame)
|
|
80
|
+
cv2.waitKey(delay)
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
if __name__ == '__main__':
|
|
@@ -1772,7 +1772,7 @@ def draw_image_arrowed_lines(image,
|
|
|
1772
1772
|
return image
|
|
1773
1773
|
|
|
1774
1774
|
|
|
1775
|
-
def draw_image_polylines(image, points, color=(0, 0, 255)):
|
|
1775
|
+
def draw_image_polylines(image, points, color=(0, 0, 255), closed=True, thickness=2):
|
|
1776
1776
|
"""
|
|
1777
1777
|
# points是三维坐标,分别表示(多边形个数,多边形坐标点x,多边形坐标点y)=(num_polylines,num_point,2)
|
|
1778
1778
|
points = np.asarray([[[100, 100], [200, 100], [400, 200]],
|
|
@@ -1784,8 +1784,8 @@ def draw_image_polylines(image, points, color=(0, 0, 255)):
|
|
|
1784
1784
|
参数4 color:必选参数。用于设置多边形的颜色
|
|
1785
1785
|
参数5 lineType:可选参数。用于设置线段的类型,可选8(8邻接连接线-默认)、4(4邻接连接线)和cv2.LINE_AA 为抗锯齿
|
|
1786
1786
|
"""
|
|
1787
|
-
|
|
1788
|
-
image = cv2.polylines(image,
|
|
1787
|
+
pts = [np.array(p, dtype=np.int32) for p in points]
|
|
1788
|
+
image = cv2.polylines(image, pts, isClosed=closed, color=color, thickness=thickness) # 画任意多边形
|
|
1789
1789
|
return image
|
|
1790
1790
|
|
|
1791
1791
|
|
|
@@ -13,11 +13,11 @@ from loguru import logger
|
|
|
13
13
|
|
|
14
14
|
LOG_FORMAT = {
|
|
15
15
|
"simple": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}| {message}</level>",
|
|
16
|
-
"name": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name} {line
|
|
17
|
-
"module": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module} {line
|
|
18
|
-
# "function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{function} {line
|
|
19
|
-
"function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module}.{function} {line
|
|
20
|
-
"all": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name}.{module}.{function} {line
|
|
16
|
+
"name": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name} {line}| {message}</level>", # 打印文件名
|
|
17
|
+
"module": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module} {line}| {message}</level>", # 打印模块名
|
|
18
|
+
# "function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{function} {line}| {message}</level>", # 打印函数
|
|
19
|
+
"function": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{module}.{function} {line}| {message}</level>", # 打印函数
|
|
20
|
+
"all": "<level>{time:YYYY-MM-DD HH:mm:ss}|{level:7}|{name}.{module}.{function} {line}| {message}</level>", # 打印函数
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
|
|
@@ -108,11 +108,10 @@ if __name__ == '__main__':
|
|
|
108
108
|
]
|
|
109
109
|
# '*长条标签'
|
|
110
110
|
datasets = [
|
|
111
|
-
'/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-
|
|
112
|
-
'/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-
|
|
113
|
-
'/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260206/images',
|
|
111
|
+
'/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260227/images',
|
|
112
|
+
'/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/dataset-20260211/images',
|
|
114
113
|
]
|
|
115
|
-
datasets = "/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/文件列表.txt"
|
|
114
|
+
# datasets = "/home/PKing/nasdata/dataset-dmai/AILT/ailt-det/文件列表.txt"
|
|
116
115
|
datasets = file_utils.read_data(datasets, split=None)
|
|
117
116
|
# dataroot = '/home/PKing/nasdata/dataset-dmai/AIJE/dataset/aije-v2-det'
|
|
118
117
|
# datasets = get_sub_dataset(dataroot)
|
|
@@ -19,8 +19,8 @@ if __name__ == "__main__":
|
|
|
19
19
|
Sedan # 轿车
|
|
20
20
|
Truck # 卡车
|
|
21
21
|
"""
|
|
22
|
-
data_root = "/home/PKing/nasdata/tmp/tmp/
|
|
23
|
-
out_root = data_root
|
|
22
|
+
data_root = "/home/PKing/nasdata/tmp/tmp/pen/dataset-pen-finger-tip-005/train"
|
|
23
|
+
out_root = data_root
|
|
24
24
|
class_dict = {"car": "car",
|
|
25
25
|
"person": "pedestrian",
|
|
26
26
|
"bicycle": "bike",
|
|
@@ -30,7 +30,8 @@ if __name__ == "__main__":
|
|
|
30
30
|
}
|
|
31
31
|
convert_voc2labelme.convert_voc2labelme(data_root=data_root,
|
|
32
32
|
out_root=out_root,
|
|
33
|
-
prefix="
|
|
33
|
+
prefix="",
|
|
34
34
|
class_name=None,
|
|
35
|
-
class_dict=
|
|
35
|
+
class_dict={},
|
|
36
|
+
shape_type="rotation",
|
|
36
37
|
vis=False)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import torch
|
|
2
|
+
import torch.nn as nn
|
|
3
|
+
import torch.nn.functional as F
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class VariationalAutoencoder(nn.Module):
|
|
7
|
+
def __init__(self, input_dim=784, hidden_dim=128, latent_dim=20):
|
|
8
|
+
super().__init__()
|
|
9
|
+
self.latent_dim = latent_dim
|
|
10
|
+
# TODO 编码器: 输出分布参数
|
|
11
|
+
self.encoder = nn.Sequential(nn.Linear(input_dim, hidden_dim), nn.ReLU())
|
|
12
|
+
self.fc_mu_ = nn.Linear(hidden_dim, latent_dim) # 均值
|
|
13
|
+
self.fc_var = nn.Linear(hidden_dim, latent_dim) # 对数方差
|
|
14
|
+
# TODO 解码器
|
|
15
|
+
self.decoder = nn.Sequential(nn.Linear(latent_dim, hidden_dim), nn.ReLU(), nn.Linear(hidden_dim, input_dim),nn.Sigmoid())
|
|
16
|
+
|
|
17
|
+
def encode(self, x):
|
|
18
|
+
h = self.encoder(x) # VAE编码器:将输入x映射到潜在空间的分布参数(均值mu和对数方差log_var)
|
|
19
|
+
return self.fc_mu_(h), self.fc_var(h)
|
|
20
|
+
|
|
21
|
+
def decode(self, z):
|
|
22
|
+
return self.decoder(z)
|
|
23
|
+
|
|
24
|
+
def reparameterize(self, mu, log_var):
|
|
25
|
+
# 重参数化技巧:从N(0,1)采样,然后变换
|
|
26
|
+
std = torch.exp(0.5 * log_var)
|
|
27
|
+
eps = torch.randn_like(std)
|
|
28
|
+
return mu + eps * std
|
|
29
|
+
|
|
30
|
+
def forward(self, x):
|
|
31
|
+
mu, log_var = self.encode(x) # 输出分布参数
|
|
32
|
+
z = self.reparameterize(mu, log_var) # 采样
|
|
33
|
+
x_recon = self.decode(z) # 解码重建
|
|
34
|
+
return x_recon, mu, log_var
|
|
35
|
+
|
|
36
|
+
def loss_function(self, x_recon, x, mu, log_var):
|
|
37
|
+
# 1. 重建损失
|
|
38
|
+
recon_loss = F.binary_cross_entropy(x_recon, x, reduction='sum')
|
|
39
|
+
# 2. KL散度:让后验分布接近标准正态分布
|
|
40
|
+
# KL(N(mu, sigma^2) || N(0, 1)) = -0.5 * (1 + log(sigma^2) - mu^2 - sigma^2)
|
|
41
|
+
kl_loss = -0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())
|
|
42
|
+
total_loss = recon_loss + kl_loss # 总损失
|
|
43
|
+
return total_loss, recon_loss, kl_loss
|
|
@@ -61,9 +61,6 @@ def video_iterator(video):
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
if __name__ == '__main__':
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
video = "/home/PKing/Videos/人体检测.mp4"
|
|
68
|
-
video = 0
|
|
69
|
-
video_capture(video)
|
|
64
|
+
x = 123
|
|
65
|
+
x = None
|
|
66
|
+
print(f"{str(x):7}")
|
|
@@ -19,11 +19,12 @@ def video2frames_demo(root, out, prefix="", vis=False):
|
|
|
19
19
|
for video_file in files:
|
|
20
20
|
print(video_file)
|
|
21
21
|
# video_utils.video2frames_similarity(video_file, out_dir=out, func=None, interval=20, thresh=0.3, vis=True)
|
|
22
|
-
video_utils.video2frames(video_file, out_dir=out, task=None, interval=
|
|
22
|
+
video_utils.video2frames(video_file, out_dir=out, task=None, interval=5, vis=vis, prefix=prefix)
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
if __name__ == "__main__":
|
|
26
26
|
root = "/home/PKing/edudata/dataset/AIJE/【TOP】技能人才系统_数据集管理/06-联通岗评/02-训练数据/联通入户布线_20260130_180400(补充打胶专题)/20260130_180400.mp4"
|
|
27
|
+
root = "/media/PKing/dev1/project/ai-cv-service/data/video1.avi"
|
|
27
28
|
out = os.path.join(os.path.dirname(root), "frames")
|
|
28
29
|
prefix = "image"
|
|
29
30
|
# out = os.path.join(root, "frames")
|
|
@@ -2,6 +2,7 @@ import numpy as np
|
|
|
2
2
|
import cv2
|
|
3
3
|
import time
|
|
4
4
|
from pybaseutils.cvutils.camera import CameraCapture
|
|
5
|
+
from pybaseutils.cvutils.video_utils import get_usb_camera
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
def display(cap: CameraCapture):
|
|
@@ -19,10 +20,11 @@ def display(cap: CameraCapture):
|
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
if __name__ == '__main__':
|
|
22
|
-
fps =
|
|
23
|
+
fps = 15
|
|
23
24
|
width = 1920
|
|
24
25
|
height = 1080
|
|
25
26
|
# video = 0 # Windows 下可能是 0 或 "video=Integrated Webcam"
|
|
26
27
|
video = "/home/PKing/Videos/demo-src.mp4" # Windows 下可能是 0 或 "video=Integrated Webcam"
|
|
28
|
+
video = get_usb_camera()
|
|
27
29
|
cap = CameraCapture(video=video, size=(width, height), fps=fps)
|
|
28
30
|
display(cap)
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
import os
|
|
3
|
-
import sys
|
|
4
|
-
|
|
5
|
-
import numpy as np
|
|
6
|
-
import pandas as pd
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class AppState:
|
|
10
|
-
def __init__(self, ):
|
|
11
|
-
self.code = 1
|
|
12
|
-
self.db_cl_names = []
|
|
13
|
-
self._cl_name = self.db_cl_names[0] if self.db_cl_names else None
|
|
14
|
-
|
|
15
|
-
@property
|
|
16
|
-
def cl_name(self):
|
|
17
|
-
if not self._cl_name:
|
|
18
|
-
self._cl_name = self.db_cl_names[0] if self.db_cl_names else None
|
|
19
|
-
return self._cl_name
|
|
20
|
-
|
|
21
|
-
@cl_name.setter
|
|
22
|
-
def cl_name(self, v):
|
|
23
|
-
assert v in self.db_cl_names, f'cl_name {v} not in db_cl_names {self.db_cl_names}'
|
|
24
|
-
|
|
25
|
-
self._cl_name = v
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def is_sorted_numpy(arr: np.ndarray) -> bool:
|
|
29
|
-
"""
|
|
30
|
-
使用 numpy 判断数组是否为升序。
|
|
31
|
-
对于大型数值数组,这是最快的方法。
|
|
32
|
-
注意:此函数输入应为 numpy 数组。
|
|
33
|
-
"""
|
|
34
|
-
# np.diff 计算相邻元素之差,如果升序,则所有差值都 >= 0
|
|
35
|
-
# np.all() 检查所有条件是否为真
|
|
36
|
-
return np.all(np.diff(arr) >= 0)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if __name__ == '__main__':
|
|
40
|
-
import numpy as np
|
|
41
|
-
|
|
42
|
-
# --- 示例 ---
|
|
43
|
-
# 假设 data 是一个 numpy 数组
|
|
44
|
-
np_data = np.array([1, 2, 2, 3, 5, 8, 0])
|
|
45
|
-
result = is_sorted_numpy(np_data)
|
|
46
|
-
print(f"Numpy 数组 {np_data} 是否为升序? {result}") # 输出: True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|