Photoshop Disasters
recently featured a wonderfully horrible image from
Victoria's Secret.
The first disaster is obvious, which is what makes it so wonderful. The model used to be holding a handbag, now she is just holding the straps. In fact, the handbag could be their
Ostrich-print logo satchel,
stud tote, or
embossed leather tote -- all have the same kind of straps.
What is more fun is how the artist erased the bag. Notice how the ground is made of red tiles. The tiles are square... except where the handbag used to be located. Clearly the artist did not pay attention to detail since they forgot the grout when they copied in the tiles.
Just One More Thing
I have a theory that I call the "Just One Principle". Simply put, when someone modifies an image, they never change "just one thing". Since the artist at Victoria's Secret erased the handbag, they must have changed something else. What else was modified?
Say Yes to the Dress
The images at Victoria's Secret are fairly low quality -- JPEGs at 85%. However, just because they are low quality does not mean we cannot see what was modified. For example, the Error Level Analysis (ELA) should have all objects at roughtly the same coloring. If anything stands out as bright white, then it was the last thing modified since it is at a higher potential error level than the rest of the image.
Error Level Analysis
In this case, the ELA shows a couple of things. First, the entire dress was modified. If you visit their web site, you have the option to select a dress color and they digitally add in the color. So the color of the dress is not original.
The ELA also has high values on her eyes and mouth. Those were digitally enhanced. This coloring also shows up in the 2nd and 3rd principal components. Basically, the artist brightened her teeth and tweaked her eye color.
2nd Principal Component
More interesting is the high error level that outlines the entire model. The model was "cut out" of the picture. (We'll get to the "why" in a moment.)
Finally, the entire image has a purple-red pattern around it. That strongly indicates the use of a drawing tool like Gimp or Photoshop. Photoshop generates more of it than Gimp, so this image was likely modified with some version of Photoshop.
Slight of Handbag
The Luminance Gradient is the most meaningful for this image. LG shows a high degree of manipulation all over the place. With LG, the entire image should contain bumpy noise and jaggy lines. If you see smooth blurs or straight edges, then you are likely seeing digital manipulation.
Luminance Gradient
With this image, there are a lot of things that stand out. For example, the background is blurry. The artist artifically blurred the background. But they didn't stop there. You can see the crisp edge that runs all around the model. This is the cut-out line that was seen in the ELA. In order to blur the background, they had to select it first -- that was done by selecting around the model (the cut-out). First they cut her out, then they blurred the background.
It is subtle, but the LG also shows the edges of the missing handbag. Just look for the vertical edges coming down.
Of course, the blurred background and missing handbag are just the beginning. All surfaces should have similar lighting. If her face is dark on one side and light on the other, then her arms should have the same pattern. However, this isn't what we are seeing. None of her body parts have proper lighting. For example:
- Her left arm (photo right) has a light arc near the elbow. While most of this arm looks correct (realistic bump pattern), the elbow lighting looks wrong.
- Her right arm (photo left, holding the invisible handbag) was totally modified. There are no dark regions in the LG. The arm was likely recolored. Also notice the area under her bicep, above the elbow. The edge contains two sharp double curves. This is from a digital manipulation -- the model must have had a little bit of arm flab and the graphic artist tried to touch it up. The result created a dark region in the LG that looks like two arcs under her arm -- like a wide shark bite.
- The coloring on her face is uneven; her forehead does not match her cheeks, and her chin is also different. Looking closer, the gradient shows a ridge on her forehead that should not be there. And her eyes lack the dark/light gradient coloring. The artists completely recolored her face.
Of course, it is one thing for me to accuse Victoria's Secret of recoloring the skin on their model. It is another to prove it. Here are two photos of the same model, in the same general location (similar backgrounds).
The second picture has a mostly natural background (not an artificial blur). Her dress, teeth, and eyes have all been modified, but the luminance gradient on her skin appears natural. The real model (right) has darker skin than the digitally enhanced version (left). And there is one other significant difference...
We Must, We Must...
The first principal component is great at identifying JPEG artifacts from resaves. These appear as rectangular patterns aligned on an 8x8 or 16x16 grid. I have generated the first principal component and applied a histogram to brighten it up.
Principal component analysis, 1st component.
The large squares at the bottom of her dress and in the background are from a JPEG resave. (They also exist on her face, but that was washed out when I applied the histogram.) So those areas were modified and then saved as a JPEG. However, the rest of her dress contains no rectangular artifacts -- those were touched up.
And speaking of touched up... notice the round dark artifact on her chest. JPEG artifacts are rectangular, not round. That is where the artist removed her nipple. (My gal friends tell me that she should have worn a padded bra.)
The min/max values of the image identify one other manipulation. Normally these dots should should look like random noise. There should be no visible patterns in real images. In this case, her face, hair, arms, and dress all have different noise patterns. This matches the other findings that indicate that her dress, face, and limbs were all digitally modified.
Min/max measurements of image noise levels.
Although the dress appears to have a random noise pattern, there is actually one area where there is a well-defined pattern: her chest. Between her breast the dots form a well-organized "stretch" pattern. The modification also appears in a demosaic analysis as a diamond-shape distortion in the middle of her chest, and in the 2nd principal component as a minor color variation. Digital enhancements usually appear in multiple image analysis tests, and this appears in min/max, PCA, and demosaic analysis, among other tests.
Demosaic modification analysis
Not only did Victoria's Secret not like her skin tone, arm flab, and handbag, they also did not like her chest. They digitally enhanced her bust. Compared with the other image of the model, this image appears to be at least a cup larger. (Insert witty pun here.)
Update: After a few days of criticism, Victoria's Secret changed the image and left in the handbag. The new image is analyzed and compared with the original at:
The Secret is Out.
I would find it fascinating to find out about those.
Your posts are great.
1) Will a Luminance Gradient correctly differentiate Bokeh (blur from out of focus photons) from digitally applied blur?
2) It sure seems like the more high frequency noise in a region, the brighter it becomes in the ELA analysis. But high frequency signal occurs in real life -- the dress is bumpy.
3) On the second PCA image, the artist obviously altered her knees and the dress right above. Why aren't these white?
4) You're detecting a pattern of warping. But actual dresses warp too. How can you differentiate?
Obviously the image is photoshopped to all hell, but I'm a little skeptical that your image processing is yielding exactly how it was.
Great questions. Let me address each of them.
1) Will a Luminance Gradient correctly differentiate Bokeh (blur from out of focus photons) from digitally applied blur?
Great catch. Luminance Gradient will catch it to a degree.
If there is no scaling involved, then LG can definitely tell a natural blur from an artificial one due to a lack of noise.
However, if there is scaling, then the averaging process can remove noise. The more extreme the scaling, the less noise means more blur.
In this case, there is noise between the blurred sections. (Look for the tiny bumpy pattern between the smooth areas.) If the blurring was strictly due to scaling, this would not occur.
Not mentioned in the blog write-up (simply because this blog entry was way too long): I cross-checked the blur with GPD. Gaussian Pyramid Decomposition is great at distinguishing real blurs from artificial. In this case, the echo lines are present, so I can measure the blur radius. For more info about GPD, see:
http://www.hackerfactor.com/blog/index.php?/archives/297-Blurring-The-Truth.html
2) It sure seems like the more high frequency noise in a region, the brighter it becomes in the ELA analysis. But high frequency signal occurs in real life -- the dress is bumpy.
ELA is impacted by high contrast colors (e.g., zebra, or opposite ends of the YUV spectrum), but not high frequency noise. With a camera original, there is actually a ton of HF due to noise CCD/CMOS sensors. Each resave as JPEG reduces the amount of HF -- regardless of whether it comes from texture or CCD.
But there is one exception: Photoshop does this weird frequency manipulation when saving JPEGs. This can make fine lines appear to have a higher error potential. (I swear it looks like Photoshop uses DCTs to scale the image larger and then reduce the image size before saving. This emphasizes fine lines and also generates that purple-red rainbowing.)
If the high ELA was due to high frequency modifications by Photoshop, then the fine lines in the hair would appear at the higher level. In this case, the hair (which is in focus) is at a lower error potential. Also, the buttons on her dress and the dress' uniformed color area by her thighs are both at high levels when they should be much lower. (With the lower button, it consumes most of the 8x8 grid, yet the entire grid is at a higher error level. If this was frequency based, then that square should be high, but not as high as its neighbors. The smoothed fabric area should all be low. It is low compared to the dress, but much higher than the background.)
3) On the second PCA image, the artist obviously altered her knees and the dress right above. Why aren't these white?
PCA measures distance from the primary color space (the gamut). Basically, if you plot every unique color's RGB as xyz, then you get a cloud shape. The cloud for a natural picture (particularly with resaves) should be like a flattened football. The longest axis is PC1, PC2 is the 2nd longest axis, and PC3 is the third longest axis (with PC1, PC2, and PC3 all being perpendicular).
What principal component #2 (PC2) is showing is that the white on her teeth is very far from the cloud. It should be near the cloud. Same with the eyes.
The knees are not white in PC2 because the coloring is near the PC2 axis.
With color detection and PCA, a distant color (particularly with resaves) can be identified as abnormal, but a near color is inconclusive with regards to manipulation.
4) You're detecting a pattern of warping. But actual dresses warp too. How can you differentiate?
The min/max and demosic algorithms look at overlying color and noise structure. These are independent of the conceptual texture.
With min/max, it identifies the highest frequencies that are impacted by scaling and resaves. An unmodified image should have the same pattern (or near-same) across anything that is not uniformly colored. And since it detects noise patterns the noise should be everywhere and in the same quantity. (In my extended image analysis presenation, I've got some great examples of min/max where you really cannot make out anything, even though there are many different textures.) In this case, the dress has a very different noise pattern, and it has parts that do not appear random. (With min/max, any manipulation will distort the min/max points and generate structure.)
Demosaic analysis looks at the relationship between adjacent colors. That 2x2 RG/GB grid that is originally used to take a picture creates a relationship between adjacent pixels. This relationship is actually maintained through scaling and blurring. But if you draw on a picture, then you break this relationship.
(As an aside: TV broadcases rebuild a color relationship, so it takes a very artificial coloring for a TV screenshot to appear artificial through a demosaic analysis. Want to make a fake image pass the demosaic analysis? Pass it to a video capture card and then take a screen shot.)
As far as coloring goes: the faded purple in the upper left is not unexpected. That is not suspicious. The strong red/blue striping on the right is suspicious. (The white was made whiter, but since it is uniform inside the object, a color relationship exists between all pixels inside the outlines.)
However, anything white means that the relationship is totally broken. In this case, the dress, outline around the woman, and eyes/mouth all break the relationship. (Make sense: they cut her out and blurred the background.) The dress colors lack any kind of relationship with the RG/GB coloring. The dress colors actually lack a relationship with any of the common demosaic patterns: RGGB, BGGR, GRBG, YCMG, GMCY, etc. (10 total). The dress color is artificial.
Now for the cool part: even with the artificial coloring, there is still "some kind" of relationship with the coloring of adjacent pixels. Even though I do not know what the relationship is, I do know that the warping breaks it.
When I first saw that diamond, I thought "whoa!" So I went to Google Images and search for "ribbed shirt" and "stripped shirt" (both searches NSFW). There are plenty of examples of shirts over well-endowed women and models (and some fat guys) -- some pictures are real, some enhanced. With demosaic, the artificial (warped) ones had clear diamond patters, while all of the real ones (regardless of scale) lacked it. I also photographed some of my own shirts (I own some ribbed polo shirts). If I digitally warped the fabric, demosaic would identify it. But if I physically stretched the fabric then (regardless of scale) demosaic would not notice it.
Dan: excellent questions. Thanks!
However, I think she looks MUCH better with the darker skin. I wouldn't have lightened it. Bad move on VS’s part and one that will surely have people pulling the race card out.