Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release notes for 6.0 #893

Closed
sheryjoe opened this issue Jan 13, 2021 · 35 comments
Closed

Release notes for 6.0 #893

sheryjoe opened this issue Jan 13, 2021 · 35 comments

Comments

@sheryjoe
Copy link
Contributor

Please add to this issue a paragraph (plus videos/snapshots for illustration) about each new/improved/bug-fix included in this release. I will consolidate and add to the documentation.

@akenmorris
Copy link
Contributor

akenmorris commented Jan 19, 2021

Studio:
• Added support for mesh inputs with minimal grooming.
• Added a new surface reconstruction method with support for both mesh or image inputs. This method is much faster and is the new default.
• Added support for loading and displaying scalar values from mesh inputs
• Improved particle shape statistics computation speed
• Improved UI responsiveness during optimization
• Added UI tooltips
• Added Help->Keyboard shortcuts
• Show current iteration, number of particles in statusbar during optimization
• Added ability to choose orientation marker (medical, triad) and location (corner)
• Added ability to use 2 viewer (inbetween 1 and 4)
• Added ability to abort grooming step
• Added new checkbox for automatic glyph sizing
• Added support for drag and drop of images and meshes
• Improved distance transform loading for surface reconstruction
• Fixed various bugs (#848, #856, #880, #892, #265, #963, #959, #961)

Optimizer:
• Replaced backend mesh library to fix bugs (#925)
• Switched from OpenMP to TBB allowing multithreading on Mac (#788)

Screenshot showing open meshes in Studio:

studio_meshes

@sheryjoe
Copy link
Contributor Author

Thanks @akenmorris! Could you add a "fancy" snapshot that showcase mesh and feature support in Studio?

@medakk
Copy link
Contributor

medakk commented Jan 19, 2021

  • Support for use_normals in mesh domain: this results in improved shape models on thin domains:
    20201227_ellipsoid_withnormals
    20210119_thinellipsoid_samples
  • Gradient of normals for image domain: this corrects a long standing bug where we used the hessian in place of the gradient of the normal. If you have an existing use case with use_normals enabled, the normal weighting may have to be adjusted
  • Performance improvements in shapeworks optimize:
    • ~20% faster optimization in all domains, from replacing certain data structures (that were originally in place to allow interactive removal of particles during the optimization)
    • ~50% faster optimization in mesh domain, from caching nearest-triangle lookups

@sheryjoe
Copy link
Contributor Author

@medakk thanks!

  • could you add a snapshot for a couple of thin ellispsoid samples with their partices? the view should demonstrate the thin aspect of it.
  • for performance improvement, i suppose this is memory improvement, right?

@medakk
Copy link
Contributor

medakk commented Jan 19, 2021

@sheryjoe

could you add a snapshot

Sure!

i suppose this is memory improvement, right?

No, its faster runtime.

I updated my original comment

@jadie1
Copy link
Contributor

jadie1 commented Jan 19, 2021

DeepSSM:

  • DeepSSM now saves both the "best" and "final" model. The final model is saved after all training epochs have run. The best model is saved after the epoch which had the lowest prediction error on the validation set. The best model makes use of early stopping to prevent overfitting.
  • The error meshes that are output from running the DeepSSM use case can now be visualized in Studio. These meshes have a distance scalar field on them which captures the distance between the true and predicted mesh. To view in studio simply run: ShapeWorksStudio path/to/error/mesh.vtk.

Data Augmentation:

  • In data augmentation the user can now either specify how many PCA components to retain in embedding OR what percentage of population variability to retain. For example, if the user specifies that 95% of population variability should be kept, then the number of components will be automatically selected such that less than 5% of shape variation is lost in embedding.
  • Data augmentation can now be run on a dataset for which Procrustes was used in optimization. When both the local and world .particle files are passed as arguments for data augmentation, the translation is accounted for in the augmented data.
  • A jupyter notebook which demonstrates the data augmentation process has been added (ShapeWorks/DeepSSMViz/Examples/Python/notebooks/tutorials/getting-started-with-data-augmentation.ipynb). In this notebook, parallel violin plots are used to visually compare the distribution of real and augmented data.

Use cases:

  • All use cases now have a tiny test which can be run using the --tiny_test option. When the tiny test is run, only the data necessary for the test is downloaded rather than all of the data.
  • All of the use cases (mesh or segmentation based) can now be run on a subset of the data using the --use_subsample option. Note that the entire dataset is downloaded in this case so that a subset which is representative of the entire dataset can be selected.
  • GroomUtils.py now makes use of Python binding rather than calling command line tools.

Generating shape cohorts:

  • Example shape cohorts can now be generated using the ShapeWorks package GenerateShapeCohort. Currently cohorts of parameterized ellipsoids or supershapes can be generated. Options are available to specify the degree to which the cohort is groomed (i.e. a cohort can be generated to be in alignment or misaligned in various ways).
  • A notebook was added (ShapeWorks/DeepSSMViz/Examples/Python/notebooks/tutorials/getting-started-with-shape-cohort-generation.ipynb) which demonstrates how to use GenerateShapeCohort.

@sheryjoe sheryjoe modified the milestones: 6.0 Leftover, 6.0 Release Feb 15, 2021
@sheryjoe
Copy link
Contributor Author

sheryjoe commented Feb 15, 2021

Please add/update this issue with release notes (including bullet points, snapshots/videos where possible) pertaining to issues you have resolved and merged to alpha/master.
@cchriste @akenmorris @archanasri @riddhishb @medakk @iyerkrithika21 @jadie1 @HeavenlyBerserker

@archanasri
Copy link
Contributor

archanasri commented Feb 16, 2021

Updated ShapeWorks API: Consolidation of mesh-based grooming tools (smooth, decimate, invert normals, reflect, alignment, fill holes, probe volume at mesh vertices, clip, translate, scale, bounding box, quality control, surface to surface distance, to image and to distance transform). Addition of mesh-based query tools (center, center of mass, number of points, number of faces, get field names, set field, get field, set field value, get field value, get field range, get field mean, get field std and comparison). This includes a full complement of unit tests.

New Python ShapeWorks API: In addition to command line and C++ interface, there is Python interface for existing image-based, segmentation-based and mesh-based grooming tools and query tools. This includes a full complement of unit tests.

@iyerkrithika21
Copy link
Contributor

DeepSSM:

* DeepSSM now saves both the "best" and "final" model. The final model is saved after all training epochs have run. The best model is saved after the epoch which had the lowest prediction error on the validation set. The best model makes use of early stopping to prevent overfitting.

* The error meshes that are output from running the DeepSSM use case can now be visualized in Studio. These meshes have a distance scalar field on them which captures the distance between the true and predicted mesh. To view in studio simply run: `ShapeWorksStudio path/to/error/mesh.vtk`.

Data Augmentation:

* In data augmentation the user can now either specify how many PCA components to retain in embedding OR what percentage of population variability to retain.  For example, if the user specifies that 95% of population variability should be kept, then the number of components will be automatically selected such that less than 5% of shape variation is lost in embedding.

* Data augmentation can now be run on a dataset for which Procrustes was used in optimization.  When both the local and world .particle files are passed as arguments for data augmentation, the translation is accounted for in the augmented data.

* A jupyter notebook which demonstrates the data augmentation process has been added (`ShapeWorks/DeepSSMViz/Examples/Python/notebooks/tutorials/getting-started-with-data-augmentation.ipynb`). In this notebook, parallel violin plots are used to visually compare the distribution of real and augmented data.

Use cases:

* All use cases now have a tiny test which can be run using the` --tiny_test` option. When the tiny test is run, only the data necessary for the test is downloaded rather than all of the data.

* All of the use cases (mesh or segmentation based) can now be run on a subset of the data using the `--use_subsample` option. Note that the entire dataset is downloaded in this case so that a subset which is representative of the entire dataset can be selected.

* `GroomUtils.py `now makes use of Python binding rather than calling command line tools.

Generating shape cohorts:

* Example shape cohorts can now be generated using the ShapeWorks package `GenerateShapeCohort`.  Currently cohorts of parameterized ellipsoids or supershapes can be generated. Options are available to specify the degree to which the cohort is groomed (i.e. a cohort can be generated to be in alignment or misaligned in various ways).

* A notebook was added (`ShapeWorks/DeepSSMViz/Examples/Python/notebooks/tutorials/getting-started-with-shape-cohort-generation.ipynb`) which demonstrates how to use `GenerateShapeCohort`.

Videos and images for shape cohort generator:

ellipsoid_segs
supershapes_Segs
supershaped_generate_shapes

ellipsoid_generate_shapes

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 8, 2021

• Added support for loading and displaying scalar values from feature map volumes

@akenmorris wasn't this already included in release 5.5? what is new in release 6?

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 8, 2021

DeepSSM:

  • DeepSSM now saves both the "best" and "final" model. The final model is saved after all training epochs have run. The best model is saved after the epoch which had the lowest prediction error on the validation set. The best model makes use of early stopping to prevent overfitting.
  • The error meshes that are output from running the DeepSSM use case can now be visualized in Studio. These meshes have a distance scalar field on them which captures the distance between the true and predicted mesh. To view in studio simply run: ShapeWorksStudio path/to/error/mesh.vtk.

Data Augmentation:

  • In data augmentation the user can now either specify how many PCA components to retain in embedding OR what percentage of population variability to retain. For example, if the user specifies that 95% of population variability should be kept, then the number of components will be automatically selected such that less than 5% of shape variation is lost in embedding.
  • Data augmentation can now be run on a dataset for which Procrustes was used in optimization. When both the local and world .particle files are passed as arguments for data augmentation, the translation is accounted for in the augmented data.
  • A jupyter notebook which demonstrates the data augmentation process has been added (ShapeWorks/DeepSSMViz/Examples/Python/notebooks/tutorials/getting-started-with-data-augmentation.ipynb). In this notebook, parallel violin plots are used to visually compare the distribution of real and augmented data.

@jadie1 did you update documentation to reflect the above?

@akenmorris
Copy link
Contributor

• Added support for loading and displaying scalar values from feature map volumes

@akenmorris wasn't this already included in release 5.5? what is new in release 6?

Yes, you're right, I think it got included because we didn't close the issue until just recently. I will update the list above.

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 8, 2021

@sheryjoe add fix in #1123 to the release notes.

@jadie1
Copy link
Contributor

jadie1 commented Mar 8, 2021

DeepSSM:

  • DeepSSM now saves both the "best" and "final" model. The final model is saved after all training epochs have run. The best model is saved after the epoch which had the lowest prediction error on the validation set. The best model makes use of early stopping to prevent overfitting.
  • The error meshes that are output from running the DeepSSM use case can now be visualized in Studio. These meshes have a distance scalar field on them which captures the distance between the true and predicted mesh. To view in studio simply run: ShapeWorksStudio path/to/error/mesh.vtk.

Data Augmentation:

  • In data augmentation the user can now either specify how many PCA components to retain in embedding OR what percentage of population variability to retain. For example, if the user specifies that 95% of population variability should be kept, then the number of components will be automatically selected such that less than 5% of shape variation is lost in embedding.
  • Data augmentation can now be run on a dataset for which Procrustes was used in optimization. When both the local and world .particle files are passed as arguments for data augmentation, the translation is accounted for in the augmented data.
  • A jupyter notebook which demonstrates the data augmentation process has been added (ShapeWorks/DeepSSMViz/Examples/Python/notebooks/tutorials/getting-started-with-data-augmentation.ipynb). In this notebook, parallel violin plots are used to visually compare the distribution of real and augmented data.

@jadie1 did you update documentation to reflect the above?

@sheryjoe The documentation was updated for everything except the studio visualization. I just added that on the mkdocs branch: https://github.com/SCIInstitute/ShapeWorks/blob/mkdocs/docs/deep-learning/deep-ssm.md

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 9, 2021

@akenmorris @medakk @jadie1 @iyerkrithika21 @HeavenlyBerserker @riddhishb

What do you think of this as the graphical abstract for R6?

image

@medakk
Copy link
Contributor

medakk commented Mar 9, 2021

@sheryjoe This looks great! (I still have the same nitpick as last time, I'd prefer that the "ShapeWorks 6.0" text not obscure the logo)

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 9, 2021

@sheryjoe This looks great! (I still have the same nitpick as last time, I'd prefer that the "ShapeWorks 6.0" text not obscure the logo)

@akenmorris @medakk @jadie1 @iyerkrithika21 @HeavenlyBerserker @riddhishb

Whenever I move the logo or the text, symmetries are lost. How about this one? I am open to any suggestions here.

image

@akenmorris
Copy link
Contributor

I think the earlier one was better. The text/logo doesn't bother me the way it does @medakk :)

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 9, 2021

1:1 now :) ... any other voters? comments? suggestions?

@iyerkrithika21
Copy link
Contributor

2:1 :-D
I felt the earlier version was better as the logo was visible. In the second version, the logo watermark is too faint in the background.

@jadie1
Copy link
Contributor

jadie1 commented Mar 9, 2021

I agree, 3:1

@archanasri
Copy link
Contributor

3:2

@sheryjoe
Copy link
Contributor Author

sheryjoe commented Mar 9, 2021

not a consensus yet, need more voters. @HeavenlyBerserker @riddhishb ?

@medakk
Copy link
Contributor

medakk commented Mar 9, 2021

I felt the earlier version was better as the logo was visible. In the second version, the logo watermark is too faint in the background.

I agree with this, I prefer the first one too. Maybe make the whole image a little bigger so we can fit logo+name separately
image

@sheryjoe
Copy link
Contributor Author

Final call for voters!!

@akenmorris @archanasri @cchriste @medakk @jadie1 @iyerkrithika21 @HeavenlyBerserker @riddhishb
[A]

image

veruss [B]
image

@akenmorris
Copy link
Contributor

akenmorris commented Mar 10, 2021

A

Also, if you make them separate comments we can vote with thumbs up on each.

@jadie1
Copy link
Contributor

jadie1 commented Mar 10, 2021 via email

@medakk
Copy link
Contributor

medakk commented Mar 10, 2021

B

2 similar comments
@iyerkrithika21
Copy link
Contributor

B

@archanasri
Copy link
Contributor

B

@sheryjoe
Copy link
Contributor Author

2:3 @HeavenlyBerserker @cchriste @riddhishb , please VOTE!!

@HeavenlyBerserker
Copy link
Contributor

A

1 similar comment
@riddhishb
Copy link
Contributor

A

@sheryjoe
Copy link
Contributor Author

Update release notes and abstract to de-emphasize python stuff.
See #1168

@sheryjoe sheryjoe reopened this Mar 26, 2021
@sheryjoe
Copy link
Contributor Author

done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants