├── .gitignore ├── LICENSE ├── README.md ├── configs ├── dataloader │ └── default.yaml ├── dataset │ ├── base │ │ ├── base_det_train.yaml │ │ └── base_det_val.yaml │ ├── nusc_det.yaml │ ├── preprocess │ │ └── augmentation.yaml │ └── waymo_det.yaml ├── experiments │ ├── nusc_det_pp18_aspp_iou_sp.yaml │ ├── nusc_det_voxel18_aspp_iou_sp.yaml │ ├── waymo_det_mvf18_aspp_iou_car.yaml │ ├── waymo_det_pp18_aspp_iou_car_sp.yaml │ ├── waymo_det_pp18_aspp_iou_car_sp_f1.yaml │ └── waymo_det_voxel18_aspp_iou_car.yaml ├── models │ ├── backbone │ │ ├── 3d_sparse_resnet18.yaml │ │ └── sparse_resnet18.yaml │ ├── detectors │ │ ├── mvf18_aspp.yaml │ │ ├── pillarnet18.yaml │ │ ├── pillarnet18_aspp.yaml │ │ ├── pointpillars.yaml │ │ ├── voxel18.yaml │ │ └── voxel18_aspp.yaml │ ├── head │ │ └── centerhead.yaml │ ├── neck │ │ └── aspp.yaml │ └── reader │ │ ├── mvf_encoder.yaml │ │ ├── pillar_encoder.yaml │ │ └── voxel_encoder.yaml ├── optimizer │ └── adamW.yaml ├── scheduler │ └── onecycle.yaml └── trainer │ └── default.yaml ├── det3d ├── __init__.py ├── core │ ├── __init__.py │ ├── bbox │ │ ├── __init__.py │ │ ├── box_np_ops.py │ │ └── box_torch_ops.py │ └── iou3d_nms │ │ ├── __init__.py │ │ ├── iou3d_nms_utils.py │ │ ├── setup.py │ │ └── src │ │ ├── iou3d_cpu.cpp │ │ ├── iou3d_cpu.h │ │ ├── iou3d_nms.cpp │ │ ├── iou3d_nms.h │ │ ├── iou3d_nms_api.cpp │ │ └── iou3d_nms_kernel.cu ├── datasets │ ├── __init__.py │ ├── base.py │ ├── loader │ │ ├── build_loader.py │ │ └── collate.py │ ├── nuscenes │ │ ├── __init__.py │ │ ├── nusc.py │ │ └── nusc_common.py │ ├── pipelines │ │ ├── __init__.py │ │ ├── assign.py │ │ ├── augmentation.py │ │ ├── center_utils.py │ │ └── sample_ops.py │ └── waymo │ │ ├── __init__.py │ │ ├── waymo.py │ │ └── waymo_convert.py └── models │ ├── __init__.py │ ├── backbones │ ├── __init__.py │ ├── sparse_resnet.py │ └── sparse_resnet3d.py │ ├── detectors │ ├── __init__.py │ └── single_stage.py │ ├── heads │ ├── __init__.py │ └── centerhead.py │ ├── loss │ └── centerloss.py │ ├── necks │ ├── __init__.py │ └── aspp.py │ ├── readers │ ├── __init__.py │ ├── mvf_encoder.py │ ├── pillar_encoder.py │ └── voxel_encoder.py │ └── utils │ ├── __init__.py │ ├── conv.py │ └── sparse_conv.py ├── docker └── Dockerfile ├── docs ├── DATA.md ├── INSTALL.md ├── RUN.md ├── poster.pdf └── teaser_figure.png ├── setup.py ├── tools ├── create_data.py ├── create_gt_database.py ├── dist_train_waymo.sh ├── test.py └── train.py └── trainer ├── __init__.py ├── trainer ├── __init__.py └── trainer.py └── utils ├── __init__.py ├── checkpoint.py └── progressbar.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/README.md -------------------------------------------------------------------------------- /configs/dataloader/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/dataloader/default.yaml -------------------------------------------------------------------------------- /configs/dataset/base/base_det_train.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/dataset/base/base_det_train.yaml -------------------------------------------------------------------------------- /configs/dataset/base/base_det_val.yaml: -------------------------------------------------------------------------------- 1 | loading_pipelines: 2 | - load_pointcloud 3 | -------------------------------------------------------------------------------- /configs/dataset/nusc_det.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/dataset/nusc_det.yaml -------------------------------------------------------------------------------- /configs/dataset/preprocess/augmentation.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/dataset/preprocess/augmentation.yaml -------------------------------------------------------------------------------- /configs/dataset/waymo_det.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/dataset/waymo_det.yaml -------------------------------------------------------------------------------- /configs/experiments/nusc_det_pp18_aspp_iou_sp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/experiments/nusc_det_pp18_aspp_iou_sp.yaml -------------------------------------------------------------------------------- /configs/experiments/nusc_det_voxel18_aspp_iou_sp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/experiments/nusc_det_voxel18_aspp_iou_sp.yaml -------------------------------------------------------------------------------- /configs/experiments/waymo_det_mvf18_aspp_iou_car.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/experiments/waymo_det_mvf18_aspp_iou_car.yaml -------------------------------------------------------------------------------- /configs/experiments/waymo_det_pp18_aspp_iou_car_sp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/experiments/waymo_det_pp18_aspp_iou_car_sp.yaml -------------------------------------------------------------------------------- /configs/experiments/waymo_det_pp18_aspp_iou_car_sp_f1.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/experiments/waymo_det_pp18_aspp_iou_car_sp_f1.yaml -------------------------------------------------------------------------------- /configs/experiments/waymo_det_voxel18_aspp_iou_car.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/experiments/waymo_det_voxel18_aspp_iou_car.yaml -------------------------------------------------------------------------------- /configs/models/backbone/3d_sparse_resnet18.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/backbone/3d_sparse_resnet18.yaml -------------------------------------------------------------------------------- /configs/models/backbone/sparse_resnet18.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/backbone/sparse_resnet18.yaml -------------------------------------------------------------------------------- /configs/models/detectors/mvf18_aspp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/detectors/mvf18_aspp.yaml -------------------------------------------------------------------------------- /configs/models/detectors/pillarnet18.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/detectors/pillarnet18.yaml -------------------------------------------------------------------------------- /configs/models/detectors/pillarnet18_aspp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/detectors/pillarnet18_aspp.yaml -------------------------------------------------------------------------------- /configs/models/detectors/pointpillars.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/detectors/pointpillars.yaml -------------------------------------------------------------------------------- /configs/models/detectors/voxel18.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/detectors/voxel18.yaml -------------------------------------------------------------------------------- /configs/models/detectors/voxel18_aspp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/detectors/voxel18_aspp.yaml -------------------------------------------------------------------------------- /configs/models/head/centerhead.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/head/centerhead.yaml -------------------------------------------------------------------------------- /configs/models/neck/aspp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/neck/aspp.yaml -------------------------------------------------------------------------------- /configs/models/reader/mvf_encoder.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/reader/mvf_encoder.yaml -------------------------------------------------------------------------------- /configs/models/reader/pillar_encoder.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/reader/pillar_encoder.yaml -------------------------------------------------------------------------------- /configs/models/reader/voxel_encoder.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/models/reader/voxel_encoder.yaml -------------------------------------------------------------------------------- /configs/optimizer/adamW.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/optimizer/adamW.yaml -------------------------------------------------------------------------------- /configs/scheduler/onecycle.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/scheduler/onecycle.yaml -------------------------------------------------------------------------------- /configs/trainer/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/configs/trainer/default.yaml -------------------------------------------------------------------------------- /det3d/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/core/__init__.py: -------------------------------------------------------------------------------- 1 | from .bbox import box_np_ops # noqa F401 -------------------------------------------------------------------------------- /det3d/core/bbox/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/core/bbox/box_np_ops.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/bbox/box_np_ops.py -------------------------------------------------------------------------------- /det3d/core/bbox/box_torch_ops.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/bbox/box_torch_ops.py -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/__init__.py -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/iou3d_nms_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/iou3d_nms_utils.py -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/setup.py -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/src/iou3d_cpu.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/src/iou3d_cpu.cpp -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/src/iou3d_cpu.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/src/iou3d_cpu.h -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/src/iou3d_nms.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/src/iou3d_nms.cpp -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/src/iou3d_nms.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/src/iou3d_nms.h -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/src/iou3d_nms_api.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/src/iou3d_nms_api.cpp -------------------------------------------------------------------------------- /det3d/core/iou3d_nms/src/iou3d_nms_kernel.cu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/core/iou3d_nms/src/iou3d_nms_kernel.cu -------------------------------------------------------------------------------- /det3d/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/datasets/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/base.py -------------------------------------------------------------------------------- /det3d/datasets/loader/build_loader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/loader/build_loader.py -------------------------------------------------------------------------------- /det3d/datasets/loader/collate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/loader/collate.py -------------------------------------------------------------------------------- /det3d/datasets/nuscenes/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/nuscenes/__init__.py -------------------------------------------------------------------------------- /det3d/datasets/nuscenes/nusc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/nuscenes/nusc.py -------------------------------------------------------------------------------- /det3d/datasets/nuscenes/nusc_common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/nuscenes/nusc_common.py -------------------------------------------------------------------------------- /det3d/datasets/pipelines/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/datasets/pipelines/assign.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/pipelines/assign.py -------------------------------------------------------------------------------- /det3d/datasets/pipelines/augmentation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/pipelines/augmentation.py -------------------------------------------------------------------------------- /det3d/datasets/pipelines/center_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/pipelines/center_utils.py -------------------------------------------------------------------------------- /det3d/datasets/pipelines/sample_ops.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/pipelines/sample_ops.py -------------------------------------------------------------------------------- /det3d/datasets/waymo/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/datasets/waymo/waymo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/waymo/waymo.py -------------------------------------------------------------------------------- /det3d/datasets/waymo/waymo_convert.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/datasets/waymo/waymo_convert.py -------------------------------------------------------------------------------- /det3d/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/models/backbones/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/models/backbones/sparse_resnet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/backbones/sparse_resnet.py -------------------------------------------------------------------------------- /det3d/models/backbones/sparse_resnet3d.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/backbones/sparse_resnet3d.py -------------------------------------------------------------------------------- /det3d/models/detectors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/detectors/__init__.py -------------------------------------------------------------------------------- /det3d/models/detectors/single_stage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/detectors/single_stage.py -------------------------------------------------------------------------------- /det3d/models/heads/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/models/heads/centerhead.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/heads/centerhead.py -------------------------------------------------------------------------------- /det3d/models/loss/centerloss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/loss/centerloss.py -------------------------------------------------------------------------------- /det3d/models/necks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/models/necks/aspp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/necks/aspp.py -------------------------------------------------------------------------------- /det3d/models/readers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/models/readers/mvf_encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/readers/mvf_encoder.py -------------------------------------------------------------------------------- /det3d/models/readers/pillar_encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/readers/pillar_encoder.py -------------------------------------------------------------------------------- /det3d/models/readers/voxel_encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/readers/voxel_encoder.py -------------------------------------------------------------------------------- /det3d/models/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /det3d/models/utils/conv.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/utils/conv.py -------------------------------------------------------------------------------- /det3d/models/utils/sparse_conv.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/det3d/models/utils/sparse_conv.py -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/docker/Dockerfile -------------------------------------------------------------------------------- /docs/DATA.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/docs/DATA.md -------------------------------------------------------------------------------- /docs/INSTALL.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/docs/INSTALL.md -------------------------------------------------------------------------------- /docs/RUN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/docs/RUN.md -------------------------------------------------------------------------------- /docs/poster.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/docs/poster.pdf -------------------------------------------------------------------------------- /docs/teaser_figure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/docs/teaser_figure.png -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/setup.py -------------------------------------------------------------------------------- /tools/create_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/tools/create_data.py -------------------------------------------------------------------------------- /tools/create_gt_database.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/tools/create_gt_database.py -------------------------------------------------------------------------------- /tools/dist_train_waymo.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/tools/dist_train_waymo.sh -------------------------------------------------------------------------------- /tools/test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/tools/test.py -------------------------------------------------------------------------------- /tools/train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/tools/train.py -------------------------------------------------------------------------------- /trainer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/trainer/__init__.py -------------------------------------------------------------------------------- /trainer/trainer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/trainer/trainer/__init__.py -------------------------------------------------------------------------------- /trainer/trainer/trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/trainer/trainer/trainer.py -------------------------------------------------------------------------------- /trainer/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /trainer/utils/checkpoint.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/trainer/utils/checkpoint.py -------------------------------------------------------------------------------- /trainer/utils/progressbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qcraftai/pillarnext/HEAD/trainer/utils/progressbar.py --------------------------------------------------------------------------------