Skip to content
This repository has been archived by the owner on Oct 14, 2023. It is now read-only.
/ FabSoften Public archive

Unofficial implementation of "FabSoften: face beautification via dynamic skin smoothing, guided feathering, and texture restoration"

License

Notifications You must be signed in to change notification settings

Gnimuc/FabSoften

Repository files navigation

FabSoften

Build Status CI Windows Documentation

This project is an unofficial implementation of FabSoften: face beautification via dynamic skin smoothing, guided feathering, and texture restoration. This paper is from Samsung R&D Institute Bangalore, India, and is very likely patented. This implementation is mainly for educational purposes, so the performance is not optimized.

Prerequisites

This project uses some C++20 features(e.g. The One Ranges Proposal), so you need a relatively new C++ compiler. As for the ranges feature, you need GCC 10+, Clang++ 13+, Microsoft Visual Studio 2019 16.10+. For other features, please check https://en.cppreference.com/w/cpp/compiler_support.

Before you begin, you'll install the following softwares on your system:

  • CMake 3.21+: An open-source, cross-platform family of tools designed to build, test and package software
  • OpenCV 4+: Open Source Computer Vision Library
  • doxygen(optional): The de facto standard tool for generating documentation from annotated C++ sources
  • 7zip(optional): A file archiver with a high compression ratio

7zip is used for extracting bzip2 files(e.g. shape_predictor_68_face_landmarks.dat.bz2). If you'd like to manually provide those models without auto-downloading through CMake, there is no need to use 7zip. If not, make sure 7z -h works on the command line, for example:

C:\Users\Gnimuc>7z -h

7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

<Commands>
  a : Add files to archive
  b : Benchmark
...

Build

On Windows, it's highly recommended to use Powershell or Windows Terminal to build this project:

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/your_install_prefix_dir
cmake --build . --config Release
ctest --Release

Examples

This library provides a thin C89 API over the C++ API, please check this example for details.

The C++ API and other examples can also be found in the examples folder.

TODO List

  • Preprocessing
    • Landmark Detection
    • Binary Skin Mask
    • Blemish Detection and Concealment
  • Skin Mask Generation and Refinement
    • GMM Clustering (#6)
    • Segmentation?
    • Guided Feathering (pending)
  • Skin Imperfection Smoothing
    • Dynamic Mean Filter
    • Attribute-aware Dynamic Guided Filter
  • Skin Texture Restoration (Wavelet-based STR)

LICENSE

FabSoften is primarily distributed under the terms of the MIT license.

All code in this repository is released under the terms of the MIT license.

Those assets, models, and external dependencies are released under their licenses, respectively.

About

Unofficial implementation of "FabSoften: face beautification via dynamic skin smoothing, guided feathering, and texture restoration"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published