Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configs for Centerpoint on KITTI #1455

Open
wants to merge 106 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
3a7e3b1
Add pv_rcnn_plusplus config for KITTI
MarcBrede Aug 2, 2023
6bba173
Rename pv_rcnn_plusplus config file
MarcBrede Aug 4, 2023
4df43ef
Add class specific score filtering
MarcBrede Aug 10, 2023
d3f57e7
Add pv_rcnn_relation code
MarcBrede Aug 14, 2023
ca33bc7
Update object-object relation module and add knn
MarcBrede Aug 19, 2023
343894a
Update GNN to be able to not include global info
MarcBrede Aug 22, 2023
e22c028
Add logging of model config to train and test
MarcBrede Aug 22, 2023
150cbe6
Update epochs and batch size for pv_rcnn_relation
MarcBrede Aug 23, 2023
3dcffa7
Update
MarcBrede Aug 24, 2023
4debe51
Minor fixes
MarcBrede Aug 24, 2023
460236a
Merge branch 'dev' of https://github.com/MarcBrede/OpenPCDet into dev
MarcBrede Aug 24, 2023
bc0f9da
Add scripts to start training and evaluation
MarcBrede Aug 25, 2023
1147f41
Add class specific graph option
MarcBrede Aug 25, 2023
c337cbc
Minor update for same class graph
MarcBrede Aug 25, 2023
5eeb865
Update training scripts
MarcBrede Aug 25, 2023
3e75d1d
Update evaluation and training scripts
MarcBrede Aug 26, 2023
fbb4327
Update training scripts
MarcBrede Aug 26, 2023
059d4c5
Update train and eval script
MarcBrede Aug 26, 2023
34e0274
Update eval and train script
MarcBrede Aug 26, 2023
911cd8d
merge
MarcBrede Aug 26, 2023
ae283c2
Fix same class only edges
MarcBrede Aug 26, 2023
2bc3b82
Update evaluation script
MarcBrede Aug 27, 2023
4ee6683
Reorder global mlp and dropout and bn
MarcBrede Aug 27, 2023
820426d
git update eval script
MarcBrede Aug 28, 2023
cf2bb56
Add KITTI demo
MarcBrede Aug 29, 2023
6979ad1
merge
MarcBrede Aug 29, 2023
6c4a52c
Update gnn structure
MarcBrede Aug 29, 2023
3ccdd7e
Updage gnn with edge embeddings
MarcBrede Aug 29, 2023
266684b
Udpate GNN to vary position of global info mlp
MarcBrede Aug 30, 2023
236dcf1
Add launch.json file
MarcBrede Sep 1, 2023
3871cd9
Update gitignore
MarcBrede Sep 1, 2023
452011f
Update pv_rcnn_relation config
MarcBrede Sep 1, 2023
0481edc
Update gnn to include bn and dropout
MarcBrede Sep 2, 2023
e3480e2
Merge branch 'dev' of https://github.com/MarcBrede/OpenPCDet into dev
MarcBrede Sep 2, 2023
e2d58dd
Update gnn for edge embedding
MarcBrede Sep 3, 2023
f78c425
Add GATConv
MarcBrede Sep 4, 2023
19708e2
Update detector template to be able to run pvrcnn
MarcBrede Sep 5, 2023
66eac5c
Add dynamic graphs
MarcBrede Sep 6, 2023
6ea08a0
Rename README.md to README_OpenPCDet.md
MarcBrede Sep 6, 2023
8f52abd
Add two images for ReadMe
MarcBrede Sep 6, 2023
a8ec66f
Add image for ReadMe
MarcBrede Sep 6, 2023
48c881d
Add file for ReadMe
MarcBrede Sep 6, 2023
ceffaf7
Add file for ReadMe
MarcBrede Sep 6, 2023
912b03c
Create README.md
MarcBrede Sep 6, 2023
943087d
Add image for ReadMe
MarcBrede Sep 6, 2023
f3cbf8b
Update README.md
MarcBrede Sep 6, 2023
8304a44
Fixing typos in README.md
MarcBrede Sep 6, 2023
1b19cbd
Add centerpoint configs for KITTI
MarcBrede Sep 7, 2023
8e53b3c
Merge branch 'dev' of https://github.com/MarcBrede/OpenPCDet into dev
MarcBrede Sep 7, 2023
3fd2a90
Fix minor bug in gnn with dynamic graph
MarcBrede Sep 8, 2023
9954662
Fix small bug for dynamic graphs
MarcBrede Sep 9, 2023
e9c693c
Tmp
MarcBrede Sep 9, 2023
530a7d1
tmp
MarcBrede Sep 11, 2023
2072e13
Add pv_rcnn_relation_plusplus
MarcBrede Sep 11, 2023
aacb7fc
Update ReadMe
MarcBrede Sep 11, 2023
ad90e0b
Update ReadMe
MarcBrede Sep 11, 2023
61b9601
Add results image
MarcBrede Sep 11, 2023
ef7118b
Update README.md
MarcBrede Sep 11, 2023
fa67137
Merge branch 'dev' of https://github.com/MarcBrede/OpenPCDet into dev
MarcBrede Sep 12, 2023
e874822
Add CenterPoint second stage
MarcBrede Sep 12, 2023
bee6bcf
merge
MarcBrede Sep 12, 2023
574ddb2
Update README.md
MarcBrede Sep 12, 2023
23be007
Update pv_rcnn_plusplus_relation config
MarcBrede Sep 13, 2023
82253e4
Fix bug in pvrcnn_head_relation
MarcBrede Sep 13, 2023
0417ab8
Update eval script
MarcBrede Sep 13, 2023
08ea01a
Add centerpoint kitti configs
MarcBrede Sep 13, 2023
efb2f0b
Remove not needed field in centerpoint.yaml
MarcBrede Sep 13, 2023
8a87138
Merge branch 'open-mmlab:master' into master
MarcBrede Sep 13, 2023
b3864a7
Add CGNL method
MarcBrede Sep 14, 2023
1c7992f
Update for CGNL
MarcBrede Sep 14, 2023
dae33c1
Update run configs
MarcBrede Sep 14, 2023
0b1e1c5
Fix bugs in detector template
MarcBrede Sep 14, 2023
484ff5e
Update GNN with option to either skip or not
MarcBrede Sep 15, 2023
62f2773
Add files for readme
MarcBrede Sep 25, 2023
22de936
Update README.md
MarcBrede Sep 25, 2023
4b64994
Update GNN
MarcBrede Oct 4, 2023
f3b2444
Merge branch 'dev' of https://github.com/MarcBrede/OpenPCDet into dev
MarcBrede Oct 4, 2023
248a959
Add partA2 relation model
MarcBrede Oct 4, 2023
c7ca8f6
Update launch configs
MarcBrede Oct 4, 2023
df09f4a
Add configs for pv_rcnn_relation for only car
MarcBrede Oct 4, 2023
f7f06ee
Fix bug in configs and gnn
MarcBrede Oct 5, 2023
5b54283
Update parta2 relation model
MarcBrede Oct 10, 2023
a9e8ade
Add voxel_rcnn_relation code
MarcBrede Oct 10, 2023
1ad6e3d
Add code for frozen backbone model
MarcBrede Oct 15, 2023
01f18aa
Update code for pretrained model
MarcBrede Oct 18, 2023
362113f
Update ReadMe
MarcBrede Oct 25, 2023
bc2f27a
Add model configs
MarcBrede Nov 15, 2023
7766ba7
Update readme
MarcBrede Nov 15, 2023
797ede9
Add images for readme
MarcBrede Nov 15, 2023
ff246c5
Update readme
MarcBrede Nov 15, 2023
49d46ff
Update readme
MarcBrede Nov 15, 2023
9c6bbb7
Update readme
MarcBrede Nov 15, 2023
09c4d77
Merge branch 'master' into dev
MarcBrede Nov 15, 2023
3d785af
Merge pull request #1 from MarcBrede/dev
MarcBrede Nov 15, 2023
2edc29d
Add thesis pdf
MarcBrede Nov 20, 2023
595959b
Merge branch 'dev' of https://github.com/MarcBrede/OpenPCDet into dev
MarcBrede Nov 20, 2023
075fc7b
Add yaml files
MarcBrede Nov 20, 2023
b8cd5d8
Add dockerfile
MarcBrede Nov 20, 2023
b031f08
Add docker file
MarcBrede Nov 21, 2023
890b5e4
Update ReadMe
MarcBrede Nov 21, 2023
d30a6e5
Random stuff
MarcBrede Nov 21, 2023
c3a0fa7
Merge pull request #2 from MarcBrede/dev
MarcBrede Nov 21, 2023
2fbdf85
Update ReadMe
MarcBrede Nov 21, 2023
cb4db3e
Update readMe
MarcBrede Nov 21, 2023
7a1368e
Update ReadMe
MarcBrede Nov 21, 2023
59c2662
Update Dockerfile
MarcBrede Nov 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ venv/
*.bin
output
version.py
.vscode/
373 changes: 373 additions & 0 deletions .vscode/launch.json

