Weekly Post #1 - Getting to grips with it all

So here ends my first week of my Major Project.\n\nThis week has been a little more unstructured than I would've liked, setting up tools, reading papers and starting to outline the core requirements to this project.

So what exactly have I done?

  • First supervisor meeting attended

  • Set up initial tools (see list below!)

  • Research Java implementation of Congealing algorithm (sort of)

  • Outline initial requirements

  • Obtain MATLAB licence & set up (again...sort of)

  • Read relevant papers (again see below!)

  • Play around with JavaFX

  • Start Outline Project Specification

  • Start thinking how GUI might look


Initial Tools list
  • Ghost blogging platform
  • Overv.io
    • Board to track issues
    • Integrated with Github
  • Citeulike
    • Easy storage of papers for citation
    • Easy to export bibtex citations
  • Github & Git
    • Storage of notes, documents and source code
    • Private repo
  • Drawing.google.com
    • Drawing of initial GUI designs
  • MATLAB
    • For working on the Congealing code
  • NetBeans
    • Playing around with JavaFX
  • TexMaker
    • LaTeX documentation tool
Java Implementation of Congealing algorithm?

Apparently no such thing exists! Some time spent googling, and reaching out to Erik Learned-Miller led me to the conclusion that a Java implementation is just not out there. This led to my Hurdle #1 blog post - however after talking to Neil we decided it best to just go ahead and use MATLAB to edit the existing Congealing demo, and to integrate this with my Java application.


MATLAB

MATLAB Student Licence was purchased and duly installed on my MacBook. The began the task of figuring out why the application kept crashing. Initially I had a lovely "GC overhead limit exceeded" - easily fixed after some googling. Next issue is a bit more tricky, and has resulted in me raising a Service Request with MathWorks.

MATLAB opens okay, even works for nearly a minute or two, but then decides to stop 'Processing' (see on the left below) and renders the application unusable. The only way to then close it is to force quit. No amount of tutorials and forums helped me solve this issue, so raised a ticket with the team and am now hoping for a swift fix!

Screenshot of frozen MATLAB


Read some papers

So a good place to start was with Erik Learned-Miller's paper 'Data Driven Image Models through Continuous Joint Alignment' published 2006 and available here. He clearly explains what Congealing is and what it does and how by minimising the Entropy between pixels in the same x,y position through a set of images, we can 'align' the entire image. Alignment can be done through Affine Transformations but also through Brightness Alignment (especially useful in reducing bias in MRI Scans).

Currently there are some mathematical concepts in this paper I am not familiar with, but I'm hoping in the coming weeks to read it further and to produce a more detailed blog post outlining Learned-Miller's technique.

I started to research other types of metric I can be using to aligning my images, leading me to Al-sharhan et al's paper on Fuzzy Entropy and Cox et al's on Least Squares Congealing which actually expands upon Learned-Miller's implementation.


What next?

Obviously I would like to get MATLAB working ASAP - however this is currently dependent on the team getting back to my service request. \n\nWith that in mind, a likely list of to-dos for the coming week looks:

  • Complete Outline Project Specification (due 5th February)
  • Once MATLAB is up & running: play around with the Congealing code - can I get it working?
  • Flesh out the requirements of the project into some User Stories
  • More exploratory work with regards JavaFX
  • Find and read some more papers!
  • Read and understand more of Learned-Miller's approach
  • Write a blog post on initial GUI design idea
  • Plan out how to proceed from here I guess!
  • Finish Lovelace Colloquium abstract (more on this in a later blog post)