Skip to content

Latest commit

 

History

History
168 lines (145 loc) · 4.15 KB

README.md

File metadata and controls

168 lines (145 loc) · 4.15 KB

node-rekognition

AWS Rekognition library

Installation

npm install node-rekognition

Use

Instantiation

const Rekognition = require('node-rekognition')

// Set your AWS credentials
const AWSParameters = {
    "accessKeyId": "XXX",
    "secretAccessKey": "XXX",
    "region": "XXX",
    "bucket": "XXX",
    "ACL": "XXX" // optional
}

const rekognition = new Rekognition(AWSParameters)

The ACL is optional and its possible values are: "private", "public-read", "public-read-write", "authenticated-read", "aws-exec-read", "bucket-owner-read", "bucket-owner-full-control" More info

Upload images to S3

Some methods from AWS Rekognition need one or more images uploaded to AWS S3 bucket

/**
 * Upload image or images array to S3 bucket into specified folder
 *
 * @param {Array.<string>|string} imagePaths
 * @param {string} folder a folder name inside your AWS S3 bucket (it will be created if not exists)
 */
const s3Images = await rekognition.uploadToS3(imagePaths, folder)

detectLabels

/**
 * Detects instances of real-world labels within an image
 *
 * @param {Object|Buffer} image
 * @param {string} threshold (optional. Defaults 50)
 */
const imageLabels = await rekognition.detectLabels(image)

detectFaces

/**
 * Detects faces within an image
 *
 * @param {Object|Buffer} image
 */
const imageFaces = await rekognition.detectFaces(image)

compareFaces

/**
 * Compares a face in the source input image with each face detected in the target input image
 *
 * @param {Object|Buffer} sourceImage
 * @param {Object|Buffer} targetImage
 * @param {string} threshold (optional. Defaults 90)
 */
const faceMatches = await rekognition.compareFaces(sourceImage, targetImage, threshold)

detectModerationLabels

/**
 * Detects explicit or suggestive adult content in image
 *
 * @param {Object|Buffer} image
 * @param {number} threshold (optional. Defaults 50)
 */
const moderationLabels = await rekognition.detectModerationLabels(image, threshold)

createCollection

/**
 * Creates a collection
 *
 * @param {string} collectionId
 */
const collection = await rekognition.createCollection(collectionId)

deleteCollection

/**
 * Deletes a collection
 *
 * @param {string} collectionId
 */
const collection = await rekognition.deleteCollection(collectionId)

indexFaces

/**
 * Detects faces in the input image and adds them to the specified collection
 *
 * @param {string} collectionId
 * @param {Object} s3Image
 */
const facesIndexed = await rekognition.indexFaces(collectionId, s3Image)

listFaces

/**
 * List the metadata for faces indexed in the specified collection
 *
 * @param {string} collectionId
 */
const faces = await rekognition.listFaces(collectionId)

searchFaces

/**
 * Searches in the collection for matching faces of faceId
 *
 * @param {string} collectionId
 * @param {string} faceId
 * @param {number} threshold (optional. Defaults 90)
 */
const faceMatches = await rekognition.searchFacesByFaceId(collectionId, faceId, threshold)

searchFacesByImage

/**
 * First detects the largest face in the image (indexes it), and then searches the specified collection for matching faces.
 *
 * @param {string} collectionId
 * @param {Object} s3Image
 * @param {number} threshold (optional. Defaults 90)
 */
const faceMatches = await rekognition.searchFacesByImage(collectionId, s3Image, threshold)

Test

First of all, you must create a parameters.json file and set your AWS parameters. You have an example file parametrs.json.example

  • cp parameters.json.example parameters.json
  • vim parameters.json

Then:

  • npm install
  • npm test

Changelog

Releases are documented in the NEWS file

Requirements

node >= 7.10.0

Contributing

You are welcome contribute via pull requests.

More info about AWS Rekognition

http://docs.aws.amazon.com/rekognition/latest/dg/API_Operations.html http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Rekognition.html