Projects:Sketchy recognition
Nicolas Malevé, Michael Murtaugh
Sketchy recognition
Bread, Nose, Kangaroo or Teddy Bear?
A photograph from the collection of the Museum of Musical Instrument is processed by a contour detector algorithm. The algorithm draws the lines it found on the image sequentially. While it is tracing the contours, another algorithm, a sketch detector, tries to guess what is being drawn. Is it bread? A kangaroo? It is a teddy bear.
Sketchy Recognition (working title) is an attempt to provoke a dialogue with, and between, algorithms, visitors and museum collections.
Cast:
- Musical instruments: MIM collection, Brussels.
- Line detector: The Hough algorithm in the OpenCV toolbox, originally developed to analyse bubble chamber photographs.
- Sketch recognizer: an algorithm based on the research of Eitz, Hays and Alexa (2012), and the code and models by Jean-Baptiste Alayrac.
- Data: from the hands of the many volunteers who contributed to Google's Quick, Draw! Dataset.
- Special sauce, bugs and fixes: Michael and Nicolas
Installation
- (single-board, ie Raspberry Pi) Computer
- Camera
- Drawing surface
- (mini) projector and/or adjacent display
Interactive installation where participants / visitors can draw forms which are interpreted live by a closed-circuit computer vision (CCCV) system. Based on a "ready-made" model trained on sketches from one of 250 pre-determined categories. The model is also used to make connections between the visitors drawing and items from the collection of the Musical Intrument Museum (MIM).
Sources
Collections: Koninklijke Musea voor Kunst en Geschiedenis/MIM
- MIM/Carmentis Saskia Willaerts
- Contours / Algorithm (what is the algorithm in use in opencv?)
- Sketch recognition database / programmer of model -- Using Jean-Baptiste Alayrac's pre-trained model
(Re)sources
- Code for this project
- You were asked to draw an angel
- Assisted drawing ... original blog post
- How Do Humans Sketch Objects?, Eitz, Hays, Alexa (2012)
Humans have used sketching to depict our visual world since prehistoric times. Even today, sketching is possibly the only rendering technique readily available to all humans. This paper is the first large scale exploration of human sketches. We analyze the distribution of non-expert sketches of everyday objects such as 'teapot' or 'car'. We ask humans to sketch objects of a given category and gather 20,000 unique sketches evenly distributed over 250 object categories. With this dataset we perform a perceptual study and find that humans can correctly identify the object category of a sketch 73% of the time. We compare human performance against computational recognition methods. We develop a bag-of-features sketch representation and use multi-class support vector machines, trained on our sketch dataset, to classify sketches. The resulting recognition method is able to identify unknown sketches with 56% accuracy (chance is 0.4%). Based on the computational model, we demonstrate an interactive sketch recognition system. We release the complete crowd-sourced dataset of sketches to the community.
Code
- C/C++ implementation for the paper "How do Human Sketch Objects?" https://github.com/GTmac/Classify-Human-Sketches
- Python/Jupyter https://github.com/ajwadjaved/Sketch-Recognizer
- Jean-Baptist Alayrac's working python code (what we ended up using)
Working sketches + notes (not in publication)