Initial Discovery

At the start of our journey, we looked at the scrambled images and thought to ourselves: what if we hard code this? What if we just use our seam carving knowledge from CSCE 121 to solve this challenge? "Its so easy" they said. "We will be done in 30 minutes" they said. After 3 hours of work just to realize that seam carving is not the way to go as the background got in our way. We were not able to accurately compare the differences between two pixels and make conclusion. We started wracking our brains for other ideas.

Lost in the Sauce

At this point, we are not yet lost in the sauce. Our next idea was to use ML(yea yea yea, the intended way) to brute force recognize all the correct and incorrect images. For each image we are viewing, we rearrange the images in all 24 permutations and have the model output a confidence level for each of these outputs. Then, from those, the classification model selects the permutation with the highest confidence level as a the predicted image.

Sauce is Lost

Through this process, there was one part that was massively overlooked. The training and validation data were all combined into one folder, and for each model we cover some number of the images. Though due to the nature of the order of the files, the model was only repeatedly trained on some arrangements and not others. The model thus performs at ~95% accuracy in some arrangements but near 0 in others. After adding some random sampling of the images to the input datasets, we saw significant increases in the total accuracy across all tests. The highest prediction accuracy we received on a completely new testing set was 93.05%.

Built With

  • blood
  • hint-of-tensorflow
  • sprinkle-of-python
  • sweat
  • tears
Share this project: