> CS 534
> HW #5 Projects
HW #5 Projects
- Michael Ahlm
Picture Glitcher
Glitch art is a relatively new field of Art. It is
the aestheticization of electronical error or
glitches. Due to the randomosity of a glitch
in digital data, I created a program to
deterministically glitch a jpg photo in ways
to reflect common artifacts seen in our
digital age. Given an image as an input, my
technique will be to modify the image
through the manipulation of groups, or
portions of an image's byte array. This
method will allow greater user control as an
attempt to remove the randomization of
digital error.
Project web page
- Pericles Alves and Chaitanya Gaddam and Tom Jessessky
Website Design Search
Small web design firms often face a communication barrier when discussing what kind of design a client wants. Since creating a full mockup on the fly is impossible during the brief meetings with clients, there is a need for a tool that allows designers to show examples of sites that will look very similar in color and content ratios to their clients to give them better expectations and visualizations of the end result. Our project will take screenshots of thousands of websites, analyze their colors and overall look with respect to content area and density, and present these in a web interface where users can specify search parameters and the resulting images will be shown. Resulting images will allow designers to show some realistic examples of what a website design might look similar to and create an immediate feedback loop in the early design meetings.
Project web page
- Alexander Brettingen and James Esposito
Automatic Image Anonymizer
With this project we will implement and compare three techniques that are often used
professionally to blur or cover unwanted faces in images. The first part of each technique will be a
variation of a face detection algorithm, and the proceeding steps will vary with the different techniques
used. The three techniques that we have implemented are the complete blurring of the face(s), the use of
black boxes to cover the face(s), and the inlaying of a separate image over the face(s).
- James Buchen and Liang Zheng Gooi and David Mateo
Where's Bucky?
Public entities such as companies and universities have strict requirements when representing their brand on the internet. This paper focuses on a method to detect near duplicates of Bucky, the UW-Madison mascot, on any given webpage and determine if it is represented correctly. The proposed solution uses a Viola-Jones cascaded classifier detector and SIFT feature point detector to locate and analyze Bucky objects. The Viola-Jones detector is trained using existing images of Bucky collected from the web, as well as images generated off of the official logo. The end result is able to detect most Bucky variants using only the generated images. Improvements can be made to the image generation algorithm that would improve detection. In the current form, tuning parameters must be manually optimized if other logos are to be used.
- Chris Dimick and Daniel Schumacher
Face Swapping
This paper describes a face swapping algorithm inspired mainly by the
papers "Face Detection, Pose Estimation, and Landmark Localization
in the Wild" by Xiangxin Zhu and Deva Ramanan, and "Face Swapping:
Automatically Replacing Faces in Photographs" by Dmitri Bitouk,
Neeraj Kumar, Samreen Dhillon, Peter Belhumeur, and Shree K. Nayar.
By using the angle of the face and the feature points defined the
facial detection software, the area of the face that will be swapped
out is computed. A face that is the same angle and closest to the
computed area is chosen from our library of faces and resized to that
of the computed area. A simple color transfer method helps compensate
for differing lighting, color, and intensity. The pixels from the
face are then copied to the input image and blended using Poisson
blending to make a seamless face swap.
- Andrew Flach and Simon Smith
Variable Detail Photomosaics
Our project constructs photomosaics, combining multiple small images from an image database in order to create one larger image. This idea is made more interesting by changing the size of the pasted image according to the amount of detail in the reconstructed image; homogeneous regions consist of large image sections, while fine details are made up of many smaller images. Additionally, color transfer on the pasted images is performed.
Project web page
- Jake Hilborn and Ryan Misura and Jackson Reed
Face Swapping in a Mobile-based Social Context
For our Project we propose an application that will perform face swapping
between two photos. To implement this we will develop an algorithm that will compute facial
detection on two input images and swap the two faces respectively. Topics that will be
relevant to the face swapping process include: feature matching, face detection,
scale/rotation, geometric transformations, and context matching. The bulk of our project,
however, is to turn this into a social application. We plan to do this by creating an android
(or use Twillo) application that will have the user take a picture of themself, and then send it
to the server. The server will wait for two users to send their photos and then proceed to do
the face swapping as described above. After doing the face swapping, the two output
images will be sent back to their respective senders. The big question of course is why are
we creating this? As seen in recent years with applications such as Snapchat, social
applications are a hot topic for our current society so why not incorporate image
processing into that? We also incorporate an anonymous aspect which is a desirable trait
in modern day applications.
Project web page
- Steven Holvenstot and Nathan Little
BPCS-Steganograpy: Exploring Encoding Capacity of Different Color Spaces
Steganography, the art of encoding hidden data in other media, has been in use since ancient Greece. Currently, the limitation of digital steganography is the amount of data that can be encoded without image degradation. BPCS-Steganography uses the inability of the human eye to recognize variance in regions of high noise enabling a larger volume of bits that hidden data can be encoded into by selectively choosing high noise areas instead of using the least significant bits of each pixel. We seek to expand upon the volume of usable bits by exploring BPCS encoding in different color spaces, specifically HSV and LAB, determining whether separating color from luminance for encoding allows for a higher percentage of usable noise regions.
Project web page
- Shitong Jia
Image Analogies
Analogy means imitation of a style. Image analogies provides a versatile method to
find the "relationship" between a source image and the filtered image of it. Then we
can apply this relationship to another source image. This technology has many
applications. Briefly, If we are given A:A':: B:_ , we can get A:A':: B:B' but avoid
calculating complex and non-linear filters. This paper includes the basic steps and
notes of how I implement the algorithm described in the paper "Image Analogies"
(Hertzmann, 2001).
- Daniel Konen and Ben Mackenthun and Philip Reasa
Image Texture Tiling
There has been extensive research done on the subject of texture synthesis. The main focus has
been growing/continuing textures. We hope to explore the concept of texture synthesis beyond
simply increasing the texture size, and into tessellating/tiling the texture. When a "single unit"
of texture can be tiled such that seems are not seen and borders are hidden, the texture can grow
endlessly in all directions; something that current texture synthesis methods cannot achieve. Using
techniques such as seam carving to produce minimum energy costs, our group hopes to be able
to discover a "single tile" of texture from an input image that contains the texture. This will be
applicable in areas such as web development, and anywhere else were images are not processed to
extend texture, but rather naively tiled.
Project web page
- Hugo van Krimpen and Koen van Noortwijk
Recognizing Moved Objects
Our paper is on recognizing moved objects so they can later be removed in panorama photos. We implemented 2 algorithms to accomplish this. One uses edge detection, the other SIFT feature recognition. The edge detection method is based on the idea that edge maps can be subtracted and that only the edges of the moved object will remain in the resulting edge map.
The SIFT method is based on the idea that feature points define objects. By defining where the object is in the first image, the algorithm will use SIFT features to find the same object in the second image.
- Alex Larson and Ricardo Lopez
Cartooning with Denoising and Bilateral Filtering
Ever wonder what things would look like as a cartoon? Normally this would require an artist to draw his or her interpretation of the world. With this project we propose to create a program that takes an input image and outputs a cartoon version of it. A cartoon image is an image with well-defined edges and large areas of a single color. Using bilateral filtering and denoising one can accomplish this. First one would denoise the image to smooth the details of an image. Then using a bilateral filter you smooth regions of similar colors together while preventing smoothing over the edges of the image. These methods together combined with edge detection will create an image that has been transformed into a cartoon version of itself.
Project web page
- Nathan Lauterbach and Brian Murray
Techniques for the Creation of Impressionist-Styled Art from Real Images
The impressionist art style is loosely characterized as a rendering of a scene in which the impression of objects is apparent. Whereas the objects themselves may not appear particularly realistic or detailed, the scene as a whole provides a depiction which captures the essence of the scene. In our project, we look to take this idea and apply it to photographs in order to achieve a similar goal of capturing an impressionist-styled rendering of a given photograph. We utilize a technique which places randomized brush strokes onto our canvas in an attempt to emulate an actual painting of the scene. We then explore several techniques to improve this basic method, such as shifts in angle and color, as well as the use of custom brushstrokes to create renderings of improved quality.
Project web page
- Morgan Ludtke and Carter Peterson
Determining Building Location Based on an Image
Keeping track of where a photo was taken is becoming easier every year as the use of smartphones to take photos increases. GPS systems within phones can geotag the photo and store that information along with the photo. Although it is an ever improving field, there is always room for improvement and one of those places is inside buildings where GPS systems abilities decrease. Rather than relying on the GPS systems entirely, it is possible to create a geotag for an image by guessing its location based on the image characteristics. In this paper we propose an algorithm to guess what building an image was taken in purely by computing its characteristics and comparing them to a pre-established database of already tagged images. Our easily enhanceable methods generated promising initial results that proved significantly better than random guessing. We show that similar methods are a viable option to improve the way we geotag photos.
Project web page
- Alex Milbrandt and Kelly Salmon and Tuater Vue
Haze Removal with Image Enlargement
The Dark Channel Prior method of haze removal utilizes the fact that clear images usually have one of the RGB channels at low intensity. Using this information we can then calculate the pixel with the most haze. Using that pixel's intensity value, we can remove the haze from each pixel in the image. We use the dark channel prior method as described by K. He et al. to implement the removal of haze in our images. Our program is also capable of image enlargement through seam insertion as described by Avidan and Shamir. This method calculates the first n number of lowest energy seams and uses those to expand the image.
Project web page
- Nathan Moeller and Robert Sass
Twitter Visualization
Twitter is fast becoming one of the largest sources for wide ranging data about what is
currently going on in the world. Trending data can be used as an important
source of what is happening in the world and what a wide swath of people are
talking about, be it important topics such as news stories, or perhaps less
crucial musings on pop culture. Unfortunately, most existing methods focus on
an exclusively textual representation of this data. This project seeks to
create a more interesting visual representation of this data by using various
APIs to fetch Twitter trending data and corresponding images and then
representing that data on a web page in an interesting way.
Project web page
- Sam Olver and Sucheth Suresh
Rule of Thirds Automation
The rule of thirds is one of the core fundamentals that professional photographers follow to create a more balanced looking image. The rule of thirds involves dividing an image horizontally and vertically into thirds, resulting in a grid with nine equally sized parts. If the subject of the photo is aligned with one of the intersections on this grid it follows the rule of thirds. This is important because studies have shown that a viewer's eyes are naturally drawn to one of the intersection points on this grid, and a photo following this rule appears more balanced and natural. While it is possible to manually alter an image so it follows the rule of thirds, this method may not always yield the best results, as the image size may be reduced more that it needs to be. Our application takes an image that does not follow the rule of thirds and modifies it so that the subject of the image (in this case a single face) aligns with one of the intersections of the rule of thirds grid.
Project web page
- Manjot Pal and Mikhail Skobov
HawtorNawt
For this project, we have created a program which measures one's attractiveness based on some
ratios between different features of the face. The most important part of the project was
implementing facial feature detection. Although we did not do this from scratch, we needed to
implement the calculations for additional points on an individual's face such as chin,
hairline, and pupils.
After doing our research, we found that attractiveness can be gauged by two main measures:
how close to average one is, and how close ratios of certain measurements are to the Golden
Ratio. We implemented algorithms in order to properly measure and weigh these calculations.
In order to measure a person's attractiveness in relation to the "average" person, we needed
to calculate this average. For this, we used a database of faces, separated the male and
female images, and used the feature detection algorithm to calculate all ratios that will
be using, and save the averages.
Another part of the project includes smoothing the image that the user provides to make the
image more appealing. For this, we used the technique of bilateral filtration which helps
in smoothing the image and preserving the edges by using a weighted average of pixels. We
also used this improved image to compare to the original, and determine a portion of
attractiveness based on how close the gradients are.
Project web page
- Isaac Perez and Brennan Schmidt
Texture Mapping Using Non-Photorealistic Rendering
Non-photorealistic rendering is a commonly used method in computational photography to produce a cartoon-like version of an image by using color quantification, edge detection, and edge sharpening. Our goal in this project is to use techniques presented in non-photorealistic rendering to generate a gray-scaled, textured version of an image using a pre-defined texture library. To achieve this we first build a texture library from which a user can select textures from, then build features for the selected texture based on a quantification of the textures characteristics, segment the image into different regions using a color-based method, cluster the colors in one image using K-means clustering, and finally apply the texture mapping to produce an output. We provide several examples of successful and failed results to illustrate the effectiveness of our method.
Project web page
- Ronald Ross and Katherine Wright
Human to Animal Face Morphing
The task of our project is to take an image of a human face and morph it into an animal's face, which will then be returned and blended to the full image of the animal. Our motivation for this project was to create an effective outlet for entertainment and creativity. The project was broken down into two main pieces: facial warping, and then blending back into the image. The beginning face warping was completed by Katherine Wright, and the Poisson blending segment by Ronald Ross. Our project is based off of programmer Wei Lou's Face Morphing project found at http://louki.org/face-morphing.
- Yanwu Xu
Face Detection and Recognition in Real-Time
In the field of computer vision, Eigenface detection is an implementation of a set of eigenvectors for the problem of human face detection and recognition. With principal component analysis (PCA), it is more efficient to derive a low-dimensional Eigen-vector space from a high-dimensional Eigen-vector space. The main purpose of this project is to illustrate an easy and efficient way of detecting and recognizing faces with Eigenface.
Project web page
- Yiding Xu
Detection of Sudden Changes in a Video Clip
It is a great waste to record videos of CCTV (closed circuit television) day and night. What we really want is only a small synopsis of it that records key information. This paper pro- vides two ways to get the desired synopsis. The intuitive way is to analyze a video clip frame by frame, in order to find sudden changes and then record them. A more efficient but complicate way is to condense the video clip by minimizing a settled energy function. Thus, this synopsis can demonstrate several activities simultaneously, which could make the length of the synopsis even shorter. This paper discusses principles and implementation of these two approaches in details, and compares them with their advantages and disadvantages.
- Ryan Zoellner
Securing Messages in Digital Images using LSB Steganography and One-time Pad Encryption
Steganography is the art or practice of concealing a message, image, or file within another message, image, or file [1]. The motivation for this practice is very similar to that of cryptography, but the underlying approach and methodology is quite different. Both of these techniques rely on the message being rendered unreadable without the proper key to decode, but cryptography puts the encoded message in view of everyone, both intended receivers holding the key and non-intended receivers without the key that could potentially benefit from the message. Steganography's goal is to conceal the message altogether from the general viewing public, so that the hidden message doesn't draw attention from on-lookers, as a basic encrypted message would. Essentially, it is a form of security through obscurity. This project explores digital image steganography. Specifically, the application of hiding a "message image" within a "cover image." The resulting image is termed a stegified image and looks nearly-to-fully identical to the cover image to the human eye. The main purpose in performing this operation is to obtain a level of security for the information contained in the message image. The resulting stegified image goes unnoticed as being altered by the general public. Those individuals with knowledge of its stegified status can extract the message image's bits and view the hidden message image.
Project web page