When our team saw the challenge posted by McMaster's material science department, we immediately knew this was a challenge too good to pass. Originally, we thought this was a problem best suited to be solved with an A.I or M.L approach. After a discussion and an investigation with the folks who made the challenge, we realized the best approach was one of basic computational analysis, that, while simple, was by no means easy. The result, was what we consider an unorthodox approach to solve a problem prevalent across the domain of science on the micro scale.
What it does
Project monochrome (PMC) is an image processing software that is capable of detecting as well as estimating, shade, shape, and area. Applications for this technology encompass many of the current problems faced in scientific imaging. Heat maps, and microscopes face the problem of overwhelming amounts of noise, gradients, and disturbances that cause inaccuracies during analysis. PMC aims to solve this problem by giving researchers more control over these environmental variables.
How we built it
Using the OpenCV python library as well as matplotlib among other visualization techniques, we built a working software capable of receiving images as input and outputting desired datapoints such as the fraction of light vs dark pixels, the number of elements in an image, or the average size of said elements.
Challenges we ran into
The biggest challenge was coinciding our image data with our code. The difficulty was in the sheer magnitude of noise in some of the images, wish extremely harsh gradients and unforgiving noise. The images themselves where of size 1024 * 1024, which is good for the sake of computational efficiency, but less so for the resulting accuracy.
Accomplishments that we're proud of
I believe I speak for the team when I say that we're super excited and proud of ourselves for pulling off this incredible hack. The greatest accomplishment is therefore shared between 2 aspects; the first being the accuracy we achieved with our model on hitting the first 3 targets, and the second being how well we worked together as a team. Our problem solving sessions empowered us with the knowledge to try without giving up, and to plan ahead without being arrogant of what we thought we knew.
What we learned
We learned a great deal about OpenCV and Matplotlib. The most interesting things we learned however, centered around the formulae and calculations that preceded each step of the way. For example, thresholding and the OTSU functions where best understood at a mathematical level first. Hence we will walk away having learned very much.
What's next for Project Monochrome
I'm hoping, especially with the dataset downloaded locally, that I can continue to work on this project, improving accuracy, and perhaps solidifying some of the flimsier parts of our code. We hope to expand PMCs capabilities to include that of color, of 3-Dimensional imaging, among other significant improvements.