Friendly machine learning for the web! πŸ€–

Overview

Read our ml5.js Code of Conduct and software licence here!

ml5

All Contributors BrowserStack Status Version Twitter Follow

This project is currently in development.

Friendly machine learning for the web!

ml5.js aims to make machine learning approachable for a broad audience of artists, creative coders, and students. The library provides access to machine learning algorithms and models in the browser, building on top of TensorFlow.js.

The library is supported by code examples, tutorials, and sample data sets with an emphasis on ethical computing. Bias in data, stereotypical harms, and responsible crowdsourcing are part of the documentation around data collection and usage.

ml5.js is heavily inspired by Processing and p5.js.

Please read our Code of Conduct, which establishes our commitment to make ml5.js a friendly and welcoming environment.

Usage

Before getting started with ml5.js, review our Code of Conduct. There are several ways you can use the ml5.js library:

  • You can use the latest version (0.7.1) by adding it to the head section of your HTML document:

v0.7.1

<script src="https://unpkg.com/[email protected]/dist/ml5.min.js" type="text/javascript"></script>

  • If you need to use an earlier version for any reason, you can change the version number. The previous versions of ml5 can be found here. You can use those previous versions by replacing <version> with the ml5 version of interest:
<script src="https://unpkg.com/ml5@<version>/dist/ml5.min.js" type="text/javascript"></script>

For example:

<script src="https://unpkg.com/[email protected]/dist/ml5.min.js" type="text/javascript"></script>
  • You can also reference "latest", but we do not recommend this as your code may break as we update ml5.
<script src="https://unpkg.com/ml5@latest/dist/ml5.min.js" type="text/javascript"></script>

Resources

Standalone Examples

You can find a collection of standalone examples in this repository within the examples/ directory. You can also test working hosted of the examples online on the ml5.js examples index website.

These examples are meant to serve as an introduction to the library and machine learning concepts.

Code of Conduct

We believe in a friendly internet and community as much as we do in building friendly machine learning for the web. Please refer to our Code of Conduct for our rules for interacting with ml5 as a developer, contributor, or as a person using the library.

Contributing

Want to be a contributor πŸ— to the ml5.js library? If yes and you're interested to submit new features, fix bugs, or help develop the ml5.js ecosystem, please go to our CONTRIBUTING documentation to get started.

See CONTRIBUTING πŸ› 

Acknowledgements

ml5.js is supported by the time and dedication of open source developers from all over the world. Funding and support is generously provided by a Google Education grant at NYU's ITP/IMA program.

Many thanks BrowserStack for providing testing support.

Contributors

Thanks goes to these wonderful people (emoji key):


Daniel Shiffman

πŸ’» πŸ’‘ πŸ“† πŸ‘€ ⚠️ πŸ“Ή

CristΓ³bal Valenzuela

πŸ’» πŸ’‘ πŸ‘€ πŸ”§ ⚠️

Yining Shi

πŸ’» πŸ’‘ πŸ‘€ πŸ”§ ⚠️ πŸ›

Hannah Davis

πŸ’» πŸ’‘

Joey Lee

πŸ’» πŸ’‘ πŸ‘€ πŸ–‹ ⚠️

AshleyJaneLewis

πŸ“ 🎨 πŸ“‹ πŸ–‹

Ellen Nickles

πŸ“ πŸ–‹ πŸ€” βœ…

Itay Niv

πŸ’» πŸ’‘

Nikita Huggins

πŸ“ πŸ–‹ πŸ€”

Arnab Chakravarty

πŸ–‹ πŸ““

Aidan Nelson

πŸ’» πŸ’‘

WenheLI

πŸ’» πŸ’‘ 🚧 πŸ€”

Darius Kazemi

πŸ€” πŸ’¬

Dingsu Wang

πŸ’» πŸ’‘

garym140

πŸ–‹ πŸ“ πŸ€” πŸ““

Gene Kogan

πŸ’» πŸ’‘ πŸ€”

Hayley Hwang

πŸ’» πŸ’‘ πŸ€”

Lisa Jamhoury

πŸ’‘ πŸ€”

Alejandro Matamala Ortiz

🎨 πŸ–‹ πŸ“

Maya Man

πŸ’» πŸ’‘

Mimi Onuoha

πŸ€” πŸ–‹ πŸ‘€

Yuuno, Hibiki

πŸ’» πŸ’‘ 🚧

Dan Oved

πŸ’» πŸ’‘ πŸ’¬ πŸ€”

Stephanie Koltun

πŸ’» πŸ’‘ πŸ–‹ πŸ“ 🎨

YG Zhang

πŸ’» πŸ’‘ πŸ€”

Wenqi Li

πŸ’» πŸ’‘ πŸš‡

Brent Bailey

⚠️ πŸ’» πŸ’‘

Jonarod

πŸ’»

Jasmine Otto

πŸ’» ⚠️ πŸ’‘

