If you have a lot of pictures sitting around for whatever reason, it can be a pain to organize or have to sift through all of them just to find one picture of your cat from 5th grade.
What it does
All you have to do is tell Categorpic what folder (hopefully full of pictures) to categorize for you, and it will partition the folder for you into groups of related pictures.
How I built it
Categorpic is built with python, and the GUI is built with the Tkinter package. Looking through a folder, each image is sent through the google cloud vision api and information about labels and/or web entities related to the image are received. Using all this information from every image, Categorpic determines which of the labels/entities would make the best categories to divide the folder into, and then places files into the categories they match.
Challenges I ran into
It took me a while to get started because my initial team ended up disbanding so I had to come up with a new idea that was more feasible to do alone in a shorter amount of time. Also, at first my program was way too slow processing the images. Thankfully I figured out that the latency was caused by my program having to communicate over the internet with the google cloud for every image, serially. Adding parallelization increased performance dramatically.
Accomplishments that I'm proud of
- Made a project using a fancy cloud API
- Algorithm does a great job at organizing Kpop idols into their respective groups, something I'll be using for sure
- First time using multi-threading outside of a classroom environment/project ## What I learned I learned how to make a GUI with python, threading in python, and how to use google cloud vision to get all of the world's information in my program's little fingertips. ## What's next for Categorpic Enhancing the partition algorithm, making it more robust. More useful features (categories based on user input, image search) A more polished GUI with loading animations. Not require users to have a service key for google cloud services