Git Product home page Git Product logo

faldetector's Introduction

Detecting Photoshopped Faces by Scripting Photoshop
[Project Page] [Paper]

Sheng-Yu Wang1, Oliver Wang2, Andrew Owens1, Richard Zhang2, Alexei A. Efros1.
UC Berkeley1, Adobe Research2.
In ICCV, 2019.

9/30/2019 Update The code and model weights have been updated to correspond to the v2 of our paper. Note that the global classifer architecture is changed from resnet-50 to drn-c-26.

1/19/2019 Update Dataset for evaluation is released! The link is here.

(0) Disclaimer

Welcome! Computer vision algorithms often work well on some images, but fail on others. Ours is like this too. We believe our work is a significant step forward in detecting and undoing facial warping by image editing tools. However, there are still many hard cases, and this is by no means a solved problem.

This is partly because our algorithm is trained on faces warped by the Face-aware Liquify tool in Photoshop, and will thus work well for these types of images, but not necessarily for others. We call this the "dataset bias" problem. Please see the paper for more details on this issue.

While we trained our models with various data augmentation to be more robust to downstream operations such as resizing, jpeg compression and saturation/brightness changes, there are many other retouches (e.g. airbrushing) that can alter the low-level statistics of the images to make the detection a really hard one.

Please enjoy our results and have fun trying out our models!

(1) Setup

Install packages

  • Install PyTorch (pytorch.org)
  • pip install -r requirements.txt

Download model weights

  • Run bash weights/download_weights.sh

(2) Run our models

Global classifer

python global_classifier.py --input_path examples/modified.jpg --model_path weights/global.pth

Local Detector

python local_detector.py --input_path examples/modified.jpg --model_path weights/local.pth --dest_folder out/

Note: Our models are trained on faces cropped by the dlib CNN face detector. Although in both scripts we included the --no_crop option to run the models without face crops, it is used for images with already cropped faces.

(3) Dataset

A validation set consisting of 500 original and 500 modified images each from Flickr and OpenImage can be downloaded here. Due to licensing issues, the released validation set is different from the set we evaluate in the paper, and the training set will not be released.

In the zip file, original faces are in the original folder, and modified faces are in the modified folder. For reference, the reference folder contains the same faces in the modified folder, but those are before modification (original).

To evaluate the dataset, run:

# Download the dataset
cd data
bash download_valset.sh
cd ..
# Run evaluation script. Model weights need to be downloaded.
python eval.py --dataroot data --global_pth weights/global.pth --local_pth weights/local.pth --gpu_id 0

The following are the models' performances on the released set:

Accuracy AP PSNR Increase
93.9% 98.9% +2.66

(A) Acknowledgments

This repository borrows partially from the pytorch-CycleGAN-and-pix2pix, drn, and the PyTorch torchvision models repositories.

(B) Citation, Contact

If you find this useful for your research, please consider citing this bibtex. Please contact Sheng-Yu Wang <sheng-yu_wang at berkeley dot edu> with any comments or feedback.

faldetector's People

Contributors

peterwang512 avatar ke-zhang-rd avatar miraclewkf avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.