![crates-badge] ![docs-badge] ![license-badge]

pico-detect

This library is a reimplementation of Pixel Intensity Comparison-based Object (PICO) detection algorithms in Rust:

Example

To run CLI example, which takes an image, finds all faces, detects some landmarks and pupils:

NOTE: Git LFS is needed to resolve binary files with git clone.

If you don't want to use Git LFS you can download models (and test image) direct from this repo (see model column in the table below) and put them under models/ directory.

sh cargo run --release --example cli -- --input "tests/assets/Lenna_(test_image).png" --output result.png

Output image result.png should be like this:

visualization example

Models

Each algorithm requires to be loaded with correspondent binary model.

| model | algorithm | source | Description | |---------------------------|-------------|------------------------------------|---------------------------| | [facefinder] | Detector | [pico] | Human face classifier | | [puploc] | Localizer | [puploc source] | Human eye pupil localizer | | [shaper5facelandmarks] | Shaper | [shapepredictor5face_landmarks] | Human 5 face landmarks |

References

  1. N. Markus, M. Frljak, I. S. Pandzic, J. Ahlberg and R. Forchheimer, "Object Detection with Pixel Intensity Comparisons Organized in Decision Trees"

  2. Eye pupil localization with an ensemble of randomized trees

  3. One Millisecond Face Alignment with an Ensemble of Regression Trees