GithubHelp home page GithubHelp logo

shiqiu0419 / baaf-net Goto Github PK

View Code? Open in Web Editor NEW
104.0 104.0 17.0 6.17 MB

Semantic Segmentation for Real Point Cloud Scenes via Bilateral Augmentation and Adaptive Fusion (CVPR 2021)

License: MIT License

Python 33.74% Shell 0.28% C++ 63.29% C 0.39% Cuda 2.29%

baaf-net's People

Contributors

shiqiu0419 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  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

baaf-net's Issues

Windows installation

Thanks for the great work and for sharing the code. I'm wondering have you tested it on windows? and would it be possible to train a model on Windows? Since this is based on RandLA and people had problems training RandLA on Windows.

About visualization

Hello author, could you please tell me that no coordinate information is displayed when the duplicate result is opened with the software? Could you please tell me how to handle the output file so that it can be opened normally? Looking forward to your reply, thank you

How to use multi-gpu for training

Dear sir:
Have you try to use multi-gpu for your training?
I have changed the code
os.environ['CUDA_VISIBLE_DEVICES'] = "str(FLAGS.gpu)"
to
os.environ['CUDA_VISIBLE_DEVICES'] = "0, 1"
When I type the message "nvidia-smi" in the command line , and I found that gpu1 is still not working in fact. It still have the problem of "OOM".How should I fix this?

The Input need to be fixed in network?

Hi,thanks for your @ShiQiu0419
Due to I saw the network have a parameter "num_points" in network to do Fathest Point Sampling,so why not use point.shape[0] as a dynamic n_points?
Because the number of point in semantic KITTI is not all the same but in a range of 120000~130000.So whether the performance will be influenced if I change the way of setting the number of point?

I have a question about how the network be used on semantic KITTI that if the input is 64*2^10 with batch_size 1, the gpu memory useage is about 18G+ like below:

Sat Dec 11 21:38:27 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 465.31       Driver Version: 465.31       CUDA Version: 11.3     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| 36%   47C    P2   114W / 370W |  18763MiB / 24265MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1005      G   /usr/lib/xorg/Xorg                596MiB |
|    0   N/A  N/A    723501      C   ...conda3/envs/pc/bin/python    18163MiB |
+-----------------------------------------------------------------------------+

About the cuda error.

Hello, thank you for your good work.
when I try to train the network with S3DIS, I get this error report:
tensorflow.python.framework.errors_impl.NotFoundError: /home/logic/Desktop/2021Project/BAAF-Net/utils/sampling/tf_sampling_so.so: undefined symbol: __cudaPushCallConfiguration
Do you have any suggestions?

The error in the code running

It is a good job, but I encountered some problems. After processing the data, there is no error, and the .ply file is also generated, but when I run BAAF-Net.py and main_s3dis.py , both files report the same error: 'process finished with exit code 139 (interrupted by signal 11: SIGSEGA)'.Besides, It can't Debug in the Pycharm. This troubles me. What should I do in this situation?

Bilateral Context Module ends with downsampling?

Maybe it's not too significant,

but it seems like your Bilateral Context Module ends with DownSampling, whereas the figure 2. in your paper describes BCM to end with Bilateral context block. Is it intended or is there something I'm missing?

model.summary() / model parameters calculation issue

I want to Print model summary, but when I call model.summary() in s3dis.main after model = Network(dataset, cfg) attribute error occurs.
If you know any other way to calculate the number of model parameters that will be also helpful.

thankyou

Error: AttributeError: 'Network' object has no attribute 'summary'

Attribute is missing!

when I run the data_prepare_s3dis it gives me the following error:

