It always have been something unreachable on my mind how to program yourself those kind of stuff and now it looks so easy and fun. I can't wait anymore to try this myself and use it for some projects :D Thanks :P
I laughed when I saw video thumbnails with a rainbow thinking it's silly. After checking out what you're covering and how useful they are, I'm no longer laughing. My subscription is yours now, sir.
Hey Shiffman, I have a little suggestion. Could you make a video where you tackle some nice ways to build simple interfaces with p5.js? Like teaching the basics for us to get a starting point, because the default DOM buttons are not pretty.
Great video, after taking a look at the YOLO() I can use it to draw a rectangle on the image. Seems that feature extractor function cannot perform the same task as it cannot identify more than one object in the image at the same time. What I should look into if I want to train a model with my own objects and use the trained model to identify multiple objects in a video then mark their position?
I would have expected this to work by "adding" your classes to the existing data model, but it seems like you're overwriting it to where it's ONLY showing the ones you create. So what's the point of starting with mobile net if it's not even keeping around the existing data?
When adding a third option it seem so ignore one of them. Closup of coffee mug, phone, jar of honey. Should be plenty different. Tried several different objects. Weird?
Hi Daniel, while using your code in feature extractor once training is completed i am getting output as [object Object],[object Object] Could you please help me to know why am i getting this output?(i am using Bracket Editor) and how to rectify it.
hi vipul,you just try store the first value result array... eample:instead of using label=result use label=result[0]; beacause the detected objects is in the first posistion
how do we do this via adding a folder of images as opposed to video to train the model . in 'teachable model' example they can upload files as an option so it must be possible???
By default, does the normal mobilenet data which we used for the classification examples add up. That means, let's say I put a cat, will it answer cat or whistle/ukulele?
There are many ways to go about solving this issue, none of them perfect, and some better than others depending on the project context. Remove the backgrounds - this would mean that the classifier would learn from only the object in the image. However, this can sometimes make the model worse! In the case of expressions, this may be a good idea, however, if you were classifying animals, the background may often provide 'context' to the algorithm, and 'clues' as to what the animal is. An overly simple example would be, a white background may indicate an animal in snowy conditions (polar bear). Where as a green background may indicate a jungle animal (monkey). Segmentation - this is kind of the more advanced version of removing the background, and is essentially using an additional ML method to segment the image into different parts, and draw boundary boxes around them. This helps the model to separate the image into important parts to learn from, and unimportant parts. If you had lots of images of bikes parked in various streets, this would be a good method as the bike would be highlighted in every image, rather than say cars or street lamps that may also be in the image. This is especially useful if the object you're training on is small. (If you have lots of images of pens on desks, and lots of the desks have other items on it, the model is likely to associate with those other larger objects). Cropping - Again good for smaller objects, and is an approach you should almost always use. Ensure the images you use contain only the object you want to classify. This essentially reduces noise. Lots of data - If you use lots and lots of data, each with different backgrounds, the model will eventually learn that the backgrounds are unimportant, and with have a clearer idea of the object you're classifying. It must be mentioned that this is just off the top of my head, so I hope it helps, and I hope others comment with more examples (or correct me haha!). Also which method you use depends hugely on the context of the problem you are trying to solve, and the algorithm you are using. Hope this helps, or at least provides a bit of a starting block!
@@scottrjjh Thanks for your explanation. 1.Can you just tell me how to use Yolo in ml5 with transfer learning (means adding my own images)? 2.How to store the Mobilenet model after retraining with my own images? Please Help me.I am new to Machine Learning.
Hey there, i am getting the following error when running the code on my browser :Unhandled promise rejection Error: MathBackendWebGL.writePixels(): pixels can not be null
very awesome video! although i'm having a problem trying to make it recognize a third class, it works perfectly with 2 labels but it can't recognize a third one, even if i block the camera completely, making the third object to classify an black image, it still can't get it. is there any known issues with that? cause you say at the end that we should try adding more things to identify to test it out. thank you
Yes, make sure you have the most recent version of ml5 and that you specify the number of labels: { numLabels: 3 }. This needs to be documented on the new website, feel free to file an issue here! github.com/ml5js/ml5-website-2/issues
Thanks a lot for your video. Can i have more than two classes of images? Im trying to add a third class but the label matrix has only the first two classes...
The code is running but when I am trying to introduce a 3rd button say "angry" its not working can you suggest me how it can work? waiting for your reply
When I hit the train button, I get really high loss Values and once the training is complete, it only shows one label, either happy or sad. I don't think it is a problem of my webcam because it works fine with the teachable machine website. Please help me solve this problem. What are the reasons for really high loss values?
Im trying to do this exactly same but train it by using image files. Is this possible? Ive been trying to do it for past few days but even I got to the part where I could train it, it wouldn’t recognize the image correctly. Ive been searching who internet on how to do transfer learning by feeding images instead of webcam but not a single article or blog about it. All examples are using webcam which is not practical for me because I want to train using more than 100 images
This is a really good question and I would love to tackle this in a video soon, please remind me! Check ml5js.org for many new examples and feel free to file a GitHub issue on ml5-examples if there isn't one that makes it clear how to do this!
@@TheCodingTrain Thank you. I was using KNNClassifier() to do it. I just had image DOM element as an input instead of video in featureExtractor but it did not work. I looked in github issues and it seems like there is already one open related to using images from file that has not been resolved. I would love to see a video about this! Your videos are so helpful.
looking forward to that feature, but for now you could have a locally saved folder full of images and load them in as training as you load the page. Bit of a pain, but a workaround for now perhaps
As soon as I add a third category I realize that ml5 only predicts the first two. I never see the third category. I have „background“, „glasses“ and „teddy bear“ - I add about 100 images per category. as soon as I try to classify the images then I only get „background“ or „glasses“. But never „teddy bear“ - any idea why? 😀
Ha! Figured it out: If you want to classify more than just two classes, make sure to define numClasses when defining your featureExtractor (as default is 2, see ml5js.org/docs/FeatureExtractor#parameters ), i.e. featureExtractor = ml5.featureExtractor("mobileNet", { numClasses: 3 }, onModelReady); This does the trick!!!
Hey guys, trying to implement this, but the only thing that keeps coming up in my label is "[object Object'],[object Object]" Anyone know what the problem might be?
@@TheCodingTrain Thanks for the reply, but I am not sure I implemented it right. My gotResults function now looks like this: function gotResults(error, result) { if (error){ console.error(error); }else{ label = results[0]; classifier.classify(gotResults); } } but in the console I am getting the following error: gotResults@about:srcdoc:89:5 e.default/
super detals , but i have a problem with models.js:143 GET storage.googleapis.com/tfjs-models/tfjs/mobilenet_v1_0.25_224/model.json 403 whats up ? "this from devloper tools console"
Great video by the way but when i try to implement it i got an error " Unhandled promise rejection Error: "MathBackendWebGL.writePixels(): pixels can not be null " this happens when i clicked the button . i am using firefox 64 can you please help me
Do you see your webcam? Try comparing your code with: github.com/CodingTrain/website/tree/master/Courses/beginner_ml5/04_feature_extractor_classification
@@TheCodingTrain Thank you for the reply Yes my webcam stream in showing perfectly i copied your code and try to run it but still it got the same error in firefox but it works in chromium(71) browser I think the issue is with the firefox browser is ml5 only supports in chrome ?
Hi Daniel, while using your code in feature extractor once training is completed i am getting output as [object Object],[object Object] Could you please help me to know why am i getting this output?(i am using Bracket Editor) and how to rectify it.
Check the latest example, you probably just need to pull out the specific properties of the JSON object that is returned! The library may have changed a bit. github.com/ml5js/ml5-examples/tree/release/p5js/FeatureExtractor
It always have been something unreachable on my mind how to program yourself those kind of stuff and now it looks so easy and fun. I can't wait anymore to try this myself and use it for some projects :D Thanks :P
I laughed when I saw video thumbnails with a rainbow thinking it's silly. After checking out what you're covering and how useful they are, I'm no longer laughing. My subscription is yours now, sir.
This is a top notch video. Ive been studying to prepare my c and assembly class, and javascript looks so pretty.
Happy , Sad ...
Really it was very funny and also helpful , thank you
You have a talent for teaching. This is awesome and somewhat even entertaining and funny, but i can't stop listening. :)
Thank you for sharing this. Your tutorials inspired me.
Hey Shiffman, I have a little suggestion. Could you make a video where you tackle some nice ways to build simple interfaces with p5.js? Like teaching the basics for us to get a starting point, because the default DOM buttons are not pretty.
It is really easy to create your own nice looking buttons. I created a little Codepen to share with you =] codepen.io/marcusparsons/pen/zJOpdz
@@parsonsmarcus Thank you! But in index.js how to create a pretty button? Or do we need to do somewhere else ?
Wow, Dan's sad face will probably have the best training ever after i get through this list
Love from India ♥️
Wooooow!!! This is mind blowing
17:30 really cool 🔥😂
Great! Love from Brazil!
Great video, after taking a look at the YOLO() I can use it to draw a rectangle on the image. Seems that feature extractor function cannot perform the same task as it cannot identify more than one object in the image at the same time. What I should look into if I want to train a model with my own objects and use the trained model to identify multiple objects in a video then mark their position?
same problem! did you find the answer ? pls reply
I would have expected this to work by "adding" your classes to the existing data model, but it seems like you're overwriting it to where it's ONLY showing the ones you create. So what's the point of starting with mobile net if it's not even keeping around the existing data?
Hi Dan, would you consider covering the Separating Axis Theorem for collision handling with 2D convex polygons? Please let me know, thanks.
When adding a third option it seem so ignore one of them. Closup of coffee mug, phone, jar of honey. Should be plenty different. Tried several different objects. Weird?
I think there is currently an issue with doing more than 2! Follow here: github.com/ml5js/ml5-library/issues/164
Hi Daniel, while using your code in feature extractor once training is completed i am getting output as [object Object],[object Object] Could you please help me to know why am i getting this output?(i am using Bracket Editor) and how to rectify it.
you should use label for name,if it not work,see the video one more time carefully(there should be some points you had missed)
hi vipul,you just try store the first value result array...
eample:instead of using label=result use label=result[0];
beacause the detected objects is in the first posistion
result[0].label
@@thirukumaranps Thanks praveenkumar
Thanks a lot for your video. Can i have more than two classes if images ?
how do we do this via adding a folder of images as opposed to video to train the model . in 'teachable model' example they can upload files as an option so it must be possible???
By default, does the normal mobilenet data which we used for the classification examples add up. That means, let's say I put a cat, will it answer cat or whistle/ukulele?
Amazing
How to overcome the background problem?
Means in other background it cannot recognize?
There are many ways to go about solving this issue, none of them perfect, and some better than others depending on the project context.
Remove the backgrounds - this would mean that the classifier would learn from only the object in the image. However, this can sometimes make the model worse! In the case of expressions, this may be a good idea, however, if you were classifying animals, the background may often provide 'context' to the algorithm, and 'clues' as to what the animal is. An overly simple example would be, a white background may indicate an animal in snowy conditions (polar bear). Where as a green background may indicate a jungle animal (monkey).
Segmentation - this is kind of the more advanced version of removing the background, and is essentially using an additional ML method to segment the image into different parts, and draw boundary boxes around them. This helps the model to separate the image into important parts to learn from, and unimportant parts. If you had lots of images of bikes parked in various streets, this would be a good method as the bike would be highlighted in every image, rather than say cars or street lamps that may also be in the image. This is especially useful if the object you're training on is small. (If you have lots of images of pens on desks, and lots of the desks have other items on it, the model is likely to associate with those other larger objects).
Cropping - Again good for smaller objects, and is an approach you should almost always use. Ensure the images you use contain only the object you want to classify. This essentially reduces noise.
Lots of data - If you use lots and lots of data, each with different backgrounds, the model will eventually learn that the backgrounds are unimportant, and with have a clearer idea of the object you're classifying.
It must be mentioned that this is just off the top of my head, so I hope it helps, and I hope others comment with more examples (or correct me haha!). Also which method you use depends hugely on the context of the problem you are trying to solve, and the algorithm you are using.
Hope this helps, or at least provides a bit of a starting block!
@@scottrjjh Thanks for your explanation.
1.Can you just tell me how to use Yolo in ml5 with transfer learning (means adding my own images)?
2.How to store the Mobilenet model after retraining with my own images?
Please Help me.I am new to Machine Learning.
by doing this i loose all classes model was able to recognize before, am i right?
Hey there, i am getting the following error when running the code on my browser :Unhandled promise rejection Error: MathBackendWebGL.writePixels(): pixels can not be null
Do you have a tutorial about this using posenet?
very awesome video! although i'm having a problem trying to make it recognize a third class, it works perfectly with 2 labels but it can't recognize a third one, even if i block the camera completely, making the third object to classify an black image, it still can't get it. is there any known issues with that? cause you say at the end that we should try adding more things to identify to test it out.
thank you
Yes, make sure you have the most recent version of ml5 and that you specify the number of labels: { numLabels: 3 }. This needs to be documented on the new website, feel free to file an issue here! github.com/ml5js/ml5-website-2/issues
7:16 "train" whistle
its so sad that the code is not in the description and u dont show all of it
fixed! thecodingtrain.com/tracks/ml5js-beginners-guide/ml5/3-feature-extractor/1-classification
Will this work for cocossd model?
Thanks a lot for your video. Can i have more than two classes of images? Im trying to add a third class but the label matrix has only the first two classes...
Never mind i figured that out :)
@@user-ct9qz9sf5z how? do use teachable maching?
can we train custom objects for yolo object detection in ml5js{.....................important.................}
Great Video!
Can you share the code, as the link doesnt work
Updated the description! thecodingtrain.com/tracks/ml5js-beginners-guide/ml5/3-feature-extractor/1-classification
The code is running but when I am trying to introduce a 3rd button say "angry" its not working can you suggest me how it can work? waiting for your reply
It would be interesting to "teach" the NN with sound and not images: Let it recognize your voice!
Is it possible to use raw 3d models, like STL or OBJ etc. files for traning?
you'd propably have to render it
Does any1 knows how to insert multiple images to train ,by selecting them through HTML .
I dont want to use webcam to insert training images.
When I hit the train button, I get really high loss Values and once the training is complete, it only shows one label, either happy or sad. I don't think it is a problem of my webcam because it works fine with the teachable machine website. Please help me solve this problem. What are the reasons for really high loss values?
Did you fix it? I'm with the same problem
@@pcpixelart2370No. I tried to find but there was nothing. So I just moved onto the other video.
Im trying to do this exactly same but train it by using image files. Is this possible? Ive been trying to do it for past few days but even I got to the part where I could train it, it wouldn’t recognize the image correctly. Ive been searching who internet on how to do transfer learning by feeding images instead of webcam but not a single article or blog about it. All examples are using webcam which is not practical for me because I want to train using more than 100 images
This is a really good question and I would love to tackle this in a video soon, please remind me! Check ml5js.org for many new examples and feel free to file a GitHub issue on ml5-examples if there isn't one that makes it clear how to do this!
@@TheCodingTrain Thank you. I was using KNNClassifier() to do it. I just had image DOM element as an input instead of video in featureExtractor but it did not work. I looked in github issues and it seems like there is already one open related to using images from file that has not been resolved. I would love to see a video about this! Your videos are so helpful.
Is it possible to save the trained model and reuse it without training again after page refresh?
Not yet, but this is a feature we are hoping / planning to implement!
looking forward to that feature, but for now you could have a locally saved folder full of images and load them in as training as you load the page. Bit of a pain, but a workaround for now perhaps
Alistair can you share the github link of the local image method. I am new to this and will be helpful for me to have a start
As soon as I add a third category I realize that ml5 only predicts the first two. I never see the third category. I have „background“, „glasses“ and „teddy bear“ - I add about 100 images per category. as soon as I try to classify the images then I only get „background“ or „glasses“. But never „teddy bear“ - any idea why? 😀
Ha! Figured it out: If you want to classify more than just two classes, make sure to define numClasses when defining your featureExtractor (as default is 2, see ml5js.org/docs/FeatureExtractor#parameters ), i.e.
featureExtractor = ml5.featureExtractor("mobileNet", { numClasses: 3 }, onModelReady);
This does the trick!!!
We have got to fix this to make it more clear in ml5! Thanks for the reminder :)
how to save the model trained to reuse it later?
thanks
19:38
hi, anyone has been tried to convert to the ml5 saved model to tensorflow lite model?
has anyone tried to run these examples on ios? I find when I do nothing happens and my phone just gets hot...
Hey guys, trying to implement this, but the only thing that keeps coming up in my label is "[object Object'],[object Object]"
Anyone know what the problem might be?
Check the most recent examples on the ml5js.org website. The API always returns an object now so the label will be inside, probably results[0].label.
@@TheCodingTrain Thanks for the reply, but I am not sure I implemented it right.
My gotResults function now looks like this:
function gotResults(error, result) {
if (error){
console.error(error);
}else{
label = results[0];
classifier.classify(gotResults);
}
}
but in the console I am getting the following error:
gotResults@about:srcdoc:89:5
e.default/
Train whistle!!!
super detals , but i have a problem with models.js:143 GET storage.googleapis.com/tfjs-models/tfjs/mobilenet_v1_0.25_224/model.json 403 whats up ? "this from devloper tools console"
Great video by the way but when i try to implement it i got an error
" Unhandled promise rejection Error: "MathBackendWebGL.writePixels(): pixels can not be null "
this happens when i clicked the button . i am using firefox 64 can you please help me
Do you see your webcam? Try comparing your code with: github.com/CodingTrain/website/tree/master/Courses/beginner_ml5/04_feature_extractor_classification
@@TheCodingTrain
Thank you for the reply
Yes my webcam stream in showing perfectly
i copied your code and try to run it but still it got the same error in firefox
but it works in chromium(71) browser I think the issue is with the firefox browser is ml5 only supports in chrome ?
it happens the same to me and with Chrome (version 59.0.3071.115 64 bits) on a mac
did you found a way to make it work because I have the same problem and i don´t find any help
TjarkTV yes , try this. gnkarn.github.io/p5js-course/p5jsProy_ML5_feature_extraction/
Idea: Make 2D game in Processing IDE .
I made flappy bird in Processing
code link not working )
will you please tell me
about your mac laptop you using pls.....
model number ect....pls...
I need your E-mail, please !!
Thanks a lot for your video. Can i have more than two classes if images ?
Hi Daniel, while using your code in feature extractor once training is completed i am getting output as [object Object],[object Object] Could you please help me to know why am i getting this output?(i am using Bracket Editor) and how to rectify it.
Check the latest example, you probably just need to pull out the specific properties of the JSON object that is returned! The library may have changed a bit. github.com/ml5js/ml5-examples/tree/release/p5js/FeatureExtractor