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.

Log in or sign up for Devpost to join the conversation.