GithubHelp home page GithubHelp logo

vlar-group / ogc Goto Github PK

View Code? Open in Web Editor NEW
94.0 4.0 7.0 108.94 MB

🔥OGC in PyTorch (NeurIPS 2022)

License: Other

Python 93.28% C++ 2.00% Cuda 4.21% C 0.51%
autonomous-vehicles geometric-deep-learning object-detection object-segmentation point-cloud scene-flow-estimation scene-understanding unsupervised-learning

ogc's People

Contributors

baurst avatar szy-young avatar yang7879 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ogc's Issues

KITTI SF: Downsample missing files

Congratulations to your great work and thank you very much for releasing the code.

I am trying to run your project as described on the KITTI data (SF, Object, Semantic), but I am facing some trouble with the downsample_kitti.py script:

  1. There are "too many values to unpack" in this line, I fixed it by using pcs, segms, flows, _ = dataset[sid]:

    pcs, segms, flows = dataset[sid]

    This will create the files in data up to kitti_sf_downsampled/data/000099, which brings me to the 2nd problem:

  2. When I then try and run train_seg.py config/seg/kittisf/kittisf_unsup_woinv.yaml --round 1 the first training epoch seems to run fine, but then I get an error - kitti_sf_downsampled/data/000100/pc1.npy can not be found.

Caught FileNotFoundError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/lhome/baurst/anaconda3/envs/OGC/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop
data = fetcher.fetch(index)
File "/lhome/baurst/anaconda3/envs/OGC/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 49, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/lhome/baurst/anaconda3/envs/OGC/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 49, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/lhome/baurst/workspace/liflow2/OGC/datasets/dataset_kittisf.py", line 91, in getitem
pcs, segms, flows = self._load_data(idx, view_sel)
File "/lhome/baurst/workspace/liflow2/OGC/datasets/dataset_kittisf.py", line 67, in _load_data
pc1, pc2 = np.load(osp.join(data_path, 'pc%d.npy'%(view_id1 + 1))), np.load(osp.join(data_path, 'pc%d.npy'%(view_id2 + 1)))
File "/lhome/baurst/anaconda3/envs/OGC/lib/python3.8/site-packages/numpy/lib/npyio.py", line 390, in load
fid = stack.enter_context(open(os_fspath(file), "rb"))
FileNotFoundError: [Errno 2] No such file or directory: '/path/to/kitti_sf_downsampled/data/000100/pc1.npy'
File "/lhome/baurst/workspace/liflow2/OGC/train_seg.py", line 97, in eval_epoch
for i, batch in tbar:
File "/lhome/baurst/workspace/liflow2/OGC/train_seg.py", line 192, in train
val_loss, val_avg, ap_eval_meter = self.eval_epoch(test_loader)
File "/lhome/baurst/workspace/liflow2/OGC/train_seg.py", line 350, in
trainer.train(args.epochs, train_set, train_loader, val_loader)

Thanks in advance for taking a look & thank you for your help!
Best regards.

On SemanticKITTI object segmentation

Thank you very much for your work. I noticed that in the SemanticKITTI data set, you only segmented cars as the experimental results. I would like to ask if it is possible to carry out the experiment for all the SemanticKITTI objects in the paper?

SemanticKITTI Training

Hi,

Thanks for your contribution.

Could you please tell me why there is no training part of SemanticKITTI?

Judy

Questions about correct order and paths when running the full pipeline

Hi,

thank you for publishing the code to your very interesting paper!

Could you please kindly look at my steps that I did to try to reproduce the results in the paper? Clearly I must be doing something wrong, but I cannot figure it out, since there are a lot of steps involved. Thank you very much in advance for taking a look. Your help is very much appreciated!

Here is how I adapted the experiment (mainly data and save paths) to my machine:

  • config/flow/kittisf/kittisf_unsup.yaml

    • old save_path: 'ckpt/flow/kittisf/kittisf_unsup/epoch=23.ckpt'
    • new save_path: '/mnt/ssd4/ogc/ckpt/flow/kittisf/kittisf_unsup/epoch=23.ckpt'
    • old root: '/home/ziyang/Desktop/Datasets/KITTI_SceneFlow'
    • new root: '/mnt/ssd4/ogc/kitti_sf'
  • config/seg/kittidet/kittisf_unsup.yaml

    • old save_path: 'ckpt/seg/kittisf/kittisf_unsup'
    • new save_path: '/mnt/ssd4/ogc/ckpt/seg/kittisf/kittisf_unsup'
    • old root: '/home/ziyang/Desktop/Datasets/KITTI_Object'
    • new root: '/mnt/ssd4/ogc/kitti_det'
  • config/seg/kittisf/kittisf_sup.yaml

    • old save_path: 'ckpt/seg/kittisf/kittisf_sup'
    • new save_path: '/mnt/ssd4/ogc/ckpt_out/seg/kittisf/kittisf_sup'
    • old root: '/home/ziyang/Desktop/Datasets/KITTI_SceneFlow_downsampled'
    • new root: '/mnt/ssd4/ogc/kitti_sf_downsampled'
  • config/seg/kittisf/kittisf_unsup.yaml

    • old save_path: 'ckpt/seg/kittisf/kittisf_unsup'
    • new save_path: '/mnt/ssd4/ogc/ckpt/seg/kittisf/kittisf_unsup'
    • old root: '/home/ziyang/Desktop/Datasets/KITTI_SceneFlow_downsampled'
    • new root: '/mnt/ssd4/ogc/kitti_sf_downsampled
    • old batch_size: 4
    • new batch_size: 2
  • config/seg/kittisf/kittisf_unsup_woinv.yaml

    • old save_path: 'ckpt/seg/kittisf/kittisf_unsup_woinv'
    • new save_path: '/mnt/ssd4/ogc/ckpt_out/seg/kittisf/kittisf_unsup_woinv'
    • old root: '/home/ziyang/Desktop/Datasets/KITTI_SceneFlow_downsampled'
    • new root: '/mnt/ssd4/ogc/kitti_sf_downsampled'
    • old batch_size: 4
    • new batch_size: 2
  • config/seg/semantickitti/kittisf_unsup.yaml

    • old save_path: 'ckpt/seg/kittisf/kittisf_unsup'
    • new save_path: '/mnt/ssd4/ogc/ckpt/seg/kittisf/kittisf_unsup'
    • old root: '/home/ziyang/Desktop/Datasets/SemanticKITTI'
    • new root: '/mnt/ssd4/ogc/SemanticKITTI'

