limhoyeon / ToothGroupNetwork

3D Dental surface segmentation with Tooth Group Network
165 stars 40 forks source link

bad result when inputting mirrored data #30

Closed whywhyf closed 6 months ago

whywhyf commented 7 months ago

1 what happened

limhoyeon commented 7 months ago

Thank you for your attention for my research. Could I ask you how you mirrored the data? Did you just filpped the coordinates value of each point?

whywhyf commented 7 months ago

Thank you for your attention and reply. yes, I just simply multiply the x-coordinate values of the points by -1.

whywhyf commented 7 months ago

I have tryed this on data(id:00OMSZGW) of your dataset. The segment result is still not ideal. However, I found that when i visualize the data by open3d, it seems that o3d knows the normal vectors of data, though the obj file has no nromal vectors information (vn). And it shows that when i mirrored the data, the normal vectors were also flipped.(maybe this is the reason of bad result?) I was confused because I thought that we can not get normal vectors since the obj had no vn informations

can this be a reason of bad seg result? how can open3d get normal vectors since the obj had no vn informations?

visualized seg result of mirrored 00OMSZGW

we can see that open3d knows the normal vectors normal data, open3d can get the normal vectors now: image mirrored data, open3d shows the flipped normal vectors: image seg result of mirrored data: image

whywhyf commented 6 months ago

I figured it out. In the obj file, the order of point index in 'f' line can represent the direction of normal vectors. Vertices are stored in the counterclockwise direction by default, so there is no need to explicitly declare the normal vector direction. So the bad result of mirrored data is cause by flipped normal vectors(auto happened when simply filpping the x-coordinates value of each point), which are part of model's input.

If you want to test mirrored data, don't forget to adjust the index orders in 'f' line, making sure the normal vectors is still facing outwards.

supgy commented 4 months ago

1 what happened

  • when i input a normal data, the model gives out a perfect result. however when i mirror(Left-right) the data then input it, the model gives out a bad result using a abnormal mount of time

2 problem

  • i believe that, as teeth, the mirrored data should have the similar result as normal data. Becuase teeth should have the property of symmetry
  • so what's the sitution?Did i do something wrong?
  • how should i solve it?
  • Thank you for your help!

3 results of normal data and mirrored data

normal data mirrored data Runtime duration 30s 210s segment result image-20240328202646030 image-20240328185736523-1711623553771-2 segment result image-20240328202658408 image-20240328185935952

4 detail

  • The input data follows the principle of coordinate alignment
  • the input data is not from the dataset of this model. i will try this on dataset of this model later

Hello, I have a question and would like to ask for advice. Are you testing directly using pretrained models on your own data?Did you modify any parameters during testing?