Large diffs are not rendered by default.

88 changes: 88 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# This tag does not exist anymore it was changed to the next closest: FROM nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04
FROM nvidia/cuda:11.7.1-cudnn8-devel-ubuntu18.04

RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

# Install basics
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update -y \
&& apt-get install -y build-essential \
&& apt-get install -y apt-utils git curl ca-certificates bzip2 tree htop wget \
&& apt-get install -y libglib2.0-0 libsm6 libxext6 libxrender-dev bmon iotop g++ python3.8 python3.8-dev python3.8-distutils

# Install cmake v3.13.2
RUN apt-get purge -y cmake && \
mkdir /root/temp && \
cd /root/temp && \
wget https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz && \
tar -xzvf cmake-3.13.2.tar.gz && \
cd cmake-3.13.2 && \
bash ./bootstrap && \
make && \
make install && \
cmake --version && \
rm -rf /root/temp

# Install python
RUN ln -sv /usr/bin/python3.8 /usr/bin/python
RUN wget https://bootstrap.pypa.io/get-pip.py && \
python get-pip.py && \
rm get-pip.py

# Install python packages
RUN PIP_INSTALL="python -m pip --no-cache-dir install" && \
# $PIP_INSTALL numpy==1.19.3 llvmlite numba
$PIP_INSTALL numpy==1.24.4 llvmlite numba

