charlesq34 / pointnet

PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
Other
4.73k stars 1.45k forks source link

Per point probability part segmentation #113

Open romanskie opened 6 years ago

romanskie commented 6 years ago

Hey Guys,

I used the pointnet part segmentation with my own data, but since I am new to TF and ML in general I have some issues to understand the output from my testing data.

I got one general category (0) but four part segmentation categories (1, 2, 3, 4). So my category_ID to partsegmentation_ID mapping would look like the following:

0_1, 
0_2,
0_3, 
0_4 

In the test.py file, I get a value for each point via the seg_pred_res variable. Here, the maximum value of each sub-array is the prediction value for the underlying point.

The output for the first three points of a pc from my testing data looks like the following: seg_pred_res:

[-25.713356     3.018743   -18.297947     6.7848225 ] # => pred value is 0_4 
[-27.488546     3.594452   -21.688454     7.40913   ] # => pred value is 0_4
[-26.719145     3.801705   -21.512005     6.8158283 ] # => pred value is 0_4

Could anyone explain me the exact meaning of these values? Are these just probabilities? If not, how can I calculate a probability from such a value? What does for example the value 6.7848225 mean?

Thank you so much :)

Greetings, Roman

sumitsinha commented 6 years ago

Hey Roman,

Since the output layer has no activations the output if not probability values. If you want probabilities you can change the output layer to softmax. In doing this your predicted value (pred_val) will remain the same but your output will be more interpretable as they will be probability values. You can refer the same here.

https://towardsdatascience.com/the-softmax-function-neural-net-outputs-as-probabilities-and-ensemble-classifiers-9bd94d75932