76 Replies to “ml5.js: Image Classification with MobileNet”

  1. Mike Kevin Castro says:

    Wow! Just Wow!

  2. Theodore da Cunha says:

    ur making me love machine learning dude

  3. the bronylike superchannel says:

    Can you a video on the raspberry pi 🙂

  4. Daporan says:

    Wow, you're so active lately! I wish I could put out videos that fast.

  5. Daniel Astillero says:


  6. acoffeeaddictbean says:

    I love his attitude.

  7. Emma Miller says:

    thank you

  8. kevin barajas says:

    I started learning about deep learning today how odd

  9. Sand Summerstorm says:

    The notification creeeew

  10. e4r says:

    Chooo Choooo !

  11. Manish Purohit says:

    Awesome <3

  12. Samuel Sharman says:

    I think this guy's energy is infectious I just wish I got this excited during class.

  13. NEL VEN says:

    I love your videos and i am so glad and grateful that you are teaching ML

  14. Rahil Ranka says:

    Hey I just watched your entire video and its great!
    I tried to recreate it but i got an error like this: DOMException: Failed to execute 'texImage2D' on 'WebGL2RenderingContext': The image element contains cross-origin data, and may not be loaded.

    do you have a way to fix this?

  15. LeoGaddd says:

    Can you do a simple named entity recognition?

  16. TERM_LIMITS_NOW! says:

    Hi Daniel!

    I have been trying to get your attention unsuccessfully, you are a busy person , I know, I have a perhaps small request, and that is: Would you entertain the idea of developing a jigsaw puzzle algorithm to divide or cut a picture into the classic puzzle pieces pls.?


  17. Daniel Bar-Dagan says:

    R this image classification use gpu?

  18. Mohammad Al-Bayati says:

    Love your videos, been following for a while and learning tons. Thanks for putting this kind of stuff out there! Do you think the different probabilities in the puffin guess was because the puffin image aspect ratio might've been changed when you resized it to the canvas?

  19. Austin Schaffer says:

    I just got to the 4:41 where you were wondering if all the probabilities need to add up to 100%, and I'm not sure they always do. For example, if the model has an entry for both "Dog" and "Bloodhound", it could be 100% sure that the current image is a dog, but only 80% sure that it's a bloodhound, or something like that.

  20. Azul Amazigh says:

    i like this guy. i am watching just because it's entertaining. i don't even care about js.

  21. Médéric Bellemare says:

    inspiration for chrome extension that detect what is on the screen 😛

  22. Surya Kumaran says:

    Hi Great tutorial, is it possible to use the training with ml5 library or use the custom trained model in it?

  23. Lank Asif says:


  24. L76videos says:

    Super simple! Thanks

  25. Simon Robatto says:

    Hi! I am encountering some sort of error and cannot find any documentation to help me out. Using chrome or safari, I am getting the same result set every time a different image is loaded. This result set is : velvet, window screen and syringe, all with extremely low probabilities.
    I have not been able to fix this issue (I have even copy-pasted the html example from the ml5js page with no success). Please help!

  26. Rale Sarcevic says:

    I think you're getting different results 'cause if you're 100% sure it's a dog on a picture an 0% it's a cat it is indeed 100% a dog, but if you think that it has a 70% chance being an alligator and 30% being a crocodile you can say that (by just taking the average of results which is really bad statistically most of the times) it has a 50% chance of being an alligator (favorable to alligator for obviously having the highest rating between all the results)

  27. IOEgg says:

    Great tutorial!! I made a Chatbot based on Eliza and incorporated MobileNet so the bot can see.. Fun stuff, I'm adding face recognition later this week. You can see it on github and at ioegg.com
    Also, maybe the reason for the different prediction confidence values for the Oystercatcher is the canvas size or image resize was different between the two tests.

  28. Cuong Nguyen says:

    Thanks, now I understand what took so long for Agumented Reality to be wide spread.

  29. Markus Dick says:

    when you are using the new firefox developer browser you wont need a server to run p5 or any other js library 🙂

  30. HiDDeN says:

    i am still waiting for the YOLO video

  31. CHAOUCH Hamza says:

    Hello , man i enjoy watching your videos , it 's entertaining and full of informations that i need , so my question is : is there any other library that make me able to use ml5.js , because i m not familiar with p5.js ? thanks

  32. KuraIthys says:

    lol. snorkel. That one got to me. XD

  33. Richard Vaughan says:

    Love these tutorials -thanks! Just a quick question: say you have a program/website where a user can upload their own photo to be classified by the MobileNet model (like on the ml5.js website) how ‘safe’ is that? Does MobileNet (or the website) store a record of the image in any way after using it, for example, are user-uploaded images encrypted etc?

  34. KuraIthys says:

    Turdus migratorius? Wow, scientific names can be harsh.
    What did the poor bird do to whoever came up with that name? XD

  35. Amos Dinh says:

    Why does it say createImg not defined, even tho no error with createCanvas ???

  36. kustomweb says:

    It can tell you that you are a snorkel, but it cannot tell you why. There are decisions, but no reasons. Dan Shifman is the best software teacher on YouTube.

  37. Nhasala Joshi says:

    the sound of Dan's kitchen bell is one of the most fun things to hear in coding tutorial videos, ever.

  38. DerSpielerMabuse says:

    "I got a lot of probs" haha

  39. Kcireh says:

    codetrain code morse

  40. EAX says:

    Awesome video. thank you.

  41. Mr. J says:

    hotdog, not hotdog

  42. nanupelu says:

    my console says:
    Use of the orientation sensor is deprecated. p5.js:48187:6
    Use of the motion sensor is deprecated. p5.js:48187:6

  43. youness fathi says:

    merci <3

  44. Juan Cuadra says:

    I have great respect for the time and energy you put into sharing so many "chucks of knowledge" in such a wide range of domains. Thank you.

  45. Carsend says:

    I like that shirt, where you get it haha?

  46. Joshua Pack says:

    Your videos are great!

  47. Bảo Linh Đỗ says:

    This is the first video i watched and it's so cool. i'm newbie so can you tell me how do you build this in server??

  48. AKASH MANDAL says:

    I tried your code from github…but my browser showing webgl not supporting… Please help

  49. abidur rahman says:


  50. Koidja Web Development says:

    If you want to implement ml5.js MobileNet model with React.js, check this article:

  51. Haris Ghauri says:

    Hi, I know this is not a callback/asynchronous programming video. I still want to clarify one thing. Since your image reading code is asynchronous and modelReady code is also asynchronous, what if your image took longer to be read i.e. lets say you were reading it over the network or something. And your model got ready before your imageReady, would there be any errors? I am asking this is because if you tried predicting puffin before it was even ready, would Javascript be smart enough to handle it?

  52. nee tizen says:

    why you do deep breathing with only say,
    so cute 😀

  53. Hector Lino Mauvecin Junior says:

    How does i to run the program ?

  54. T.J. Cody says:

    whenever i try to run the code i get an error in the console that says failed to execute 'texImage2D' on 'WebGL2RenderContext': The image element contains cross-origin dad , and may not be loaded.

    The issue is that i used the same code and i used the same picture so i dont know what is wrong

  55. Filippo Coppola says:

    I got this error "DOMException: Failed to execute 'texImage2D' on 'WebGL2RenderingContext': The image element contains cross-origin data, and may not be loaded."

  56. John Smith says:

    Hey Dan, trying out your code of this class in p5.js and kept getting the error "Uncaught ReferenceError: ml5 is not defined ". I checked the code and it looked right so I went to your git hub page with the code, copied it and pasted it in the p5 editor and still got the same error. What should I add to make the code work? P.S. love your videos.

  57. Texplanations says:

    Its all cool and stuff.. but I wanna learn how it got trained… how do I learn that?

  58. Yas var says:

    Could you also explain how to retrain a preexisting model using newer images ? Also, I know you love pure javascript but maybe a couple video using tensorflow and ml5 on a framework like React or Angular would be really appreciated ! Thanks!

  59. Fitz says:

    That puffin really does look like Drake.

  60. Suhyun Park says:

    Thank you so much!!

  61. Johan Verm says:

    Maybe js is the future for ML/classification cause it's closests to the internet than any other language..The database to handle with is enormous..maybe it's more a matter of copyright and privacy that's is not booming?.I was playing with google colab ,kaggle and tensorflow but the inputdata is always limited..So…Or i'm I wrong…I!m more an artist than a programmer so i don't see it that clearly..Keep up the good work ..It's great !!(and fun)

  62. Harsha Vardhan says:

    How do i intergate P5.js within a React js project?

  63. tanjeri Purushotham says:

    how to run the code in server mode..???
    bcz while I'm opening with index.html in browser its not opening with classification work??>

  64. enivaldo bonelli says:

    May, 2019. In the p5js editor image is being loaded automatically, only with the image() command.

  65. enivaldo bonelli says:

    let label = results[0].label;
    let conf = results[0].confidence;

  66. Bhupinder says:

    Hi there,

    I want to know, is there a way to use object or image recognition on internet or website like on Amazon or Walmart to product images recognition, etc, rather than using real-time object detection via webcam. please reply

  67. Schmeekeer says:

    21:06 Maybe because you resized the image so it fits the canvas.

  68. sakthi sethu says:

    When I run the above code, I get the error "sketch.js:18 Error: Failed to link vertex and fragment shaders.". When I googled it and got a solution as "Same here, solved by disable gpu backend _tfengine.ENV.set('WEBGL_PACK', false) before you do anything with tensorflow. An other option would be upgrade your graphic card driver~" . But I do not know how to apply it. Anyone got this error and resolved it ?

  69. Doing Something Different says:

    1 year anniversary! For this anniversary, I'm going to actually learn this xD

  70. Krishiv Agarwal says:

    It isn't working on brackets.

  71. Srinivas Mangipudi says:

    Dan you're so much fun! Thank you!

  72. Muhammad Owais says:

    ml5.imageClassifer() is not a function

  73. Davide Barranca says:

    In case anyone wants to use MobileNet locally (offline), it is possible to download a local copy of the model json file and reference its path, see on GitHub a repository named "ml5-data-and-models-server"

  74. Jeff Guess says:

    I can't seem to get this to work with version 0.4.3… (with 0.1.1 yes)

    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/classification/2/model.json?tfjs-format=file 2. (Reason: CORS request did not succeed).


    GET https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/classification/2/model.json?tfjs-format=file net::ERR_NAME_NOT_RESOLVED

    if i try to go to


    i get “We’re having trouble finding that site.”

    does this mean the mobilenet server is down ?
    is anyone else having the same problem ?

  75. agata0214 says:

    This is amazing… so cool!

  76. Joe Reynolds says:

    Thanks so much for the videos, these are all amazing! I was wondering if you/ someone would be able to help me alter the code for this so that it always accesses the rear camera instead of the front facing camera? Thanks again

Leave a Comment

Your email address will not be published. Required fields are marked *