After this, I did the following steps:

KITTI_SF="/mnt/ssd4/ogc/kitti_sf"
KITTI_DET="/mnt/ssd4/ogc/kitti_det"
SEMANTIC_KITTI="/mnt/ssd4/ogc/SemanticKITTI"

python data_prepare/kittisf/process_kittisf.py ${KITTI_SF}

python test_flow_kittisf.py config/flow/kittisf/kittisf_unsup.yaml --split train --test_model_iters 5 --save
python test_flow_kittisf.py config/flow/kittisf/kittisf_unsup.yaml --split val --test_model_iters 5 --save

python data_prepare/kittisf/downsample_kittisf.py ${KITTI_SF} --save_root ${KITTI_SF}_downsampled
python data_prepare/kittisf/downsample_kittisf.py ${KITTI_SF} --save_root ${KITTI_SF}_downsampled --predflow_path flowstep3d

python data_prepare/kittidet/process_kittidet.py ${KITTI_DET}
python data_prepare/semantickitti/process_semantickitti.py ${SEMANTIC_KITTI}

for ROUND in $(seq 1 2); do
    python train_seg.py config/seg/kittisf/kittisf_unsup_woinv.yaml --round ${ROUND}
    python oa_icp.py config/seg/kittisf/kittisf_unsup_woinv.yaml --split train --round ${ROUND} --test_batch_size 2 --save
    python oa_icp.py config/seg/kittisf/kittisf_unsup_woinv.yaml --split val --round ${ROUND} --test_batch_size 2 --save
done

python train_seg.py config/seg/kittisf/kittisf_unsup.yaml --round ${ROUND}

# KITTI-SF
python test_seg.py config/seg/kittisf/kittisf_unsup.yaml --split val --round ${ROUND} --test_batch_size 2

For the last command I am getting:
AveragePrecision@50: 0.3241964006222572
PanopticQuality@50: 0.2567730165763252 F1-score@50: 0.35737439222042144 Prec@50: 0.26614363307181654 Recall@50: 0.5437731196054254
{'per_scan_iou_avg': 0.5634193836152553, 'per_scan_iou_std': 0.020407961700111627, 'per_scan_ri_avg': 0.6674587628245354, 'per_scan_ri_std': 0.00429959088563919}

# KITTI-Det
python test_seg.py config/seg/kittidet/kittisf_unsup.yaml --split val --round ${ROUND} --test_batch_size 2

I am getting:
AveragePrecision@50: 0.13945170257439435
PanopticQuality@50: 0.1318724309223011 F1-score@50: 0.19702186647587533 Prec@50: 0.13796774698606545 Recall@50: 0.3444609491048393
{'per_scan_iou_avg': 0.45250289306404357, 'per_scan_iou_std': 0.0, 'per_scan_ri_avg': 0.4861106249785733, 'per_scan_ri_
std': 0.0}

# SemanticKITTI
python test_seg.py config/seg/semantickitti/kittisf_unsup.yaml --round ${ROUND} --test_batch_size 2

AveragePrecision@50: 0.10315215577576131
PanopticQuality@50: 0.0989709766834506 F1-score@50: 0.15591615175838772 Prec@50: 0.10372148859543817 Recall@50: 0.31385
31283601174
{'per_scan_iou_avg': 0.4351089967498311, 'per_scan_iou_std': 0.0, 'per_scan_ri_avg': 0.4129963953279687, 'per_scan_ri_s
td': 0.0}

Am I doing something fundamentally wrong? Thanks again for taking a look!

geometric constraints

i view your video , it seems that your model often divides an object into two, or more, so the geometric constraints or loss designed is not perfect?
image

Question about the ground removal on SemanticKITTI and KITTIdet.

Thanks for your wonderful work! I have a question regarding the application of ground removal (apply the self-supervised scene flow estimator to points above the ground only.) on the real-world SemanticKITTI and KITTIdet datasets. Should ground removal also be applied to these datasets?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.