Inspiration

The puzzle solver challenge seemed to be a cool idea to do. It is pretty cool that we can get a computer to unscramble an image, something normally only humans can do. We were interested to dive deep into a new topic for us such as Computer vision and learn more about the subject by participating in this contest.

What it does

Our project solves a 2x2 picture puzzle that has been scrambled. It takes in an image as input and finds the right order of the image pieces. Our number one aim while building our solver was to make it efficient and ensure that it has the highest accuracy possible.

How we built it

The technologies used to build our solver were Python, Pillow, Numpy, and Matplotlib. Most attempts to build a solver use inefficient machine-learning models. To make sure that we have an efficient solver, we used a math-based approach and utilized the edge pixels to see which parts matched up.

  • NumPy can be used to perform a wide variety of mathematical operations on arrays.
  • Pillow is a python imaging library for working with images.
  • Matplotlib is a cross-platform, data visualization and graphical plotting library for Python and its numerical extension NumPy.

Challenges we ran into

We all spent time learning the foundations of computer vision during the first half of the hackathon. It took time for us to clarify our doubts by supplementing each other's understanding of the concepts. Once, we understood all aspects of the project and its implementation. We brainstormed and tried our best throughout the night to come up with an optimal strategy to efficiently find which parts of the image matched up and to arrange it accordingly. We tested different mathematical models, and after lot of trial and error, we finalized our current model.

Accomplishments that we're proud of

We were able to grasp the essential concepts of computer vision in a short span of time. We learnt libraries like Pillow and Numpy. We were manage minor conflicts within a team and stay motivated for the higher goal of developing the best solver. We are proud to build an efficient picture solver, by breaking down the project into small chunks and reviewed our progress regularly.

What we learned

We learned how to work with images and manipulate them using Numpy, and Pillow. We learnt the importance of evaluating each other's opinions in a team.

What's next for OptimizedPuzzleSolver

Adding in an efficient machine learning model to increase the accuracy of our solver. We plan to generalize our solver to work with n x n picture puzzles.

Built With

Share this project:

Updates