0.0.3 • Published 4 months ago

@smcgann/node-red-face-detection-plus v0.0.3

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
4 months ago

platform npm version Min Node Version GitHub license

@smcgann/node-red-face-detection-plus

A Node-RED node that detects faces using AI.

You can use the output with šŸ”— @smcgann/node-red-vectorize-plus as part of a face recognition flow. You can also use it to crop the face images from the original image and save them as files.

This node is derived from šŸ”— @GOOD-I-DEER/node-red-contrib-face-detection

Key Changes

āœ” Added YOLOv8s-face model.
āœ” Added postinstall script to download models.
āœ” Updated dependencies.
āœ” Image Buffer output now includes bounding boxes (useful for annotations).
āœ” Moved data and originImg into separate msg properties.
āœ” Returns number of detected faces in msg.payload.
āœ” Supports runtime configuration through msg.faceOptions for dynamic settings.
āœ” Includes metadata in msg.faceConfig (threshold and model).
āœ” More robust error handling.
āœ” Better Performance.
āœ” Easier integration into Node-RED flows.


Installation

Either use the Edit Menu - Manage Palette option to install, or run the following command in your Node-RED user directory - typically ~/.node-red

cd ~/.node-red/
npm install @smcgann/node-red-face-detection-plus

Restart your Node-RED instance


Input Properties

šŸ–¼ļø msg.payload → Image Buffer

  • Accepts PNG, JPG, GIF, WEBP, TIFF, AVIF (binary image data).

āš™ļø msg.faceOptions → Object (Optional)

  • Allows overriding node config settings dynamically.
  • Example:
{  
  "threshold": 0.4,  
  "model": "yolov8n-face"  
}  

Node Properties

šŸ· Name

  • The name displayed in the Node-RED editor.

šŸ” Model

Select the detection model:

  • YOLOv8n (faster, good for larger faces)
  • YOLOv8s (detects smaller faces, but slower)

šŸ“¤ Return Value

Defines the type of data returned:

  • Detected Object → data.boxes
  • Image Buffer → data.faces (array of cropped face images) + data.boxes
  • Image File → Saves detected faces as separate files.

šŸ“‚ Absolute Path Dir

(Visible if Image File is selected)

  • Defines where the cropped face images are saved.

šŸŽÆ Confidence Threshold

  • Defines the minimum score required for a detected face to be considered valid (range: 0.1 - 1):

    ThresholdEffect
    Low (0.1 - 0.4)More faces detected, but higher risk of false positives.
    High (0.7 - 1.0)Fewer faces detected, reducing false positives but possibly missing faces.

Output

Data is output in the output format selected in the 'Return Value' property.

šŸ“Œ msg.payload → Number

  • Number of faces detected.

šŸ–¼ļø msg.originImg → Buffer

  • Input Image.

āš™ļø msg.faceConfig → Object

  • Returns values used for detection.

  {  
    "threshold": 0.4,  
    "model": "yolov8n-face"  
  }  

āœļø Authors

S.McGann → Modified Version.

GOOD-I-DEER (Samsung Software Academy for Youth)


šŸ“œ Copyright and license

S.McGann → Modified Version

Samsung Automation Studio Team under the GNU General Public License v3.0 license.

References

šŸ”— Node-RED Creating Nodes
šŸ”— Samsung Automation Studio Github Repository
šŸ”— Ultralytics YOLOv8
šŸ”— YOLOv8 ONNX in JavaScript
šŸ”— YOLOv8 ONNX in Node.js
šŸ”— YOLOv8 Face Model

0.0.3

4 months ago

0.0.2

5 months ago

0.0.1

5 months ago