This is a joint project between myself (Dawn Murphy) and Miri Zuskin.
The project is a script that should accept an image from the user and tell whether it most closely resembles cubism, realism, or impressionism.
The final version of the project can be located here: https://github.com/aurumbow/ArtStyleIDer/tree/finalvers
Previous iterations are available in the other branches of the repository.
We didn’t intend to expand on any of the examples shown, we just wanted to make a more personalized image identifier because we were interested in seeing how the computer told abstract art pieces apart from representational art pieces.
We discussed various concepts for categories we would teach the machine (ideas included art nouveau, photorealism, and anime) and how we would move forward with each of those ideas. After a few iterations, we realized that KNN doesn’t have any way to identify the features of an image, so we had to move to using a specially trained ImageClassifier.
As is usually the case, the pieces of code work individually, but when combined, one of them does not run for an unknown reason. In this instance, when the line of code to call the ImageClassifier (called imgClassifier in the code) exists, it causes the KNN classifier to be unable to load the JSON file properly, so the program always returns undefined, because it is trained on an empty JSON file. When that line of code is removed, the JSON loads, but you cannot use it, because the call to the ImageClassifier doesn’t exist in the code.
Given more time, we would like to more thoroughly investigate this bug – unfortunately we spent a lot of time planning and rewriting iterations of the code, which left little time for debugging the final version – and ideally get rid of it so the entire program works properly. We also would like to add more categories, to push the program farther so we can really see how it tells the difference between representational and non-representational images.