This month, the curatorial collaborative project Drift Station, which I’m a part of along with Angeles Cossio, released an online project titled Empty Apartments. We pulled nearly 125,000 photographs of apartments and houses for rent on Craigslist that were completely empty because of a removal service, and presented them as an interactive online exhibition. The project took nearly two years of work, and much of it was manual (Angeles triple-checking every single image by hand to remove ones that included common spaces or non-apartments), but we also used several automated processes and machine learning to sort the photos.
For an upcoming Drift Station project, we’ve been considering how to curatorially sort a massive number of images (about 100k) for presentation. Chronological? Random order? Some other logical scheme? But a more computational approach seemed to make sense: some way of parsing the images that took into account a variety of visual factors in each image, something that would be impossible to do manually.
Neural networks are the obvious answer here, and so I found some very helpful sample code from Gene Kogan and Kyle McDonald, and wrote some Python and Processing code that loads up a folder of images and extracts a vector representation from them. Then, using t-SNE and Rasterfairy, the images were organized into a 2D grid.
I’ve spent the last few days playing with settings in the code, and found there is an interesting balance to be struck between locally preserving color similarity and object similarity. (Note: this post is more of a quick note than a deep-dive analysis.)
Above: a version with blurred images, showing a pretty clear separation by color with fairly smooth transitions. Click on images for a higher-res version. Continue reading “Arranging By Color And Objects With t-SNE”
KAAA, KAAB, KAAC, KAAD, KAAE, KAAF, KAAG, KAAH, KAAI, KAAJ, KAAK, KAAL, KAAM, KAAN, KAAO, KAAP, KAAQ, KAAR, KAAS, KAAT, KAAU, KAAV, KAAW, KAAX, KAAY, KAAZ, KABA, KABB, KABC, KABD, KABE, KABF, KABG, KABH, KABI, KABJ, KABK, KABL, KABM, KABN, KABO, KABP, KABQ, KABR, KABS, KABT, KABU, KABV, KABW, KABX, KABY, KABZ, KACA, KACB, KACC, KACD, KACE, KACF, KACG, KACH, KACI, KACJ, KACK, KACL, KACM, KACN, KACO, KACP, KACQ, KACR, KACS, KACT, KACU, KACV, KACW, KACX, KACY, KACZ, KADA, KADB, KADC, KADD, KADE, KADF, KADG, KADH, KADI, KADJ, KADK, KADL, KADM, KADN, KADO, KADP, KADQ, KADR, KADS, KADT, KADU, KADV, KADW, KADX, KADY, KADZ, KAEA, KAEB, KAEC, KAED, KAEE, KAEF, KAEG, KAEH, KAEI, KAEJ, KAEK...
Thinking about which callsign to unnoficially assign ourselves for the microbroadcasting project at Drift Station, I thought “how many possible combinations of the four-letter callsign can there be?” The answer is 17,576 for both east (prefix of W) and west (prefix of K) of the Mississippi; the list was generated using TextMechanic.com’s great tools.
Inspired by Maxwell’s Demon, a thought-experiment with a box, separated by a wall with a hole in it and one side filled with gas. The experiment asks the question of why does the gas “know” to go through the other hole and fill the second chamber so that it is dispersed evenly?
Written in Processing, the source code is here.