Wekinator: Classify Colors

Connecting Node-RED to Wekinator via OSC

screenshot

Usage

  1. Run and initalize Wekinator
  2. Train a color classification model via the GUI
  3. Run the color classification model via the GUI

Requirements

[{"id":"1ed05159.d4b7cf","type":"tab","label":"Wekinator: Classify Colors","disabled":false,"info":""},{"id":"60fd3ea1.c409a","type":"subflow","name":"Switch Button","info":"","category":"","in":[],"out":[{"x":1280,"y":160,"wires":[{"id":"eaffab53.46b9f","port":0}]}],"env":[{"name":"label_off","type":"str","value":"turn on"},{"name":"label_on","type":"str","value":"turn off"},{"name":"initial_state","type":"bool","value":"true"}],"color":"#DDAA99"},{"id":"e4be990c.e29fe8","type":"ui_base","theme":{"name":"theme-light","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"Arial,Arial,Helvetica,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"Untitled Theme 1","default":"#4B7930","baseColor":"#4B7930","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","reset":false},"themeState":{"base-color":{"default":"#0094CE","value":"#0094CE","edited":false},"page-titlebar-backgroundColor":{"value":"#0094CE","edited":false},"page-backgroundColor":{"value":"#fafafa","edited":false},"page-sidebar-backgroundColor":{"value":"#ffffff","edited":false},"group-textColor":{"value":"#1bbfff","edited":false},"group-borderColor":{"value":"#ffffff","edited":false},"group-backgroundColor":{"value":"#ffffff","edited":false},"widget-textColor":{"value":"#111111","edited":false},"widget-backgroundColor":{"value":"#0094ce","edited":false},"widget-borderColor":{"value":"#ffffff","edited":false},"base-font":{"value":"Arial,Arial,Helvetica,sans-serif"}},"angularTheme":{"primary":"indigo","accents":"blue","warn":"red","background":"grey"}},"site":{"name":"Node-RED Dashboard","hideToolbar":"false","allowSwipe":"false","lockMenu":"false","allowTempTheme":"true","dateFormat":"DD/MM/YYYY","sizes":{"sx":60,"sy":40,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"d4904c94.5720c8","type":"ui_tab","z":"","name":"Wekinator: Classify Colors","icon":"dashboard","order":1,"disabled":false,"hidden":false},{"id":"83b8b3ff.39d08","type":"ui_group","z":"","name":"Color","tab":"d4904c94.5720c8","order":2,"disp":true,"width":"4","collapse":false},{"id":"ddac9f8f.a8921","type":"ui_group","z":"","name":"Label","tab":"d4904c94.5720c8","order":3,"disp":true,"width":"4","collapse":false},{"id":"50476582.439a24","type":"ui_group","z":"","name":"Control","tab":"d4904c94.5720c8","order":1,"disp":true,"width":"4","collapse":false},{"id":"2c27bc91.ebf784","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wek/inputs","metadata":false,"x":1090,"y":400,"wires":[["eb049b77.e8f0d8"]]},{"id":"6f140435.66b6f4","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wek/outputs","metadata":false,"x":330,"y":520,"wires":[["71d1ffc2.73184"]]},{"id":"c0da5d89.c4e1a8","type":"udp out","z":"1ed05159.d4b7cf","name":"","addr":"localhost","iface":"","port":"6448","ipv":"udp4","outport":"","base64":false,"multicast":"false","x":1650,"y":460,"wires":[]},{"id":"a1015683.971a68","type":"udp in","z":"1ed05159.d4b7cf","name":"","iface":"","port":"12000","ipv":"udp4","multicast":"false","group":"","datatype":"buffer","x":180,"y":520,"wires":[["6f140435.66b6f4"]]},{"id":"b20fb99e.4e765","type":"ui_colour_picker","z":"1ed05159.d4b7cf","name":"","label":"","group":"83b8b3ff.39d08","format":"rgb","outformat":"object","showSwatch":true,"showPicker":true,"showValue":true,"showHue":false,"showAlpha":false,"showLightness":true,"square":"false","dynOutput":"false","order":1,"width":"4","height":"1","passthru":false,"topic":"","x":710,"y":400,"wires":[["e0ecf9c5.b4b92"]]},{"id":"e0ecf9c5.b4b92","type":"change","z":"1ed05159.d4b7cf","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"[payload.r, payload.g, payload.b]","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":400,"wires":[["2c27bc91.ebf784"]]},{"id":"339bb031.0051d","type":"ui_dropdown","z":"1ed05159.d4b7cf","name":"","label":"","tooltip":"","place":"Select option","group":"ddac9f8f.a8921","order":1,"width":"4","height":"1","passthru":false,"multiple":false,"options":[{"label":"red","value":1,"type":"num"},{"label":"green","value":2,"type":"num"},{"label":"blue","value":3,"type":"num"}],"payload":"","topic":"","x":710,"y":520,"wires":[["71da9fc6.2ec23"]]},{"id":"71da9fc6.2ec23","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/outputs","metadata":false,"x":1090,"y":520,"wires":[["eb049b77.e8f0d8"]]},{"id":"7a000af.a381e74","type":"comment","z":"1ed05159.d4b7cf","name":"send color components as inputs","info":"","x":770,"y":360,"wires":[]},{"id":"72c803f9.8b9f24","type":"comment","z":"1ed05159.d4b7cf","name":"send or receive classification label","info":"","x":780,"y":480,"wires":[]},{"id":"e1bd3cad.dff46","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/startRecording","metadata":false,"x":1090,"y":660,"wires":[["55c93f42.dfb9e"]]},{"id":"2a463774.f0e4e8","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/stopRecording","metadata":false,"x":1090,"y":700,"wires":[["55c93f42.dfb9e"]]},{"id":"79fce7e5.92ab38","type":"inject","z":"60fd3ea1.c409a","name":"","topic":"","payload":"initial_state","payloadType":"env","repeat":"","crontab":"","once":true,"onceDelay":"0.1","x":170,"y":160,"wires":[["5d1e5d2e.cb4724"]]},{"id":"5d1e5d2e.cb4724","type":"change","z":"60fd3ea1.c409a","name":"initalize","rules":[{"t":"set","p":"button_state","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":160,"wires":[["ff8c6686.0a5e78"]]},{"id":"dd9da337.e2ce18","type":"change","z":"60fd3ea1.c409a","name":"","rules":[{"t":"set","p":"button_state","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":860,"y":320,"wires":[["ff8c6686.0a5e78"]]},{"id":"ff8c6686.0a5e78","type":"change","z":"60fd3ea1.c409a","name":"","rules":[{"t":"set","p":"label","pt":"msg","to":"$flowContext(\"button_state\") ? $env(\"label_on\") : $env(\"label_off\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":160,"wires":[["ddd7cb35.f21e3"]]},{"id":"8986be4d.fdf0f","type":"comment","z":"60fd3ea1.c409a","name":"a switchable button","info":"","x":210,"y":100,"wires":[]},{"id":"ddd7cb35.f21e3","type":"ui_button","z":"60fd3ea1.c409a","name":"","group":"50476582.439a24","order":1,"width":0,"height":0,"passthru":false,"label":"{{msg.label}}","tooltip":"","color":"","bgcolor":"","icon":"","payload":"button_state","payloadType":"flow","topic":"","x":850,"y":160,"wires":[["eaffab53.46b9f"]]},{"id":"902fb391.64df","type":"subflow:60fd3ea1.c409a","z":"1ed05159.d4b7cf","name":"recording","env":[{"name":"label_off","value":"start recording","type":"str"},{"name":"label_on","value":"stop recording","type":"str"},{"name":"initial_state","value":"false","type":"bool"},{"name":"label2","value":"drei","type":"str"}],"x":700,"y":680,"wires":[["2309cb32.c63cb4"]]},{"id":"2309cb32.c63cb4","type":"switch","z":"1ed05159.d4b7cf","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":890,"y":680,"wires":[["e1bd3cad.dff46"],["2a463774.f0e4e8"]]},{"id":"eaffab53.46b9f","type":"change","z":"60fd3ea1.c409a","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$not(msg.payload)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1020,"y":160,"wires":[["dd9da337.e2ce18"]]},{"id":"8514725f.a942d","type":"switch","z":"1ed05159.d4b7cf","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":890,"y":900,"wires":[["5768e267.69530c"],["967a268.61c03d8"]]},{"id":"f11f06c8.fd9d28","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/train","metadata":false,"x":1090,"y":780,"wires":[["55c93f42.dfb9e"]]},{"id":"5768e267.69530c","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/startRunning","metadata":false,"x":1090,"y":880,"wires":[["55c93f42.dfb9e"]]},{"id":"967a268.61c03d8","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/stopRunning","metadata":false,"x":1090,"y":920,"wires":[["55c93f42.dfb9e"]]},{"id":"9b02b2ff.29bd48","type":"comment","z":"1ed05159.d4b7cf","name":"control","info":"","x":690,"y":640,"wires":[]},{"id":"abee9a79.85d6f8","type":"switch","z":"1ed05159.d4b7cf","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":890,"y":800,"wires":[["f11f06c8.fd9d28"],["8a793bd2.62b9a8"]]},{"id":"8a793bd2.62b9a8","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/cancelTrain","metadata":false,"x":1090,"y":820,"wires":[["55c93f42.dfb9e"]]},{"id":"c6fd52c4.f0561","type":"subflow:60fd3ea1.c409a","z":"1ed05159.d4b7cf","name":"train","env":[{"name":"label_off","value":"train","type":"str"},{"name":"label_on","value":"cancel training","type":"str"},{"name":"initial_state","value":"false","type":"bool"},{"name":"label2","value":"drei","type":"str"}],"x":690,"y":800,"wires":[["abee9a79.85d6f8"]]},{"id":"cc9dfeab.5343e8","type":"subflow:60fd3ea1.c409a","z":"1ed05159.d4b7cf","name":"run","env":[{"name":"label_off","value":"run","type":"str"},{"name":"label_on","value":"stop running","type":"str"},{"name":"initial_state","value":"false","type":"bool"},{"name":"label2","value":"drei","type":"str"}],"x":690,"y":900,"wires":[["8514725f.a942d"]]},{"id":"55c93f42.dfb9e","type":"link out","z":"1ed05159.d4b7cf","name":"","links":["8ff6cfee.b8c718"],"x":1315,"y":800,"wires":[]},{"id":"8ff6cfee.b8c718","type":"link in","z":"1ed05159.d4b7cf","name":"","links":["55c93f42.dfb9e","eb049b77.e8f0d8","5faf60bf.6df06"],"x":1475,"y":460,"wires":[["c0da5d89.c4e1a8"]]},{"id":"eb049b77.e8f0d8","type":"link out","z":"1ed05159.d4b7cf","name":"","links":["8ff6cfee.b8c718"],"x":1315,"y":460,"wires":[]},{"id":"f9f9307a.64eee8","type":"ui_button","z":"1ed05159.d4b7cf","name":"","group":"50476582.439a24","order":2,"width":"4","height":"1","passthru":false,"label":"delete examples","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":720,"y":980,"wires":[["ec3acb42.c9e67"]]},{"id":"ec3acb42.c9e67","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/deleteAllExamples","metadata":false,"x":1090,"y":980,"wires":[["55c93f42.dfb9e"]]},{"id":"2e0d98fb.b900f8","type":"comment","z":"1ed05159.d4b7cf","name":"receive OSC","info":"","x":190,"y":480,"wires":[]},{"id":"7c848b7e.34959c","type":"comment","z":"1ed05159.d4b7cf","name":"send OSC","info":"","x":1620,"y":420,"wires":[]},{"id":"97f3bf5f.6cd3","type":"comment","z":"1ed05159.d4b7cf","name":"initalise","info":"","x":170,"y":100,"wires":[]},{"id":"d98b3eba.a4da6","type":"inject","z":"1ed05159.d4b7cf","name":"click here while on the wekinator setup screen","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":290,"y":140,"wires":[["b478ea5d.cb5358","23800497.e161fc"]]},{"id":"b1b0d1e1.9b4a4","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/setInputNames","metadata":false,"x":1090,"y":140,"wires":[["5faf60bf.6df06"]]},{"id":"35bfbf1f.8a1b8","type":"osc","z":"1ed05159.d4b7cf","name":"","path":"/wekinator/control/setOutputNames","metadata":false,"x":1090,"y":240,"wires":[["5faf60bf.6df06"]]},{"id":"23800497.e161fc","type":"change","z":"1ed05159.d4b7cf","name":"r,g,b","rules":[{"t":"set","p":"payload","pt":"msg","to":"[\"r\",\"g\",\"b\"]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":690,"y":140,"wires":[["b1b0d1e1.9b4a4"]]},{"id":"b478ea5d.cb5358","type":"change","z":"1ed05159.d4b7cf","name":"red, green, blue","rules":[{"t":"set","p":"payload","pt":"msg","to":"red, green, blue","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":240,"wires":[["35bfbf1f.8a1b8"]]},{"id":"5faf60bf.6df06","type":"link out","z":"1ed05159.d4b7cf","name":"","links":["8ff6cfee.b8c718"],"x":1315,"y":220,"wires":[]},{"id":"9c5ef3c5.9e1b1","type":"comment","z":"1ed05159.d4b7cf","name":"3 inputs (color components)","info":"","x":760,"y":100,"wires":[]},{"id":"c97e8755.2e53b8","type":"comment","z":"1ed05159.d4b7cf","name":"1 output  (color classification)","info":"","x":760,"y":200,"wires":[]},{"id":"cf1ac6f.94db238","type":"comment","z":"1ed05159.d4b7cf","name":"better safe than sorry","info":"","x":520,"y":480,"wires":[]},{"id":"71d1ffc2.73184","type":"function","z":"1ed05159.d4b7cf","name":"round","func":"msg.payload = Math.round(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":470,"y":520,"wires":[["339bb031.0051d"]]}]

Collection Info

next

Flow Info

Created 4 years, 3 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • change (x7)
  • comment (x10)
  • function (x1)
  • inject (x2)
  • link in (x1)
  • link out (x3)
  • switch (x3)
  • udp in (x1)
  • udp out (x1)
Other
  • osc (x12)
  • subflow (x1)
  • subflow:60fd3ea1.c409a (x3)
  • tab (x1)
  • ui_base (x1)
  • ui_button (x2)
  • ui_colour_picker (x1)
  • ui_dropdown (x1)
  • ui_group (x3)
  • ui_tab (x1)

Tags

  • wekinator
  • machine_learning
  • classification
  • OSC
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option