> CS 534
> HW #5 Projects
HW #5 Projects
- Joseph Bauer, Elliot Busta and Eric Johnson
Shadow Terminator
Shadows frequently cover up interesting parts of photos, occluding what we want to see. Our
algorithm works to automatically detect and lighten shadows in an input image, then output an
image with the shadows removed. It does this by working in the LAB color space, and changing
the luminosity values of the shadowed pixels to a value that is representative of the surroundings.
Project web page
- Brant Birrenkott, Brett Brown and Connor Neff
Automatic Facial Symmetry Analysis and Rating
Symmetry is a significant factor in determining the objective attractiveness of a
face. The purpose of this project was to answer the question can the symmetry of a face
be objectively measured and improved upon by creating a perfectly symmetrical face in a
portrait style image? The project detected the center point of the nose and pupils of the
eyes of a portrait style image in order to create the line of bilateral symmetry for the face.
It then mirrored one half of the face onto the other in order to create a perfectly
symmetrical face using both the left and right halves to make two new images. Lastly, the
project detected the facial landmarks of the face and measured the Euclidean norm of
each facial landmark in order to compare the location of that feature point on the other
half of the face. The ratio of the Euclidean norms was then calculated in order to obtain a
percentage. This application could be used for entertainment purposes as well as a face
beautification product for portrait style images.
Project web page
- Yanting Vanessa Cao, Aida Ebrahimi, William Hu and Yeji Im
Emojify Objects
Emoji characters are becoming more and more popular for communicating emotions along with written messages. However, emoji characters are restricted to predefined characters. These characters lack originality and creativity, so in order to make emoji characters personalized and creative, this study explored and finalized algorithms that allows the user to "emojify" any image. We used localized segmentation to detect and isolate the desired object of the user. The algorithm then applies a bilateral and cartooning effect to make the image more abstract and smooth. At the end, Gaussian pyramids were used to resize the image to a smaller dimensions appropriate for communication platforms. This study further recognized the limitations and possible optimizations that could improve the application for a wider range of users.
Project web page
- Benjamin Chang, Xiuming Chen and Melissa Lakritz
Image to Stained Glass
Our program takes any user-specified input image and transforms its appearance to resemble stained glass. Stained glass, a historically significant form of art appearing in opulent church windows, is a universally recognized form of art defined by decorative, colored glass pieces that are placed together to create a stylized image. The output image is comprised of "glass tiles" which are triangles (from three vertex points on the image) chosen by our algorithm. Each triangle's color is comprised of an average representation of the RGB values of the pixels that lie within the interior of the triangle. The resulting image is a beautiful rendition of the original image in the style of colorful stained glass pieces.
Project web page
- Xuantao Chen, Brett Meyer and Katherine Richards
Detect Text in an Image
We created a Matlab
application that takes an image as input and outputs the text found inside the image.
Our algorithm however requires many parameters that act as thresholds that are
dependent on the image. This means that our code only works on a specified image
unless manually new threshold parameters are determined.
Project web page
- Michael Darling, Jake Shropshire and Erin Wallin
Picture Perfect
Picture Perfect creates a portrait that is a composite "best" image generated from a set
of input images given by a user. It is designed for group photos, which contain photo subjects
who may look away, blink, or frown at the camera. With the set of input images, the program
first aligns each image and then runs face detection on the aligned images. Face detection is
implemented with EmguCV, a wrapper to the OpenCV image processing library. For each face in
the group, one is selected as the best face using our specially designed algorithm, which takes
various characteristics into account such as the detection of eyes and a front-facing head.
Finally, each best face gets blended back into the canvas image, the image selected as the
output picture. This gives the user a "perfect" portrait of their group.
Project web page
- Grant Davies, Allen Hung, Steven Karr and Connor Quagliana
Face Anonymization
A large amount of human face images circulate the Internet on social networking, news, photo sharing, and other websites. Face images are often associated with a person's name or personal information. There are numerous ways in which a person's likeness can involuntarily appear in an image hosted on the internet. Examples include images taken by a Google or Bing street view camera or by another person without authorization. Such an image can be an infringement of privacy. In today's day and age, an image can go from inception to viral in a matter of hours. As such, there is a need to anonymize images by blurring or otherwise removing a person's likeness. Our application attempts to produce this concept of image anonymization. Our application takes a target face image (or images) and a source image and attempts to anonymize all instances of the target face from the source image.
Project web page
- Kevin Dobish, Sophia Ehlen and Zackary Moore
Utilizing Steganography for Embedded Video Subtitles
Steganography is often associated with content that is intentionally hidden from a viewer. As a form of encryption through obfuscation, the presence of steganographic content within an image can be easily detected by simple analysis of the image's least significant bits. Multiple code libraries and scripts have been developed that enable quick detection of hidden content that is present within such images. This project utilizes these methods and expands upon them in order to apply these concepts to video files with the aim of eliminating the need for a separate subtitle file. This will also ensure that subtitles are only displayed for the exact frames in a video that they pertain to and that corruption of a separate subtitle file is not possible.
Project web page
- Justin Eddy, Joe Rosenbecker and Arseny Semin
Variable Depth of Field using Stereo Photography
Modifying the focus of an image is critical when capturing an image, especially if the original image is not focused on the desired point of interest. Depth of field is the distance between the nearest and furthest objects in a scene that appear sharp within the image. This is used to make the focus of the image clear. By using information from multiple images of the same scene an estimate of depth can be determined, and using the depth information pieces of the image can be identified to be left in focus or blurred. This project aims to calculate these depth values and segment the image into blurred and unblurred sections.
Project web page
- Harrison Evans, Jack Meuwissen and Jacob Wurtz
The Legend of Sleepy Hollow Program
The Legend of Sleepy Hollow Program is a project which allows the user to take any photo of a person and make them have a pumpkin as a head. Not only is this application fun and entertaining, it is also very versatile with the object you are making the head out of, just in case you aren't a fan of pumpkin (but I mean come on ... who isn't?).
Project web page
- Marlee Gotlieb, Scott Hendrickson and Martin Wickham
Duck Efface: Decorating Faces with Duck Bills, aka "Duckification"
Facial recognition in photographs has been utilized in a variety of forms. At first, it was
used to simply detect where a face existed, but now it goes beyond this by being able to
recognize particular features on the face and even recognize a specific person. Lately, a
major use of facial detection and recognition has been creating "filters" to go over the
recognized faces. These filters use facial recognition to distort or change a person's
face. For example, the mobile application Snapchat has the capability of recognizing a
person's face and putting a "filter" over it such as placing sunglasses over eyes, dog
ears on a person's head, or turning someone into a ghost, robot, clown, and more. This
project aims to use facial recognition to accurately create a filter of our own: placing a
duck bill onto a person's face, or duckification.
Project web page
- Zachary Hirn, Yizhe Hu and Zhilin Jiang
Real-time ASCII Art Camera on Mobile Devices
In this paper, we present a way to compute a ASCII representation of some input video
stream on real time on mobile devices. Mobile devices, unlike modern person
computers, have very limited computing power. This paper presents a machine learning
approach, along with other optimization techniques to achieve a real-time ASCII art
conversion with a satisfactory speed.
Project web page
- Dylan Homuth and Coda Phillips
Efficient Graph-Based Image Segmentation
This paper details our implementation of a graph based segmentation algorithm created by Felzenszwalb and Huttenlocher. The algorithm represents an image as a graph and defines a predicate to measure evidence of a boundary between two regions. This is highly efficient running in O(n log(n)) however it comes with a trade off in strict accuracy. We tested our implementation using the Berkeley dataset which established a standardized scoring method to better compare segmentation algorithms to a ground truth segmentation created by humans.
Project web page
- Sicong Jiang and Shiwei Zhou
Comparison between Different Implementations of the Dark Channel Prior Dehazing Method
Photos taken outdoors often suffered from haze, be it smoke or particles in the air. In this project, we are going to implement an image dehazing algorithm based on the paper "Single Image Haze Removal Using Dark Channel Prior." The dark channel is a statistics of haze-free outdoor images based on observations that most local patches in haze-free outdoor images contain some pixels with very low intensities in at least one color channel. With this prior, and if the atmospheric light is known, the transmission map can be estimated by taking a minimum operation in the local patch on the haze imaging equation. Soft matting is applied to refine the transmission map and the scene radiance can then be recovered using the haze imaging equation with restriction the transmission to some lower bound. The atmospheric light is estimated by picking the top brightest pixels in the dark channel, which is more robust than existing methods. With this prior on the haze imaging model, we can estimate the thickness of the haze and recover a high quality haze-free image. Moreover, the depth map can be estimated as a byproduct of the algorithm, which is useful in many other applications. We plan to divide the project into three major parts, that is, the transmission map estimation, recovering the scene radiance, and estimation of atmospheric light. Because of the speed limitation of soft matting method, we also implemented several alternatives to soft matting based on the Retinex theory. We also compare the performance of the above mentioned implementations.
Project web page
- Erik Jorgensen, Margaret Murphy and Aziza Saulebay
Improved Seam Carving for Video Retargeting
Seam carving is used as a content aware option for resizing two-dimensional images by removing one-dimensional seams of pixels. To convert this approach so that it can be applied to video, we will implement content aware resizing of video by resizing consecutive two-dimensional image frames that are temporally related. Our dynamic programming approach to improved seam carving for video sequences focuses on improving visual appearance of resized videos as well as reducing overall computation time. We discuss multiple implementations of video resizing used methods such as random reference frames, varied temporal bound widths, and coarse scale computation acceleration.
Project web page
- Marissa Karp, Elliot Shin and Aaron Knaack
Video to Action Shot Sequence
Video to Action Shot Sequence is an algorithm using tools from the Vision System
Toolbox provided by Matlab to develop an image from videos which represent an object's
change over a period of time. The algorithm is designed to result in a composite image using
several instances of a video and "stitching" the moving foreground object into one final image.
Methods used to accomplish this can be summarized into a few categories: techniques such as
Object Tracking, Foreground Detection using Gaussian Mixture Models (GMM), morphology
operations provided by Matlab to clean masks, and processing the masks. The algorithm
described in this paper has limitations for it's use such as the number of moving objects, the
velocity of the object, and the morphology being used which depends on the overall quality and
video attributes. Overall, the output from using the algorithm provides concrete results when the
limitations are considered, and correct morphology operations are used.
Project web page
- Matthew Lauritzen, Emerald Petersen and Abby Raasch
Image Modification Tool
The goal of our project is to create an image modification tool with a variety of
different features. Our features are tint, glow, oil painting, hybrid images, and fisheye lens. Our
initial approach to this project is to build up the features individually by dividing the work. Once
we have a variety of different features, we brought them together into the same project using the
same Matlab GUI. In the tool you will have the option of having the features build on one
another. For instance, you could first apply the hybrid image filter and from the image that
results, then apply the accent color filter. We also a random button feature that randomly selects
different features to apply to an image.
Project web page
- Yuanchen Liu and Qianyun Ma
Removing Tourists from Videos
The idea of this project is similar to Adobe's "Monument Mode" presented at the Adobe Max 2015 Conference. In the project, in order to distinguish moving objects (such as tourists and cars) from backgrounds or sightseeing, we implement People Detector, Foreground Detector and Optical Flow methods, and develop our own algorithm of Median Method to find and remove moving objects from sightseeing in real-time videos.
Project web page
- John Meurer and Pat Murray
Computational Photography on the Cordova Framework
The Cordova framework allows developers to create cross-platform applications using web technologies. Although this methods allows for easy creation of efficient and maintainable applications it has disadvantages that realized when the application accesses the hardware on the device, such as the camera. This article describes the process of utilizing the GPU of an iOS device in order to create an efficient camera to be used by the Cordova framework and the possible processes that can be run on these images via objective-c after capture.
Project web page
- Stephen Monette and Alex Nguyen
3D Tracking Optimizations for Webcams
The use of real time 3D object tracking has become very common in the movie and video game industries. However, the many of these infrared (IR) motion capture systems are prohibitively expensive for this technology to be used elsewhere. Although inherently less accurate than motion capture systems, common webcams provide a high enough resolution to perform sufficiently accurate tracking for applications outside of movie and game production. At the same time, webcams can be obtained at a much lower cost. After creating and testing a color-based 3D tracking method with webcams, we developed several new algorithms to improve upon our accuracy and latency. It was determined that within the tracking space tested, none of the new methods provided a significant increase in accuracy. However, the method implemented for decreasing latency was successful in decreasing processing time by about 33%.
Project web page
- Chase Roosin, Felix Tsao and Ben Webster
A Low-Cost, End-to-End Virtual Reality Concept from Capture to Viewing on Mobile Devices
Our project presents a low-cost, end-to-end virtual
reality solution which handles capture of virtual reality video,
processing/stitching VR video and lastly, end-user viewing on
mobile phones. In this report we discuss the methods and design
considerations, largely driven by minimizing equipment costs and
development time, all in consideration of increasing accessibility
of VR content generation to consumers, artists, hobbyists and
low-budget productions. We also explore the issue of organizing
virtual reality experiences towards a particular application. Currently,
VR content is presented in fairly disorganized collections
on YouTube, Facebook and other outlets. We also discuss our
prototype mobile app, Exhibit, that hones VR technology to a
particular application for enhancing the real-estate experience.
Project web page
Other web page
- Jake Trotman, Chad Van De Hey and Rachel Yuen
Fast Single Image Haze Removal using Dark Channel Prior and Bilateral Filters
In this paper, we propose a
simple yet effective improvement to single
image haze removal using dark channel
prior (He, Sun, and Xiaoou). It is based on
the observation that haze removal using
dark channel prior accurately removes
haze from an image; however, it has a
relatively slow computation time. Using
the dark channel prior in addition to a
series of bilateral filters we can efficiently
calculate the amount of haze in an image.
Our method computes 100 times faster
than the dark channel prior method. Our
goal was to improve performance of the
dark channel prior algorithm, which
ultimately compromises the overall quality
of the resulting dehazed image. Results on
a variety of outdoor haze, smoke, and
steam images demonstrate the power of
the proposed prior.
Project web page