File "E:\Research\Codes\BAAF-Net\BAAF-Net-main\helper_tool.py", line 215, in grid_sub_sampling
    return cpp_subsampling.compute(points, features=features, classes=labels, sampleDl=grid_size,
AttributeError: module 'cpp_wrappers.cpp_subsampling.grid_subsampling' has no attribute 'compute'

so the compute attribute is missing, what can I do?!

An error was reported about running

Hello, I ran the test area5 in the process of replicating, and the code reported an attributeerror: type object 'iteratorbase' has no attribute 'from_structure, may I ask how to solve it? I have been troubled for a long time. Thank you for your reply, including the result of your repetition, can you open and display no coordinate information?,thank you

The shifted neighbors and shifted neighbor feature in the BCM

Dear Sir:
Hi , I am confused with the shifted problem in the bilateral context module.According to my memory, the RandLA-Net is not have the shifted problem.And your code is built on RandLA-Net.Is this a basic challenge in the point cloud semantic segmentation?
what caused you to consider to solve it?I would like to take this opportunity to learn your way of thinking from you.Moreover, can you share your opinions about the problems exited in point cloud semantic segmentation.

How to train Semantic3D dataset ?

Thanks for your excellent work about point cloud semantic segmentaton。
I have tested the S3DIS dataset with the code you shared。But my own dataset is same as semantic3D dataset,so I want to know if you have any plans to share the code for training the Semantic3D dataset recently。

Ques about FPS and RS.

Hi, Dear PhD.QIU. @ShiQiu0419 Thanks for your opensource code. And I have some question need help.

  • Since the open source code does not contain the SemanticKITTI dataset, I coded and trained this part based on the RandLA-Net code and it seems to work fine. However I am not sure if there is a potential problem, can you help me review this section?
    This part of my code is in https://github.com/huixiancheng/My_BAAF_with_SemanticKITTI

  • I note that you conducted comparative experiments on sampling methods in this part of the ablation experiments in the supplementary material. The repo is the official code, so it does not include test part of the ablation experiment.
    QQ截图20220713094055
    QQ截图20220713094049
    Currently I am learning the differences between different sampling methods, so I want to implement BAAF with RS.
    Which means bigger modification, mainly including data batch process parts like below.

    BAAF-Net/main_S3DIS.py

    Lines 168 to 177 in 663d168

    @staticmethod
    def get_tf_mapping2():
    # Collect flat inputs
    def tf_map(batch_xyz, batch_features, batch_labels, batch_pc_idx, batch_cloud_idx):
    batch_features = tf.concat([batch_xyz, batch_features], axis=-1)
    input_list = [batch_features, batch_labels, batch_pc_idx, batch_cloud_idx]
    return input_list
    return tf_map

    Since I am not good at tensorflow framework pipeline, can you please share this part of the code?
    My email address is [email protected].

Thank you in advance for any potential help.

Source Code

Hi, @ShiQiu0419
I am very interesting in you work, so i want to know when the source code of this project will be published?
Thank you very much!

Best Regards.

where is the code ?

your paper has a note that the code has availabel here, while is not. I want to konw when the code will be avalilable?

The problem about aug_loss

Hi, it is a good job.I am interested in it! But I am confused with aug_loss.
The code is followed:

aug_loss_weights = tf.constant([0.1, 0.1, 0.3, 0.5, 0.5])
aug_loss = 0 # new_xyz_list=(B,N,16,3)...xyz_list=(B,N,3)...
for i in range(self.config.num_layers):
centroids = tf.reduce_mean(self.new_xyz[i], axis=2) # (B,N,3)
relative_dis = tf.sqrt(tf.reduce_sum(tf.square(centroids-self.xyz[i]), axis=-1) + 1e-12) # (B,N,1)
aug_loss = aug_loss + aug_loss_weights[i] * tf.reduce_mean(tf.reduce_mean(relative_dis, axis=-1), axis=-1) #weight*B

Q1: why is the aug_loss_weight assigned like this?
Q2: the output of code" tf.reduce_mean(tf.reduce_mean(relative_dis, axis=-1), axis=-1)" is B? Is my remarks correct? I hope to get your reply.

About training time

Thank you for sharing the code. How long is your training time on these three data sets?

Mild request on code review written in pytorch

Hello,

I have been doing projects on implementing your code on PyTorch, and the link is here

https://github.com/deepshwang/BAAF-pytorch

However, the model I coustructed is not converging, and is in process of debugging it...

I know it's a tedious and time-consuming to review other's code, but wish you may review the model if you have some free time.. :)

Many thanks to your outstanding work!

不同版本的cuda报错

作者,您好,请问我在win10下用cuda10.2和cudnn7.6跑代码,S3DIS数据预处理那个文件报错ImportError: DLL load failed: 找不到指定的模块。我找了半天觉得就是cuda调用那块,所以您觉得是什么出问题了呢?

The training parameters of S3DIS

Hello, I have followed your tips, and trained the model. On Area 5, S3DIS dataset, the model I trained only achieved 61.078 mIOU. The mIoU in your paper is 65.4. Could your share your training parameters on S3DIS dataset? Looking forward to your reply.

The result of L_out is nan, and Acc is 0.00

EPOCH 0
Step 00000050 L_out= nan Acc=0.00 --- 1006.39 ms/batch
Step 00000100 L_out= nan Acc=0.00 --- 924.97 ms/batch
Step 00000150 L_out= nan Acc=0.00 --- 908.08 ms/batch
Step 00000200 L_out= nan Acc=0.00 --- 760.66 ms/batch
Step 00000250 L_out= nan Acc=0.00 --- 811.27 ms/batch
Step 00000300 L_out= nan Acc=0.00 --- 967.48 ms/batch
Step 00000350 L_out= nan Acc=0.00 --- 719.22 ms/batch
Step 00000400 L_out= nan Acc=0.00 --- 828.67 ms/batch
Step 00000450 L_out= nan Acc=0.00 --- 696.24 ms/batch
Step 00000500 L_out= nan Acc=0.00 --- 873.87 ms/batch
Step 00000550 L_out= nan Acc=0.00 --- 719.05 ms/batch
Step 00000600 L_out= nan Acc=0.00 --- 788.21 ms/batch
Step 00000650 L_out= nan Acc=0.00 --- 798.09 ms/batch
Step 00000700 L_out= nan Acc=0.00 --- 925.55 ms/batch
Step 00000750 L_out= nan Acc=0.00 --- 741.91 ms/batch
0 / 200
50 / 200
100 / 200
150 / 200
eval accuracy: 0.18944735107421876
mean IOU:0.01457287315955529
Mean IoU = 1.5%

1.46 | 18.94 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Best m_IoU is: 1.457

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.