Hey all, just a quick update (April 10 2024). I ran through the full notebook today with my coin dataset, and everything worked without errors. A "Restart Session" option appears during Step 1 after running the last set of install commands. When it appears, click the "Restart Session" option, and then keep working through the steps. If you're getting errors, try using my coin dataset and seeing if it works (it should). Then, compare your annotation files with the annotation files from the coin dataset. It's likely there's a difference in your annotation files that are causing problems.
Hello Edje, thanks for this great tutorial! While following exactly the steps in your notebook, I ran into an error repetitively when running model_builder_tf2_test.py: "Could not load dynamic library 'libcudart.so.11.0'; dlerror:.." Any idea of how to solve it?
On Step 5 Training the model there's this another error that most of us are getting now, can you try checking it out ? The error goes like this, "TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP)." Followed by some errors about not identifying variables like {num_steps}, pipeline_file and model_dir that we indeed declared just some snippets ago, really frustrating error
for anyone who noticed that not all images are getting moved to its respective folders, and that later it gives some error that a file is missing: make sure all your images end with .jpg instead of .jpeg since all the scripts on the github page only takes into account those files
Still is one of the best tutorial for model training in RUclips. But I have a suggestion, could there be an option to add metadata scripts to the notebook? this could be highly useful since of the release of googles ML kit for android & ios development.
Hello, to increase performance, you can use multithreaded computing. To do this, when loading the model, specify the "num_threads" argument, which must contain the number of threads that the processor supports. Basically, TFLite uses only one core. The code: import multiprocessing tf.lite.Interpreter(model_path=PATH_TO_CKPT, num_threads=multiprocessing.cpu_count() ) On my old laptop with dual-core CPU, this gave a double increase in performance. Basic - 140 ms per frame. With two cores - 85 ms per frame
@@fe_nik_s776 you mean like this? import multiprocessing tf.lite.Interpreter(model_path=PATH_TO_CKPT, num_threads=multiprocessing.cpu_count() ) interpreter = Interpreter(model_path=modelpath)
its working thankyouuuuuuu edje electronics, i transfer it to raspberry pi also and it did not work at first time i just update some lib and it worked now thankyouuu thankyouuu super awsomeeee
That was so detailed and easy process! Thank you so much for the effort you have been given for all those videos. Quick question, what if somebody wants to use rstp streams instead of raspberry or USB camera on the Raspberry Pi, what should be change and where? Thanks again.
No fucking way u are givin us for free this kind of information, i love u so much, i have spend the last 2 months trying do a tensorFlow Object Detecion works, u deserve the best things of world can provide thanks thanks thankssssssssssssssssssssssssssssssss
Hello and thank you again for this tutorial! Today I was successfully able to get to the training step with my own dataset but I unfortunately forgot to turn my computer's sleep mode off. When I went to go back through the steps I keep getting an error Step 4 Cell 4 commented: "# Set file locations and get number of classes for config file". The error says "NotFoundError: /content/labelmap.pbtxt; No such file or directory" I can share a screenshot if you like. I've ran through the notebook several times and have also reset it with your most current version and I keep getting this. And in fact, there is no labelmap.pbtxt in my files. There is a labelmap.txt though! Thank you!
I ran this in a seperate cell to create the .pbtxt file: path_to_labeltxt = os.path.join(os.getcwd(), 'labelmap.txt') with open(path_to_labeltxt, 'r') as f: labels = [line.strip() for line in f.readlines()] path_to_labelpbtxt = os.path.join(os.getcwd(), 'labelmap.pbtxt') with open(path_to_labelpbtxt,'w') as f: for i, label in enumerate(labels): f.write('item { ' + ' id: %d ' % (i + 1) + ' name: \'%s\' ' % label + '} ' + ' ')
@@EdjeElectronics There are a few persistent warnings in the notebook now because of which it does not run anymore. Kindly check the comment sections and reply. The training does not commence in step 5. It worked once when we tried the notebook on a smaller dataset but then now we are trying to deploy the full dataset it shows this issue and does not run.
Great tutorial!! Great introductory experience while also providing everything needed for learning rabbit holes. If you come across Step 5 ending with ^c, it is because you are running out of memory. Either resize your images to be large/medium (~200-300KB per image), upload less images, or both.
Thanks, I appreciate you saying that! It helps motivate me to make more videos 😀. I have been busy working on paid projects, but I really want to do a video series on creating applications with YOLOv8. I don't know when I'll get to it though.
Love your tutorial!! good job with the instruction. I kind of using your material as my object detection experiment for my own dataset. But I got stuck at the training. seems like there is a version deprecation issue due to the colab upgrading TF version. I am wondering if there is an update to the code that helps at stage 5. TFLite model training :)
Thanks! Sorry, I'm not sure what's going on, and I don't have time currently to look in to it. Can you try Google searching the error to see if there's a resolution?
Hey, I was facing some issues as well. Make sure to run the session with the GPU. When I was training a larger model without the GPU, it hung on the training initialization. I also decreased the batch-size but I'm not convinced that it's actually necessary. Btw, thanks @EdjeElectronics for the tutorial, I really appreciate it!
Yeah thanks you two for replying, and can’t thank enough to @EdjeElectronic for providing the tutorial. So my issue turns out to be that my dataset contains .csv for annotation. So I had to ask GPT to write me a code to convert the labeling datasets back to .xml w/ exactly the same format as the dataset you provide for the coin dataset. I did it offline with Jupyter Notebook and re-upload them back to Gdrive and continue using your code to train, and after 2 weeks of tweaking, I finally made it to train with your magical instruction:) I looked into every line of your code and went down the rabbit hole with even the extension .py you linked and trying to study the logic behind the code w/ the help of chatGPT :D Long story short, I got it to train and it’s training. Yay!!!
Ok so i figured it out. I realize that the entire process requires xml and image dataset. i had csv and image as my dataset. So i converted the csv labeling dataset back into xml format locally and re upload the dataset and run the code and worked!! yay~✌😇
Nice and clear step-by-step video! However, I cannot run it smoothly at my side. At section3.3, no labelmap.pbtxt is generated so the later step in section 4 crash. Would you know the reason ?
Great job man, I love the work you've done ❤ I'm a complete beginner at this, I wanted to ask if it would be possible to add to the notebook on colab a way to save progress and then continue it in another session. When I train the model I get up to 20000 steps but then I get disconnected from colab (having the free version), I was thinking if before I get disconnected I could stop the training and then later (when colab allows it again) continue it.
Hi, what I did was to replace the directories in the colab with “/mydrive/” so that everything is saved on google drive, for example instead of “!mkdir /content/images” I have “!mkdir /mydrive/images”. It is still quite risky because you are doing operations in your google drive. That's it ! I can't post my changes now because they are quite specific to my case (and I don't know if it always works), but this is how you can do it too.
The best tutorial in the world! :) Please could you modify the code on Google Colab in the future so that training also works for negative images and xml files without objects in them? Now it gives errors. Thank you so much, we love you!
I wrote an auto-annotation script that labels images using early versions of the model. I trained a model off 200 manually labeled images, then used that model to label the remaining images and fixed any errors. It worked pretty well! Hoping to make a video about it in the next few months. But you can check out the code I used here: github.com/EdjeElectronics/Image-Dataset-Tools#autolabeler
@@EdjeElectronics excellent work, thanks for sharing the repository, I am looking to create a model that will make it easier for me to detect the barcodes of some products on a supermarket shelf
Good afternoon, great contribution that you really make, congratulations, a question when doing the training is paralyzed and does not continue on API in Colab, what could happen?
Sorry, I haven't encountered that problem before. My guess is to restart the Colab from scratch and try to run through it again. Otherwise, I'm not sure how to solve it.
@EdjeElectronics, I had a bug whereby on step 5, the training stops about a minute :( I practically did everything according to the tutorial. The code ends with a ^C symbol. Also, I noticed that the system RAM skyrocketed to 12.1Gb before the training process stopped... Could this be the issue? I would be really grateful if you could provide me some guidance please.
Your images are too large and you're running out of memory. Resize them to be around 200-300KB, don't upload too many images, and you should be good to go
Hello! Really informative video, I just wanted to know the process stays or less the same even if im on a Mac while making the project right? Is there anything I should be aware of? Furthermore its possible for me to make it so that the software detects when I am bending/bent towards the right/left and give an output, or because its the same person it wont be able to recognise that? thanks!
Thanks! It should all work inside the web browser, even if you're on a mac. However, I still haven't written the guide for how to take the downloaded model and run it on macOS. You should take a stab at it though! In fact, I'd pay you $50USD if you can write a macOS deployment guide similar to the one I wrote for Windows (github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi/blob/master/deploy_guides/Windows_TFLite_Guide.md). Email me if you're interested in that - info@ejtech.io ! For detecting which way you are bent, I would try using an OpenPose model (look it up on RUclips to see what I mean).
Thank You for your tutorial, it has been of great help to me but, I when upload the images folder and run it to distribute data for training, validation and test it show me zero images in total Please guide me in this regard
Hi! I'm getting an error when training a custom model (Train Custom TFLite Detection Model) and a warning: TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP).
Great tutorial! I've been encountering a problem though with my dataset. All file names are correct, also the file extensions, and have tried all options of adding a dataset (upload, gdrive mounting, dropbox) I even checked the csv file and all are intact. However, when its time to create the tfrecord files, there appear to be some files missing in both the train and validation folders, thus I can't generate the pbtxt file. Any tips?
Thank you! Hmm, usually if there's an issue with the pbtxt file, it's because there's a problem with the annotation data (like a typo in a class name). Can you try using my coin dataset and see if you get the same issue?
Hello! Thanks for the tutorial. It really helped a lot. But, I'd like to ask, besides the mAP evaluation metrics, how do I include other metrics such as Kappa, F1, confusion matrix, etc in order to provide more information about the model. Thanks!
Excellent video. I have a query regarding the application of the model. If, for example, I require that the detected elements be registered, what script would you recommend I use to do this? Thanks.
if you do everything right and it stuck on "use tf.cast instead" without any error. The problem is your train.tfrecord is empty. you need to change your xml files to make it work. it should look like this without any extra rows or parameters. Dont worry only important thing in this code is object name, min/max values and filename. If you have any additional row in your xml just manually delete it or use different label tool datasetjpg 20.jpg C:\Users\Kaan PC\Desktop\datasetjpg\20.jpg Unknown
@@EdjeElectronics I want to train my own model and there is only one class for example car. Just one. But section 3.3 doesn't accept it. And it give a error masege " penny, nickel, dime, quarter use " like this. What should ı do?
Hello! Awesome video btw! I tried to create my own model but i start to run training block, this error shows: TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP). any help with this? Really appreciate it!!
Any chance you can update the instructions to show how to convert the model to tensorflow.js? I've followed the video and it all worked but running the model through tensorflowjs_converter results in a 16kb .bin file which is obviously not correct. Fantastic tutorial - thanks!!
That'd be awesome. Thanks@@EdjeElectronics. Here's the docs that I've read - I "think" that your tutorial creates a "shared model" and then you convert from that but I might be wrong
Previews comment: "Hello, sometimes the training stops after 400 steps and some times stops after 200 steps i don't know why." answer: If the images are over 1 MB each, that will fill the Colab Ram which leads the code to stop, after Trying, i recommend sticking with 400 KB at max per photo specially if we are talking about a big amount of images.
Thanks! Had the same error. I wrote a python script to resize all pictures in a folder and now it works. The collab environments RAM usage is now much lower.
i am also got this problem. I think we have this problem because memory was not enough. You can checked your dataset, especially size archive your dataset! If this workout, please response there
Really good tutorial, I am following along for my school project, I can get as far as to the training, then it won't start training in Colab, in the log, it shows that the TensorFlow Addons needs tf version 2.12 - 2.15.0, would that be the case? I can see your video using python 3.8, currently the colab is run on python 3.10, could that be the reason? Could you please help? Thank you
Many thanks for the good video and the excellent Google Colab script. But when I want to use the T100 CPU (Batch 64) in Colab, problems occur. It then takes a very long time before the training starts and the output in the tensor board is relatively senseless. (Only flat graphs). Maybe you would like to check the code, because a lot has changed in the packages. (Unfortunately, I can't, because my detailed knowledge is not yet good enough). Thank you very much for your efforts. Best regards, Michael
great tutorial thanks, can you explain how to use the TF lite model in real-time detection using a webcam and how to deploy the model on a mobile application
Hello, can we have a tutorial about implementing the tensorflow lite model that is made in this video to a mobile object detection application. Thank you very much and looking forward to it
Hello @Edje Electronics Thank you for this amazing project, I must i has really been helpful and a life saver. I have question though. Is there like a script that i can use to resume training assuming i have the model saved in directory that is not temporary? Thank You in anticipation
@@EdjeElectronics Thank you for your response. Yes i figured it out. Also, do you have a video for how to auto launch the python scripts at boot on the raspberry pi, that i don't have to login to the desktop environment before starting my script? Thank you.
hello sir can you tell me how did you resume the training? I am having a really big trouble training my dataset since I have 6452 images on my dataset and I was training it for 40k steps just to have atleast good accuracy but it always get timeout before it even done training into 30k steps I wonder how did you make to resume it I really appreciate hope you share it
Thanks for the great content. I have some doubts, the video displaying is running at 2.7 FPS with Raspberry Pi, with you it reaches about 5 FPS, why my one is slower?
Hey bro, were you able to complete the custom object detection... I had an issue during the training process whereby it will stop after 50s. Usually it should take several hours. I also noticed that my system Ram reached about 12.1Gb before it stopped... did yours do the same? I would be really grateful for some guidance...
Really thank you very much for the tutorial I was able to do the inference on a Raspberry Pi. However, just after the entire model I evaluated the precision of the model on the training and test data but the script that I I wrote to myself about errors since the images were saved in tfrecord format. Could I have a hand lesson?
First of all, thank you very much for the great work. I have a question for you. I can't convert tensorflow lite version to tensor flow js how should I write a code block about it
when training the AI it shows an error that "TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024". How do I solve this?
Hi, I have encountered a problam everything works fine until i get to Start training a model. It displays log text but after about 3 minutes RAM usage go to max and script just exit. Please HELP!! i have this for a school project and I'm running out of time. Thanks
Great tutorial! I have a question though. Do I need to pre process my images to become accurate or no need? I've been training my model for a weeks and I already have a 1000+ datasets but some of the datasets are not accurate. Help please.
Great Video! I used this to train a custom model to detect bricks for a brick laying machine. The only issue I have is getting it to work with a pi HQ camera like the one your using. It works with a USB webcam but I get an error "can't open camera by index" when I try with the pi HQ camera. Is there an additional step to make this compatible with that camera?
Thanks, that sounds like an awesome project! I think it might be a driver compatibility issue with the Picamera. They released new drivers a couple years ago, and I have had to use "legacy mode" to get them to work. Try following the steps in the first section on this page and see if it helps: projects.raspberrypi.org/en/projects/getting-started-with-picamera
You can see how accuracy (mAP) is detected in section 7.3 of the notebook. It uses this GitHub repository: github.com/Cartucho/mAP . It is also capable of calculating precision and recall.
hello, I have a question. I bought an edge tpu coral for more camera fps, I also used the file that downloaded in the final part which is for edge tpu. It works but it cannot easily detect objects when the coral is plugged in, but if the edge tpu is disconnected, it runs at 2 fps but it always detect the object. May I know if there’s a fix on this one? Thank you!
Sigh, sorry guys. It looks like something changed in Colab or in TensorFlow, and now it's not able to run training on the GPU. I get several error messages like this when I try to run training in Step 5: " Could not load dynamic library 'libcudart.so.11.0' ". This means it's not able to load the CUDA libraries needed to run on the GPU. I'm not sure why. If anyone can figure out the problem, please post a solution. I'll dive into it after New Year's if no one has found anything by then. EDIT: I'll send $50 USD to the first person who can figure out a reliable solution and post it. And I'd also be highly interested in hiring you for a paid internship at ejtech.io 😃
Awesome vid! But it didn't work. Keep getting a ^c when I tried to run my training. SO each time I reflashed the window, it just showed 3 pictures from my training folder?
Waow, thanks for your quick response sir! Hmm, yes turn out to work just fine with your dataset. I followed the video quite close, and I can´t really see the issue? I was uploading from google Drive? @@EdjeElectronics
@Edje Electronics - I can see now, that after I ran your 3.2 split images into test, validation, and train folders. My test folder is empty, and the same goes for my validations folder. My train folder holds now 11 pictures? In the folder with all images, I have 184 images for .jpg and 184 for XML. So it seems like there is an issue with the script.
Getting this error "NotFoundError: /content/labelmap.pbtxt; No such file or directory" at step 28, If I try set file locaton, does anyone had same issue, please someone help me with this
Thanks for the video!!. I have some doubts, if I would train a model for detecting no ok parts, the way you showed us will fit for my model?, Must I take a picture for any defect and label it? Must take pictures for ok parts and label it also?. I'm trying to detect defects like scratches, marks, paint defects, etc...any help will be much appreciated!!
Ive been banging my head on my desk trying to find a good tutorial. Big thank
I struggle a week trying the repo from Google and this video save my life thank you I would like to see a video of posenet in Raspberry Pi
is your tflite model detecting items well? because my model detecting false products
@@shivarajchangale47 yes but i mean when i tried to run It in a new OS from Raspberry PI
Hey all, just a quick update (April 10 2024). I ran through the full notebook today with my coin dataset, and everything worked without errors. A "Restart Session" option appears during Step 1 after running the last set of install commands. When it appears, click the "Restart Session" option, and then keep working through the steps. If you're getting errors, try using my coin dataset and seeing if it works (it should). Then, compare your annotation files with the annotation files from the coin dataset. It's likely there's a difference in your annotation files that are causing problems.
Hello Edje, thanks for this great tutorial! While following exactly the steps in your notebook, I ran into an error repetitively when running model_builder_tf2_test.py: "Could not load dynamic library 'libcudart.so.11.0'; dlerror:.." Any idea of how to solve it?
On Step 5 Training the model there's this another error that most of us are getting now, can you try checking it out ?
The error goes like this,
"TensorFlow Addons (TFA) has ended development and introduction of new features.
TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024.
Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP)."
Followed by some errors about not identifying variables like {num_steps}, pipeline_file and model_dir that we indeed declared just some snippets ago, really frustrating error
for anyone who noticed that not all images are getting moved to its respective folders, and that later it gives some error that a file is missing: make sure all your images end with .jpg instead of .jpeg since all the scripts on the github page only takes into account those files
Really nice video. Anxiously waiting for an Android deploying tutorial!
Still is one of the best tutorial for model training in RUclips. But I have a suggestion, could there be an option to add metadata scripts to the notebook? this could be highly useful since of the release of googles ML kit for android & ios development.
Hello, to increase performance, you can use multithreaded computing. To do this, when loading the model, specify the "num_threads" argument, which must contain the number of threads that the processor supports. Basically, TFLite uses only one core.
The code:
import multiprocessing
tf.lite.Interpreter(model_path=PATH_TO_CKPT, num_threads=multiprocessing.cpu_count() )
On my old laptop with dual-core CPU, this gave a double increase in performance.
Basic - 140 ms per frame.
With two cores - 85 ms per frame
Thanks, I'll have to try that!
This works like a charm bro! On a pi 4, My fps went from 8fps to 20fps when using the google sample tflite model!🤯
@@khamismuniru5188 how
@@SumitKumaar321 Section 7.1. In the line -> interpreter = Interpreter(model_path=modelpath)
@@fe_nik_s776 you mean like this?
import multiprocessing
tf.lite.Interpreter(model_path=PATH_TO_CKPT, num_threads=multiprocessing.cpu_count() )
interpreter = Interpreter(model_path=modelpath)
Thank you for a wonderful breakdown of all the needed steps to do training on colab ❤❤❤ Your follower from Egypt 🥰
Amazing tutorial! One of the most useful videos I've ever watched. Keep up the good work!
Thanks a lot, Edje!
its working thankyouuuuuuu edje electronics, i transfer it to raspberry pi also and it did not work at first time i just update some lib and it worked now thankyouuu thankyouuu super awsomeeee
Your tutorial is the best on the internet. Exactly what I needed! Thank you! Thank you! Thank you!!!
Superb..It is hard to install tensorflow api because the version incompatibilities..you handle those superbly
Thank you for a wonderful breakdown of all the needed steps to do training on colab.
Thankyou so much you made my day, I was searching all internet for working colab notebook for this model.
That was so detailed and easy process! Thank you so much for the effort you have been given for all those videos. Quick question, what if somebody wants to use rstp streams instead of raspberry or USB camera on the Raspberry Pi, what should be change and where? Thanks again.
No fucking way u are givin us for free this kind of information, i love u so much, i have spend the last 2 months trying do a tensorFlow Object Detecion works, u deserve the best things of world can provide thanks thanks thankssssssssssssssssssssssssssssssss
Hello and thank you again for this tutorial!
Today I was successfully able to get to the training step with my own dataset but I unfortunately forgot to turn my computer's sleep mode off. When I went to go back through the steps I keep getting an error Step 4 Cell 4 commented: "# Set file locations and get number of classes for config file". The error says "NotFoundError: /content/labelmap.pbtxt; No such file or directory" I can share a screenshot if you like. I've ran through the notebook several times and have also reset it with your most current version and I keep getting this. And in fact, there is no labelmap.pbtxt in my files. There is a labelmap.txt though!
Thank you!
yeah, the .pbtxt does not get created in my case either.
I ran this in a seperate cell to create the .pbtxt file:
path_to_labeltxt = os.path.join(os.getcwd(), 'labelmap.txt')
with open(path_to_labeltxt, 'r') as f:
labels = [line.strip() for line in f.readlines()]
path_to_labelpbtxt = os.path.join(os.getcwd(), 'labelmap.pbtxt')
with open(path_to_labelpbtxt,'w') as f:
for i, label in enumerate(labels):
f.write('item {
' +
' id: %d
' % (i + 1) +
' name: \'%s\'
' % label +
'}
' +
'
')
have you fix this problem yet?
Thank you! Clear and easy to understand while having sprinkles of humor made this video really educational AND enjoyable. Easiest like and subscribe.
Thanks for the kind words! 😸
@@EdjeElectronics There are a few persistent warnings in the notebook now because of which it does not run anymore. Kindly check the comment sections and reply. The training does not commence in step 5. It worked once when we tried the notebook on a smaller dataset but then now we are trying to deploy the full dataset it shows this issue and does not run.
Thankkk youu sooo much for the tutorial, I've been researching on the internet but didn't get the solution. Great work you've earned a subscriber.
Amazing!! Incredible to see you using the model on another device.
Great tutorial!! Great introductory experience while also providing everything needed for learning rabbit holes.
If you come across Step 5 ending with ^c, it is because you are running out of memory. Either resize your images to be large/medium (~200-300KB per image), upload less images, or both.
wow thanks man!
Really excited your back! Thanks for the video.
Really amazing video with detailed and well-explained steps. Great job!
This tutorial was super helpful, thank you a lot! It is very easy to follow along and understand with step-by-step instructions
Thanks for making this amazing video! It is really helpful. Look forward to the "quantize TFLite model:" video too!!!
Thank you. Very nice guide for beginner. Please do video for audio classification using microphone with raspberry pi.
hey, when next video about object detection fine tuning and creating apps with that? really love your videos
Thanks, I appreciate you saying that! It helps motivate me to make more videos 😀. I have been busy working on paid projects, but I really want to do a video series on creating applications with YOLOv8. I don't know when I'll get to it though.
Thankyou somuch for your helping with this video, now can implement this tutorial in my final task
Love your tutorial!! good job with the instruction. I kind of using your material as my object detection experiment for my own dataset. But I got stuck at the training. seems like there is a version deprecation issue due to the colab upgrading TF version. I am wondering if there is an update to the code that helps at stage 5. TFLite model training :)
Thanks! Sorry, I'm not sure what's going on, and I don't have time currently to look in to it. Can you try Google searching the error to see if there's a resolution?
Hey, I was facing some issues as well. Make sure to run the session with the GPU. When I was training a larger model without the GPU, it hung on the training initialization. I also decreased the batch-size but I'm not convinced that it's actually necessary. Btw, thanks @EdjeElectronics for the tutorial, I really appreciate it!
Yeah thanks you two for replying, and can’t thank enough to @EdjeElectronic for providing the tutorial. So my issue turns out to be that my dataset contains .csv for annotation. So I had to ask GPT to write me a code to convert the labeling datasets back to .xml w/ exactly the same format as the dataset you provide for the coin dataset. I did it offline with Jupyter Notebook and re-upload them back to Gdrive and continue using your code to train, and after 2 weeks of tweaking, I finally made it to train with your magical instruction:)
I looked into every line of your code and went down the rabbit hole with even the extension .py you linked and trying to study the logic behind the code w/ the help of chatGPT :D
Long story short, I got it to train and it’s training. Yay!!!
Ok so i figured it out. I realize that the entire process requires xml and image dataset. i had csv and image as my dataset. So i converted the csv labeling dataset back into xml format locally and re upload the dataset and run the code and worked!! yay~✌😇
@@PeterPan-hs5tu Awesome, glad you were able to figure it out!
Nice and clear step-by-step video!
However, I cannot run it smoothly at my side.
At section3.3, no labelmap.pbtxt is generated so the later step in section 4 crash. Would you know the reason ?
Yes for me too got any fix?
@@260.vighneshbablu2 it suddenly fixed after i reload the notebook and redo all the steps
@@260.vighneshbablu2 guess another solusion can be finding one .pbtxt, follow its formet and edit according to your custom class names.
@@humilam4808 but the format is not shown in the video
@@260.vighneshbablu2 find one online
i unable to make labelmap.pbtxt on step 3.3, how do i fix this?
same problem
@@roeyasher1396 i can't paste here the raw code..sorry
@@rmmtech1218 please let us know what to be done or can you drop same to mail id?
Drop your mail id, I will send pdtxt file, you have to change classes there and paste at location
Great job man, I love the work you've done ❤
I'm a complete beginner at this, I wanted to ask if it would be possible to add to the notebook on colab a way to save progress and then continue it in another session.
When I train the model I get up to 20000 steps but then I get disconnected from colab (having the free version), I was thinking if before I get disconnected I could stop the training and then later (when colab allows it again) continue it.
Nevernind i solved this, for everyone interested i chnaged pretty much all of the paths to save on google drive.
hello! would you mind if i can ask how to be able to save paths on gdrive ? thanks a lot
Hi, what I did was to replace the directories in the colab with “/mydrive/” so that everything is saved on google drive, for example instead of “!mkdir /content/images” I have “!mkdir /mydrive/images”. It is still quite risky because you are doing operations in your google drive. That's it !
I can't post my changes now because they are quite specific to my case (and I don't know if it always works), but this is how you can do it too.
@@0oMardev i hope you still can read my comment man, thanks for your tips but can you still provide more info? Thank youuu
@@0oMardev so when you continue to train it again, you just have to mount your gdrive and run the "Train" again?
Really detailed. A query though, where in the above procedures should I rectify to train a face detection model??
The best tutorial in the world! :) Please could you modify the code on Google Colab in the future so that training also works for negative images and xml files without objects in them? Now it gives errors. Thank you so much, we love you!
Thanks!, Did you label them one by one or did you use any tool or script?
I wrote an auto-annotation script that labels images using early versions of the model. I trained a model off 200 manually labeled images, then used that model to label the remaining images and fixed any errors. It worked pretty well! Hoping to make a video about it in the next few months. But you can check out the code I used here:
github.com/EdjeElectronics/Image-Dataset-Tools#autolabeler
@@EdjeElectronics excellent work, thanks for sharing the repository, I am looking to create a model that will make it easier for me to detect the barcodes of some products on a supermarket shelf
Good afternoon, great contribution that you really make, congratulations, a question when doing the training is paralyzed and does not continue on API in Colab, what could happen?
Sorry, I haven't encountered that problem before. My guess is to restart the Colab from scratch and try to run through it again. Otherwise, I'm not sure how to solve it.
@EdjeElectronics,
I had a bug whereby on step 5, the training stops about a minute :( I practically did everything according to the tutorial. The code ends with a ^C symbol. Also, I noticed that the system RAM skyrocketed to 12.1Gb before the training process stopped... Could this be the issue? I would be really grateful if you could provide me some guidance please.
i have the same issue ! I'm pretty much sure this is beacause of the ram capabilities... I gess we have to subscibe to googlecolab pro
Your images are too large and you're running out of memory. Resize them to be around 200-300KB, don't upload too many images, and you should be good to go
hello good sir, this is a very helpful vid. Currently waiting for the how to capture and label training data video
It will be out on Monday! Just finishing up the editing now.
@@EdjeElectronics happy to hear that sir, thank you for uploading such helpful videos
Good to see you again!
Thanks! I'm going to try and hold myself to a more regular release schedule now... we'll see how it goes! 😁
thank you so much for uploading this video. Helped a lot!
:D
Hello! Really informative video, I just wanted to know the process stays or less the same even if im on a Mac while making the project right? Is there anything I should be aware of?
Furthermore its possible for me to make it so that the software detects when I am bending/bent towards the right/left and give an output, or because its the same person it wont be able to recognise that?
thanks!
Thanks! It should all work inside the web browser, even if you're on a mac. However, I still haven't written the guide for how to take the downloaded model and run it on macOS. You should take a stab at it though! In fact, I'd pay you $50USD if you can write a macOS deployment guide similar to the one I wrote for Windows (github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi/blob/master/deploy_guides/Windows_TFLite_Guide.md). Email me if you're interested in that - info@ejtech.io !
For detecting which way you are bent, I would try using an OpenPose model (look it up on RUclips to see what I mean).
Thank You for your tutorial, it has been of great help to me but, I when upload the images folder and run it to distribute data for training, validation and test it show me zero images in total
Please guide me in this regard
Great tutorial. Anybody else having an issue with getting more than 10 detections of the same class per image?
Hi! I'm getting an error when training a custom model (Train Custom TFLite Detection Model) and a warning:
TensorFlow Addons (TFA) has ended development and introduction of new features. TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024. Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP).
Exactly, Ive been receiving this exact error and its eating my brain up
I know its really late to reply to you but did you find a solution to this ?
Wonderful, thanks for the efforts for explaining step by step
Great tutorial! I've been encountering a problem though with my dataset. All file names are correct, also the file extensions, and have tried all options of adding a dataset (upload, gdrive mounting, dropbox) I even checked the csv file and all are intact. However, when its time to create the tfrecord files, there appear to be some files missing in both the train and validation folders, thus I can't generate the pbtxt file. Any tips?
Thank you! Hmm, usually if there's an issue with the pbtxt file, it's because there's a problem with the annotation data (like a typo in a class name). Can you try using my coin dataset and see if you get the same issue?
Hello! Thanks for the tutorial. It really helped a lot. But, I'd like to ask, besides the mAP evaluation metrics, how do I include other metrics such as Kappa, F1, confusion matrix, etc in order to provide more information about the model.
Thanks!
i need to
kkkkk
Excellent video. I have a query regarding the application of the model. If, for example, I require that the detected elements be registered, what script would you recommend I use to do this? Thanks.
Helpful video. can i peform segmentation instead of object detection in tensorflow lite?
if you do everything right and it stuck on "use tf.cast instead" without any error. The problem is your train.tfrecord is empty. you need to change your xml files to make it work. it should look like this without any extra rows or parameters. Dont worry only important thing in this code is object name, min/max values and filename. If you have any additional row in your xml just manually delete it or use different label tool
datasetjpg
20.jpg
C:\Users\Kaan PC\Desktop\datasetjpg\20.jpg
Unknown
1920
1080
3
0
car
Unspecified
0
0
1205
38
1900
387
Thanks for posting this solution!
@@EdjeElectronics I want to train my own model and there is only one class for example car. Just one. But section 3.3 doesn't accept it. And it give a error masege " penny, nickel, dime, quarter use " like this. What should ı do?
I did this but it's still stuck in there? What else can be the solution?
Hello! Awesome video btw! I tried to create my own model but i start to run training block, this error shows:
TensorFlow Addons (TFA) has ended development and introduction of new features.
TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024.
Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP).
any help with this? Really appreciate it!!
same problem pls help.
Exactly, same here
Its great 👍
Please tell me about Python. It installed on your Raspberry pi?
Any chance you can update the instructions to show how to convert the model to tensorflow.js? I've followed the video and it all worked but running the model through tensorflowjs_converter results in a 16kb .bin file which is obviously not correct. Fantastic tutorial - thanks!!
I can look into it! Do you know where in the TensorFlow docs I can find more info about tensorflowjs_converter?
That'd be awesome. Thanks@@EdjeElectronics. Here's the docs that I've read - I "think" that your tutorial creates a "shared model" and then you convert from that but I might be wrong
@@mortocks Hi! Did you find a solution? can you help me, i need in .js too
Previews comment:
"Hello, sometimes the training stops after 400 steps and some times stops after 200 steps i don't know why."
answer: If the images are over 1 MB each, that will fill the Colab Ram which leads the code to stop, after Trying, i recommend sticking with 400 KB at max per photo specially if we are talking about a big amount of images.
Thanks! Had the same error. I wrote a python script to resize all pictures in a folder and now it works. The collab environments RAM usage is now much lower.
Why does my learning process end just before the beginning of the analysis of images with "^C" in the last line?
i am also got this problem. I think we have this problem because memory was not enough. You can checked your dataset, especially size archive your dataset! If this workout, please response there
Really good tutorial, I am following along for my school project, I can get as far as to the training, then it won't start training in Colab, in the log, it shows that the TensorFlow Addons needs tf version 2.12 - 2.15.0, would that be the case? I can see your video using python 3.8, currently the colab is run on python 3.10, could that be the reason? Could you please help? Thank you
Amazing work, but I noticed that the camera is very slow when you launch the test. Can you please tell me why? Thanks
Thank you for the tutorial video! And I have a question how can I export the classification output data and save in the txt file?
Thank you for the great content. Waiting for the deployment of tflite on the android studio part. Thank you
Thank you soo much.. i just trained model on coral usb
Thanks for the tutorial. I noticed the image detection draws a maximum of 10 objects is there a way to increase the count?
hey mate! Did you manage to solve it?
I'm having the same issue.
Your video have been so useful to me, i just would like you make a tutorial to run it on a mac machine
Thank you for the wonderful breakdown !! Can you do a tutorial on how to deploy on android please
Many thanks for the good video and the excellent Google Colab script.
But when I want to use the T100 CPU (Batch 64) in Colab, problems occur. It then takes a very long time before the training starts and the output in the tensor board is relatively senseless. (Only flat graphs).
Maybe you would like to check the code, because a lot has changed in the packages. (Unfortunately, I can't, because my detailed knowledge is not yet good enough).
Thank you very much for your efforts.
Best regards, Michael
Hi wonderful video, I'm working on a custom dataset with more than 4 classes what file or code would I change?
Please make a video for android studio version. Thank you. Great tutorial by the way
Can you do this with screenshots from a website to train it to identify certain images on a website?
great tutorial thanks, can you explain how to use the TF lite model in real-time detection using a webcam and how to deploy the model on a mobile application
Please keep making great videos. Awesome content.
So cool, a bit beyond me (at the moment!) but it gives me a good idea for coin collecting
Hello, can we have a tutorial about implementing the tensorflow lite model that is made in this video to a mobile object detection application. Thank you very much and looking forward to it
Hello @Edje Electronics Thank you for this amazing project, I must i has really been helpful and a life saver. I have question though. Is there like a script that i can use to resume training assuming i have the model saved in directory that is not temporary? Thank You in anticipation
Hi Abraham, yes, there should be a way to do that, but I don't have time to remember it right now. Hope you can figure it out!
@@EdjeElectronics Thank you for your response. Yes i figured it out.
Also, do you have a video for how to auto launch the python scripts at boot on the raspberry pi, that i don't have to login to the desktop environment before starting my script? Thank you.
hello sir can you tell me how did you resume the training? I am having a really big trouble training my dataset since I have 6452 images on my dataset and I was training it for 40k steps just to have atleast good accuracy but it always get timeout before it even done training into 30k steps I wonder how did you make to resume it I really appreciate hope you share it
Why does the model only detect one class during the testing process even though the dataset has three classes?
Thanks for the great content. I have some doubts, the video displaying is running at 2.7 FPS with Raspberry Pi, with you it reaches about 5 FPS, why my one is slower?
Hey bro, were you able to complete the custom object detection... I had an issue during the training process whereby it will stop after 50s. Usually it should take several hours. I also noticed that my system Ram reached about 12.1Gb before it stopped... did yours do the same? I would be really grateful for some guidance...
Hi did you figure it out...can you share your experience?@@PraiseTheLord527
Really thank you very much for the tutorial I was able to do the inference on a Raspberry Pi. However, just after the entire model I evaluated the precision of the model on the training and test data but the script that I I wrote to myself about errors since the images were saved in tfrecord format. Could I have a hand lesson?
I found an error when I am using my own dataset. It stops during training with this sign^C.
Hello Sadam!
I too I'm having the same issue... were you able to solve this issue? I would be really grateful for guidance. Thanks!
I solve this error by resize the photos.
I got error at step 3.3 No such file or directory: 'images/validation_labels.csv'
First of all, thank you very much for the great work. I have a question for you. I can't convert tensorflow lite version to tensor flow js how should I write a code block about it
when training the AI it shows an error that "TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024". How do I solve this?
I hve the same problem and don't know how to fix it.
Hello, first thank you for sharing your workflow with us. How can I get the detected objected (as text) scripted when i run the model?
Any tips?
thank you broo, you're amazing💣
Hi, I have encountered a problam everything works fine until i get to Start training a model. It displays log text but after about 3 minutes RAM usage go to max and script just exit. Please HELP!! i have this for a school project and I'm running out of time. Thanks
Does the script end with^C? I think I encountered this error too...
Hey were you able to solve this issue?
I tried to find my problem in the bottom of colab, but i only found there is one setence and a cant find any thing?
excuse me sir, i want trouble notif "Corrupt JPEG data: 251 extraneous bytes before marker 0xd9" how to the fix this sir ? thaks you
Great tutorial! I have a question though. Do I need to pre process my images to become accurate or no need? I've been training my model for a weeks and I already have a 1000+ datasets but some of the datasets are not accurate. Help please.
Great Video! I used this to train a custom model to detect bricks for a brick laying machine. The only issue I have is getting it to work with a pi HQ camera like the one your using. It works with a USB webcam but I get an error "can't open camera by index" when I try with the pi HQ camera. Is there an additional step to make this compatible with that camera?
Thanks, that sounds like an awesome project! I think it might be a driver compatibility issue with the Picamera. They released new drivers a couple years ago, and I have had to use "legacy mode" to get them to work. Try following the steps in the first section on this page and see if it helps:
projects.raspberrypi.org/en/projects/getting-started-with-picamera
@@EdjeElectronics That worked! Thanks!
Great video intesetd if you have
Instructions to run TFLite models on mac os
Hi sir, can you please show how to know the accuracy, precision, and recall by implementing in the code please? Thank you
You can see how accuracy (mAP) is detected in section 7.3 of the notebook. It uses this GitHub repository: github.com/Cartucho/mAP . It is also capable of calculating precision and recall.
@@EdjeElectronics May I know how can I make it to displayed at the output and also show in tensorboard?
Hello, this video is amazing, but do you know how this trained model work on ESP32 CAM?
hello, I have a question. I bought an edge tpu coral for more camera fps, I also used the file that downloaded in the final part which is for edge tpu. It works but it cannot easily detect objects when the coral is plugged in, but if the edge tpu is disconnected, it runs at 2 fps but it always detect the object. May I know if there’s a fix on this one? Thank you!
Hello Remus!
Just wondering if you were able to solve this issue? :O
my model detecting constancy only 10 objects why so. have used any restriction here model should detect 10 object only
Sigh, sorry guys. It looks like something changed in Colab or in TensorFlow, and now it's not able to run training on the GPU. I get several error messages like this when I try to run training in Step 5: " Could not load dynamic library 'libcudart.so.11.0' ". This means it's not able to load the CUDA libraries needed to run on the GPU. I'm not sure why. If anyone can figure out the problem, please post a solution. I'll dive into it after New Year's if no one has found anything by then.
EDIT: I'll send $50 USD to the first person who can figure out a reliable solution and post it. And I'd also be highly interested in hiring you for a paid internship at ejtech.io 😃
Up! Thank you!
Up!!! Thank you so much
I have the solution, however RUclips deletes my comment because the code contains a URL. Any workaround for this?
@@markwassef8643 cool! What’s your email? I’ll send you a message.
Or, you can contact me at info@ejtech.io .
Awesome vid! But it didn't work. Keep getting a ^c when I tried to run my training. SO each time I reflashed the window, it just showed 3 pictures from my training folder?
I've seen that happen sometimes when there's problems with the training data. Can you try it with my coin dataset and see if you get the same issue?
Waow, thanks for your quick response sir! Hmm, yes turn out to work just fine with your dataset. I followed the video quite close, and I can´t really see the issue? I was uploading from google Drive? @@EdjeElectronics
@Edje Electronics - I can see now, that after I ran your 3.2 split images into test, validation, and train folders. My test folder is empty, and the same goes for my validations folder. My train folder holds now 11 pictures? In the folder with all images, I have 184 images for .jpg and 184 for XML. So it seems like there is an issue with the script.
The ^C could be coming from a RAM overload. If thats the case, reduce your image sizes.
@@jako3939 Do you have any suggestion to reduce quickly the size of the images without relabeling the images?
Getting this error "NotFoundError: /content/labelmap.pbtxt; No such file or directory" at step 28, If I try set file locaton, does anyone had same issue, please someone help me with this
I have the same error, can someone please help
Great video. please can you add the video of TFlite model deployment in android devices?
Thanks for the video!!. I have some doubts, if I would train a model for detecting no ok parts, the way you showed us will fit for my model?, Must I take a picture for any defect and label it? Must take pictures for ok parts and label it also?. I'm trying to detect defects like scratches, marks, paint defects, etc...any help will be much appreciated!!
i like this tutorial, on the next video could you make how to training tflite model without google collab?
Can we train for image segmentation model too with this codelab?
So everything works great! Just wondering how to use it with Coral USB accelerator? Tried to run same code with -edge tpu
Hey there. I am facing issues with training part. It showing dependencies issues with keras and tensorflow. Could you please help me with this problem
Thanks for the helpful tutorial, but I want to make an inference on the esp32 cam, can you provide a solution?