Zaid Alyafeai

πŸ’» πŸ’‘ πŸ€” πŸ’¬

Jacob Foster

πŸ’» πŸ’‘ ⚠️

Memo Akten

πŸ’» πŸ’‘

Mohamed Amine

πŸ’» πŸ’‘ πŸ€” ⚠️

Oliver Wright

πŸ’» ⚠️

Marshal Hayes

πŸ“–

Reiichiro Nakano

πŸ’» ⚠️ πŸ’‘

Nikhil Thorat

πŸ’» πŸ’‘ πŸ€” πŸš‡

Irene Alvarado

πŸ’» πŸ’‘ 🚧 πŸ€”

Andrew Lee

πŸ’» πŸ’‘ πŸ€”

Jerhone

πŸ“–

achimkoh

πŸ’» πŸ’‘ ⚠️

Jim

πŸ’‘ πŸ“– πŸ–‹

Junya Ishihara

🚧 πŸ’»

Naoto HIÉDA

🚧

aarΓ³n montoya-moraga

🚧 πŸ’‘

b2renger

πŸ’» πŸš‡

Aditya Sharma

🚧

okuna291

πŸ€”

Jenna

πŸ€”

nicoleflloyd

πŸ–‹ 🎨 πŸ““

jepster-dk

πŸ’» πŸ€”

Xander Jake de los Santos

πŸ€”

Cassie Tarakajian

πŸ› πŸš‡ πŸ€”

Dave Briccetti

πŸ›

Sblob1

πŸ›

Jared Wilber

πŸ’‘ πŸ€” πŸ’»

danilo

πŸ’» πŸ€”

Emma Goodliffe

πŸ€” πŸ’¬ 🚧

Yang

πŸ’» πŸ›

Lydia Jessup

πŸ’» πŸ€” πŸ’‘

CJ R.

πŸ“– πŸ–‹

Fabio Corona

πŸ›

Tobias Nickel

πŸ› πŸ’»

Michael Salaverry

πŸ–‹ πŸ›

Rob

πŸ› πŸ’¬

Pujaa Rajan

πŸ’‘ πŸ›

Nick McIntyre

⚠️ πŸ›

Andy Baio

πŸ–‹ 🚧

Wenqi Li

πŸ–‹ πŸ’» πŸš‡ 🚧 πŸ€”

garym140

🎨

Jim

πŸ–‹ 🚧 πŸ€”

Yeswanth

🚧 πŸ›

Pettrus Sherlock

πŸ› 🚧

danilo

πŸ–‹

Andreas Refsgaard

πŸ–‹

Brian Jordan

πŸ–‹

bradley inniss

πŸ–‹

Kaushlendra Pratap

πŸ–‹

maxdevjs

πŸ–‹

josher19

πŸ–‹ πŸ›

Frederik De Bleser

πŸ–‹

Violet

πŸ›

Tirta Wening Rachman

πŸ’» πŸ–‹ πŸ€”

MikΓ‘ Kruschel

πŸ’» πŸ›

Takanobu Asanuma

πŸ–‹

Martin L. Jensen

πŸ–‹

Hugo Romano

πŸ–‹

Darshan Sen

πŸ–‹

Ludwig Stumpp

πŸ‘€ πŸ› πŸ’‘

Bomani Oseni McClendon

πŸ–‹ πŸ’»

Jang Haemin

πŸ–‹

Anton Filatov

πŸ–‹

Elijah Lucian

πŸ“–

Tam

πŸ–‹

RGV

πŸ’¬

hansvana

πŸ–‹

Ali Karpuzoglu

πŸ› 🚧

Jacob Wysko

πŸ–‹

Dilwoar Hussain

πŸ“–

Manaswini Das

πŸ“–

Benjamin Botwin

πŸ‘€ πŸ’¬ πŸ€”

Henrique Mota

πŸ‘€ πŸ’¬ πŸ€”

CaseyPan

πŸ’» πŸ€”

Sam Tarakajian

πŸ’» πŸ› 🚧 πŸ€”

Michael Bell

πŸ“– πŸ› 🚧

machenmusik

πŸ’‘

Pranav Dudhane

πŸ“–

TΓΌndi SzΓ‘sz

🎨 πŸ€”

hellonun

πŸ€” πŸ““

Pierre Grimaud

πŸ“– πŸ–‹

Greg French

πŸ›

Dale Markowitz

πŸ’» πŸ€”

Ragland Asir

πŸ“–

Tom-Lucas SΓ€ger

πŸ“–

altruios

πŸ“–

mennosc

πŸ’»

neta

πŸ’» πŸ“–

Koji

πŸ’» πŸ“–

josephrocca

πŸ’» πŸ“–

Lauren Lee McCarthy

πŸ’» πŸ“–

Sorin Curescu

