Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xiaohk/FaceData

A macOS app to parse face landmarks from a video for training GANs
https://github.com/xiaohk/FaceData

annotator gans macos swift vision

Last synced: about 1 month ago
JSON representation

A macOS app to parse face landmarks from a video for training GANs

Awesome Lists containing this project

README

        

# Face Data

A macOS application used to auto-annotate landmarks from a video. Those landmarks can further be used as training data for Generative Adversarial Networks (GANs).

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5348316.svg)](https://doi.org/10.5281/zenodo.5348316)
[![License](https://img.shields.io/badge/License-MIT-red)](https://github.com/xiaohk/FaceData/blob/master/LICENSE)



## Getting Started

### Installing

You can either download the binary file from [`Rease`](https://github.com/xiaohk/FaceData/releases) or build the source code using Xcode.

### Use



| | Description |
|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Video Path | Path to the video file, currently only support `.mp4` files. Use `Select File` to generate path using a file browsing panel. |
| Output Path | Path to the output directory, this app will create `origin` and `landmarks` two sub-directories. Use `Select Folder` to generate path using a file browsing panel. |
| Start Second | An integer value indicating from which second to start capturing frames from the video, default is 0 (from the beginning) |
| End Second | This app would not extract frames after this second. Default is the duration of the video. |
| # of Frames | Integer value of how many frames you want to generate. Default is 100 frames. |
| Start | Start the process. |
| Cancel | Stop the process. |

### Output

- Two sub-directories `origin` and `landmark` will be created in the specified output directory.
- `origin` contains the original frames extracted from the video, with file name: `img001.png`.
- `landmark` contains the landmark image drawn based on the corresponding frame in `origin`, with file name: `img001lm.png`.
- If there is no face detected in one original frame, the corresponding file name in `landmark` is `no_face_img001lm.png`.

### Output Images Processing

You will probably want to process the generated images to fit the size restriction for you GANs model. You can refer the Python script `crop.py`.

## Built With

* [Apple Vision Library](https://developer.apple.com/documentation/vision) - Easy to reproduce the landmarks in iOS devices
* [Apple AV Foundation](https://developer.apple.com/av-foundation/) - Also use lower level image format (`CGImage`) to make codes portable to Cocoa Touch