I need a C# class library that is capable of processing an image to get a human face from it.
The library will contain a single public method with the following signature:
public bool GetFaceFromPhoto([login to view URL] input, out [login to view URL] output)
The function accepts an image as input, then returns the 'etched' face as output, and returns true if the detection and etching was successful.
Example calling code:
bool isEtchedOK = GetFaceFromPhoto(input, out output);
[login to view URL]("The image was processed successfully.");
[login to view URL]("There was a problem.");
The function returns false under the following conditions:
- The input image does not contain a face.
- The image has a face but it is too far away or blurry.
- The image has a face but eyes cannot be located (e.g. profile instead of front-on picture).
- Face is tilted or held at an angle.
- The image has a face but it could not be etched (e.g. face obscured).
- Any other issue with the process.
When the processing is successful, the output image contains the face only (no hair or ears), so the rest of the surrounding photo has been cropped out (transparent pixels); and the borders of the image are tight against top, right, bottom and left extents of the etched face. See the PNG file included.
Note that it is not sufficient to get a box around the face, I need the whole face image regardless of the shape. Please don't use the Azure face recognition software.
See the sample input and output for an example of how it should work.
The resulting library will be tested against 100 images. The milestone will be paid if the library works 95%+ of the time. Should be straightforward for a skilled developer.