/node-red-contrib-teachable-machine

A tensorflow.js node for Node-RED that enables to run custom trained Teachable Machine image classification online models.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

node-red-contrib-teachable-machine

Node-RED node pre-commit.ci status CI npm latest release npm total downloads Package Quality JavaScript Style Guide Code Climate maintainability GitHub license donate PayPal

A Node-RED node based in tensorflow.js that enables to run custom image classification trained models using Teachable Machine tool. All notable changes to this project will be documented in the CHANGELOG.md file.

Install

You have two options to install the node.

  • Use Manage palette option in Node-RED Menu (recommended) manage_pallete

  • Run the following command in your Node-RED user directory - typically ~/.node-red

    npm install node-red-contrib-teachable-machine

Note: If you run the command you will need to restart Node-RED after installation. If installation goes wrong please open a new issue.

Node usage

Step 1

Go to Teachable Machine and follow the steps to train your custom classification model. Once trained click on the Export Model button.

teachable_machine_export

Step 2

Select Tensorflow.js format and upload your trained model (for free). Once it is uploaded, copy the generated URL.

use_teachable_machine

Step 3

Paste the saved URL into the node configuration. That URL hosts all the information to load your trained model. Make sure you copy all the given URL including the https://....

config

Step 4

In Node-RED send a buffered image (jpeg or png) to the node. Check the example in the Import section.

Node Status Information

Shape

  • dot: node is idle
  • ring: node is working

Color

  • 🟩 green: model is available
  • 🟨 yellow: preparing model
  • 🟥 red: node error

Requirements

  • Node-RED v2.0.0+
  • Node.js v12.20.0+

Note: MacOSX, Windows 10 and Ubuntu 18.04+ are supported as well as using official docker nodered/node-red image based on Alpine image. Works with Raspberry Pi too since release v1.2.0+.

Mentions