# Install torch and torchvision
# See https://pytorch.org/ for other options if you use a different version of CUDA
# RUN pip install --user torch==1.6 torchvision==0.7.0 -f https://download.pytorch.org/whl/cu102/torch_stable.html
# RUN pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
RUN pip install torch torchvision torchaudio

# Install python packages
RUN PIP_INSTALL="python -m pip --no-cache-dir install" && \
$PIP_INSTALL tensorboardX easydict pyyaml scikit-image tqdm SharedArray six

WORKDIR /root

# Install Boost geometry
RUN wget https://jaist.dl.sourceforge.net/project/boost/boost/1.68.0/boost_1_68_0.tar.gz && \
tar xzvf boost_1_68_0.tar.gz && \
cp -r ./boost_1_68_0/boost /usr/include && \
rm -rf ./boost_1_68_0 && \
rm -rf ./boost_1_68_0.tar.gz

# A weired problem that hasn't been solved yet
RUN pip uninstall -y SharedArray && \
pip install SharedArray

RUN pip install spconv-cu117

RUN pip install torch_geometric

RUN pip install open3d

RUN pip install mayavi

RUN pip install kornia

RUN apt-get update && apt-get install -y libgl1-mesa-glx

RUN apt-get update && apt-get install -y \
openssh-client \
git

