diff --git a/docs/Notes/Pasted image 20250110180214.png b/docs/Notes/Pasted image 20250110180214.png new file mode 100644 index 0000000..7f9d608 Binary files /dev/null and b/docs/Notes/Pasted image 20250110180214.png differ diff --git a/docs/Notes/Pasted image 20250110180302.png b/docs/Notes/Pasted image 20250110180302.png new file mode 100644 index 0000000..d8c7c1f Binary files /dev/null and b/docs/Notes/Pasted image 20250110180302.png differ diff --git a/docs/Notes/Pasted image 20250110180350.png b/docs/Notes/Pasted image 20250110180350.png new file mode 100644 index 0000000..9f858ba Binary files /dev/null and b/docs/Notes/Pasted image 20250110180350.png differ diff --git a/docs/Notes/Pasted image 20250110180459.png b/docs/Notes/Pasted image 20250110180459.png new file mode 100644 index 0000000..fa29faa Binary files /dev/null and b/docs/Notes/Pasted image 20250110180459.png differ diff --git a/docs/Notes/Pasted image 20250110180620.png b/docs/Notes/Pasted image 20250110180620.png new file mode 100644 index 0000000..7d6c466 Binary files /dev/null and b/docs/Notes/Pasted image 20250110180620.png differ diff --git a/docs/Notes/Pasted image 20250110180719.png b/docs/Notes/Pasted image 20250110180719.png new file mode 100644 index 0000000..3775156 Binary files /dev/null and b/docs/Notes/Pasted image 20250110180719.png differ diff --git a/docs/Notes/Pasted image 20250111203551.png b/docs/Notes/Pasted image 20250111203551.png new file mode 100644 index 0000000..f887419 Binary files /dev/null and b/docs/Notes/Pasted image 20250111203551.png differ diff --git a/docs/Notes/Pasted image 20250111210107.png b/docs/Notes/Pasted image 20250111210107.png new file mode 100644 index 0000000..54db3fc Binary files /dev/null and b/docs/Notes/Pasted image 20250111210107.png differ diff --git a/docs/Notes/Pasted image 20250111220818.png b/docs/Notes/Pasted image 20250111220818.png new file mode 100644 index 0000000..bd565d8 Binary files /dev/null and b/docs/Notes/Pasted image 20250111220818.png differ diff --git a/docs/Notes/To Do and Meeting Summaries.md b/docs/Notes/To Do and Meeting Summaries.md new file mode 100644 index 0000000..355d090 --- /dev/null +++ b/docs/Notes/To Do and Meeting Summaries.md @@ -0,0 +1,89 @@ +### TO DO and Meeting Summary January '25 +#### Summary +- Arthur successfully implemented SSM pipeline +- works for partial meshes, ignoring points that are far away (achieved with RANSAC Regressor) +- distal reconstruction in examples looks good +- Arthur noted slight offset proximal rotational alignment would cause more distance offset distally +- Arthur tested different number of landmarks - in future can also tests effects landmark locations +- tps transform faster with fewer landmarks + - note when changing # landmarks need to update number of PCs + +**question from Eva**> should holes be filled automatically or no? we don't want to add extra vertices in there since it might mess with algorithm right? maybe fill with faces *after* resampling? +#### TO DO +**Eva:** +- [ ] test SSM pipeline +- [ ] compare outputs to paper using same dataset and SSMs +- [ ] bring Max onto project to do further landmarking to increase dataset? +- [ ] update remeshing functions to work with newest Slicer, and add optional smoothing +- [ ] testing RANSAC alignment criteria? how "strict" can we go? develop ideas starting point and then increments to increase by until alignment can be achieved + +**Jan:** +- [ ] if time, RANSAC alignment optimization would be great + + +### Eva summary Ransac distance threshold tests + +- default 2.7%, repeat 2x to check variation between runs +- ![[Pasted image 20250110180214.png]] + + +- here relative to target (magenta) +- ![[Pasted image 20250110180302.png]] + +- Ransac = 1 (long axis rotation worse than 2.7 but rest is better aligned, same with distal alignment bc of rotation about other axis) + +![[Pasted image 20250110180350.png]] +green is 2.7, yellow is 1 +![[Pasted image 20250111203551.png]] +earlier test from RANSAC = 1 (better rotation alignment) + +![[Pasted image 20250110180620.png]] + + +Ransac 0.5 in blue - again worse long axis rotation than higher ransac so overall still probably too high ransac value:) zellow was ransac ^1= + +![[Pasted image 20250111210107.png]] + +![[Pasted image 20250111220818.png]] +### TO DO and Meeting Summary Dec '24 +Eva +- [x] upsample meshes + - [x] fill holes + - [x] upsample + - [x] clean +- [x] double check point numbers pre and post crop to make sure no issues + +Jan +- [x] add scaling factor in GUI + - in global_registration: + - Arthur used: + -  `distance_threshold = voxel_size * 1.5 + - voxel_size = size / 55 (size is bounding box)` + - so our default distance_threshold in GUI should be size*1.5/55 + + + - so to replicate Arthur's settings + - if we do 0.007 factor (0.7%) of bounding box size for distance_threshold for ICP + - then 0.027 (2.7%) of bounding box size for distance_threshold for Ransac + - can interconvert, I think it makes sense for user to put it goal for ICP since that is the final one, and calculate Ransac from that + + + +*Idea for setting max deformation allowed* + +- check after rigid alignment max distance between two corresponding points (on cropped models only) + - could use DeCa for this since the models are already aligned +- then use that to inform lambda value for deformation + - ie model allowed to deform enough to match proximal surfaces but distal surface can only deform by this amount + + + +*Other notes from Meeting 29/11/24* +- we discussed that SSMs will not solve our problem (as Jan already stated in thesis defense) + - gives variation in length but would not necessarily help predict where within that feasible space the individual falls + - indeed, other SSM methods for distal humerus reconstruction have issues with getting length exact + - we would be happy to get similar errors to them + - but we can do so by limiting deformation as discussed above + - true length could only really be predicted if some part of proximal morphology can be used as predictor of distal +- future idea find closest match in proximal morphology (after scaling and rigid alignment) + - check if finding closest match from "libary" of models used to create mean model gives better results than using mean model \ No newline at end of file diff --git a/docs/Notes/To_Do.md b/docs/Notes/To_Do.md deleted file mode 100644 index a12fab1..0000000 --- a/docs/Notes/To_Do.md +++ /dev/null @@ -1,41 +0,0 @@ -Eva -- [ ] upsample meshes - - [ ] fill holes - - [ ] upsample - - [ ] clean -- [ ] double check point numbers pre and post crop to make sure no issues - -Jan -- [ ] add scaling factor in GUI - - in global_registration: - - Arthur used: - -  `distance_threshold = voxel_size * 1.5 - - voxel_size = size / 55 (size is bounding box)` - - so our default distance_threshold in GUI should be size*1.5/55 - - - - so to replicate Arthur's settings - - if we do 0.007 factor (0.7%) of bounding box size for distance_threshold for ICP - - then 0.027 (2.7%) of bounding box size for distance_threshold for Ransac - - can interconvert, I think it makes sense for user to put it goal for ICP since that is the final one, and calculate Ransac from that - - - -*Idea for setting max deformation allowed* - -- check after rigid alignment max distance between two corresponding points (on cropped models only) - - could use DeCa for this since the models are already aligned -- then use that to inform lambda value for deformation - - ie model allowed to deform enough to match proximal surfaces but distal surface can only deform by this amount - - - -*Other notes from Meeting 29/11/24* -- we discussed that SSMs will not solve our problem (as Jan already stated in thesis defense) - - gives variation in length but would not necessarily help predict where within that feasible space the individual falls - - indeed, other SSM methods for distal humerus reconstruction have issues with getting length exact - - we would be happy to get similar errors to them - - but we can do so by limiting deformation as discussed above - - true length could only really be predicted if some part of proximal morphology can be used as predictor of distal -- future idea find closest match in proximal morphology (after scaling and rigid alignment) - - check if finding closest match from "libary" of models used to create mean model gives better results than using mean model \ No newline at end of file