πŸ’» πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Comments
  • ml5 contributor section

    ml5 contributor section

    β†’ Description πŸ“

    • have an idea for a new feature πŸ†•

    Use All-contributors to highlight ml5 contributor community.

    • P5 does a nice job with this: https://github.com/processing/p5.js#get-involved

    β†’ Screenshots πŸ–Ό

    Screen Shot 2019-06-01 at 10 53 26 devops feature request 
    opened by joeyklee 129
  • Update TensorFlow.js to 1.0.2

    Update TensorFlow.js to 1.0.2

    β†’ Description πŸ“

    Upgrade TF.js dependency to 1.0.2 and changes some APIs. This is about #333

    β†’ Relevant documentation 🌴

    I changed the tf.loadModel to tf.loadLayersModel, tf.fromPixels to tf.browser.fromPixels, tf.batchNormalization to tf.batchNorm and changes the parameters' order, and add await afront of the buffer.

    opened by WenheLI 35
  • Support Promises for imageClassifier

    Support Promises for imageClassifier

    This includes:

    • The return values of imageClassifier() and ImageClassifier.predict() are now promises.
    • Uncomments, updates, and implements tests for ImageClassifier

    The changes

    ml5 classes have traditional constructors but many of them have asynchronous 'loading' requirements and then synchronous methods. ES6 class constructors can't be async methods (you can't say await new Foo()), so this does the following:

    • All classes that need some async setup phase have a ready property that is a Promise that is resolved when they're ready
    • The 'factory functions' that people use to get instances of those classes (like the imageClassifier class for ImageClassifier) have two behaviors:
      • The user provides a callback and they return the class instance
      • The user does not provide a callback and they return the class instance's 'ready' property, which is a promise that resolves to that class instance once it's ready.

    So:

    // callbacks
    var ifier = imageClassifier('MobileNet', undefined, {}, onReady);
    function onReady() {
      // do stuff with ifier
    }
    
    // promises
    imageClassifier('MobileNet', undefined, {}).then(iffier => {
      // do stuff with iffier
    });
    
    // async/await syntax
    async function run() {
      let iffier = await imageClassifier('MobileNet', undefined, {});
      // do stuff with iffier
    }
    

    Other changes

    • Implements tests for everything that's testable!
      • This doesn't include ImageClassifier. The @tf-models/mobilenet module that powers ImageClassifier doesn't run in the karma/webpack environment for reasons I can't quite ascertain right now.
    • Switches the karma reporter from progress, which is very minimal, to mocha, which is a bit more human. Karma re-runs portions of your tests and, especially developing new tests, I wanted to know which tests were running and which had passed/failed, instead of only getting details on failures and only getting summary numbers.
    :book: The error around mobilenet

    Error message:

        Error: Argument 'x' passed to 'conv2d' must be a Tensor, but got object.
            at c (src/ImageClassifier/index.test.js:1:2672)
            at a (src/ImageClassifier/index.test.js:1:2126)
            at n (src/ImageClassifier/index.test.js:1:2330)
            at Object.i (src/ImageClassifier/index.test.js:1:2355)
            at e.conv2d (src/ImageClassifier/index.test.js:1:25150)
            at src/ImageClassifier/index.test.js:1:82279
            at e.tidy (src/ImageClassifier/index.test.js:1:142745)
            at Object.n.value (src/ImageClassifier/index.test.js:1:82256)
            at src/ImageClassifier/index.test.js:1:487368
            at e.tidy (src/ImageClassifier/index.test.js:1:142745)
    

    Having dug into this a bit, my best guess is that it's a problem with 2 instances of Tensorflow, so that there's a check in Tensorflow that does obj instanceof Tensor and it's comparing it to the wrong copy of tensorflow's Tensor. But I haven't been able to confirm this - it really does look like there's one copy of tfjs-core in the mix.

    Things this doesn't resolve but I've noticed

    • pitchDetection almost certainly has a race condition - its constructor loads a tf model asynchronously but nothing waits for that loading to end, and methods like processMicrophoneBuffer could conceivably run before this.model is defined / usable.
    • poseNet's implementation doesn't appear to precisely match its docs - at least in my reading of the code, it'll call its callback for each frame with a new prediction, rather than calling the callback once with an array.
    • I'm pretty sure that the YOLO documentation is also off by a bit: creating a YOLO object without a video parameter is not valid - i always calls this.loadVideo() right now.
    • It appears that YOLO only works for 416x416 images?

    Callback situation

    Right now this doesn't attempt to change or make the callback system uniform, because the conversation in #143 is still ongoing. I don't anticipate a lot of code change based on the outcome of that discussion, it's mostly a design problem rather than a technical challenge.

    opened by tmcw 28
  • redid the YOLO object detection algorithm

    redid the YOLO object detection algorithm

    redid the YOLO object detection algorithm more simple & understandable no more memory leaks performance boost (i think )

    a normal usage example should look like this

    let options = { url: '...', }
    let yolo = new ml5.YOLO(options); 
    let loaded = await yolo.loadModel()
    if(loaded){
       let results = await yolo.detect(image ||  video || canvas)
    }
    

    here's a working example(image) ~~https://codepen.io/hiddentn/pen/NBjPKR~~ another one with a video element ~~https://codepen.io/hiddentn/pen/jpmbRy~~

    opened by hiddentn 27
  •  Error: pixels passed to tf.fromPixels() can not be null after loading a custom model

    Error: pixels passed to tf.fromPixels() can not be null after loading a custom model

    I'm getting the following error messages (sketch.js:47 Error: pixels passed to tf.fromPixels() can not be null) when starting to classify after loading a previously trained model. The classifier is working fine and it guesses the right images based on the previously trained data so I'm not sure why it returns that the images are null because it definitely read them correctly somehow.

    Screenshot of the error messages:

    issue_

    I'm getting as many error messages as images I trained the model with, but the classifier works fine, so I'm a bit confused. And the weirdest thing is that roughly 1 out of 10 times it actually doesn't return any error message at all. UPDATE: Instead of starting to classify on the callback after loading the custom model I added a button that only shows up if a custom model is loaded. Using that button to start classifying doesn't produce any error message and works without any issues at all. The problem is solved for me but I guess it shouldn't return any error message when called on the classifier.load() callback so that's why I'm opening the issue anyway.

    I'm serving the sketch and the model files with a nodejs script running an express server.

    opened by annvnzndrvn 24
  • p5.js web editor examples

    p5.js web editor examples

    Moving https://github.com/ml5js/ml5-library/issues/23 to here. Would be great to have the p5 examples all running in the web editor. These can be linked from README's associated with each example as well as from the website.

    opened by shiffman 22
  • Generic Neural Network class

    Generic Neural Network class

    Following up on #483

    β†’ Description πŸ“

    Submitting a new feature πŸ†•

    I am going to start working on the generic neural network class in this branch in case anyone wants to follow!

    β†’ Relevant Example or Paired Pull Request to ml5-examples πŸ¦„

    https://github.com/ml5js/ml5-examples/pull/164

    β†’ Relevant documentation 🌴

    Documentation to come!

    API 
    opened by shiffman 22
  • Pix2pix improvements

    Pix2pix improvements

    Following a conversation with @zaidalyafeai, it might be a good idea to change the current pix2pix version to his own implementation which runs faster: https://zaidalyafeai.github.io/pix2pix/cats.html

    feature request needs context pix2pix 
    opened by cvalenzuela 20
  • Clustering / Unsupervised Learning

    Clustering / Unsupervised Learning

    I am working on some examples to cluster data sets. Here are some algorithms I imagine eventually having in this library:

    • kmeans
    • principal component analysis (PCA)
    • TSNe

    I committed a kmeans example (uses random vectors) as a start.

    https://github.com/ITPNYU/p5-deeplearn-js/tree/master/examples/clustering/kmeans

    Some next steps are:

    • [ ] Is the algorithm correct? (I whipped it up quickly and needs double-checking)
    • [ ] Use an actual sample dataset
    • [ ] Visualize clusters
    • [ ] Think through clustering ITP and re-factors into library using deeplearn.js for vector math

    There are some interesting possibilities with combining clustering algorithms with word vectors.

    feature request 
    opened by shiffman 19
  • Posenet model that ml5 uses does not exist anymore.

    Posenet model that ml5 uses does not exist anymore.

    Hi. I am getting these errors with posenet in ml5's latest library:

    Failed to load resource: the server responded with a status of 404 () https://storage.googleapis.com/tfjs-models/weights/posenet/mobilenet_v1_075/manifest.json Is this because of the upgrade to posenet 2.0 ?

    Apparently this model does not exist anymore?

    Also get this error, perhaps related?

    Uncaught SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse () at XMLHttpRequest.r.onload (posenet.esm.js:2)

    It seemed to be working earlier in the day, but the google github posenet model was updated just a few hours ago, and now not ml5 posenet is not working.

    The ml5 examples on this page also have the same error with models not loading now too: https://ml5js.org/reference/api-PoseNet/

    Any help with this would be great!

    Originally posted by @Sblob1 in https://github.com/ml5js/ml5-library/issues/510#issuecomment-507471834

    opened by Sblob1 18
  • Import / export model retrained using featureExtractor

    Import / export model retrained using featureExtractor

    Nice project!
    I was wondering, is it possible to export a MobileNet model which has been retrained with the featureExtractor class?
    It would be great to be able to import a retrained MobileNet classifier as JSON for example!

    Do you have plans to support other models next to MobileNet? I'm experimenting with object detection / semantic segmentation using tensorflow.js. Are there guidelines or documentation on how to port other models to work with ml5js? I'm aware that the project is still in development, i'd love to contribute!

    opened by woudsma 18
  • chore(deps): bump fast-json-patch from 3.1.0 to 3.1.1

    chore(deps): bump fast-json-patch from 3.1.0 to 3.1.1

    Bumps fast-json-patch from 3.1.0 to 3.1.1.

    Release notes

    Sourced from fast-json-patch's releases.

    3.1.1

    Security Fix for Prototype Pollution - huntr.dev #262

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • objectDetector Always load coco-ssd model?

    objectDetector Always load coco-ssd model?

    Dear ml5 community,

    I'm submitting a new issue. Please see the details below.

    β†’ Step 1: Describe the issue πŸ“

    Did you find a bug? Want to suggest an idea for feature? yes, the "objectDetector" function is not loading custom model url, it always loads coco-ssd as in the attached image

    β†’ Step 2: Screenshots or Relevant Documentation πŸ–Ό

    Here's some helpful screenshots and/or documentation of the new feature

    image

    β†’ Step 3: Share an example of the issue πŸ¦„

    Here's some example code or a demonstration of my feature in this issue, separate GitHub repo, or in the https://editor.p5js.org or codepen/jsfiddle/Glitch/etc...

      switch (modelNameOrUrl) {
        case "yolo":
          this.model = new YOLO_YOLO(this.video, ObjectDetector_objectSpread({
            disableDeprecationNotice: true
          }, this.options), callback);
          return this;
    
        case "cocossd":
          this.model = new CocoSsd_CocoSsd(this.video, this.options, callback);
          return this;
    
        default:
          // use cocossd as default
          this.model = new CocoSsd_CocoSsd(this.video, this.options, callback);
          return this;
      }
    

    Other relevant information, if applicable

    β†’ Describe your setup πŸ¦„

    Here's some helpful information about my setup...

    • Web browser & version:
    • chrome: 108
    • Operating System:
    • win 10
    • ml5 version you're using:
    • 0.12.2
    • Any additional notes no
    opened by venturion 0
  • A problem occurs when trying to load my custom mobilenet model.

    A problem occurs when trying to load my custom mobilenet model.

    Dear ml5 community,

    I'm submitting a new issue. Please see the details below. ------------------------------------------------>

    I'm trying to load my custom ml5 in my react js website, however, I'm facing some issues when I try to load the model. For instance, if I write the following code:

    classifier.load('''../EcommarceApp/appAIModel/model.json'',custModelReady);
    function custModelReady(){
      console.log(' Custom Model Loaded!');
      gotResults()
    }
    

    the following error occurred: Screenshot 2022-12-21 091521

    However, When I try to import the model:

    import customModel from ''../EcommarceApp/appAIModel/model.json'',
    classifier.load(customModel,custModelReady);
    function custModelReady(){
      console.log(' Custom Model Loaded!');
      gotResults()
    }
    

    I usually get the following error: Screenshot 2022-12-21 092208

    Also Here is my full code: Screenshot 2022-12-21 092421

    Please help me I'm completely lost.

    ----------------------------------------->

    opened by MohammadNusir 0
  • TinyFaceDetector option name mismatch

    TinyFaceDetector option name mismatch

    At this line, ml5 is setting an option named minConfidence on the TinyFaceDetector.

    https://github.com/ml5js/ml5-library/blob/c3123cac0b1dfa0ed8e3e2588e8dea72ccd05aa8/src/FaceApi/index.js#L116

    But according to this it should be setting scoreThreshold instead.

    Also, why not add the ability to set the inputSize option too?

    opened by toptensoftware 0
  • chore(deps): bump express from 4.17.2 to 4.18.2

    chore(deps): bump express from 4.17.2 to 4.18.2

    Bumps express from 4.17.2 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump qs, body-parser and express

    chore(deps): bump qs, body-parser and express

    Bumps qs, body-parser and express. These dependencies needed to be updated together. Updates qs from 6.5.2 to 6.11.0

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Updates body-parser from 1.19.1 to 1.20.1

    Release notes

    Sourced from body-parser's releases.

    1.20.0

    1.19.2

    Changelog

    Sourced from body-parser's changelog.

    1.20.1 / 2022-10-06

    1.20.0 / 2022-04-02

    1.19.2 / 2022-02-15

    Commits

    Updates express from 4.17.2 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(0.12.2)
  • 0.12.2(Apr 25, 2022)

    Changes

    • Rewrite XHR code using Axios (#1361) @lindapaiste
    • docs: add adrianfiedler as a contributor for doc (#1360) @allcontributors
    • Remove non existing example links from dcgan.md (#1358) @adrianfiedler
    • docs: add yoychen as a contributor for doc (#1357) @allcontributors
    • docs: fix markdown format in feature-extractor (#1226) @yoychen
    • Restore missing K-Means CSV files. Slight changes to example text. (#1342) @lindapaiste
    Source code(tar.gz)
    Source code(zip)
  • 0.12.1(Apr 13, 2022)

    Changes

    • Update all Babel package versions. (#1344) @lindapaiste
    • docs: add codergautam as a contributor for doc (#1336) @allcontributors
    • Fix a typo (#1334) @codergautam
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Apr 6, 2022)

    Changes

    • revert: revert changes from jest integration (#1333) @joeyklee
    • refactor(#637): Refactor BodyPix and CharRNN tests to jest (#1296) @joeyklee

    NOTE: v0.11.X should be ignored -- the jest integrations created some breaking changes that needed to be reverted

    Source code(tar.gz)
    Source code(zip)
  • 0.11.1(Apr 5, 2022)

    What's Changed

    • refactor(#637): Migrate testing utilities to Jest - remove other testing libs pt.2/X by @joeyklee in https://github.com/ml5js/ml5-library/pull/1295

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.11.0...0.11.1

    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Apr 5, 2022)

  • 0.10.6(Apr 2, 2022)

    Changes

    • Fix issues #1224 & #1213: Don't call this.predict() unless there is a video. (#1321) @lindapaiste
    • Update README.md (#1325) @emwdx
    • docs: add emwdx as a contributor for doc (#1328) @allcontributors
    Source code(tar.gz)
    Source code(zip)
  • 0.10.5(Mar 15, 2022)

    Changes

    • Cleanup of P5Util class (#1319) @lindapaiste
    • guard all window references (#1318) @lindapaiste

    What's Changed

    • guard all window references by @lindapaiste in https://github.com/ml5js/ml5-library/pull/1318
    • Cleanup of P5Util class by @lindapaiste in https://github.com/ml5js/ml5-library/pull/1319

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.10.4...0.10.5

    Source code(tar.gz)
    Source code(zip)
  • 0.10.4(Mar 7, 2022)

    Changes

    • docs: add lindapaiste as a contributor for code, ideas, bug (#1316) @allcontributors
    • Code clean-up: Video class. (#1311) @lindapaiste

    Bug Fixes

    • Bug fix: callCallback should reject the returned Promise (#1307) @lindapaiste
    Source code(tar.gz)
    Source code(zip)
  • 0.10.3(Feb 23, 2022)

    Changes

    • PoseNet examples (#1062) @shiffman
    • docs: add asvsfs as a contributor for code, example (#1304) @allcontributors

    What's Changed

    • docs: add asvsfs as a contributor for code, example by @allcontributors in https://github.com/ml5js/ml5-library/pull/1304
    • PoseNet examples by @shiffman in https://github.com/ml5js/ml5-library/pull/1062

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.10.2...0.10.3

    Source code(tar.gz)
    Source code(zip)
  • 0.10.2(Feb 23, 2022)

    Changes

    • docs: updates docs with latest release process (#1293) @joeyklee
    • Disabled p5 web editor examples (#1246) @tlsaeger

    What's Changed

    • Disabled p5 web editor examples by @tlsaeger in https://github.com/ml5js/ml5-library/pull/1246
    • docs: updates docs with latest release process by @joeyklee in https://github.com/ml5js/ml5-library/pull/1293
    • DBSCAN Clustering Algorithm by @asvsfs in https://github.com/ml5js/ml5-library/pull/1036

    New Contributors

    • @asvsfs made their first contribution in https://github.com/ml5js/ml5-library/pull/1036

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.10.1...0.10.2

    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(Feb 8, 2022)

    Changes

    • perf(ImageClassifier): use urls directly from teachablemachine (#1247) @danidask

    What's Changed

    • perf(ImageClassifier): use urls directly from teachablemachine by @danidask in https://github.com/ml5js/ml5-library/pull/1247
    • docs: add danidask as a contributor for code, ideas by @allcontributors in https://github.com/ml5js/ml5-library/pull/1301

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.10.0...0.10.1

    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Feb 8, 2022)

    Changes

    • docs: add amirfeqhi as a contributor for code (#1300) @allcontributors
    • added getData method (#896) @amirfeqhi
    • docs: add Mudasar-Makandar as a contributor for bug, code (#1299) @allcontributors
    • Word2vec.nearestFromSet() is always null output (#1161) @Mudasar-Makandar
    Source code(tar.gz)
    Source code(zip)
  • 0.9.9(Feb 5, 2022)

    Changes

    • docs: add eltociear as a contributor for code, doc (#1298) @allcontributors
    • Fix typo in examples/CONTRIBUTING.md (#1297) @eltociear

    What's Changed

    • Fix typo in examples/CONTRIBUTING.md by @eltociear in https://github.com/ml5js/ml5-library/pull/1297
    • docs: add eltociear as a contributor for code, doc by @allcontributors in https://github.com/ml5js/ml5-library/pull/1298

    New Contributors

    • @eltociear made their first contribution in https://github.com/ml5js/ml5-library/pull/1297

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.9.8...0.9.9

    Source code(tar.gz)
    Source code(zip)
  • 0.9.8(Feb 3, 2022)

    Changes

    • No changes

    What's Changed

    • chore: try to push with pat by @joeyklee in https://github.com/ml5js/ml5-library/pull/1292

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.9.7...0.9.8

    Source code(tar.gz)
    Source code(zip)
  • 0.9.7(Feb 3, 2022)

    Changes

    • No changes

    What's Changed

    • fix: rm v number by @joeyklee in https://github.com/ml5js/ml5-library/pull/1291

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.9.6...0.9.7

    Source code(tar.gz)
    Source code(zip)
  • 0.9.6(Feb 3, 2022)

    Changes

    • No changes

    What's Changed

    • fix: publish workflow by @joeyklee in https://github.com/ml5js/ml5-library/pull/1290

    Full Changelog: https://github.com/ml5js/ml5-library/compare/0.9.5...0.9.6

    Source code(tar.gz)
    Source code(zip)
  • 0.9.5(Feb 3, 2022)

    Changes

    • No changes

    What's Changed

    • chore: testing automation by @joeyklee in https://github.com/ml5js/ml5-library/pull/1289

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.9.4...0.9.5

    Source code(tar.gz)
    Source code(zip)
  • v0.9.4(Feb 3, 2022)

  • v0.9.3(Jan 28, 2022)

  • v0.9.2(Jan 28, 2022)

    Changes

    • No changes

    What's Changed

    • chore: package bump by @joeyklee in https://github.com/ml5js/ml5-library/pull/1285

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.9.1...v0.9.2

    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Jan 28, 2022)

  • v0.9.0(Jan 28, 2022)

    Changes

    • Update HandPose Examples (#1117) @shiffman
    • Use the 'hand' event for Handpose event emitter (#1184) @bomanimc
    • Use the 'face' event for Facemesh event emitter (#1185) @bomanimc

    What's Changed

    • Use the 'face' event for Facemesh event emitter by @bomanimc in https://github.com/ml5js/ml5-library/pull/1185
    • Use the 'hand' event for Handpose event emitter by @bomanimc in https://github.com/ml5js/ml5-library/pull/1184
    • Update HandPose Examples by @shiffman in https://github.com/ml5js/ml5-library/pull/1117
    • chore: bump version by @joeyklee in https://github.com/ml5js/ml5-library/pull/1284

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.16...v0.9.0

    Source code(tar.gz)
    Source code(zip)
  • v0.8.16(Jan 22, 2022)

    Changes

    • chore: bumps package (#1281) @bomanimc
    • Fixed broken links in docs (#1251) @tlsaeger
    • docs: add mofanke as a contributor for bug, code (#1279) @allcontributors
    Source code(tar.gz)
    Source code(zip)
  • v0.8.15(Jan 22, 2022)

  • v0.8.14(Jan 21, 2022)

    Changes

    • docs: updates release notes (#1276) @joeyklee

    What's Changed

    • docs: updates release notes by @joeyklee in https://github.com/ml5js/ml5-library/pull/1276
    • chore: bump pkg by @joeyklee in https://github.com/ml5js/ml5-library/pull/1278

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.13...v0.8.14

    Source code(tar.gz)
    Source code(zip)
  • v0.8.13(Jan 21, 2022)

    Changes

    • Update darknet.js (#1157) @mofanke

    What's Changed

    • Update darknet.js by @mofanke in https://github.com/ml5js/ml5-library/pull/1157

    New Contributors

    • @mofanke made their first contribution in https://github.com/ml5js/ml5-library/pull/1157

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.12...v0.8.13

    Source code(tar.gz)
    Source code(zip)
  • v0.8.12(Jan 21, 2022)

    Changes

    • Fixed: CharRNN Example Input text not showing (#1244) @tlsaeger

    What's Changed

    • Fixed: CharRNN Example Input text not showing by @tlsaeger in https://github.com/ml5js/ml5-library/pull/1244
    • chore: bump pkg by @joeyklee in https://github.com/ml5js/ml5-library/pull/1277

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.11...v0.8.12

    Source code(tar.gz)
    Source code(zip)
  • v0.8.11(Jan 21, 2022)

    Changes

    • No changes

    What's Changed

    • fix: linting and bump pkg by @joeyklee in https://github.com/ml5js/ml5-library/pull/1275

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.10...v0.8.11

    Source code(tar.gz)
    Source code(zip)
  • v0.8.10(Jan 21, 2022)

  • v0.8.9(Jan 21, 2022)

    Changes

    • refactor: try using publish-npm (#1272) @joeyklee

    What's Changed

    • refactor: try using publish-npm by @joeyklee in https://github.com/ml5js/ml5-library/pull/1272
    • chore: bump pkg - debugging by @joeyklee in https://github.com/ml5js/ml5-library/pull/1273

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.7...v0.8.8

    What's Changed

    • refactor: try using publish-npm by @joeyklee in https://github.com/ml5js/ml5-library/pull/1272
    • chore: bump pkg - debugging by @joeyklee in https://github.com/ml5js/ml5-library/pull/1273

    Full Changelog: https://github.com/ml5js/ml5-library/compare/v0.8.7...v0.8.9

    Source code(tar.gz)
    Source code(zip)
Owner
ml5
ml5: friendly machine learning for the web
ml5
Machine learning tools in JavaScript

ml.js - Machine learning tools in JavaScript Introduction This library is a compilation of the tools developed in the mljs organization. It is mainly

ml.js 2.3k Jan 1, 2023
Machine-learning for Node.js

Limdu.js Limdu is a machine-learning framework for Node.js. It supports multi-label classification, online learning, and real-time classification. The

Erel Segal-Halevi 1k Dec 16, 2022
Train and test machine learning models for your Arduino Nano 33 BLE Sense in the browser.

Tiny Motion Trainer Train and test IMU based TFLite models on the Web Overview Since 2009, coders have created thousands of experiments using Chrome,

Google Creative Lab 59 Nov 21, 2022
JavaScript Machine Learning Toolkit

The JavaScript Machine Learning Toolkit, or JSMLT, is an open source JavaScript library for education in machine learning.

JSMLT 25 Nov 23, 2022
Machine Learning library for node.js

shaman Machine Learning library for node.js Linear Regression shaman supports both simple linear regression and multiple linear regression. It support

Luc Castera 108 Feb 26, 2021
machinelearn.js is a Machine Learning library written in Typescript

machinelearn.js is a Machine Learning library written in Typescript. It solves Machine Learning problems and teaches users how Machine Learning algorithms work.

machinelearn.js 522 Jan 2, 2023
Unsupervised machine learning with multivariate Gaussian mixture model which supports both offline data and real-time data stream.

Gaussian Mixture Model Unsupervised machine learning with multivariate Gaussian mixture model which supports both offline data and real-time data stre

Luka 26 Oct 7, 2022
Automated machine learning for analytics & production

auto_ml Automated machine learning for production and analytics Installation pip install auto_ml Getting started from auto_ml import Predictor from au

Preston Parry 1.6k Dec 26, 2022
A JavaScript deep learning and reinforcement learning library.

neurojs is a JavaScript framework for deep learning in the browser. It mainly focuses on reinforcement learning, but can be used for any neural networ

Jan 4.4k Jan 4, 2023
Support Vector Machine (SVM) library for nodejs

node-svm Support Vector Machine (SVM) library for nodejs. Support Vector Machines Wikipedia : Support vector machines are supervised learning models t

Nicolas Panel 296 Nov 6, 2022
Fork, customize and deploy your Candy Machine v2 super quickly

Candy Machine V2 Frontend This is a barebones implementation of Candy Machine V2 frontend, intended for users who want to quickly get started selling

AL 107 Oct 24, 2022
Deep Learning in Javascript. Train Convolutional Neural Networks (or ordinary ones) in your browser.

ConvNetJS ConvNetJS is a Javascript implementation of Neural networks, together with nice browser-based demos. It currently supports: Common Neural Ne

Andrej 10.4k Dec 31, 2022
K-nearest neighbors algorithm for supervised learning implemented in javascript

kNear Install npm install knear --save About kNear is a javascript implementation of the k-nearest neighbors algorithm. It is a supervised machine lea

Nathan Epstein 45 Mar 7, 2022
πŸ€–chat discord bot powered by Deep learning algorithm🧠

✨ Akaya ✨ ❗ Discord integration functionality not implemented yet! Only the deep-learning module working. Install git clone https://github.com/LyeZinh

Pedro Kaleb! 3 Jun 23, 2022
The Fastest DNN Running Framework on Web Browser

WebDNN: Fastest DNN Execution Framework on Web Browser WebDNN is an open source software framework for executing deep neural network (DNN) pre-trained

Machine Intelligence Laboratory (The University of Tokyo) 1.9k Jan 1, 2023
Friendly machine learning for the web! πŸ€–

Read our ml5.js Code of Conduct and software licence here! This project is currently in development. Friendly machine learning for the web! ml5.js aim

ml5 5.9k Jan 2, 2023
Visualizer for neural network, deep learning, and machine learning models

Netron is a viewer for neural network, deep learning and machine learning models. Netron supports ONNX, TensorFlow Lite, Caffe, Keras, Darknet, Paddle

Lutz Roeder 21k Jan 5, 2023
Grupprojekt fΓΆr kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet fΓΆr kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide FΓΆr information om hur utv

Svante Jonsson IT-HΓΆgskolan 3 May 18, 2022
Hemsida fΓΆr personer i Sverige som kan och vill erbjuda boende till mΓ€nniskor pΓ₯ flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022