pjlab-adg / logonet Goto Github PK
View Code? Open in Web Editor NEW[CVPR2023] LoGoNet: Towards Accurate 3D Object Detection with Local-to-Global Cross-Modal Fusion
[CVPR2023] LoGoNet: Towards Accurate 3D Object Detection with Local-to-Global Cross-Modal Fusion
Hello, how much G of video memory do you need to run your project? It shows that there is insufficient cuda or the process is killed directly.Hope to get your answer
Hi there,
Thanks for your work first.
Basically, I noticed that you freeze the FPN and Swin-T when training the network.
However, I think the weights you mentioned didn't contain the weights for the FPN part.
So how can you get it?
Hello, I want to know how to define custom dataset like kitti.
I don't know what the reason is, and I hope you can tell me How is "../data/kitti/ImageSets/train.txt" obtained
Thank you very much
2023-05-02 00:11:06,199 INFO cfg.EXP_GROUP_PATH: cfgs/det_model_cfgs/kitti 1 ../data/kitti/ImageSets/train.txt <class 'str'> Traceback (most recent call last): File "train.py", line 204, in <module> main() File "train.py", line 107, in main train_set, train_loader, train_sampler = build_dataloader( File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/__init__.py", line 48, in build_dataloader dataset = __all__[dataset_cfg.DATASET]( File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/kitti_dataset/kitti_dataset.py", line 51, in __init__ self.root_split_path = self.root_path / ('training' if self.split != 'test' else 'testing') TypeError: unsupported operand type(s) for /: 'str' and 'str' 1 ../data/kitti/ImageSets/train.txt <class 'str'> Traceback (most recent call last): File "train.py", line 204, in <module> main() File "train.py", line 107, in main train_set, train_loader, train_sampler = build_dataloader( File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/__init__.py", line 48, in build_dataloader dataset = __all__[dataset_cfg.DATASET]( File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/kitti_dataset/kitti_dataset.py", line 51, in __init__ self.root_split_path = self.root_path / ('training' if self.split != 'test' else 'testing') TypeError: unsupported operand type(s) for /: 'str' and 'str' 1 ../data/kitti/ImageSets/train.txt <class 'str'> Traceback (most recent call last): File "train.py", line 204, in <module> main() File "train.py", line 107, in main train_set, train_loader, train_sampler = build_dataloader( File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/__init__.py", line 48, in build_dataloader dataset = __all__[dataset_cfg.DATASET]( File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/kitti_dataset/kitti_dataset.py", line 51, in __init__ self.root_split_path = self.root_path / ('training' if self.split != 'test' else 'testing') TypeError: unsupported operand type(s) for /: 'str' and 'str' 2023-05-02 00:11:06,332 INFO Database filter by min points Car: 14357 => 13442 2023-05-02 00:11:06,332 INFO Database filter by min points Pedestrian: 2207 => 2161 2023-05-02 00:11:06,332 INFO Database filter by min points Cyclist: 734 => 699 1 ../data/kitti/ImageSets/train.txt
感谢您的开源工作,我在配置环境时在cd LoGoNet/detection/models/image_modules/swin_model && pip install -r requirements.txt 这一步出现错误:
ERROR: Could not find a version that satisfies the requirement codecov (from versions: none)
ERROR: No matching distribution found for codecov
我该如何解决?
Hello, I am using self-built data set for model training, I encountered this problem during training, do you have a solution? Hope to get your reply. thank you。
File "train.py", line 204, in
main()
File "train.py", line 176, in main
merge_all_iters_to_one_epoch=args.merge_all_iters_to_one_epoch
File "/home/s/Desktop/LoGoNet-main/utils/al3d_utils/train_utils.py", line 93, in train_model
dataloader_iter=dataloader_iter
File "/home/s/Desktop/LoGoNet-main/utils/al3d_utils/train_utils.py", line 19, in train_one_epoch
batch = next(dataloader_iter)
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 521, in next
data = self._next_data()
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 1203, in _next_data
return self._process_data(data)
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 1229, in _process_data
data.reraise()
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/_utils.py", line 434, in reraise
raise exception
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop
data = fetcher.fetch(index)
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/s/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 49, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/s/Desktop/LoGoNet-main/detection/al3d_det/datasets/kitti/kitti_dataset.py", line 477, in getitem
data_dict = self.prepare_data(data_dict=input_dict)
File "/home/s/Desktop/LoGoNet-main/detection/al3d_det/datasets/dataset_kitti.py", line 160, in prepare_data
data_dict=data_dict
File "/home/s/Desktop/LoGoNet-main/detection/al3d_det/datasets/processor/data_processor.py", line 197, in forward
data_dict = cur_processor(data_dict=data_dict)
File "/home/s/Desktop/LoGoNet-main/detection/al3d_det/datasets/processor/data_processor.py", line 102, in transform_points_to_voxels
voxel_output = self.voxel_generator.point_to_voxel(tv.from_numpy(points))
RuntimeError: /io/build/temp.linux-x86_64-3.6/spconv/build/src/csrc/sparse/all/ops_cpu3d/Point2VoxelCPU/Point2VoxelCPU_point_to_voxel_static.cc(22)
num_features == voxels.dim(2) assert faild. your points num features doesn't equal to voxel.
(LoGoNet) root@ubun:/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection# python -m al3d_det.datasets.kitti_dat\aset.kitti_dataset create_kitti_infos tools/cfgs/det_dataset_cfgs/kitti_dataset_mm.yaml
Traceback (most recent call last):
File "/root/miniconda3/envs/LoGoNet/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/root/miniconda3/envs/LoGoNet/lib/python3.6/runpy.py", line 109, in _get_module_details
import(pkg_name)
File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/init.py", line 8, in
from .dataset_kitti import DatasetTemplate_KITTI
File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/dataset_kitti.py", line 12, in
from .augmentor.data_augmentor import DataAugmentor
File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/augmentor/data_augmentor.py", line 7, in
from . import augmentor_utils, database_sampler, database_sampler_kitti, database_sampler_kittimm
File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/datasets/augmentor/database_sampler_kittimm.py", line 15, in
from ...utils.kitti_utils import box_utils, common_utils, calibration_kitti, box2d_utils
File "/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/al3d_det/utils/kitti_utils/calibration_kitti.py", line 3, in
from petrel_client.client import Client
ModuleNotFoundError: No module named 'petrel_client'
———————————————————————————————————————————————————
Thank you very much for your work. I have appeared such errors during the Kitti data processing process. I don’t know if I can give a solution
Nice work, I'm looking forward to your open-source code, when are you going to open-source code?
首先祝贺论文中了CVPR!!
如题,公式(4)的 |N_{G_i}| 计算了grid内点的数量,那应该也能计算grid内点的质心位置吧?
Hi, I found line 17 "IMGPRETRAINED_MODEL: '../output_s2/det_model_cfgs/pretrained_ckpt/swin_tiny_patch4_window7_224.pth'" in LoGoNet-kitti.yaml has been commented out
But I did not find any loss in the loss function regarding the image. This means that the image network is a pre-trained model.
Therefore, should line 17 be uncommented?
In addition,I didn't understand line 9-10
# remember to use "--pretrained_model" to load 1-stage checkpoint
# and use "--fix_pretrained_weights" to fix params
Should these also be changed, if using pre-rained image models?
In short, I would like to use the pre-trained image model you provided. Which configurations should I change in the project?
按照要求配置image modules中的环境,可是在pip install mmpycocotools 时总是报以下错:
(open-mmlab) lizheng@lizheng-MS-7A59:/media/lizheng/Samsung/codes/LoGoNet/detection/al3d_det/models/image_modules/swin_model$ pip install mmpycocotools
Collecting mmpycocotools
Using cached mmpycocotools-12.0.3.tar.gz (23 kB)
Preparing metadata (setup.py) ... done
Requirement already satisfied: setuptools>=18.0 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from mmpycocotools) (61.2.0)
Requirement already satisfied: cython>=0.27.3 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from mmpycocotools) (3.0.0)
Requirement already satisfied: matplotlib>=2.1.0 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from mmpycocotools) (3.5.2)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (1.4.3)
Requirement already satisfied: numpy>=1.17 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (1.22.4)
Requirement already satisfied: pyparsing>=2.2.1 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (2.8.2)
Requirement already satisfied: packaging>=20.0 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (21.3)
Requirement already satisfied: cycler>=0.10 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (0.11.0)
Requirement already satisfied: pillow>=6.2.0 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (9.1.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages (from matplotlib>=2.1.0->mmpycocotools) (4.33.3)
Requirement already satisfied: six>=1.5 in /home/lizheng/.local/lib/python3.8/site-packages (from python-dateutil>=2.7->matplotlib>=2.1.0->mmpycocotools) (1.15.0)
Building wheels for collected packages: mmpycocotools
Building wheel for mmpycocotools (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [23 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/cocoeval.py -> build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/mask.py -> build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/coco.py -> build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/init.py -> build/lib.linux-x86_64-3.8/pycocotools
running build_ext
Compiling pycocotools/_mask.pyx because it changed.
[1/1] Cythonizing pycocotools/_mask.pyx
/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-4w3usf7w/mmpycocotools_f828a534b0364f73bea4e3bd394507f9/pycocotools/_mask.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
building 'pycocotools._mask' extension
creating build/common
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/common
creating build/temp.linux-x86_64-3.8/pycocotools
gcc -pthread -B /home/lizheng/anaconda3/envs/open-mmlab/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/numpy/core/include -Icommon -I/home/lizheng/anaconda3/envs/open-mmlab/include/python3.8 -c ../common/maskApi.c -o build/temp.linux-x86_64-3.8/../common/maskApi.o
gcc: error: ../common/maskApi.c: 没有那个文件或目录
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mmpycocotools
Running setup.py clean for mmpycocotools
Failed to build mmpycocotools
Installing collected packages: mmpycocotools
Running setup.py install for mmpycocotools ... error
error: subprocess-exited-with-error
× Running setup.py install for mmpycocotools did not run successfully.
│ exit code: 1
╰─> [19 lines of output]
running install
/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_py
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/cocoeval.py -> build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/mask.py -> build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/coco.py -> build/lib.linux-x86_64-3.8/pycocotools
copying pycocotools/init.py -> build/lib.linux-x86_64-3.8/pycocotools
running build_ext
building 'pycocotools._mask' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/common
creating build/temp.linux-x86_64-3.8/pycocotools
gcc -pthread -B /home/lizheng/anaconda3/envs/open-mmlab/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/numpy/core/include -Icommon -I/home/lizheng/anaconda3/envs/open-mmlab/include/python3.8 -c ../common/maskApi.c -o build/temp.linux-x86_64-3.8/../common/maskApi.o
gcc: error: ../common/maskApi.c: 没有那个文件或目录
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> mmpycocotools
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
How do you train with multi frames? I can't understand in your paper.
Thanks for sharing the code!
I have a problem when I try to install dependencies following your instructions, and I find protobuf>=3.20.2 requires-python: >=3.7.
So I do the same work on python3.7, but meet a problem: "ModuleNotFoundError: No module named 'petrel_client'" when i run train.py.
I comment some codes, then have another problem: "No module named 'mmcv'".
I build mmcv from source, then meet problem: "AssertionError: MMCV==2.0.0 is used but incompatible. Please install mmcv>=1.2.4, <=1.4.0." I install 1.4.0 by using "mim install "mmcv<=1.4.0"", but have another problem: "ModuleNotFoundError: No module named 'mmcv._ext'"
I have no idea.
Your paper is easy to read and understand, but code env is difficult to construct.
Help me to upload results to kitti benchmark
Thanks for your contribution, can you tell me how to visualize the kpl file of the test results?
Hello! May I ask does the experiment on KITTI use the weights pre-trained on ImageNet?
assert img_file.exists()
AttributeError: 'NoneType' object has no attribute 'exists'
run ‘python -m al3d_det.datasets.waymo.waymo_preprocess --cfg_file tools/cfgs/det_dataset_cfgs/waymo_xxx_sweeps_mm.yaml --func create_waymo_infos' and 'python -m al3d_det.datasets.waymo.waymo_preprocess --cfg_file tools/cfgs/det_dataset_cfgs/waymo_xxxx_sweeps_mm.yaml --func create_waymo_database'. There are
not the path of '../data/waymo/waymo_processed_data_v4/segment-9509506420470671704_4049_100_4069_100_with_camera_labels/image_0/0034.png' and '../data/waymo/waymo_processed_data_v4/segment-9509506420470671704_4049_100_4069_100_with_camera_labels/image*' What should I do? Thake you for your answer.
Hello author, I may encounter some errors when using demo. py
(LoG37) root@autodl-container-3b5811a6ae-c6f524b1:~/LoGoNet/detection/tools# python demo.py --cfg_file /root/LoGoNet/detection/tools/cfgs/det_model_cfgs/kitti/LoGoNet-kitti.yaml --data_path /root/LoGoNet/detection/data/kitti/testing/velodyne/000000.bin --ckpt /root/LoGoNet/detection/tools/LoGoNet-KITTI.pth /root/miniconda3/envs/LoG37/lib/python3.7/site-packages/traits/etsconfig/etsconfig.py:428: UserWarning: Environment variable "HOME" not set, setting home directory to /tmp % (environment_variable, parent_directory) 2023-06-05 20:51:43,504 INFO -----------------Quick Demo of al3d-det------------------------- 2023-06-05 20:51:43,505 INFO Total number of samples: 1 /root/miniconda3/envs/LoG37/lib/python3.7/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2157.) return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined] 2023-06-05 20:51:46,868 INFO ==> Loading parameters from checkpoint /root/LoGoNet/detection/tools/LoGoNet-KITTI.pth to CPU 2023-06-05 20:51:47,037 INFO ==> Checkpoint trained from version: al3d_det+0.1.0+dcdb7e6+pyc3a3d92 2023-06-05 20:51:49,242 INFO ==> Done (loaded 575/575) 2023-06-05 20:51:49,486 INFO Visualized sample index: 1 Traceback (most recent call last): File "demo.py", line 110, in <module> main() File "demo.py", line 96, in main pred_dicts, _ = model.forward(data_dict) File "/root/LoGoNet/detection/al3d_det/models/anchor_MM_kitti.py", line 86, in forward batch_dict = self.camera.img_backbone(batch_dict) File "/root/miniconda3/envs/LoG37/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, **kwargs) File "/root/LoGoNet/detection/al3d_det/models/image_modules/mmdet_ffnkitti.py", line 54, in forward images = batch_dict['images'] KeyError: 'images'
Can you tell me how to modify or update your demo. py? Thank you
When I debug for /detection/tools/train.py file, there has an error "'SwinTransformer is not in the backbone registry'". It this caused by version of mmdet or mmcv-full?
Following is my environment :
mmcv-full 1.4.0
mmdet 2.11.0
mmengine 0.8.4
mmpycocotools 12.0.3
Cpython 0.29.33
Could the author introduce the version of critical packages, i.e. mmdet ,mmcv ? Please
当我运行sh scripts/dist_train.sh ${NUM_GPUS} --cfg_file ${CONFIG_FILE} 出现了错误:
1.首先dist_train.sh 要接受3个参数 :
NGPUSLIST=$1
NGPUS=$2
PY_ARGS=${@:3}
cfg_file应该传入PY_ARGS里吧,是LoGoNet-kitti.yaml文件的路径吗 第一个参数第二个参数一般填什么
2.status="$(nc -z 127.0.0.1
if [ "${status}" != "0" ]; then
break;
fi
我后来把NGPUSLIST=1 NGPUS=1直接写死,不传参了,cfg_file直接写在train.py里,后运行到上述代码一直循环,这个代码意思不是找到未占用的端口吗,如果未占用返回0吧 那么下面为啥是不等于号
I run the demo.py by python demo.py --cfg_file /media/wdr/cym/LoGoNet-base/detection/tools/cfgs/det_model_cfgs/kitti/LoGoNet-kitti.yaml --data_path /media/wdr/cym/LoGoNet-base/detection/data/kitti/testing/velodyne/000000.bin --ckpt /media/wdr/cym/LoGoNet-base/checkpoint_epoch_40.pth
and output error:
2024-04-02 22:12:25,115 INFO -----------------Quick Demo of al3d-det-------------------------
Traceback (most recent call last):
File "demo.py", line 107, in
main()
File "demo.py", line 80, in main
root_path=Path(args.data_path), ext=args.ext, logger=logger
File "/home/cym/miniconda3/envs/multi3d/lib/python3.6/typing.py", line 1231, in new
return _generic_new(cls.next_in_mro, cls, *args, **kwds)
File "/home/cym/miniconda3/envs/multi3d/lib/python3.6/typing.py", line 1186, in _generic_new
return base_cls.new(cls)
TypeError: Can't instantiate abstract class DemoDataset with abstract methods get_infos_and_points, init_infos
how to solve?
hello,I have a question that where are the GoF and LoF codes in kitti's code?
I have seen the code in LoGoHead_kitti.py
localgrid_densityfeat_fuse = self.crossattention_pointhead(batch_dict, point_features=localgrid_densityfeat, point_coords=grid_coords, layer_name="layer1")
Is this the code for LoF? If so, where is GoF?
I have a version problem when I run the training function, but these versions are not available in the repository,
(LoG) root@ubun:/data/python/jupyter_lab/jupyter_projects/LRK/LoGoNet/detection/tools# pip install mmcv==2.1.0 ERROR: Could not find a version that satisfies the requirement mmcv==2.1.0 (from versions: 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.2.9, 0.2.10, 0.2.11, 0.2.12, 0.2.13, 0.2.14, 0.2.15, 0.2.16, 0.3.0, 0.3.1, 0.3.2, 0.4.0, 0.4.2, 0.4.3, 0.4.4, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5.6, 0.5.7, 0.5.8, 0.5.9, 0.6.0, 0.6.1, 0.6.2, 1.0rc0, 1.0rc2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3.0, 1.3.1, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.3.8, 1.3.9, 1.3.10, 1.3.11, 1.3.12, 1.3.13, 1.3.14, 1.3.15, 1.3.16, 1.3.17, 1.3.18, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.7.1, 2.0.0rc1, 2.0.0rc2, 2.0.0rc3) ERROR: No matching distribution found for mmcv==2.1.0
hello,thank you for your code!
when i run the command cd LoGoNet/detection/models/image_modules/swin_model && pip install -r requirements.txt, occurs the following error:
INFO: pip is looking at multiple versions of isort to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement protobuf<4,>=3.20.2 (from onnx) (from versions: 2.0.0b0, 2.0.3, 2.3.0, 2.4.1, 2.5.0, 2.6.0, 2.6.1, 3.0.0a2, 3.0.0a3, 3.0.0b1, 3.0.0b1.post1, 3.0.0b1.post2, 3.0.0b2, 3.0.0b2.post1, 3.0.0b2.post2, 3.0.0b3, 3.0.0b4, 3.0.0, 3.1.0, 3.1.0.post1, 3.2.0rc1, 3.2.0rc1.post1, 3.2.0rc2, 3.2.0, 3.3.0, 3.4.0, 3.5.0.post1, 3.5.1, 3.5.2, 3.5.2.post1, 3.6.0, 3.6.1, 3.7.0rc2, 3.7.0rc3, 3.7.0, 3.7.1, 3.8.0rc1, 3.8.0, 3.9.0rc1, 3.9.0, 3.9.1, 3.9.2, 3.10.0rc1, 3.10.0, 3.11.0rc1, 3.11.0rc2, 3.11.0, 3.11.1, 3.11.2, 3.11.3, 3.12.0rc1, 3.12.0rc2, 3.12.0, 3.12.1, 3.12.2, 3.12.4, 3.13.0rc3, 3.13.0, 3.14.0rc1, 3.14.0rc2, 3.14.0rc3, 3.14.0, 3.15.0rc1, 3.15.0rc2, 3.15.0, 3.15.1, 3.15.2, 3.15.3, 3.15.4, 3.15.5, 3.15.6, 3.15.7, 3.15.8, 3.16.0rc1, 3.16.0rc2, 3.16.0, 3.17.0rc1, 3.17.0rc2, 3.17.0, 3.17.1, 3.17.2, 3.17.3, 3.18.0rc1, 3.18.0rc2, 3.18.0, 3.18.1, 3.18.3, 3.19.0rc1, 3.19.0rc2, 3.19.0, 3.19.1, 3.19.2, 3.19.3, 3.19.4, 3.19.5, 3.19.6, 4.0.0rc1, 4.0.0rc2, 4.21.0rc1, 4.21.0rc2, 4.21.0)
ERROR: No matching distribution found for protobuf<4,>=3.20.2
My environment is ubuntu 18.04 ,nvcc -V 11.6
How can i solve the problem?Thanks
I have one more question.
When I do,
python -m al3d_det.datasets.waymo.waymo_preprocess --cfg_file cfgs/det_dataset_cfgs/waymo_one_sweep_mm.yaml --func create_waymo_database
It make gt image file like this.
LoGoNet/detection/data/waymo/gt_database_train_sampled_1_sweep_[0,0]/segment-10017090168044687777_6380_000_6400_000_with_camera_labels_0000_Vehicle_1.png
But when I see it, it's not correct. maybe in "detection/al3d_det/datasets/waymo/waymo_preprocess.py"
gt_boxes2d[cam] = box_utils.boxes3d_to_boxes2d
I think 196 line have a problem.
When I do this command, I have an error for saving empty array to file.
Or these patch images in gt database don't need to be correct?
2023-06-25 16:39:06,450 INFO Start logging
2023-06-25 16:39:06,450 INFO CUDA_VISIBLE_DEVICES=ALL
2023-06-25 16:39:06,450 INFO cfg_file /media/root1/D/Workspace/paper/LoGoNet/detection/tools/cfgs/det_model_cfgs/kitti/LoGoNet-kitti.yaml
2023-06-25 16:39:06,450 INFO batch_size 2
2023-06-25 16:39:06,450 INFO epochs 80
2023-06-25 16:39:06,450 INFO workers 6
2023-06-25 16:39:06,450 INFO extra_tag default
2023-06-25 16:39:06,450 INFO ckpt None
2023-06-25 16:39:06,450 INFO pretrained_model None
2023-06-25 16:39:06,450 INFO fix_pretrained_weights False
2023-06-25 16:39:06,450 INFO launcher none
2023-06-25 16:39:06,450 INFO tcp_port 18888
2023-06-25 16:39:06,450 INFO sync_bn False
2023-06-25 16:39:06,450 INFO fix_random_seed False
2023-06-25 16:39:06,450 INFO ckpt_save_interval 1
2023-06-25 16:39:06,450 INFO local_rank 0
2023-06-25 16:39:06,450 INFO max_ckpt_save_num 30
2023-06-25 16:39:06,450 INFO merge_all_iters_to_one_epoch False
2023-06-25 16:39:06,450 INFO find_unused_parameters False
2023-06-25 16:39:06,450 INFO set_cfgs None
2023-06-25 16:39:06,450 INFO max_waiting_mins 0
2023-06-25 16:39:06,450 INFO start_epoch 0
2023-06-25 16:39:06,450 INFO save_to_file False
2023-06-25 16:39:06,450 INFO cfg.LOCAL_RANK: 0
2023-06-25 16:39:06,450 INFO cfg.CLASS_NAMES: ['Car', 'Pedestrian', 'Cyclist']
2023-06-25 16:39:06,450 INFO
cfg.DATA_CONFIG = edict()
2023-06-25 16:39:06,450 INFO cfg.DATA_CONFIG.DATASET: KittiDataset
2023-06-25 16:39:06,450 INFO cfg.DATA_CONFIG.DATA_PATH: /media/root1/D/Workspace/paper/LoGoNet/detection/data/kitti
2023-06-25 16:39:06,450 INFO cfg.DATA_CONFIG.POINT_CLOUD_RANGE: [0, -40, -3, 70.4, 40, 1]
2023-06-25 16:39:06,450 INFO
cfg.DATA_CONFIG.DATA_SPLIT = edict()
2023-06-25 16:39:06,450 INFO cfg.DATA_CONFIG.DATA_SPLIT.train: train
2023-06-25 16:39:06,450 INFO cfg.DATA_CONFIG.DATA_SPLIT.test: val
2023-06-25 16:39:06,450 INFO
cfg.DATA_CONFIG.INFO_PATH = edict()
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.INFO_PATH.train: ['kitti_infos_train.pkl']
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.INFO_PATH.test: ['kitti_infos_val.pkl']
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.USE_IMAGE: True
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.GET_ITEM_LIST: ['images', 'points', 'calib_matricies', 'gt_boxes2d']
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.FOV_POINTS_ONLY: True
2023-06-25 16:39:06,451 INFO
cfg.DATA_CONFIG.DATA_AUGMENTOR = edict()
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.DATA_AUGMENTOR.DISABLE_AUG_LIST: ['placeholder']
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.DATA_AUGMENTOR.AUG_CONFIG_LIST: [{'NAME': 'gt_samplingkittimm', 'AUG_WITH_IMAGE': True, 'JOINT_SAMPLE': True, 'KEEP_RAW': True, 'POINT_REFINE': True, 'BOX_IOU_THRES': 0.5, 'IMG_AUG_TYPE': 'by_order', 'AUG_USE_TYPE': 'annotation', 'IMG_ROOT_PATH': 'training/image_2', 'USE_ROAD_PLANE': True, 'DB_INFO_PATH': ['kitti_dbinfos_train.pkl'], 'PREPARE': {'filter_by_min_points': ['Car:5', 'Pedestrian:5', 'Cyclist:5'], 'filter_by_difficulty': [-1]}, 'SAMPLE_GROUPS': ['Car:15', 'Pedestrian:10', 'Cyclist:10'], 'NUM_POINT_FEATURES': 4, 'DATABASE_WITH_FAKELIDAR': False, 'REMOVE_EXTRA_WIDTH': [0.0, 0.0, 0.0], 'LIMIT_WHOLE_SCENE': True}, {'NAME': 'random_world_flip', 'ALONG_AXIS_LIST': ['x'], 'RETURN_NOISE_FLIP': True}, {'NAME': 'random_world_rotation', 'WORLD_ROT_ANGLE': [-0.78539816, 0.78539816], 'RETURN_NOISE_ROTATE': True}, {'NAME': 'random_world_scaling', 'WORLD_SCALE_RANGE': [0.95, 1.05], 'RETURN_NOISE_SCALE': True}]
2023-06-25 16:39:06,451 INFO
cfg.DATA_CONFIG.POINT_FEATURE_ENCODING = edict()
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.POINT_FEATURE_ENCODING.encoding_type: absolute_coordinates_encoding
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.POINT_FEATURE_ENCODING.used_feature_list: ['x', 'y', 'z', 'intensity']
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.POINT_FEATURE_ENCODING.src_feature_list: ['x', 'y', 'z', 'intensity']
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.DATA_PROCESSOR: [{'NAME': 'mask_points_and_boxes_outside_range', 'REMOVE_OUTSIDE_BOXES': True}, {'NAME': 'shuffle_points', 'SHUFFLE_ENABLED': {'train': True, 'test': False}}, {'NAME': 'transform_points_to_voxels', 'VOXEL_SIZE': [0.05, 0.05, 0.1], 'MAX_POINTS_PER_VOXEL': 5, 'MAX_NUMBER_OF_VOXELS': {'train': 16000, 'test': 40000}}]
2023-06-25 16:39:06,451 INFO cfg.DATA_CONFIG.BASE_CONFIG: cfgs/det_dataset_cfgs/kitti_dataset_mm.yaml
2023-06-25 16:39:06,451 INFO
cfg.MODEL = edict()
2023-06-25 16:39:06,451 INFO cfg.MODEL.NAME: ANCHORMMKITTI
2023-06-25 16:39:06,451 INFO cfg.MODEL.SECOND_STAGE: True
2023-06-25 16:39:06,451 INFO
cfg.MODEL.VFE = edict()
2023-06-25 16:39:06,451 INFO cfg.MODEL.VFE.NAME: MeanVFE
2023-06-25 16:39:06,451 INFO
cfg.MODEL.IMAGE_BACKBONE = edict()
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.NAME: MMDETFPNKITTI
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.FREEZE_IMGBACKBONE: True
2023-06-25 16:39:06,451 INFO
cfg.MODEL.IMAGE_BACKBONE.IFN = edict()
2023-06-25 16:39:06,451 INFO
cfg.MODEL.IMAGE_BACKBONE.IFN.ARGS = edict()
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IFN.ARGS.feat_extract_layer: ['layer1']
2023-06-25 16:39:06,451 INFO
cfg.MODEL.IMAGE_BACKBONE.IFN.CHANNEL_REDUCE = edict()
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IFN.CHANNEL_REDUCE.in_channels: [256]
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IFN.CHANNEL_REDUCE.out_channels: [64]
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IFN.CHANNEL_REDUCE.kernel_size: [1]
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IFN.CHANNEL_REDUCE.stride: [1]
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IFN.CHANNEL_REDUCE.bias: [False]
2023-06-25 16:39:06,451 INFO
cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG = edict()
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.type: SwinTransformer
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.embed_dim: 96
2023-06-25 16:39:06,451 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.depths: [2, 2, 6, 2]
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.num_heads: [3, 6, 12, 24]
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.window_size: 7
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.mlp_ratio: 4
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.qkv_bias: True
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.qk_scale: None
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.drop_rate: 0.0
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.attn_drop_rate: 0.0
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.drop_path_rate: 0.2
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.ape: False
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.patch_norm: True
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.out_indices: [0, 1, 2, 3]
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.IMGCONFIG.use_checkpoint: False
2023-06-25 16:39:06,452 INFO
cfg.MODEL.IMAGE_BACKBONE.FPNCONFIG = edict()
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.FPNCONFIG.type: FPN
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.FPNCONFIG.in_channels: [96, 192, 384, 768]
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.FPNCONFIG.out_channels: 256
2023-06-25 16:39:06,452 INFO cfg.MODEL.IMAGE_BACKBONE.FPNCONFIG.num_outs: 5
2023-06-25 16:39:06,452 INFO
cfg.MODEL.BACKBONE_3D = edict()
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_3D.NAME: Backbone3D
2023-06-25 16:39:06,452 INFO
cfg.MODEL.MAP_TO_BEV = edict()
2023-06-25 16:39:06,452 INFO cfg.MODEL.MAP_TO_BEV.NAME: HeightCompression
2023-06-25 16:39:06,452 INFO cfg.MODEL.MAP_TO_BEV.NUM_BEV_FEATURES: 256
2023-06-25 16:39:06,452 INFO
cfg.MODEL.BACKBONE_2D = edict()
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_2D.NAME: Backbone2D
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_2D.LAYER_NUMS: [5, 5]
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_2D.LAYER_STRIDES: [1, 2]
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_2D.NUM_FILTERS: [128, 256]
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_2D.UPSAMPLE_STRIDES: [1, 2]
2023-06-25 16:39:06,452 INFO cfg.MODEL.BACKBONE_2D.NUM_UPSAMPLE_FILTERS: [256, 256]
2023-06-25 16:39:06,452 INFO
cfg.MODEL.DENSE_HEAD = edict()
2023-06-25 16:39:06,452 INFO cfg.MODEL.DENSE_HEAD.NAME: AnchorHeadSingle
2023-06-25 16:39:06,452 INFO cfg.MODEL.DENSE_HEAD.CLASS_AGNOSTIC: False
2023-06-25 16:39:06,452 INFO cfg.MODEL.DENSE_HEAD.USE_DIRECTION_CLASSIFIER: True
2023-06-25 16:39:06,452 INFO cfg.MODEL.DENSE_HEAD.DIR_OFFSET: 0.78539
2023-06-25 16:39:06,452 INFO cfg.MODEL.DENSE_HEAD.DIR_LIMIT_OFFSET: 0.0
2023-06-25 16:39:06,452 INFO cfg.MODEL.DENSE_HEAD.NUM_DIR_BINS: 2
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.ANCHOR_GENERATOR_CONFIG: [{'class_name': 'Car', 'anchor_sizes': [[3.9, 1.6, 1.56]], 'anchor_rotations': [0, 1.57], 'anchor_bottom_heights': [-1.78], 'align_center': False, 'feature_map_stride': 8, 'matched_threshold': 0.6, 'unmatched_threshold': 0.45}, {'class_name': 'Pedestrian', 'anchor_sizes': [[0.8, 0.6, 1.73]], 'anchor_rotations': [0, 1.57], 'anchor_bottom_heights': [-0.6], 'align_center': False, 'feature_map_stride': 8, 'matched_threshold': 0.5, 'unmatched_threshold': 0.35}, {'class_name': 'Cyclist', 'anchor_sizes': [[1.76, 0.6, 1.73]], 'anchor_rotations': [0, 1.57], 'anchor_bottom_heights': [-0.6], 'align_center': False, 'feature_map_stride': 8, 'matched_threshold': 0.5, 'unmatched_threshold': 0.35}]
2023-06-25 16:39:06,453 INFO
cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG = edict()
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.NAME: AxisAlignedTargetAssigner
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.POS_FRACTION: -1.0
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.SAMPLE_SIZE: 512
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.NORM_BY_NUM_EXAMPLES: False
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.MATCH_HEIGHT: False
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.TARGET_ASSIGNER_CONFIG.BOX_CODER: ResidualCoder
2023-06-25 16:39:06,453 INFO
cfg.MODEL.DENSE_HEAD.LOSS_CONFIG = edict()
2023-06-25 16:39:06,453 INFO
cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS = edict()
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.cls_weight: 1.0
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.loc_weight: 2.0
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.dir_weight: 0.2
2023-06-25 16:39:06,453 INFO cfg.MODEL.DENSE_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.code_weights: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
2023-06-25 16:39:06,453 INFO
cfg.MODEL.ROI_HEAD = edict()
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NAME: LoGoHeadKITTI
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.CLASS_AGNOSTIC: True
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.SHARED_FC: [256, 256]
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.CLS_FC: [256, 256]
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.REG_FC: [256, 256]
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.DP_RATIO: 0.3
2023-06-25 16:39:06,453 INFO
cfg.MODEL.ROI_HEAD.NMS_CONFIG = edict()
2023-06-25 16:39:06,453 INFO
cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN = edict()
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_TYPE: nms_gpu
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.MULTI_CLASSES_NMS: False
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_PRE_MAXSIZE: 9000
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_POST_MAXSIZE: 512
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TRAIN.NMS_THRESH: 0.8
2023-06-25 16:39:06,453 INFO
cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST = edict()
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_TYPE: nms_gpu
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.MULTI_CLASSES_NMS: False
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_PRE_MAXSIZE: 1024
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_POST_MAXSIZE: 100
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.NMS_CONFIG.TEST.NMS_THRESH: 0.7
2023-06-25 16:39:06,453 INFO
cfg.MODEL.ROI_HEAD.VOXEL_AGGREGATION = edict()
2023-06-25 16:39:06,453 INFO cfg.MODEL.ROI_HEAD.VOXEL_AGGREGATION.NUM_FEATURES: [64, 64]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.VOXEL_AGGREGATION.FEATURE_LOCATIONS: ['x_conv3', 'x_conv4']
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FEATURE_LOCATIONS: ['x_conv3', 'x_conv4']
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.GRID_SIZE: 6
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS = edict()
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv3 = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv3.MLPS: [[32, 32], [32, 32]]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv3.POOL_RADIUS: [0.4, 0.8]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv3.NSAMPLE: [16, 16]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv3.POOL_METHOD: max_pool
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv3.USE_DENSITY: True
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv4 = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv4.MLPS: [[32, 32], [32, 32]]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv4.POOL_RADIUS: [0.8, 1.6]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv4.NSAMPLE: [16, 16]
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv4.POOL_METHOD: max_pool
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.POOL_LAYERS.x_conv4.USE_DENSITY: True
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.NAME: VoxelWithPointProjectionV2KITTI
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.FUSE_MODE: crossattention_deform
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.CAMERAS: ['camera_0', 'camera_1', 'camera_2', 'camera_3', 'camera_4']
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.IMAGE_SCALE: 0.5
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.INTERPOLATE: True
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.DEPTH_THRES = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.DEPTH_THRES.camera_0: 0
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.DEPTH_THRES.camera_1: 0
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.DEPTH_THRES.camera_2: 0
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.DEPTH_THRES.camera_3: 0
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.DEPTH_THRES.camera_4: 0
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.LAYER_CHANNEL = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.LAYER_CHANNEL.layer1: 64
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.MID_CHANNELS: 64
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.FUSION.FUSE_OUT: True
2023-06-25 16:39:06,454 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION = edict()
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.ENABLED: True
2023-06-25 16:39:06,454 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.NUM_FEATURES: 128
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.NUM_HEADS: 1
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.NUM_HIDDEN_FEATURES: 128
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.NUM_LAYERS: 1
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.POSITIONAL_ENCODER: density_grid_points
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.MAX_NUM_BOXES: 20
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.DROPOUT: 0.1
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.COMBINE: True
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.ATTENTION.MASK_EMPTY_POINTS: True
2023-06-25 16:39:06,455 INFO
cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY = edict()
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.ENABLED: True
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.NUM_FEATURES: 128
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.NUM_HIDDEN_FEATURES: 128
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.POSITIONAL_ENCODER: density_grid_points
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.MAX_NUM_BOXES: 20
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.DROPOUT: 0.1
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.COMBINE: True
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.ROI_GRID_POOL.DENSITYQUERY.MASK_EMPTY_POINTS: True
2023-06-25 16:39:06,455 INFO
cfg.MODEL.ROI_HEAD.TARGET_CONFIG = edict()
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.BOX_CODER: ResidualCoder
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.ROI_PER_IMAGE: 128
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.FG_RATIO: 0.5
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.SAMPLE_ROI_BY_EACH_CLASS: True
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_SCORE_TYPE: roi_iou
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_FG_THRESH: 0.75
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_BG_THRESH: 0.25
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.CLS_BG_THRESH_LO: 0.1
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.HARD_BG_RATIO: 0.8
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.TARGET_CONFIG.REG_FG_THRESH: 0.55
2023-06-25 16:39:06,455 INFO
cfg.MODEL.ROI_HEAD.LOSS_CONFIG = edict()
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.CLS_LOSS: BinaryCrossEntropy
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.REG_LOSS: smooth-l1
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.CORNER_LOSS_REGULARIZATION: True
2023-06-25 16:39:06,455 INFO
cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS = edict()
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.rcnn_cls_weight: 1.0
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.rcnn_reg_weight: 1.0
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.rcnn_corner_weight: 1.0
2023-06-25 16:39:06,455 INFO cfg.MODEL.ROI_HEAD.LOSS_CONFIG.LOSS_WEIGHTS.code_weights: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
2023-06-25 16:39:06,456 INFO
cfg.MODEL.POST_PROCESSING = edict()
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.RECALL_THRESH_LIST: [0.3, 0.5, 0.7]
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.SCORE_THRESH: 0.3
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.OUTPUT_RAW_SCORE: False
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.EVAL_METRIC: kitti
2023-06-25 16:39:06,456 INFO
cfg.MODEL.POST_PROCESSING.NMS_CONFIG = edict()
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.NMS_CONFIG.MULTI_CLASSES_NMS: False
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_TYPE: nms_gpu
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_THRESH: 0.55
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_PRE_MAXSIZE: 4096
2023-06-25 16:39:06,456 INFO cfg.MODEL.POST_PROCESSING.NMS_CONFIG.NMS_POST_MAXSIZE: 500
2023-06-25 16:39:06,456 INFO
cfg.OPTIMIZATION = edict()
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.BATCH_SIZE_PER_GPU: 2
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.NUM_EPOCHS: 80
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.OPTIMIZER: adam_onecycle
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.LR: 0.01
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.WEIGHT_DECAY: 0.01
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.MOMENTUM: 0.9
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.MOMS: [0.95, 0.85]
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.PCT_START: 0.4
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.DIV_FACTOR: 10
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.DECAY_STEP_LIST: [35, 45]
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.LR_DECAY: 0.1
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.LR_CLIP: 1e-07
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.LR_WARMUP: False
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.WARMUP_EPOCH: 1
2023-06-25 16:39:06,456 INFO cfg.OPTIMIZATION.GRAD_NORM_CLIP: 10
2023-06-25 16:39:06,456 INFO cfg.ROOT_DIR: /media/root1/D/Workspace/paper/LoGoNet/detection
2023-06-25 16:39:06,456 INFO cfg.TAG: LoGoNet-kitti
2023-06-25 16:39:06,456 INFO cfg.EXP_GROUP_PATH: media/root1/D/Workspace/paper/LoGoNet/detection/tools/cfgs/det_model_cfgs/kitti
2023-06-25 16:39:06,562 INFO Database filter by min points Car: 14357 => 13532
2023-06-25 16:39:06,562 INFO Database filter by min points Pedestrian: 2207 => 2168
2023-06-25 16:39:06,563 INFO Database filter by min points Cyclist: 734 => 705
2023-06-25 16:39:06,582 INFO Database filter by difficulty Car: 13532 => 10759
2023-06-25 16:39:06,585 INFO Database filter by difficulty Pedestrian: 2168 => 2075
2023-06-25 16:39:06,586 INFO Database filter by difficulty Cyclist: 705 => 581
2023-06-25 16:39:06,591 INFO Loading KITTI dataset
2023-06-25 16:39:06,675 INFO Total samples for KITTI dataset: 3712
/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at /opt/conda/conda-bld/pytorch_1634272155627/work/aten/src/ATen/native/TensorShape.cpp:2157.)
return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]
2023-06-25 16:39:09,360 INFO ANCHORMMKITTI(
(lidar): ANCHORKITTIMM_LiDAR(
(vfe): MeanVFE()
(backbone3d): Backbone3D(
(conv_input): SparseSequential(
(0): SubMConv3d(4, 16, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[1, 1, 1], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(16, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(conv1): SparseSequential(
(0): SparseSequential(
(0): SubMConv3d(16, 16, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(16, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(conv2): SparseSequential(
(0): SparseSequential(
(0): SparseConv3d(16, 32, kernel_size=[3, 3, 3], stride=[2, 2, 2], padding=[1, 1, 1], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(32, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(1): SparseSequential(
(0): SubMConv3d(32, 32, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(32, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(2): SparseSequential(
(0): SubMConv3d(32, 32, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(32, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(conv3): SparseSequential(
(0): SparseSequential(
(0): SparseConv3d(32, 64, kernel_size=[3, 3, 3], stride=[2, 2, 2], padding=[1, 1, 1], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(1): SparseSequential(
(0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(2): SparseSequential(
(0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(3): SparseSequential(
(0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(conv4): SparseSequential(
(0): SparseSequential(
(0): SparseConv3d(64, 64, kernel_size=[3, 3, 3], stride=[2, 2, 2], padding=[0, 1, 1], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(1): SparseSequential(
(0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(2): SparseSequential(
(0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(3): SparseSequential(
(0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(conv_out): SparseSequential(
(0): SparseConv3d(64, 128, kernel_size=[3, 1, 1], stride=[2, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.MaskImplicitGemm)
(1): BatchNorm1d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(map_to_bev): HeightCompression()
(backbone2d): Backbone2D(
(blocks): ModuleList(
(0): Sequential(
(0): ZeroPad2d(padding=(1, 1, 1, 1), value=0.0)
(1): Conv2d(256, 128, kernel_size=(3, 3), stride=(1, 1), bias=False)
(2): BatchNorm2d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(3): ReLU()
(4): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(5): BatchNorm2d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(6): ReLU()
(7): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(8): BatchNorm2d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(9): ReLU()
(10): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(11): BatchNorm2d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(12): ReLU()
(13): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(14): BatchNorm2d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(15): ReLU()
(16): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(17): BatchNorm2d(128, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(18): ReLU()
)
(1): Sequential(
(0): ZeroPad2d(padding=(1, 1, 1, 1), value=0.0)
(1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), bias=False)
(2): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(3): ReLU()
(4): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(5): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(6): ReLU()
(7): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(8): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(9): ReLU()
(10): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(11): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(12): ReLU()
(13): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(14): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(15): ReLU()
(16): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
(17): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(18): ReLU()
)
)
(deblocks): ModuleList(
(0): Sequential(
(0): ConvTranspose2d(128, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
(1): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
(1): Sequential(
(0): ConvTranspose2d(256, 256, kernel_size=(2, 2), stride=(2, 2), bias=False)
(1): BatchNorm2d(256, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
)
(dense_head): AnchorHeadSingle(
(cls_loss_func): SigmoidFocalClassificationLoss()
(reg_loss_func): WeightedSmoothL1Loss()
(dir_loss_func): WeightedCrossEntropyLoss()
(conv_cls): Conv2d(512, 18, kernel_size=(1, 1), stride=(1, 1))
(conv_box): Conv2d(512, 42, kernel_size=(1, 1), stride=(1, 1))
(conv_dir_cls): Conv2d(512, 12, kernel_size=(1, 1), stride=(1, 1))
)
(roi_head): LoGoHeadKITTI(
(proposal_target_layer): ProposalTargetLayer()
(reg_loss_func): WeightedSmoothL1Loss()
(ffn): Sequential(
(0): Conv1d(7, 32, kernel_size=(1,), stride=(1,))
(1): BatchNorm1d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU(inplace=True)
(3): Conv1d(32, 64, kernel_size=(1,), stride=(1,))
)
(up_ffn): Sequential(
(0): Conv1d(64, 64, kernel_size=(1,), stride=(1,))
(1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU(inplace=True)
(3): Conv1d(64, 128, kernel_size=(1,), stride=(1,))
)
(roi_grid_pool_layers): ModuleList(
(0): StackSAModuleMSGAttention(
(groupers): ModuleList(
(0): QueryAndGroup()
(1): QueryAndGroup()
)
(mlps): ModuleList(
(0): Sequential(
(0): Conv2d(68, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(5): ReLU()
)
(1): Sequential(
(0): Conv2d(68, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(5): ReLU()
)
)
)
(1): StackSAModuleMSGAttention(
(groupers): ModuleList(
(0): QueryAndGroup()
(1): QueryAndGroup()
)
(mlps): ModuleList(
(0): Sequential(
(0): Conv2d(68, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(5): ReLU()
)
(1): Sequential(
(0): Conv2d(68, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
(4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(5): ReLU()
)
)
)
)
(attention_head): TransformerEncoder(
(pos_encoder): FeedForwardPositionalEncoding(
(ffn): Sequential(
(0): Conv1d(4, 64, kernel_size=(1,), stride=(1,))
(1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU(inplace=True)
(3): Conv1d(64, 128, kernel_size=(1,), stride=(1,))
)
)
(transformer_encoder): TransformerEncoder(
(layers): ModuleList(
(0): TransformerEncoderLayer(
(self_attn): MultiheadAttention(
(out_proj): NonDynamicallyQuantizableLinear(in_features=128, out_features=128, bias=True)
)
(linear1): Linear(in_features=128, out_features=128, bias=True)
(dropout): Dropout(p=0.1, inplace=False)
(linear2): Linear(in_features=128, out_features=128, bias=True)
(norm1): LayerNorm((128,), eps=1e-05, elementwise_affine=True)
(norm2): LayerNorm((128,), eps=1e-05, elementwise_affine=True)
(dropout1): Dropout(p=0.1, inplace=False)
(dropout2): Dropout(p=0.1, inplace=False)
)
)
)
)
(crossattention_head): VoxelWithPointProjectionV2KITTI(
(point_projector): Point2ImageProjectionV2()
(pts_key_proj): Sequential(
(0): Linear(in_features=64, out_features=64, bias=True)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
)
(pts_transform): Sequential(
(0): Linear(in_features=64, out_features=64, bias=True)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
)
(fuse_blocks): DeformTransLayer(
(self_attn): MSDeformAttn(
(sampling_offsets): Linear(in_features=64, out_features=32, bias=True)
(attention_weights): Linear(in_features=64, out_features=16, bias=True)
(value_proj): Linear(in_features=64, out_features=64, bias=True)
(output_proj): Linear(in_features=64, out_features=64, bias=True)
)
(dropout1): Dropout(p=0.1, inplace=False)
(norm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
)
(fuse_conv): Sequential(
(0): Linear(in_features=128, out_features=64, bias=True)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(crossattention_pointhead): VoxelWithPointProjectionV2KITTI(
(point_projector): Point2ImageProjectionV2()
(pts_key_proj): Sequential(
(0): Linear(in_features=64, out_features=64, bias=True)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
)
(pts_transform): Sequential(
(0): Linear(in_features=64, out_features=64, bias=True)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
)
(fuse_blocks): DeformTransLayer(
(self_attn): MSDeformAttn(
(sampling_offsets): Linear(in_features=64, out_features=32, bias=True)
(attention_weights): Linear(in_features=64, out_features=16, bias=True)
(value_proj): Linear(in_features=64, out_features=64, bias=True)
(output_proj): Linear(in_features=64, out_features=64, bias=True)
)
(dropout1): Dropout(p=0.1, inplace=False)
(norm1): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
)
(fuse_conv): Sequential(
(0): Linear(in_features=128, out_features=64, bias=True)
(1): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
(2): ReLU()
)
)
(shared_fc_layer): Sequential(
(0): Conv1d(27648, 256, kernel_size=(1,), stride=(1,), bias=False)
(1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Dropout(p=0.3, inplace=False)
(4): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
(5): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(6): ReLU()
)
(reg_layers): Sequential(
(0): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
(1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Dropout(p=0.3, inplace=False)
(4): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
(5): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(6): ReLU()
(7): Conv1d(256, 7, kernel_size=(1,), stride=(1,))
)
(cls_layers): Sequential(
(0): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
(1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): Dropout(p=0.3, inplace=False)
(4): Conv1d(256, 256, kernel_size=(1,), stride=(1,), bias=False)
(5): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(6): ReLU()
(7): Conv1d(256, 1, kernel_size=(1,), stride=(1,))
)
)
)
(camera): ANCHORKITTIMM_Camera(
(img_backbone): MMDETFPNKITTI(
(img_backbone): SwinTransformer(
(patch_embed): PatchEmbed(
(proj): Conv2d(3, 96, kernel_size=(4, 4), stride=(4, 4))
(norm): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
)
(pos_drop): Dropout(p=0.0, inplace=False)
(layers): ModuleList(
(0): BasicLayer(
(blocks): ModuleList(
(0): SwinTransformerBlock(
(norm1): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=96, out_features=288, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=96, out_features=96, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): Identity()
(norm2): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=96, out_features=384, bias=True)
(act): GELU()
(fc2): Linear(in_features=384, out_features=96, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(1): SwinTransformerBlock(
(norm1): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=96, out_features=288, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=96, out_features=96, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.018)
(norm2): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=96, out_features=384, bias=True)
(act): GELU()
(fc2): Linear(in_features=384, out_features=96, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
)
(downsample): PatchMerging(
(reduction): Linear(in_features=384, out_features=192, bias=False)
(norm): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
)
)
(1): BasicLayer(
(blocks): ModuleList(
(0): SwinTransformerBlock(
(norm1): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=192, out_features=576, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=192, out_features=192, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.036)
(norm2): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=192, out_features=768, bias=True)
(act): GELU()
(fc2): Linear(in_features=768, out_features=192, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(1): SwinTransformerBlock(
(norm1): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=192, out_features=576, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=192, out_features=192, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.055)
(norm2): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=192, out_features=768, bias=True)
(act): GELU()
(fc2): Linear(in_features=768, out_features=192, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
)
(downsample): PatchMerging(
(reduction): Linear(in_features=768, out_features=384, bias=False)
(norm): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
)
)
(2): BasicLayer(
(blocks): ModuleList(
(0): SwinTransformerBlock(
(norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=384, out_features=1152, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=384, out_features=384, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.073)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=384, out_features=1536, bias=True)
(act): GELU()
(fc2): Linear(in_features=1536, out_features=384, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(1): SwinTransformerBlock(
(norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=384, out_features=1152, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=384, out_features=384, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.091)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=384, out_features=1536, bias=True)
(act): GELU()
(fc2): Linear(in_features=1536, out_features=384, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(2): SwinTransformerBlock(
(norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=384, out_features=1152, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=384, out_features=384, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.109)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=384, out_features=1536, bias=True)
(act): GELU()
(fc2): Linear(in_features=1536, out_features=384, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(3): SwinTransformerBlock(
(norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=384, out_features=1152, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=384, out_features=384, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.127)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=384, out_features=1536, bias=True)
(act): GELU()
(fc2): Linear(in_features=1536, out_features=384, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(4): SwinTransformerBlock(
(norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=384, out_features=1152, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=384, out_features=384, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.145)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=384, out_features=1536, bias=True)
(act): GELU()
(fc2): Linear(in_features=1536, out_features=384, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(5): SwinTransformerBlock(
(norm1): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=384, out_features=1152, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=384, out_features=384, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.164)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=384, out_features=1536, bias=True)
(act): GELU()
(fc2): Linear(in_features=1536, out_features=384, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
)
(downsample): PatchMerging(
(reduction): Linear(in_features=1536, out_features=768, bias=False)
(norm): LayerNorm((1536,), eps=1e-05, elementwise_affine=True)
)
)
(3): BasicLayer(
(blocks): ModuleList(
(0): SwinTransformerBlock(
(norm1): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=768, out_features=2304, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=768, out_features=768, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.182)
(norm2): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=768, out_features=3072, bias=True)
(act): GELU()
(fc2): Linear(in_features=3072, out_features=768, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
(1): SwinTransformerBlock(
(norm1): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
(attn): WindowAttention(
(qkv): Linear(in_features=768, out_features=2304, bias=True)
(attn_drop): Dropout(p=0.0, inplace=False)
(proj): Linear(in_features=768, out_features=768, bias=True)
(proj_drop): Dropout(p=0.0, inplace=False)
(softmax): Softmax(dim=-1)
)
(drop_path): DropPath(drop_prob=0.200)
(norm2): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
(mlp): Mlp(
(fc1): Linear(in_features=768, out_features=3072, bias=True)
(act): GELU()
(fc2): Linear(in_features=3072, out_features=768, bias=True)
(drop): Dropout(p=0.0, inplace=False)
)
)
)
)
)
(norm0): LayerNorm((96,), eps=1e-05, elementwise_affine=True)
(norm1): LayerNorm((192,), eps=1e-05, elementwise_affine=True)
(norm2): LayerNorm((384,), eps=1e-05, elementwise_affine=True)
(norm3): LayerNorm((768,), eps=1e-05, elementwise_affine=True)
)
(neck): FPN(
(lateral_convs): ModuleList(
(0): ConvModule(
(conv): Conv2d(96, 256, kernel_size=(1, 1), stride=(1, 1))
)
(1): ConvModule(
(conv): Conv2d(192, 256, kernel_size=(1, 1), stride=(1, 1))
)
(2): ConvModule(
(conv): Conv2d(384, 256, kernel_size=(1, 1), stride=(1, 1))
)
(3): ConvModule(
(conv): Conv2d(768, 256, kernel_size=(1, 1), stride=(1, 1))
)
)
(fpn_convs): ModuleList(
(0): ConvModule(
(conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
)
(1): ConvModule(
(conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
)
(2): ConvModule(
(conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
)
(3): ConvModule(
(conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
)
)
)
(reduce_blocks): ModuleList(
(0): BasicBlock2D(
(conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
(bn): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
)
)
)
)
)
2023-06-25 16:39:09,366 INFO Start training media/root1/D/Workspace/paper/LoGoNet/detection/tools/cfgs/det_model_cfgs/kitti/LoGoNet-kitti(default)
epochs: 0%| | 0/80 [00:00<?, ?it/s]
epochs: 0%| | 0/80 [00:02<?, ?it/s]
Traceback (most recent call last):
File "/media/root1/D/Workspace/paper/LoGoNet/detection/tools/train.py", line 204, in
main()
File "/media/root1/D/Workspace/paper/LoGoNet/detection/tools/train.py", line 176, in main
merge_all_iters_to_one_epoch=args.merge_all_iters_to_one_epoch
File "/media/root1/D/Workspace/paper/LoGoNet/utils/al3d_utils/train_utils.py", line 93, in train_model
dataloader_iter=dataloader_iter
File "/media/root1/D/Workspace/paper/LoGoNet/utils/al3d_utils/train_utils.py", line 19, in train_one_epoch
batch = next(dataloader_iter)
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 521, in next
data = self._next_data()
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 1203, in _next_data
return self._process_data(data)
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 1229, in _process_data
data.reraise()
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/_utils.py", line 434, in reraise
raise exception
TypeError: Caught TypeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop
data = fetcher.fetch(index)
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/media/root1/D/anaconda3/envs/logonet/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 49, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/kitti/kitti_dataset.py", line 477, in getitem
data_dict = self.prepare_data(data_dict=input_dict)
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/dataset_kitti.py", line 140, in prepare_data
'gt_boxes_mask': gt_boxes_mask
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/augmentor/data_augmentor.py", line 262, in forward
data_dict = cur_augmentor(data_dict=data_dict)
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/augmentor/database_sampler_kittimm.py", line 437, in call
total_valid_sampled_dict)
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/augmentor/database_sampler_kittimm.py", line 285, in add_sampled_boxes_to_scene
calib_file = kitti_common.get_calib_path(int(info['image_idx']), self.root_path, relative_path=False)
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/kitti/kitti_object_eval_python/kitti_common.py", line 64, in get_calib_path
relative_path)
File "/media/root1/D/Workspace/paper/LoGoNet/detection/al3d_det/datasets/kitti/kitti_object_eval_python/kitti_common.py", line 23, in get_kitti_info_path
if 's3' not in prefix:
TypeError: argument of type 'PosixPath' is not iterable
hello,I have a question that where the code for Feature Dynamic Aggregation Module is ?
I have seen the code in LoGoHead_kitti.py
pooled_features = pooled_features + localgrid_densityfeat_fuse.permute(0, 2, 1)
and attention_output = pooled_features + attention_output
if this code means the three feature F p B + F l B + F g B, then I didn't see the self attetion moudle before
shared_features = self.shared_fc_layer(pooled_features.view(batch_size_rcnn, -1, 1))
hello im using ubuntu 22 and cuda 11.8. I cant install requirements for example sklearn library and torch_scatter. Do you have maybe already created environment in conda and could send me all required version?
Hi, thanks for your excellent work. Would you mind sharing the difference or improvement between v1 and v2?
Moreover, does the model_v2 submitted to testset use the validation data in training? or just use the training data?
Thanks for your reply : )
Hello, I would like to run the code on waymo dataset. However, when I run the following two commands
The following error occurred:
2023-09-07 21:03:29.162028: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0
Traceback (most recent call last):
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/media/lizheng/Samsung/codes/LoGoNet/detection/al3d_det/datasets/waymo/waymo_preprocess.py", line 355, in
create_waymo_database(
File "/media/lizheng/Samsung/codes/LoGoNet/detection/al3d_det/datasets/waymo/waymo_preprocess.py", line 304, in create_waymo_database
dataset = WaymoTrainingDataset(
File "/media/lizheng/Samsung/codes/LoGoNet/detection/al3d_det/datasets/waymo/waymo_dataset.py", line 51, in init
from petrel_client.client import Client
ModuleNotFoundError: No module named 'petrel_client'
When I remove "OSS_PATH: 'cluster2:s3://dataset/waymo" in "waymo_one_sweep_mm.yaml", the new error occurred:
Traceback (most recent call last):
File "/media/lizheng/Samsung/codes/LoGoNet/detection/al3d_det/datasets/waymo/waymo_preprocess.py", line 38, in get_infos_worker
sequence_infos = list(tqdm(executor.map(process_single_sequence, sample_sequence_file_list),
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/tqdm/std.py", line 1182, in iter
for obj in iterable:
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/concurrent/futures/_base.py", line 619, in result_iterator
yield fs.pop().result()
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/concurrent/futures/_base.py", line 437, in result
return self.__get_result()
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/home/lizheng/anaconda3/envs/open-mmlab/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/media/lizheng/Samsung/codes/LoGoNet/detection/al3d_det/datasets/waymo/waymo_utils.py", line 218, in process_single_sequence_and_save
if pkl_file.exists():
AttributeError: 'str' object has no attribute 'exists'
May I ask what I should do?
I try to train the model on KITTI with all training data. But the precision on moderate level for car is only 82%, I want to know how to achieve 85% as paper said?
Hi, Thanks for open-source your excellent work. Do you have the plan to evaluate your work on the Nuscense dataset?
2024-07-03 21:17:43,039 INFO *************** Performance of EPOCH 42 ***************** 2024-07-03 21:17:43,040 INFO Generate label finished(sec_per_example: 0.2963 second). 2024-07-03 21:17:43,041 INFO recall_roi_0.3: 0.914512 2024-07-03 21:17:43,041 INFO recall_rcnn_0.3: 0.916050 2024-07-03 21:17:43,042 INFO recall_roi_0.5: 0.859950 2024-07-03 21:17:43,042 INFO recall_rcnn_0.5: 0.879485 2024-07-03 21:17:43,042 INFO recall_roi_0.7: 0.528192 2024-07-03 21:17:43,042 INFO recall_rcnn_0.7: 0.690796 2024-07-03 21:17:43,046 INFO Average predicted number of objects(3769 samples): 5.860 /home/yxm/anaconda3/envs/logo38/lib/python3.8/site-packages/numba/cuda/dispatcher.py:536: NumbaPerformanceWarning: Grid size 15 will likely result in GPU under-utilization due to low occupancy. warn(NumbaPerformanceWarning(msg)) 2024-07-03 21:17:59,623 INFO Car [email protected], 0.70, 0.70: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Car [email protected], 0.70, 0.70: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Car [email protected], 0.50, 0.50: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Car [email protected], 0.50, 0.50: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Pedestrian [email protected], 0.50, 0.50: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Pedestrian [email protected], 0.50, 0.50: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Pedestrian [email protected], 0.25, 0.25: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Pedestrian [email protected], 0.25, 0.25: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Cyclist [email protected], 0.50, 0.50: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Cyclist [email protected], 0.50, 0.50: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Cyclist [email protected], 0.25, 0.25: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00 Cyclist [email protected], 0.25, 0.25: bbox AP:0.0000, 0.0000, 0.0000 bev AP:0.0000, 0.0000, 0.0000 3d AP:0.0000, 0.0000, 0.0000 aos AP:0.00, 0.00, 0.00
Hello, why are all the box accuracies I tested 0? I hope to get your answer.
I followed the instructions in INSTALL and I created a env based on python=3.6,when I want to train in KITTI,the error happened.
I searched on google and they told me that only the later version of protobuf covers module 'builder',and it needs at least python=3.8.
Should I re-install all env?
when I follow the guidence to run CUDA_VISIBLE_DEVICES=0 python train.py --cfg_file cfgs/det_model_cfgs/kitti/LoGoNet-kitti.yaml
I got this error:
2024-04-20 19:08:49,322 INFO Start training det_model_cfgs/kitti/LoGoNet-kitti(default)
epochs: 0%| | 0/80 [00:00<?, ?it/s]
[Exception|native_pair]indices=torch.Size([32000, 4]),bs=2,ss=[41, 1600, 1408],algo=ConvAlgo.Native,ksize=[3, 3, 3],stride=[1, 1, 1],padding=[1, 1, 1],dilation=[1, 1, 1],subm=True,transpose=False | 0/1856 [00:00<?, ?it/s]
SPCONV_DEBUG_SAVE_PATH not found, you can specify SPCONV_DEBUG_SAVE_PATH as debug data save path to save debug data which can be attached in a issue.
epochs: 0%| | 0/80 [00:04<?, ?it/s]
Traceback (most recent call last):
File "/home/wbt/paper_code/LoGoNet/detection/tools/train.py", line 204, in
main()
File "/home/wbt/paper_code/LoGoNet/detection/tools/train.py", line 159, in main
train_model(
File "/home/wbt/paper_code/LoGoNet/utils/al3d_utils/train_utils.py", line 86, in train_model
accumulated_iter = train_one_epoch(
File "/home/wbt/paper_code/LoGoNet/utils/al3d_utils/train_utils.py", line 36, in train_one_epoch
loss, tb_dict, disp_dict = model_func(model, batch)
File "/home/wbt/paper_code/LoGoNet/detection/al3d_det/models/init.py", line 67, in model_func
ret_dict, tb_dict, disp_dict = model(batch_dict)
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/wbt/paper_code/LoGoNet/detection/al3d_det/models/anchor_MM_kitti.py", line 88, in forward
batch_dict = self.lidar(batch_dict, self.lidar.module_list[1])
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/wbt/paper_code/LoGoNet/detection/al3d_det/models/anchor_MM_kitti.py", line 23, in forward
return cur_module(batch_dict)
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/wbt/paper_code/LoGoNet/detection/al3d_det/models/modules/backbone_3d/backbone3d.py", line 155, in forward
x = self.conv_input(input_sp_tensor)
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/spconv/pytorch/modules.py", line 138, in forward
input = module(input)
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/spconv/pytorch/conv.py", line 755, in forward
return self._conv_forward(self.training,
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/spconv/pytorch/conv.py", line 297, in _conv_forward
raise e
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/spconv/pytorch/conv.py", line 284, in _conv_forward
outids, indice_pairs, indice_pair_num = ops.get_indice_pairs(
File "/home/wbt/miniconda3/envs/LoGoNet/lib/python3.9/site-packages/spconv/pytorch/ops.py", line 156, in get_indice_pairs
num_act_out = SpconvOps.get_indice_pairs(alloc,
RuntimeError: /io/build/temp.linux-x86_64-cpython-39/spconv/build/core_cc/src/csrc/sparse/all/SpconvOps/SpconvOps_get_indice_pairs.cc(65)
not implemented for CPU ONLY build.
Thank you for your code!
I tried to train 1-stage model to use this one as pretrained_model in 2-stage.
So I changed below lines in LoGoNet-5f.yaml
SECOND_STAGE: False
NUM_EPOCHS: 20
But accuracy was quite low. So I'm checking what's the problem.
Am I right to train 1-stage model like this?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.