Pointnet_Pointnet2_pytorch icon indicating copy to clipboard operation
Pointnet_Pointnet2_pytorch copied to clipboard

the format of dataset

Open hongyiWeng opened this issue 3 years ago • 16 comments

I am just starting learning PointNet2. I want to know why the data is six dimension instead of three dimension, such as "x,y,z".And if i want to train my data, what I should do to deal with my own dataset?

hongyiWeng avatar Nov 01 '21 03:11 hongyiWeng

Hi, Dimension Issue: as per the paper dimensions can be extended based on the additional features. For 6 dimensions, it should be the x,y,z coordinate along with the vertex color. For 9 dimensions, you can have the normal values for the vertex as well. Training Issue: I have just started to use this implementation, will update this thread when I train my own dataset.

ThakurSarveshGit avatar May 24 '22 02:05 ThakurSarveshGit

Thank u for your answer.I have already solved this problem.When I train my data,the most important is the delimiter in our data.In this project,',' is used to be a char that splits data,so we should care about our data or change the delimiter in code.

hongyiWeng avatar May 24 '22 07:05 hongyiWeng

Thanks for updating. Have you tried the network on a windows machine too? Does it require cuda support when running on Linux?

ThakurSarveshGit avatar May 24 '22 07:05 ThakurSarveshGit

Thanks for updating. Have you tried the network on a windows machine too? Does it require cuda support when running on Linux? I tried this network on Ubuntu18.04.But i think it absolutely can run in Win as long as u have already installed Pytorch.It also need CUDA.

hongyiWeng avatar May 24 '22 08:05 hongyiWeng

When I run the following command: python train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg I get this error:

  File "C:\Users\Marsar\anaconda3\envs\PointNet\lib\site-packages\numpy\lib\_datasource.py", line 533, in open
    raise IOError("%s not found." % path)
OSError: data/modelnet40_normal_resampled/lamp\lamp_0016.txt not found.

Any idea why dataset is inconsistent?

ThakurSarveshGit avatar May 24 '22 08:05 ThakurSarveshGit

Perhaps the pathroot in Win is splited by '/' instead of ''.Because on Linux ,root is splited by '/'.U can try to change this question. Besides,it's important that your code,_datasource.py. shoud be included in the file that contains 'data/xxxxxx'. Finally,in your root,'/lamp\lamp_0016.txt' have different delimiter ,'' and '/'.I think it may be a problem

hongyiWeng avatar May 24 '22 08:05 hongyiWeng

Thanks for these inputs, one problem I see is that the modelnet40_train files has image paths of classes which are not even in the modelnet40_normal_resampled. In this dataset, there is no data for Lamp though in the modelnet40_train file paths for lamp data is mentioned. What would be the quickest way to resolve this?

DatasetError

lamp

ThakurSarveshGit avatar May 24 '22 08:05 ThakurSarveshGit

Thanks for these inputs, one problem I see is that the modelnet40_train files has image paths of classes which are not even in the modelnet40_normal_resampled. In this dataset, there is no data for Lamp though in the modelnet40_train file paths for lamp data is mentioned. What would be the quickest way to resolve this?

DatasetError

lamp

Wll,in my memory,there are other file that contains complete data from airplane_0001.txt.Whether u run the code directly or u have changed something?

hongyiWeng avatar May 24 '22 08:05 hongyiWeng

No, I haven't changed anything yet. Just trying to run the cloned directory with the dataset downloaded from the given link.

ThakurSarveshGit avatar May 24 '22 08:05 ThakurSarveshGit

OK, u can click the file,lamp, and find that the file whether contain lamp_0016.txt or not. And u can check 'modelnet40_test' that whether have the txt,because the data have been divided into train model and test model,which use differnet data.

hongyiWeng avatar May 24 '22 09:05 hongyiWeng

in the code,author first read the file,'modelnet40_train',to choose the data that the model should use.U can debug the code and see whether the name of data file have already been input to the running code.

hongyiWeng avatar May 24 '22 09:05 hongyiWeng

OK, u can click the file,lamp, and find that the file whether contain lamp_0016.txt or not. And u can check 'modelnet40_test' that whether have the txt,because the data have been divided into train model and test model,which use differnet data.

Thanks for the info. I checked that a some of classes are missing from the dataset but are included in the modelnet40_test and modelnet40_train files. If I remove all instances of unavailable classes, there is no error but the program stops right after epoch 1 with a bunch of binary values(I believe being read from some text file). I have to check if I can get the correct dataset to begin with. I will need to debug it.

ThakurSarveshGit avatar May 24 '22 09:05 ThakurSarveshGit

wish u success

hongyiWeng avatar May 24 '22 09:05 hongyiWeng

Thanks. I redownloaded the dataset from the same link, and to my surprise it has all the classes! I ran the same script and now it training fine(still training). Thanks!

(I am on windows, if it helps anyone)

ThakurSarveshGit avatar May 24 '22 10:05 ThakurSarveshGit

I realize that gpu usage by the pointnet_cls model is very less, intermittent and max upto 7%. I used Nvidia GeForce 1070TI.

I ended up reducing the epochs to 100 and stopped training at 32 epochs. Test accuracy came out to be 82% which was okay for me, as I only wanted to inspect how network is learning.

ThakurSarveshGit avatar May 25 '22 02:05 ThakurSarveshGit

OK,congratulation !

hongyiWeng avatar May 25 '22 02:05 hongyiWeng