Logo and Side Nav

News

Velit dreamcatcher cardigan anim, kitsch Godard occupy art party PBR. Ex cornhole mustache cliche. Anim proident accusamus tofu. Helvetica cillum labore quis magna, try-hard chia literally street art kale chips aliquip American Apparel.

Search

Browse News Archive

Tuesday, November 20, 2012

Image Processing and Software Epistemology


Turning everything into data, and using algorithms to process is analyze it has a number of major consequences for what it means to know something. It creates new strategies which together make up software epistemology. Epistemology is a branch of philosophy which asks questions such as what is knowledge, how it can acquired, and to what extent a subject can be known. Digital code, algorithms, machine learning, big data, social media, faster processors and larger storage, and other parts of modern techno-social universe introduce new ways of acquiring knowledge, in the process redefining what it means to know something.

if you have a dataset, its always possible to invent new algorithms (or new ways to scale existing algorithms to analyze big data faster) which can analyze the information in ways the previous algorithms could not. You can extract additional patterns and also generate new information from the existing data.

Algorithms and software applications which analyze images and video provide particularly striking examples of the ability to generate additional information from the data years or even decades after it was recorded.

In Blowup, a 1966 film directed by Michelangelo Antonioni, the photographer who takes pictures of a couple kissing in the park uses the strategy of printing progressive enlargements of one area of the photograph, until a grainy close-up reveals a body in the grass and a man with a gun hiding in the trees.

Blow-Up_print
Blowup: Photographer examining the photo he took in the park.

Around the same time as this film was used, computer science researchers were already developing the new field of digital image processing, including the algorithms for image enhancement such as sharpening of edges, increasing contrast, noise reduction, and blur reduction. The early articles in the field show the blurry photographs taken by surveillance planes which were sharpened by the algorithms. Today many of these techniques are build into every image manipulation software such as Photoshop, as well as in the lens and firmware of digital cameras. They become essential to both consumer photography, and commercial visual media, as every published photograph first goes through some software manipulation.

example-digital-image-processing-original
examples-digital-image-processing-result
Typical example of digital image processing taken from a textbook. Top: the original image captured by the camera mounted on a plane. Bottom: the image after it was automatically processed by software.

blow_up_frame1
The still frame from the Blowup.

blow_up_frame.Adjusted_Photoshop
The same frame adjusted in Photoshop.


Contemporary digital cameras - both dSLR and high-end compacts - can record images both in JPEG and RAW formats. In the former, an image is compressed, which limits the possibilities for later extraction of additional information using software. Raw format contains the unprocessed data from the camera's image sensor. Raw format assumes that a photographer will later manipulate the photo in software to get best results from the millions of pixels recorded by camera. "Working with a Raw file, you’ll have a greater chance of recovering highlights in overexposed clouds, rescuing detail from areas of shadow or darkness, and correcting white balance problems. You’ll be able to minimize your images' noise and maximize their sharpness, with much greater finesse." (William Porter, Raw vs. JPEG: Which should you shoot and when? techhive.com, 9/19/2012.)

This means that new software can generate new information from a photo in Raw format captured years early. The following example from Porter's article demonstrates this dramatically (go to the article link to see high resolution photos; the captions are from the article):

image-camera-jpeg
Porter: "JPEG straight from the camera, a high-end compact (Panasonic DMC LX3). It’s a nominally decent exposure, preserving highlight detail at the expense of detail in the shadows. But it’s an unusable photo."

image-saved-as-row-manipulated-adobe-lightroom
Porter: "Fortunately, I was shooting Raw + JPEG at that moment. This is the best version I got from processing the Raw file myself in Adobe Lightroom 3."

image-saved-as-row-manipulated-Image-Processor
Porter: "A year after I took the photo, I discovered the amazing, Mac-only Raw Photo Processor. Running the Raw file through RPP, I was able to recover detail that even Lightroom’s converter hadn’t found."


"Software epistemology" also includes ability to generate new information from old analog data. For example, years ago I saw a demo at SIGGRAPH where a few film shots from the 1940s Hollywood film were manipulated in software to generate the same shots as seen from a different point of view.

Another important type of software epistemology is fuzing data sources to create the new knowledge which is not explicitly contained in any of them. Using the web, it is possible to create a description of an individual by combining piece of information from his/her various social media profiles and making deductions form them.

Combining separate sources can give additional meanings to each of the sources. Consider the technique of stitching a number of separate photos into a single panorama available in many digital cameras. Strictly speaking, the underlying algorithms do not add any new information to each of the images (their pixels are not changed). But since each image can now becomes a part of the larger whole, its meanings for a human observer change.


The abilities to generate new information from the old data, fuse separate information sources together, and create new knowledge from analog sources are just some techniques of "software epistemology." In my future publications and notes I am hoping to gradually describe others - as I am mastering the appropriate algorithms and their applications.