H79.2546 Lecture 4 Credits
Instructor(s): O'Sullivan
Computers should see. We depend most heavily on light to sense the world. As our experience is increasingly mediated through computers, it is not surprising that cameras have become an integral part of them. As computers become small, cheap and ubiquitous in laptops, cellphones and microcontrollers the cameras attached to them can gain coverage of every corner of life. This class looks at the possibilities and the computer software for getting a hold of the signals coming in from all these cameras. The class first looks getting images, integrating multiple views and transmitting them over a network. The class then turns to the more demanding programming required to process or analyzed the incoming image for such things as background removal, finding edges, for tracking objects. As a sensor, the video camera is appealing; delivering up to 36 million bytes every second compared to maybe 3 bytes from a keyboard. This requires a coding parsimony that can be used as a challenging exercise to improve a students general coding skills but the real difficulty of computer vision comes when you expect your software to be able to mimic the powers of the human brain to interpret arbitrary images. This class attempts to side step these very difficult parts by working in fairly contrived environments such as art installations, eye tracking rigs, and ant farms. The course uses Java in the Eclipse environment which is a good next step from the Processing environment. We look at implementing these techniques across platforms, including the desktop, the cellphone and even on a microcontroller. The class requires ICM or similar programming background.