WEEK 1&2
Incoming researchers for 3D Modeling project, Steve Foryoung, Nikita Angarski and Omar Moursy, had an introductory meeting with computational advisors Kseniia Shilova and Ilia Jahanshahi. The discussion focused on introductions, main objective of the project and a proposed plan of action.
A main inspiration behind the project was this paper by Dr. Osamu Hirose, we agreed to use the open source code from Dr. Hirose’s paper to recreate his work and understand the project better.
- Steve Foryoung is the meeting manager for our project, responsible for scheduling meetings, preparing slides for discussion and providing links to meeting recordings.
- Nikita Angarski is taking the lead on the Methods document, creating tasks accordingly and submitting it for review.
- Omar Moursy is the website manager for this project, ensuring this website stays up to date with weekly updates and relevant information to the project.
WEEK 3
Introductory meeting with Dr.Porto
The meeting was an introduction between researchers and Dr. Arthur Porto. Dr. Porto provided a background on the Coherent Point Drift (CPD) algorithm that is used by his ALPACA tool for point set registration. Dr. Porto explained the motivation behind this project in improving the 3D Modeling tools for biological research. The project goal was defined as improving the CPD algorithm and its 3D Modeling accuracy by incorporating biological info extracted from statistical shape models. Key components of this project include a statistical shape model, dataset of pre aligned 3d models and landmarks, NumPy implementation of Coherent Point Drift Algorithm.
- Weekly Progress:
- Steve: Setup meetings with Dr. Porto and Research team and setup a MS Planner for team collaboration.
- Nikita: Set up a pycpd GitHub fork along with environment for programming such as anaconda up, GaTech PyCharm (JetBrain) license, and downloading 3D visualization software (Slicer)
- Omar: Created website for 3D Modeling project and uploaded all weekly reports and meeting recordings. Caught up on Dr. Gatty’s Shape-Med paper and a survey paper on point cloud registration to identify back-up solutions.
- Upcoming Meeting:
- Meeting between researchers and Dr. Arthur Porto on February 4..
- Meeting between researchers and computational advisors on January 31.
- Steve will prepare a slide deck for team presentations on weekly progress.
- Future Developments:
- Using biological information to improve point set registration algorithm used by Dr. Porto’s ALPACA tool .
- Task Management:
- Steve shared MS Planner link for uploading, editing and managing tasks.
- Kseniia suggested sharing one main shared GitHub repo that we can all collaborate through.
WEEK 4
Sync Up meeting between the OMSCS researchers
This meeting we discussed our progress and what we will be working on for the week. We shared some resources and thoughts on the technical knowledge required to tackle this research problem such as GMM, PCA, rigid vs non rigid registration, linear algebra, etc.. We also discussed cloning Nikita’s fork of the pycpd GitHub repo and testing it before the next meeting with Dr. Porto.
Biweekly meeting with computational advisors
Key Updates:
- Nikita ran the PyCPD algorithm on Dr. Porto’s dataset.
- Team is studying Gaussian models, PCA, and statistical shape modeling for CPD improvements.
- Omar created a project website for tracking progress.
Action Items:
- Knowledge Sharing:
- Nikita will explain PyCPD implementation in the next meeting.
- Team will compile research notes on PCA and Gaussian models.
- Short-Term Goals (Next Two Weeks):
- All members replicate the PyCPD process.
- Understand statistical shape models and modify the Gaussian kernel function with PCA.
- Administrative Tasks:
- Upload all weekly reports and method documents to Teams.
- Define clear task assignments after the next meeting.
WEEK 5
Sync Up meeting between the OMSCS researchers
The team discussed issues with running the registration script—specifically, file input challenges—and reviewed the proper dataset processing steps as outlined by Dr. Porto. Omar and Nikita demonstrated the repository cloning and environment setup while team members confirmed the necessary libraries (numpy, matplotlib) were in place. They examined the Py-CPD approach for point cloud registration, delving into parameter tuning and the mathematical role of the Gaussian kernel. The team also planned their upcoming presentation, with Steve preparing an initial slide draft.
Biweekly meeting with Dr. Porto
Current Progress
- The student team (Steve, Nikita, and Omar) successfully ran the existing PyCPD (Coherent Point Drift) code on a sample mouse‐skull dataset provided by Dr. Porto.
- Nikita demonstrated how he adapted the data (originally in JSON/POLY format) for input into PyCPD. The deformable registration converged successfully around 30–34 iterations.
- Everyone has been reviewing the CPD math (Expectation‐Maximization, Gaussian Mixture Models) to better understand how to incorporate biological constraints.
Statistical Shape Model (SSM) Discussion
- Dr. Porto explained how to build a simple statistical shape model via Principal Component Analysis (PCA) on the semi‐landmark data.
- The mean shape (computed across all specimens) will serve as the moving point cloud, and PCA captures how real biological shapes vary.
- Rather than a purely geometric (naive) kernel, the goal is to incorporate these PCA‐based variations into CPD so points deform in more biologically realistic ways.
Code & Method Illustration
- Dr. Porto showed an example Jupyter notebook where PCA is used to parameterize shape variation. His code uses gradient descent (Adam) to fit a mean template to a target shape, whereas the students’ goal is to substitute CPD’s EM optimization with a PCA‐derived kernel.
- Key takeaway: Only one PCA calculation is needed (on the entire population) to define the shape model. Subsequent registrations (for any new target skull) can then use that same model.
Next Steps
- Build the PCA‐based SSM: Flatten the 3D landmarks into vectors, run PCA, decide how many principal components capture sufficient shape variation (e.g. 95%).
- Modify PyCPD: Replace or augment the standard Gaussian kernel with the PCA covariance information so the moving mean shape deforms according to actual biological variation.
- Integration & Testing: Validate that the new kernel improves registration accuracy on sample skulls.
Action Items
- The team will post a clear plan of tasks (meeting summary, updated next steps) in the Teams channel for feedback.
- Dr. Porto will provide any additional reference code or data if needed.
- The group will focus on finalizing the SSM construction and then proceed with PyCPD kernel modifications.
WEEK 6
Sync Up meeting between the OMSCS researchers
During the meeting, Omar and Steve led a math walkthrough on the Coherent Point Drift (CPD) algorithm, sharing resources and clarifying the essential mathematical steps. Nikita highlighted the key alterations needed—specifically, how to incorporate a statistical shape model—so the team broke down the tasks required to modify the algorithm. Moving forward, Nikita will implement a PCA routine on the landmark points for the EM process, Steve will integrate those PCA results (statistical shape model) into CPD’s kernel, and Omar will develop comparison tests between the upgraded method and standard CPD.
Biweekly meeting with computational advisors
Key Updates
- CPD & Shape Model Discussion: Covered Gaussian kernels, eigenvectors/eigenvalues, and using PCA to reduce dimension.
- PCA Built: Validated routine captures 95% variance. Next step is integrating PCA into CPD for improved accuracy.
- Initial Validation: Testing registration accuracy and computation time before full comparison to standard CPD.
Action Items
- PCA-CPD Integration: Incorporate PCA kernel into CPD.
- Performance Comparison: Run tests, measure RMSE/time, and finalize results for Dr. Porto.
- Long-Term: Explore Bayesian CPD, thin-plate spline, and extend PCA-CPD to other shapes.
WEEK 7
Sync Up meeting between the OMSCS researchers
Omar and Steve met to walk through the PyCPD library’s codebase, focusing on where the Gaussian kernel is implemented. They discussed how PyCPD currently relies on a standard Gaussian kernel for the non‐rigid alignment, and how they plan to replace or augment it with a biologically informed approach (e.g., PCA‐based).
Biweekly meeting with Dr. Porto
Meeting Summary (Feb 18, 2025)
- Progress
- Integrated a Statistical Shape Model (SSM) into point cloud registration (replacing standard CPD-EM steps).
- Omar built a testing framework (RMSE, execution time).
- Nikita’s PCA-based registration demonstrates a working prototype (tested on a 3D “Bunny”).
- Challenges & Adjustments
- Need real data validation (mouse skull dataset).
- RMSE alone is insufficient; consider Thin-Plate Splines (TPS) and landmarks to assess full mesh accuracy.
- Refine EM parameter updates (replace W with C).
- Next Steps
- Test SSM method on mouse dataset; compare transformed landmarks to manual ones.
- Explore alternative error metrics and consult Dr. Porto’s research for benchmarks.
- Prepare initial publishable results, aiming for a broader UI integration later.
Action Items
- Validate SSM with real mouse dataset.
- Incorporate TPS/landmark evaluations.
- Refine EM steps for better parameter updates.
- Investigate alternative metrics beyond RMSE.
- Prepare initial publication draft.
WEEK 8
Sync Up meeting between the OMSCS researchers
Key Updates
- PCA-based kernel integrated and optimized through vectorization.
- Proposed robust validation by separating training and test datasets.
- Comparative testing planned between traditional CPD and PCA-based methods.
- Initiated timeline for writing research paper.
Action Items
- Nikita: Conduct in-sample vs. out-of-sample validation.
- Steve: Compare two EM algorithm variants and kernel approaches.
- Omar: Compare performance (vanilla vs PCA-based CPD) and perform landmark validations.
- All: Prepare results for next Dr. Porto meeting; start paper drafting.
Biweekly meeting with computational advisors
Key Updates:
- PCA-based Statistical Shape Model kernel replaced standard Gaussian kernel.
- Explored alternative optimization approach (shape mode weights “C” instead of traditional weights “W”).
- Initiated formal testing plan comparing modified CPD with standard, Bayesian CPD, and Thin-Plate Splines methods.
Action Items:
- Omar: Conduct comprehensive testing comparing CPD variants.
- Nikita: Optimize PCA-based kernel and validate biological accuracy.
- Steve: Complete alternative optimization method implementation.
- Team: Prepare initial results for Dr. Porto’s review and research paper drafting.
WEEK 9
Sync Up meeting between the OMSCS researchers
Key Updates:
- Initial RMSE tests indicated potential overfitting or errors in transformations.
- Implemented resampling method due to unequal source-target point counts.
- Discussed dimensionality and matrix multiplication concerns affecting transformation accuracy.
Action Items:
- Nikita: Confirm resampling accuracy visually using 3D Slicer.
- Omar: Perform transformation sanity checks and investigate accuracy issues.
- Steve: Validate mathematical correctness of transformation matrices.
- Team: Consult with Dr. Porto for validation.