Code Monkey home page Code Monkey logo

facemation's People

Contributors

fwdekker avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

facemation's Issues

Support inputs other than JPG

Currently, Facemation supports only .jpg files. There's not really any good reason for this, since all operations by Facemation are over raw data read by libraries which don't care about the data type. The caches can remain JPG, but Facemation should support reading non-JPG inputs.

Add animated examples to README

The README could be a lot nicer if there were animated examples to be shown to the user. Then the user knows what they can expect. A list of features would also be nice. And once all that has been added, a table of contents will probably be required.

Show information when CLI options are passed

When a user invokes Facemation from the CLI with options (e.g. ./facemation --help or ./facemation --faster (the latter doesn't do anything special)), the user should be shown text indicating that Facemation has no command-line options, and should tell the user how to change the configuration, and with a link to the config_default.py file as a reference for how the config works.

Add automatic builds for macOS (and Windows and Linux)

Using GitHub actions, I should be able to build for macOS as well, and once I have that set up, I can also use that to build for Windows and Linux, which will save me from booting VMs every time I want to do a release.

Parallellise normalisation and captioning

While face detection is done in parallel, normalisation and captioning are currently not. It should be relatively easy to make these parts parallel. However, the speedup may be minimal, since it's mostly about IO.

Purge non-matching cache items

If input images were present before but no longer, cached items will still remain in the output/cache/ folder. Facemation should have an option so that all cache items that do not correspond to an image that is currently in the input is deleted.

I think the easiest way to add such a feature is by making a new section in the config, named general (or something), which is given to each stage of the pipeline.

Add versions to caches

Caches should be versioned, so that existing users can upgrade to a newer version of Facemation, and old cached data will not be used if it is incompatible with the newer version.

Time-padding frame duplication

If photos are not taken regularly (say, every day for the first 6 months, and every 3 days for the last 6 months), then the speed of changes will be different in different parts. To counteract this, Facemation should (optionally) duplicate (or drop? (or both?)) frames so that the average rate of photos is the same everywhere.

Collect face errors for the end

If 0 or >=2 faces are detected, Facemation throws an exception and exits. This is frustrating if one has hundreds of images with many faulty ones. Instead, Facemation should continue running but collect the images, and then fail once the face detection stage has completed, and then output all errors at once.

Warn if duplicate images are detected in input

If the input directory contains duplicate images, warn the user by indicating the corresponding files' names, as this may be an error. (Alternatively, give an error, and allow the user to ignore this error with a configurable setting.)

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.