The Ass Morpher

Select an image file of someone's face to upload.  This file will then be morphed with an ass. 

For best results, use a direct face-on photo with neutral lighting and a plain background.  Look directly into the camera with both eyes open and mouth closed.

 Supported  formats: JPG, PCX, TGA, TIFF, BMP, PNG.

Sorry, GIF files are not currently supported.

SELECT AN ASS:

 
   

SELECT A FACE IMAGE FILE:


Be patient!  The ass-morphing process can take up to 30 seconds.

How Does the Ass Morpher Work?

The ass morpher begins by using a backpropagation neural network learning algorithm to identify prominent facial features.  The neural network was trained on a series of 80 source images with the coordinates of the eyes, nose, and mouth manually specified.  A large portion of the code for this neural network was scrounged  from Carnegie Mellon University's course on Machine Learning.  The technique also borrows heavily from the facial feature recogntion system of of Paul Debevec at USC's Institute for Creative Technologies in that it uses small subsampled versions of the image's log-polar map to provide fine-grained information about a feature's local area and coarse information about its surrounding image space.  Any features that are detected within a high threshold of confidence are appropriately mapped to corresponding points on a preselected "ass" image.  For example, the left eye is mapped to the center of the left cheek, and the nose is mapped to the ass crack.


Sample Training
Image

Log-Polar Map
of Mouth

Log-Polar Map
of Nose


Sample Testing
Image

Left-Eye
Feature Map

Nose
Feature Map

Line Segments
Generated

This facial feature detection process is followed by a Sobel edge detection filter, which convolves the image with two kernels, one which measures the image's horizontal gradient and the other its vertical gradient.  These partial results are combined using a Euclidian distance metric to compute an approximation to the magnitude of the true gradient at each pixel.  The Sobel filter is followed by a Hough transform, which maps each in the filtered source image to a discretized curve, incrementing a series of accumulator cells lying along this curve as it does so.  Peaks in the array of accumulator cells represent strong straight lines, generally corresponding either to the extreme edges of the face or sharp facial lines such as the nasio-labial furrows.  When these high intensity feature boundaries are located within the outer 25% of the image, they are taken as additional line segments specifying correspondences between the extreme edges of the face and the outer portions of the ass.


Start Image

Sobel Edge Detection

Transformed to
Hough Parameter Space

De-Houghed
Detected Lines

Thresholding
Isolates Segments
from Lines

The generated correspondences are then used to warp the source and destination images using the Beier-Neely algorithm for feature-based image metamorphosis, presented at Siggraph '92.  This method uses an inverse falloff distance metric to determine a weight for each of the specified line segments for each point location in the source image.  It then computers a displacement vector from the destination point to the destination line segment, and calculates a weighted average of the displacements applied to the destination point to compute the new location of the source point.  Both the source face image and the destination ass image are deformed with a warp factor of .5, using bilinear interpolation for per-pixel resampling.  Finally, these warped images are cross-dissolved to produce the completed ass-face morph.


Green line segments show corresponding features of the source and destination images,
which are used to produce the warped and cross-dissolved image at right.  The line segments
on the ass image (center) are specified ahead of time, while the line segments on the face
image (left) are dynamically generated using the techniques described above.


Ass Morpher by Dan Maynes-Aminzade
June 7, 2001