Homebridge plugin providing real time location tracking via facial recognition
Go to file
2020-12-20 11:35:39 -05:00
.vscode Working debug configuration 2020-11-30 20:55:31 -05:00
scripts Wip 2020-12-19 17:09:39 -05:00
src Wip 2020-12-19 17:09:39 -05:00
weights Moving weights. Adding train script 2020-11-08 15:33:07 -05:00
.env.defaults Wip 2020-11-27 23:03:12 -05:00
.env.schema Wip 2020-12-19 17:09:39 -05:00
.gitignore Successfully training models based on a collection of images 2020-11-08 20:57:57 -05:00
config.schema.json Wip 2020-11-27 23:03:12 -05:00
deploy.sh Working on linux host 2020-12-12 00:14:56 -05:00
homebridge-face-location.code-workspace Working debug configuration 2020-11-30 20:55:31 -05:00
package-lock.json Wip 2020-12-19 17:09:39 -05:00
package.json Wip 2020-12-19 17:09:39 -05:00
README.md Adding Readme 2020-12-20 11:35:39 -05:00
tsconfig.json Giving up on having nested projects 2020-12-10 19:57:12 -05:00

homebridge-face-location

Homebridge plugin providing real time location tracking via facial recognition.

Installation

  1. Download FFMPEG here

    Note: FFMPEG is required in order to run homebridge-face-location

  2. Clone the repository by running git clone ssh://git@thebword.ddns.net:3122/watsonb8/homebridge-face-location.git

  3. Run npm install to install required modules

  4. Run npm run build to build the module

  5. Run npm link to link this instance to your global homebridge instance

Configuration

{
      "platform": "HomeLocation",
      "name": "HomeLocation",
      "refImageDirectory": "/path/to/reference/images/",
      "trainedModelDirectory": "/path/to/trainedModel/data.json/",
      "weightDirectory": "/path/to/trained/weights/",
      "outputDirectory": "/path/to/desired/output/image/directory",
      "trainOnStartup": false,
      "rate": 1,
      "detectionTimeout": 90000,
      "watchdogTimeout": 10000,
      "debug": false,
      "writeOutput": true,
      "rooms": [
        {
          "name": "Kitchen",
          "rtspConnectionStrings": [
            "rtsp://username:password@example.com"
          ]
        },
        {
          "name": "LivingRoom",
          "rtspConnectionStrings": [
            "rtsp://username:password@example.com"
          ]
        }
      ]
    }

Platform

  • refImageDirectory: The location of the images used to train the facial recognition matcher

    NOTE: This directory should only contain sub directories labeled with the name of the person to be matched with their corresponding images in the labeled folder. Any labels found in this directory will be used in face tracking

  • trainedModelDirectory: The location of the trained data.json file if it exists. This is also the location where training data will be placed if trainOnStartup is true

  • weightDirectory: The location of the pre-trained weight files used for face detection

  • outputDirectory: The directory to be used if debug output images are wanted

  • trainOnStartup: If true, a trained model will be created and persisted in the trainedModelDirectory during startup

  • rate: The rate at which collect images from rtsp stream in fps

  • detectionTimeout: The number of milliseconds to wait after a person is detected before returing to the undetected state

  • watchdogTimeout: The number of milliseconds to wait before restarting the rtsp stream when a new image has not been recieved

  • debug: If true, additional debug logging is displayed in the console

  • writeOutput: If true, an image will be written to disk for every frame received from the rtsp stream

Rooms

  • name: The name of the room in which to detect

  • rtspConnectionStrings: A list of camera rtsp connection strings to associate with the room