na-z / sess Goto Github PK
View Code? Open in Web Editor NEW[CVPR2020 Oral] SESS: Self-Ensembling Semi-Supervised 3D Object Detection
License: MIT License
[CVPR2020 Oral] SESS: Self-Ensembling Semi-Supervised 3D Object Detection
License: MIT License
Hi, thank you very much for your nice work.
I have a question about the size consistency loss. The function compute_size_consistency_loss
uses the following code to get the size of bounding boxes:
size_class = torch.argmax(end_points['size_scores'], -1)
...
size_base = torch.index_select(mean_size_arr, 0, size_class.view(-1))
...
size = size_base + size_residual
And the consistency loss is calculated using MSE. Since torch.argmax()
is non-differentiable, this loss seems only to affect the prediction of size residual and has no direct influence on the prediction of the size class. From my point of view, the size consistency loss should use KL-divergence as an additional term to minimize the difference of size scores generated by the teacher and student (like the class consistency loss). But your code doesn't do it and still has great performance.
Is it intended behavior? Are there any intuitions behind it?
Hi, @Na-Z ,thanks for opening source the code, I have two question after reading the paper.
1.I see that you say "Note that our SESS is initialized by the VoteNet weights pre-trained on the corresponding labeled data", I just wonder why you use pretrained weight, does the result that training from scratch is bad? Or using pretrained weight is a common method in semisupervised training? What's more, I just advise that you can use the pre-trained weight trained from SUN and train SESS with ScanNetV2 or reverse,I just think this is the right way to use pretrained weight, as we don't have a pretrained weight on a new collected dataset without label in reality.
2.Does more unlabeled data, more better performance? how is the performance if you training with all train,val,test data?
Hi, Can you provide the visual code for sunrgbd and scannet? thanks!
Hello.
There may be some mistakes in the initial function of the class SunrgbdDetectionVotesDataset
.
You use the test_transductive
parameter in eval.py.
Lines 97 to 100 in 653c90d
But there is no such parameter in the class SunrgbdDetectionVotesDataset
.
sess/sunrgbd/sunrgbd_detection_dataset.py
Lines 42 to 45 in 653c90d
Hope you can fix this issue as soon.
Thanks.
Hi @Na-Z,thanks for sharing this great work.
how to train with 100% label?
When I set labeled_ratio_list to [1. 0] for training,valueerror: num samples should be a positive integer value, but got num sample = 0.Then I set “shuffle” in dateloader to false, an error is still reported. I hope to get your suggestions
hi,nazhao,I‘m trying semi-supervised learning method on 3d object detection on outdoor dataset,I just wonder How did you think of using 100% trainset both as labeled data and unlabeled data,as in image object detection,for semi-supervised learning,I didn't see people using that data config。For the work 3DIoUMatch that following your work, they use same dataconfig with you,they also give outdoor dataset kitti‘s result,the result looks good,but I can’t reproduce the result。
Traceback (most recent call last):
File "eval.py", line 100, in
test_transductive = FLAGS.transductive)
File "/root/sess-master/scannet/scannet_detection_dataset.py", line 67, in init
os.path.join(self.raw_data_path, labeled_sample_list)).readlines()]
AttributeError: 'ScannetDetectionDataset' object has no attribute 'raw_data_path'
Thanks for sharing your excellent work, but I have a question if I want to run this code with multi-GPUs, how can I modify the code?
By the way, what's your GPU using for training this network, Tesla V100 or others?
Hi @Na-Z,thanks for sharing this great work.
According to tabel2 of the paper, SESS outperforms Votenet with a big margin with 100% training label, I'm wondering did SESS use non-labeled val data for semi-surpervised training? If not, would it boost performence using non-labeled val data?
Looking forward for your reply
please
Thanks for your great work! Can I use your code to train other data sets? Liking Kitti. What needs to be changed? Thanks!
Hi Na,
congratulations on your nice work.
Unfortunately, I missed attending your live Q&A at Virtual CVPR.
I have a question regarding other datasets.
Given your expertise on VoteNet, do you think their/your pipeline also works on outdoor 3D Object Detection Datasets like
or have you even tried it yourself on such a dataset?
Greets, Martin
I can't find the folders sunrgbd_trainval/train_data_idx.txt or train_data_idx.txt, when I run extract_split.m. Could you give me some advice?
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.