Commit Graph

12 Commits

Author SHA1 Message Date
Matias De lellis
32f94d32b9 Fix test. Probably Remi changed some default option on php 8.0 update 2020-07-07 19:30:34 -03:00
Matias De lellis
526fb725ce Add native vector_lenght() function which calculates the euclidean distance 80%
faster. See https://github.com/matiasdelellis/pdlib/pull/2.

Increase the version to 1.0.2 since this is a required function for our
application and we must control it.

Add more compilation info in php-info(), and print a final message with the
build options when configure.

Fix that when dlib is not installed, the configuration returns that it cannot
find pkgconfig. See https://github.com/matiasdelellis/facerecognition/issues/261

Also implement the test on travis. See for example:
(https://travis-ci.com/github/matiasdelellis/pdlib/builds/161854044)
2020-07-07 19:11:56 -03:00
Remi Collet
cf0ce5a01e Fix and improve reflection
- use "p" for path (security check for nul byte)
- fix number of args for some methods
- add type hinting
- throw standard exception (simplify)
- fix test suite for PHP 7.0 to 8.0
2020-06-22 16:22:37 +02:00
Remi Collet
351bce6117 fix tests skip condition 2020-06-20 08:23:50 +02:00
Matias De lellis
cd4e7bcbdf Dont upsamply by default in CNN, and optional argument on fhog for that. 2020-03-07 10:46:12 -03:00
Matias De lellis
afc9164127 HOG detector also must return the rectangles of the detections. 2020-02-29 14:04:41 -03:00
Branko Kokanovic
a83750a4ff Fixing tests, closes #14 2019-11-28 23:14:34 +01:00
Branko Kokanovic
1e830a3285 Face recognition
This change adds support to retrieve 128D face descriptor for a given
landmark. Since now we have full pipeline, README.md has "general usage"
section and integration test is added. Also, return from
FaceLandmarkDetection is changed, so it can be given to FaceRecognition
without changes. All obtained values are crosschecked to match with values
from python versions (however, if num_jitters is > 1 in FaceRecognition,
values don't match between PHP and Python, I suspect it is related to usage
of dlib::rand, but still investigating)..
2018-08-29 00:31:57 +02:00
Branko Kokanovic
1a402fc63c Landmark detection (custom model and class-based)
This change extends existing landmark detection in new ways:
1. Existing logic is hiding HOG model (frontal_face_detector)
underneath and user cannot use other models (CNN model, for example).
2. Bounding box is exposed as additional argument, and user
can define custom bounding box (which is needed, if image used to detect
faces is changed (for example scaled), and we want to crop only face
from original image to feed into shape predictor).
3. This approach is class-based, so no need for multiple loadings of
shape predictor model (only once, in ctor)
2018-08-27 20:46:47 +02:00
Branko Kokanovic
3f60326661 Support for raw chinese_whispers
This commit introduces chinese_whispers method without any "helpers" on
PHP side. Users needs to take care of everything (building edges from
128D face chip vector, for example), but this is exposed for people
that need low-level call and want to calculate distances and build edges
in PHP directly.
2018-08-07 00:04:05 +02:00
Branko Kokanovic
f8cc0e48d3 Adding support for cnn face detector
CNN face detector (deep learning face detection) is modeled as
PHP class. Currently, it only has constructor (which loads a model)
and detect() method. I tried to make it resamble to Python implementation.
Similar to Python, also added support for upsampling. Returned value
is array with numbers as keys where number of keys is equal to number
of found faced. Each element is associative array that has "top", "left",
"right", "bottom" and "detection_confidence" keys.

All errors are propagated using exceptions.

Added two new error tests. I didn't want to rely on presence of model,
so tests are not having great coverage. If we are OK to download models
in tests, it would allow us to have far better coverage.

What is missing:
* Testing with models (should we test that?)
* detect_mult method (similar to what Python have; however, I consider
  that this should not block pushing this change)
2018-07-16 22:34:55 +02:00
goodspb
5539b5bff8 first commit 2018-05-21 01:23:19 +08:00