RUN git clone https://github.com/MarcBrede/OpenPCDet.git

ENV PYTHONPATH /root/OpenPCDet/

RUN pip install av2

RUN pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-2.0.1+cu117.html
RUN pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-2.0.1+cu117.html
RUN pip install tensorboard

# RUN ls /root/OpenPCDet/

# RUN python /root/OpenPCDet/setup.py develop
Binary file added MTObjectRelations.pdf
Binary file not shown.
305 changes: 56 additions & 249 deletions README.md

Large diffs are not rendered by default.

291 changes: 291 additions & 0 deletions README_OpenPCDet.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions pcdet/datasets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from .pandaset.pandaset_dataset import PandasetDataset
from .lyft.lyft_dataset import LyftDataset
from .once.once_dataset import ONCEDataset
from .argo2.argo2_dataset import Argo2Dataset
# from .argo2.argo2_dataset import Argo2Dataset
from .custom.custom_dataset import CustomDataset

__all__ = {
Expand All @@ -24,7 +24,7 @@
'LyftDataset': LyftDataset,
'ONCEDataset': ONCEDataset,
'CustomDataset': CustomDataset,
'Argo2Dataset': Argo2Dataset
# 'Argo2Dataset': Argo2Dataset
}


Expand Down
40 changes: 21 additions & 19 deletions pcdet/datasets/augmentor/database_sampler.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import numpy as np
from skimage import io
import torch
import SharedArray
# import SharedArray
import torch.distributed as dist

from ...ops.iou3d_nms import iou3d_nms_utils
Expand Down Expand Up @@ -70,16 +70,17 @@ def __setstate__(self, d):
self.__dict__.update(d)

def __del__(self):
if self.use_shared_memory:
self.logger.info('Deleting GT database from shared memory')
cur_rank, num_gpus = common_utils.get_dist_info()
sa_key = self.sampler_cfg.DB_DATA_PATH[0]
if cur_rank % num_gpus == 0 and os.path.exists(f"/dev/shm/{sa_key}"):
SharedArray.delete(f"shm://{sa_key}")

if num_gpus > 1:
dist.barrier()
self.logger.info('GT database has been removed from shared memory')
pass
# if self.use_shared_memory:
# self.logger.info('Deleting GT database from shared memory')
# cur_rank, num_gpus = common_utils.get_dist_info()
# sa_key = self.sampler_cfg.DB_DATA_PATH[0]
# if cur_rank % num_gpus == 0 and os.path.exists(f"/dev/shm/{sa_key}"):
# SharedArray.delete(f"shm://{sa_key}")

# if num_gpus > 1:
# dist.barrier()
# self.logger.info('GT database has been removed from shared memory')

