Facial Recognition Interface for Clarion

Are there any available Facial Recognition systems/templates that can be integrated with Clarion?
Has anyone tried the Amazon Rekognition templates in real life?

There is the Face Detector for Clarion, it finds faces position on an image.

1 Like

Where can I find information about the “Face detector for clarion” ?

Depends on the information type you’re looking for. For example, the price can be found on clarionshop.

1 Like

Hi Mike,

I saw your product listed in ClarionShop but the description is a bit brief. Could you provide more information about Face Detector? For example, is this 100% Clarion code or is it a wrapper around a third party library (such as OpenCV)? Is there any demo software I can try. How does this work? For example, do I pass an image (in a specific format) to your procedure and it returns a rectangle coordinate or this works of an image control on a window? I uses ImageEx to provide a cropping frame for the user to manually crop a video captured image. Is it possible to use Face Detector set the initial position of the cropping frame?

Edward,

TFaceDetectorBase             CLASS, TYPE, MODULE('FaceDetector.clw'), LINK('FaceDetector.clw')
!!!<summary>Sets the cascade classifier xml.</summary>
SetCascadeXml                   PROCEDURE(STRING pXmlFile), BOOL, PROC
!!!<summary>Finds rectangular regions in the given image that are likely to contain objects the cascade has been trained for and returns those regions as a sequence of rectangles.</summary>
!!!<remarks>The function scans the image several times at different scales. Each time it considers overlapping regions in the image. It may also apply some heuristics
!!!to reduce number of analyzed regions, such as Canny prunning. After it has proceeded and collected the candidate rectangles (regions that passed the classifier cascade),
!!!it groups them and returns a sequence of average rectangles for each large enough group.
!!!</remarks>
!!!<param name="pImageFile">The image where the objects are to be detected from.</param>
!!!<param name="pScaleFactor">The factor by which the search window is scaled between the subsequent scans, for example, 1.1 means increasing window by 10%.</param>
!!!<param name="pMinNeighbors">Minimum number (minus 1) of neighbor rectangles that makes up an object. All the groups of a smaller number of rectangles than pMinNeighbors-1 are rejected.
!!!If pMinNeighbors is 0, the function does not any grouping at all and returns all the detected candidate rectangles, which may be useful if the user wants 
!!!to apply a customized grouping procedure. Use 3 for default.
!!!</param>
!!!<param name="pMinWidth">Minimum window width. Use pMinWidth=0 or pMinHeight=0 for default, where window size is set to the size of samples the classifier has been trained on (~20x20 for face detection).</param>
!!!<param name="pMinHeight">Minimum window height.</param>
!!!<returns>A number of detected faces.</returns>
GetFaces                        PROCEDURE(STRING pImageFile, REAL pScaleFactor=1.1, LONG pMinNeighbors=3, LONG pMinWidth=0, LONG pMinHeight=0), LONG
!!!<summary>Gets the rectangle from an array of rectangles returned by GetFaces method.</summary>
GetFaceByIndex                  PROCEDURE(LONG pIndex, *_RECT_ pFaceRect), BOOL, PROC
!!!<summary>Gets the largest rectangle from an array of rectangles returned by GetFaces method.</summary>
GetLargestFace                  PROCEDURE(*_RECT_ pFaceRect, STRING pImageFile, REAL pScaleFactor=1.1, LONG pMinNeighbors=3, LONG pMinWidth=0, LONG pMinHeight=0), LONG
!!!<summary>Draws rectangles around all detected faces and saves the resulting image in new file.</summary>
SaveFaces                       PROCEDURE(STRING pOrigFile, STRING pResultFile, REAL pScaleFactor=1.1, LONG pMinNeighbors=3, LONG pMinWidth=0, LONG pMinHeight=0), LONG, PROC
!!!<summary>Gets the last rotation value used in detection process. Available values: 0, Rotate90FlipNone, Rotate270FlipNone, Rotate180FlipNone.</summary>
GetRotation                     PROCEDURE(), LONG
                              END

Hi Mike,

Thank you for the class description and the demo. I will study it for our applications.

Edward