def load_db_to_shared_memory(self):
self.logger.info('Loading GT database to shared memory')
Expand Down Expand Up @@ -379,11 +380,11 @@ def add_sampled_boxes_to_scene(self, data_dict, sampled_gt_boxes, total_valid_sa
# convert sampled 3D boxes to image plane
img_aug_gt_dict = self.initilize_image_aug_dict(data_dict, gt_boxes_mask)

if self.use_shared_memory:
gt_database_data = SharedArray.attach(f"shm://{self.gt_database_data_key}")
gt_database_data.setflags(write=0)
else:
gt_database_data = None
# if self.use_shared_memory:
# gt_database_data = SharedArray.attach(f"shm://{self.gt_database_data_key}")
# gt_database_data.setflags(write=0)
# else:
gt_database_data = None

for idx, info in enumerate(total_valid_sampled_dict):
if self.use_shared_memory:
Expand All @@ -392,12 +393,13 @@ def add_sampled_boxes_to_scene(self, data_dict, sampled_gt_boxes, total_valid_sa
else:
file_path = self.root_path / info['path']

obj_points = np.fromfile(str(file_path), dtype=np.float32).reshape(
[-1, self.sampler_cfg.NUM_POINT_FEATURES])
obj_points = np.fromfile(str(file_path), dtype=np.float32).reshape([-1, self.sampler_cfg.NUM_POINT_FEATURES])
if obj_points.shape[0] != info['num_points_in_gt']:
obj_points = np.fromfile(str(file_path), dtype=np.float64).reshape(-1, self.sampler_cfg.NUM_POINT_FEATURES)

assert obj_points.shape[0] == info['num_points_in_gt']

error_string = 'GT database error for file %s info: %s, %s, %s, %s' % (file_path, info['name'], info['path'], str(info['image_idx']), str(info['gt_idx']))
assert obj_points.shape[0] == info['num_points_in_gt'], error_string
obj_points[:, :3] += info['box3d_lidar'][:3].astype(np.float32)

if self.sampler_cfg.get('USE_ROAD_PLANE', False):
Expand Down
18 changes: 11 additions & 7 deletions pcdet/datasets/waymo/waymo_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import numpy as np
import torch
import multiprocessing
import SharedArray
# import SharedArray
import torch.distributed as dist
from tqdm import tqdm
from pathlib import Path
Expand Down Expand Up @@ -149,7 +149,7 @@ def clean_shared_memory(self):
if not os.path.exists(f"/dev/shm/{sa_key}"):
continue

SharedArray.delete(f"shm://{sa_key}")
# SharedArray.delete(f"shm://{sa_key}")

if num_gpus > 1:
dist.barrier()
Expand Down Expand Up @@ -352,11 +352,11 @@ def __getitem__(self, index):
input_dict = {
'sample_idx': sample_idx
}
if self.use_shared_memory and index < self.shared_memory_file_limit:
sa_key = f'{sequence_name}___{sample_idx}'
points = SharedArray.attach(f"shm://{sa_key}").copy()
else:
points = self.get_lidar(sequence_name, sample_idx)
# if self.use_shared_memory and index < self.shared_memory_file_limit:
# sa_key = f'{sequence_name}___{sample_idx}'
# points = SharedArray.attach(f"shm://{sa_key}").copy()
# else:
points = self.get_lidar(sequence_name, sample_idx)

if self.dataset_cfg.get('SEQUENCE_CONFIG', None) is not None and self.dataset_cfg.SEQUENCE_CONFIG.ENABLED:
points, num_points_all, sample_idx_pre_list, poses, pred_boxes, pred_scores, pred_labels = self.get_sequence_data(
Expand Down Expand Up @@ -714,6 +714,8 @@ def create_waymo_infos(dataset_cfg, class_names, data_path, save_path,
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
print('---------------Start to generate data infos---------------')

raw_data_tag = 'training'

dataset.set_split(train_split)
waymo_infos_train = dataset.get_infos(
raw_data_path=data_path / raw_data_tag,
Expand All @@ -724,6 +726,8 @@ def create_waymo_infos(dataset_cfg, class_names, data_path, save_path,
pickle.dump(waymo_infos_train, f)
print('----------------Waymo info train file is saved to %s----------------' % train_filename)

raw_data_tag = 'validation'

dataset.set_split(val_split)
waymo_infos_val = dataset.get_infos(
raw_data_path=data_path / raw_data_tag,
Expand Down
36 changes: 36 additions & 0 deletions pcdet/models/detectors/PartA2_relation_net.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from .detector3d_template import Detector3DTemplate
from ..object_relation import build_object_relation_module


class PartA2NetRelation(Detector3DTemplate):
def __init__(self, model_cfg, num_class, dataset):
super().__init__(model_cfg=model_cfg, num_class=num_class, dataset=dataset)
self.module_list = self.build_networks()
self.object_relation = build_object_relation_module(model_cfg.OBJECT_RELATION)

def forward(self, batch_dict):
for cur_module in self.module_list:
batch_dict = cur_module(batch_dict)

batch_dict = self.object_relation(batch_dict)
batch_dict = self.roi_head.final_predictions(batch_dict)

if self.training:
loss, tb_dict, disp_dict = self.get_training_loss()

ret_dict = {
'loss': loss
}
return ret_dict, tb_dict, disp_dict
else:
pred_dicts, recall_dicts = self.post_processing(batch_dict)
return pred_dicts, recall_dicts

def get_training_loss(self):
disp_dict = {}
loss_rpn, tb_dict = self.dense_head.get_loss()
loss_point, tb_dict = self.point_head.get_loss(tb_dict)
loss_rcnn, tb_dict = self.roi_head.get_loss(tb_dict)

loss = loss_rpn + loss_point + loss_rcnn
return loss, tb_dict, disp_dict
10 changes: 10 additions & 0 deletions pcdet/models/detectors/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
from .voxelnext import VoxelNeXt
from .transfusion import TransFusion
from .bevfusion import BevFusion
from .pv_rcnn_relation import PVRCNNRelation
from .pv_rcnn_plusplus_relation import PVRCNNPlusPlusRelation
from .centerpoint_twostage import CenterPointTwoStage
from .PartA2_relation_net import PartA2NetRelation
from .voxel_rcnn_relation import VoxelRCNNRelation

__all__ = {
'Detector3DTemplate': Detector3DTemplate,
Expand All @@ -35,6 +40,11 @@
'VoxelNeXt': VoxelNeXt,
'TransFusion': TransFusion,
'BevFusion': BevFusion,
'PVRCNNRelation': PVRCNNRelation,
'PVRCNNPlusPlusRelation': PVRCNNPlusPlusRelation,
'CenterPointTwoStage': CenterPointTwoStage,
'PartA2NetRelation': PartA2NetRelation,
'VoxelRCNNRelation': VoxelRCNNRelation,
}


Expand Down
56 changes: 56 additions & 0 deletions pcdet/models/detectors/centerpoint_twostage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
from .detector3d_template import Detector3DTemplate


class CenterPointTwoStage(Detector3DTemplate):
def __init__(self, model_cfg, num_class, dataset):
super().__init__(model_cfg=model_cfg, num_class=num_class, dataset=dataset)
self.module_list = self.build_networks()

def forward(self, batch_dict):
batch_dict = self.vfe(batch_dict)
batch_dict = self.backbone_3d(batch_dict)
batch_dict = self.map_to_bev_module(batch_dict)
batch_dict = self.backbone_2d(batch_dict)
batch_dict = self.dense_head(batch_dict)
batch_dict = self.roi_head(batch_dict)

if self.training:
loss, tb_dict, disp_dict = self.get_training_loss()

ret_dict = {
'loss': loss
}
return ret_dict, tb_dict, disp_dict
else:
pred_dicts, recall_dicts = self.post_processing(batch_dict)
return pred_dicts, recall_dicts

def get_training_loss(self):
disp_dict = {}
loss_rpn, tb_dict = self.dense_head.get_loss()
tb_dict = {
'loss_rpn': loss_rpn.item(),
**tb_dict
}

loss_rcnn, tb_dict = self.roi_head.get_loss(tb_dict)

loss = loss_rpn + loss_rcnn
return loss, tb_dict, disp_dict

# def post_processing(self, batch_dict):
# post_process_cfg = self.model_cfg.POST_PROCESSING
# batch_size = batch_dict['batch_size']
# # final_pred_dict = batch_dict['final_box_dicts']
# final_preds = batch_dict['batch_box_preds']
# recall_dict = {}
# for index in range(batch_size):
# pred_boxes = final_pred_dict[index]['pred_boxes']

# recall_dict = self.generate_recall_record(
# box_preds=pred_boxes,
# recall_dict=recall_dict, batch_index=index, data_dict=batch_dict,
# thresh_list=post_process_cfg.RECALL_THRESH_LIST
# )

# return final_pred_dict, recall_dict
Loading