Real Time Face Mask Detection with Tensorflow and Python | Custom Object Detection w/ MobileNet SSD
Ғылым және технология
Ever wanted to build your very own custom object detector?
Got lost with all the tutorials and installation?
Well…I hear you…I went through the
EXACT. SAME. THING.
So, let’s flip it up. In this video we’re going to go through how to build a custom object detection model that can be used to make detections in real time. Now whilst we’re using it for detecting face masks this can be easily repurposed to perform real-time detection for a whole range of use cases simply by updating the annotations and the label map.
In this video you’ll learn how to:
1. Install labelImg and label images from scratch for object detection
2. Train and run a custom object detector for face mask detection
3. Use transfer learning to train on top of existing SOTA models
4. Setup a proper workflow and directory structure for training
5. Make detections in real time using the trained model
Get the training template here: github.com/nicknochnack/RealT...
Other Links Mentioned in the Video
LabelImg: github.com/tzutalin/labelImg
Kaggle Repo: www.kaggle.com/wobotintellige...
Installing the Tensorflow Object Detection API: tensorflow-object-detection-a...
Tensorflow Models: github.com/tensorflow/models
Tensorflow 2 Detection Model Zoo (for alternate pre-trained models): github.com/tensorflow/models/...
Oh, and don't forget to connect with me!
LinkedIn: / nicholasrenotte
Facebook: / nickrenotte
GitHub: github.com/nicknochnack
Happy coding!
Nick
P.s. Let me know how you go and drop a comment if you need a hand!
Пікірлер: 1 800
Thank you so much Nick, I can tell that you put so much effort into your youtube channel and you really care about what you are doing. Nice editing, detail explaination, and you even answer some of the comments. Again thank you so much for the video and I'm looking forward for the next video!!!
Hey!!! hope you are doing good?!Glad to see this video! was eagerly waiting for it since last month!!
@NicholasRenotte
3 жыл бұрын
YESSS! It took a little while but got it out at last. Tried to make it as streamlined as possible so the code is reusable. Let me know how you go with it @anonymous three!
Nicholas, you are the best when it comes to Objection detection, you have helped me a lot, thank you
Good Morning! within this area of facial recognition in Python, I didn't find a channel as rich as yours, Congratulations!!! Levi. of Brazil...
Just here to thank you, after weeks trying to install and run Tensorflow in windows it finally works thanks to you !!!! and please continue with the good tutorials, i'm subbing =)
@NicholasRenotte
3 жыл бұрын
I feel that pain in my soul (went through it as well). Glad you got it up and running! What's next on your project list!?
@saisharaneruventi2180
3 жыл бұрын
Can I have the code
@NicholasRenotte
3 жыл бұрын
@@saisharaneruventi2180 link in the description!
@prajwalkumar5074
2 жыл бұрын
Hello, Can I know the version of python and tensorflow you have installed, I have installed tensorflow 2.1.3 and python 3.8 and error regarding gfile is popping up. Please help!!!
Thank you Nicholas you help my project in school.. Im so glad i finally found your videos.. I learn so much....❤❤
@NicholasRenotte
3 жыл бұрын
Heya @Rey, thanks so much. Glad you learned a ton 🤗
@vishnukeerthi5024
3 жыл бұрын
@@NicholasRenotte bro I have a small doubt if u train the model with u r photos is it possible for the model to detect all the other people whether they were a mask or nott??
@vishnukeerthi5024
3 жыл бұрын
Is in possible with that same model than how to use the same model to recognise other people tooo ex: like it may be installed in public places where It can alert to wear a mask
@NicholasRenotte
3 жыл бұрын
@@vishnukeerthi5024 definitely, ideally you would want to provide additional examples with other people when training!
Jeezus, this is the best one out here! THANK YOU FOR MAKING EVERYTHING AVAILABLE
This was so incredibly helpful! Actual lifesaver
Thank you very much Nicholas for all these videos, they are really helpful for all of us. Love the efforts you put in , and also the funny stuff u integrate in the beginning.
@NicholasRenotte
3 жыл бұрын
Oh I haven't done an intro skit for a while, definitely need to do a new one this week! Thanks so much for checking it out!
@aniket1015
3 жыл бұрын
@@NicholasRenotte hey man i am getting few errors while creating TF records. 1. tensorflow has no module gfile.(after scrapping the net i was able to fix it, we are supposed to replace tf.gfile with tf.io.gfile.......tensorflow has moved gfile to tensorflow.io) 2. Traceback (most recent call last): File "Tensorflow/scripts/generate_tfrecord.py", line 63, in label_map_dict = label_map_util.get_label_map_dict(label_map) File "C:\Users\ANIKET\anaconda3\envs\ObjectDetection\lib\site-packages\object_detection\utils\label_map_util.py", line 164, in get_label_map_dict label_map = load_labelmap(label_map_path) File "C:\Users\ANIKET\anaconda3\envs\ObjectDetection\lib\site-packages\object_detection\utils\label_map_util.py", line 133, in load_labelmap label_map_string = fid.read() File "C:\Users\ANIKET\anaconda3\envs\ObjectDetection\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 117, in read self._preread_check() File "C:\Users\ANIKET\anaconda3\envs\ObjectDetection\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 79, in _preread_check self._read_buf = _pywrap_file_io.BufferedInputStream( TypeError: __init__(): incompatible constructor arguments. The following argument types are supported: 1. tensorflow.python._pywrap_file_io.BufferedInputStream(filename: str, buffer_size: int, token: tensorflow.python._pywrap_file_io.TransactionToken = None) Invoked with: item { name: "with_mask" id: 1 } item { name: "without_mask" id: 2 } , 524288 i am really stuck at this from yesterday, if you have any idea please help me out.
@NicholasRenotte
3 жыл бұрын
No problemo @@aniket1015, can you double check your images are all valid and the labels map exactly to what you've got in your label map i.e. with_mask and without_mask (it's case sensitive).
@aniket1015
3 жыл бұрын
@@NicholasRenotte Yes Nicholas , I have double checked it all. That dose not seems to be the issue. The label map is same as yours, just the labels are 'with_mask' and 'without_mask' and the annotations have the same name.
@Hdx64
2 жыл бұрын
@@aniket1015 Hi. Did you ever found how to solve this? i also got stuck here and also found the solution to problem 1, but i had no luck with problem 2
excellent explanation. Turkish resources on these subjects are limited. Thank you very much. I am grateful to you. Allah you bless you.
Thanks very much for the clear tutorial you provided. This is the best I found in this field.
Your content is amazing . Thanks a lot for all the content, you motivate me a lot to keep learning. Blessings.
01:43 Let's do this 04:20 Building up Imaglabling 05:29 PyQt & XML 07:50 Image ready for deployment 12:36 Get and read Xml file 18:01 00-Setup paths 19:57 Creating label map(dictionary) 21:52 Creating label map(labeling complete) 23:25 Creating TF records 26:19 TF model zoo(downloading pretrained models) 27:50 TF model zoo choosing 30:03 Copy model config to training model 32:21 Update Config for transfer learning 40:27 Train the model 44:51 Load train model from check point 49:00 Detect in real time 56:11 error
@NicholasRenotte
3 жыл бұрын
Thanks so much!
@user-fl7vs4ed6l
3 жыл бұрын
Zero to hero , I want to finish my final project.
@NicholasRenotte
3 жыл бұрын
@@user-fl7vs4ed6l awesome, how's it going so far?
@sravani3059
2 жыл бұрын
A subdirectory or file Tensorflow\workspace\models\my_ssd_mobnet already exists. 'cp' is not recognized as an internal or external command, operable program or batch file. what is the solution of this error plz help me to solve this
@nabils4738
2 жыл бұрын
@@sravani3059 Need to use gitbash maybe
Hey y'all! Wrote up a couple of steps to setup your environment. I'm planning on doing a video on this but until then, here's a crash course post: 1. First up install Python 3.7.4. Download and install the package for your OS that has the words 2019.10 in it from here repo.anaconda.com/archive/. This should give you 3.7.4 to work with. 2. Then install Visual Studio C++ 2015 from here: go.microsoft.com/fwlink/?LinkId=691126. Tensorflow needs this in order to compile 3. OPTIONAL IF YOU HAVE A GPU - Install Cuda and Cudnn. Install Cuda first, then install Cudnn. - Cuda: 10.1 - developer.nvidia.com/cuda-10.1-download-archive-base - Cudnn: 7.6.5 - developer.nvidia.com/rdp/cudnn-download Once Cudnn is installed you need to copy the Cudnn files into their respective folders inside the Cuda directory. I used this as a guide: towardsdatascience.com/installing-tensorflow-with-cuda-cudnn-and-gpu-support-on-windows-10-60693e46e781 4. Then install Protoc 3.13 from here: github.com/protocolbuffers/protobuf/releases. For windows, download the repository and then add it to your PATH file. 5. Then install python packages using the pip command: Tensorflow: 2.3.1 - pip install tensorflow==2.3.1 OpenCV: 4.4.0 - pip install tensorflow==4.4.0 6. Install the object detection API. To do this, run these commands from a command prompt or terminal: git clone github.com/tensorflow/models cd tensorflow/models/research protoc object_detection/protos/*.proto --python_out=. cp object_detection/packages/tf2/setup.py . python -m pip install .
@scythe548
3 жыл бұрын
Hey, I couldn't fix the problem "ModuleNotFoundError: No module named 'object_detection", even after running the 6th step successfully. Any help?
@DhruvPatel-mg6ou
3 жыл бұрын
Hey I am enjoying your videos :) :) and I hope can you make video about these couples of steps...Waiting from past 3 Weeks... Make video if it possible please SIR... I appreciate You...
@NicholasRenotte
3 жыл бұрын
Heya @@scythe548, can you try running through all the install steps? kzread.info/dash/bejne/lo6cwdKsaMqxl9Y.html it goes through how to install from scratch!
@NicholasRenotte
3 жыл бұрын
@@DhruvPatel-mg6ou right on time, install video is out and alive, it goes through each install step from scratch: kzread.info/dash/bejne/lo6cwdKsaMqxl9Y.html
i have tons of errors in this process, but after all its actually work! thank yo very match!
So amazing, really worth it to watch. Best explanation and easy to follow. Keep up doing video sir. You just got 1 new subscriber 😁
@NicholasRenotte
3 жыл бұрын
Thanks so much @Khairul, welcome to the fam!
Hi Nicholas, im trying to do this project but i think i have problem with what programs do i need to use(like which tf version, python, opencv, protobuf etc). Could you tell me what you used while making this video and how to get them? Best wishes
@NicholasRenotte
3 жыл бұрын
Yup! Alrighty, I think I'm going to make a video on this as there's a little involved: This is what you need to do to setup your env. This my full env btw for this tutorial I used Windows 10. 1. First up install Python 3.7.4. Download and install the package for your OS that has the words 2019.10 in it from here repo.anaconda.com/archive/. This should give you 3.7.4 to work with. 2. Then install Visual Studio C++ 2015 from here: go.microsoft.com/fwlink/?LinkId=691126. Tensorflow needs this in order to compile 3. OPTIONAL IF YOU HAVE A GPU - Install Cuda and Cudnn. Install Cuda first, then install Cudnn. - Cuda: 10.1 (GPU only - developer.nvidia.com/cuda-10.1-download-archive-base) - Cudnn: 7.6.5 (GPU only - developer.nvidia.com/rdp/cudnn-download) Once Cudnn is installed you need to copy the Cudnn files into their respective folders inside the Cuda directory. I used this as a guide: towardsdatascience.com/installing-tensorflow-with-cuda-cudnn-and-gpu-support-on-windows-10-60693e46e781 4. Then install Protoc 3.13 from here: github.com/protocolbuffers/protobuf/releases. For windows, download the repository and then add it to your PATH file. 5. Then install python packages using the pip command: Tensorflow: 2.3.1 - pip install tensorflow==2.3.1 OpenCV: 4.4.0 - pip install tensorflow==4.4.0 6. Install the object detection API. To do this, run these commands from a command prompt or terminal: git clone github.com/tensorflow/models cd tensorflow/models/research protoc object_detection/protos/*.proto --python_out=. cp object_detection/packages/tf2/setup.py . python -m pip install .
@mohamedouazze9414
Ай бұрын
@@NicholasRenotte hi nicholas that is load in mac os or not supported
Hey ! Thank you for this tutorial. Im looking to export this into a TFlite. Do you have any tutorial for that ?
@NicholasRenotte
3 жыл бұрын
Stay tuned should be out in the next few weeks!
thank you very much, really it was so helpful for me and your explanation is awesome
Well done, that was really clear. Thank you :)
@NicholasRenotte
3 жыл бұрын
Thanks so much @Mohamed, let me know how you go! More custom object detection stuff coming this week!
@yosaikan
3 жыл бұрын
@@NicholasRenotte WOW! Can't wait
Great Tutorial. Done with the training and detection finally after a whole day of dealing with errors. Could you guide me to generate a training vs testing loss graph?
@NicholasRenotte
3 жыл бұрын
Heya @Sirajum, check this out: tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html#monitor-training-job-progress-using-tensorboard
@SirajummuneerParvez
3 жыл бұрын
@@NicholasRenotte thanks a lot
@NicholasRenotte
3 жыл бұрын
@@SirajummuneerParvez anytime!!
@nickylyy5957
3 жыл бұрын
@@NicholasRenotte hi, may i know which file we should cd into to run the command?
@NicholasRenotte
3 жыл бұрын
@@nickylyy5957 top level folder, you should be able to see the Tensorflow folder and the Jupyter Notebooks from within it
Hello sir, thank you for the tutorial. I keep running into this error. What variable value is needed to be changed for number of classes = 9 ValueError: Cannot assign to variable WeightSharedConvolutionalBoxPredictor/WeightSharedConvolutionalClassHead/ClassPredictor/bias:0 due to variable shape (546,) and value shape (12,) are incompatible
@shreyase9541
3 жыл бұрын
Facing the same issue.
@NicholasRenotte
3 жыл бұрын
Heya @manav, just change the labels in the labelmap and it will be picked up. If you're doing this after pre-training then you need to start again or freeze your model.
Sir you are Godsent, thank you so much Nicholas! Liked, subbed, and shared!
@NicholasRenotte
3 жыл бұрын
Heyyy, thanks a bunch @Erwin!!
Great tutorial! Thanks for sharing!
@NicholasRenotte
3 жыл бұрын
Thanks so much @James!
🔥🔥Great Project!!! Bro, IMAGE CAPTION GENERATOR project🎃
@NicholasRenotte
3 жыл бұрын
YEAHHHYAA @venkata sreeram, captioning coming soon!
Great tutorial! I have completed until training part with a bit difficulties. But when I run Load Train Model from checkpoint initial cell, there was an error about tf_slim. Then I tried to fix it via ''!pip install tf_slim''. Then again error about tensorflow.io and I tried with ''!pip install tensorflow.io''. Now it is saying ''AlreadyExistsError: File system for az already registered''. How it can be fixed? Why this error is happening?
@akbaraliotakhanov1221
2 жыл бұрын
now it is running without errors. In the beginning, I had tried with an old tensorflow version 2.4.1. I solved the problem with upgrading it into 2.7.
@anniezaidi7607
2 жыл бұрын
plz plz plz also help to how to check my model for test images in my folder not in real time. This is my code plz let me know what is wrong with this. it is not giving me any output. configs = config_util.get_configs_from_pipeline_file(Config_path) detection_model = model_builder.build(model_config=configs['model'], is_training=False) # Restore checkpoint ckpt = tf.compat.v2.train.Checkpoint(model=detection_model) ckpt.restore(os.path.join(Checkpoint_Path, 'ckpt-2')).expect_partial() def detect_fn(image): image, shapes = detection_model.preprocess(image) prediction_dict = detection_model.predict(image, shapes) detections = detection_model.postprocess(prediction_dict, shapes) return detections window_name='image' for image_path in TEST_IMAGE_PATHS: image=cv2.imread(detect_fn(image_path)) cv2.imshow(window_name,image) cv2.waitKey(0) cv2.destroyAllWindows()
Excellent tutorial! Please keep them coming! I would really love to learn your recommendations on image transformation to improve accuracy, especially from a limited image library.
@NicholasRenotte
3 жыл бұрын
You got it @Ryan, will do something on augmentation!
I just wanna say I love u bro 🥺😭💜
@NicholasRenotte
3 жыл бұрын
Awwww, right back at ya, much love from Sydney 🤗!
Hey, in Jupiter in create tf records ,, there import error in both train and test Import error: cannot import name 'string_int_label_mp_pb2' Plz help me to solve it .
@NicholasRenotte
3 жыл бұрын
Hmmm, is that the only error @Nirmala? Did you run through the install steps kzread.info/dash/bejne/faqAqZOuhKaTe7g.html
PRO TIP here: actually make the dataset of images as described in the tutorial. the notebook by Nicholas wont work without exactly correctly labeled dataset of your own. Dont make typos on labelImg when labelling and use the same case sensitive labels in the notebook part where the labelmap is created. And for default behavior of script is that you put both the jpg and corresponding xml files into train and test folders.
@NicholasRenotte
3 жыл бұрын
Awesome tip @Lauri, correct as this will break your detections when you generate the tfrecords!
@anniezaidi7607
2 жыл бұрын
plz plz plz also help to how to check my model for test images in my folder not in real time. This is my code plz let me know what is wrong with this. it is not giving me any output. configs = config_util.get_configs_from_pipeline_file(Config_path) detection_model = model_builder.build(model_config=configs['model'], is_training=False) # Restore checkpoint ckpt = tf.compat.v2.train.Checkpoint(model=detection_model) ckpt.restore(os.path.join(Checkpoint_Path, 'ckpt-2')).expect_partial() def detect_fn(image): image, shapes = detection_model.preprocess(image) prediction_dict = detection_model.predict(image, shapes) detections = detection_model.postprocess(prediction_dict, shapes) return detections window_name='image' for image_path in TEST_IMAGE_PATHS: image=cv2.imread(detect_fn(image_path)) cv2.imshow(window_name,image) cv2.waitKey(0) cv2.destroyAllWindows()
You saved my life thank you!
@NicholasRenotte
3 жыл бұрын
Anytime!! 😍
Thank you very much for this helpful video!
@NicholasRenotte
3 жыл бұрын
Thanks so much @Joey, glad you enjoyed it!
@BoedaChees
3 жыл бұрын
@@NicholasRenotte I have a question though, every 100 steps it shows the loss at that moment. Is it somehow possible to check what the accuracy and variance is at a certain step or even checkpoint? Thanks!
@NicholasRenotte
3 жыл бұрын
@@BoedaChees check this out: kzread.info/dash/bejne/X3yWpaNph6rIcso.html
Can you share this notebook so as to train on colab, i have train/test.record , labelmap.pbtxt
@NicholasRenotte
3 жыл бұрын
This was written by a colleague and it's based on Cloud Annotations not LabelImg but might help: colab.research.google.com/github/cloud-annotations/google-colab-training/blob/master/object_detection.ipynb
Great content man, thanks
the best tutorial ever
🤘🔥
@NicholasRenotte
3 жыл бұрын
🙌🙏🖖
Hey Nick, Thank you for the awesome tutorial! I understand you cannot cover all the minute details and dependency injection-related errors in the video. However, I am having a hard time solving a dependency error I am getting in Step 7. Specifically at the line "from object_detection_builders import model_builder" which recursively ends up in object_detection/models/faster_rcnn_inception_resnet_v2_feature_extractor.py And says "No module named 'nets' on line 28 where it says "from nets import inception_resnet_v2" Any help would be appreciated. Thanks.
@swastikpoojari2810
2 жыл бұрын
try this pip install tensorflow-object-detection-api
@azimuth809
2 жыл бұрын
hey, did you solve your issue, having the same problem here
Absolutely superrrr tutorial video👍😎
@NicholasRenotte
3 жыл бұрын
Thanks so much @Ronak 🙏!
thank you so much it was really helpful
Hello sir, thank you for the tutorial. I keep getting into errors . I have encountered an error at step 4: Copy Model Config to Training Folder . The error is : 'cp' is not recognized as an internal or external command, operable program or batch file. I have tried many methods like changing cp to copy but nothing worked. Plz help us out with this error.
@NicholasRenotte
3 жыл бұрын
Heya @Vidhi, if it's easier, just copy the config from the pre-trained model folder to your my_ssd_mobnet folder.
@vidhivsingh
3 жыл бұрын
@@NicholasRenotte Thank you so much
@NicholasRenotte
3 жыл бұрын
@@vidhivsingh anytime!
@vidhivsingh
3 жыл бұрын
@@NicholasRenotte Sir i am almost done with the project but it is not detecting my face. The last step keeps on running but still no detection. i am not understanding what's the issue. Plz help me out sir.
Bonjour, I'm finding your content very nice. Could you maybe create a discord channel where the people interested in AI would interact and share some project ideas.
@NicholasRenotte
3 жыл бұрын
Heya @Amir, I've been tossing up some ideas on getting this up and running. Still working on it!
@v0rtex-
3 жыл бұрын
@@NicholasRenotte Cool :) if you need a hand or any kind of help setting up or managing, I will be happy to offer you my help.
@NicholasRenotte
3 жыл бұрын
@@v0rtex- definitely, I might actually take you up on that!
This is so amazing , please further update the post/video displaying how to convert the obtained model into tflite format , that would be really great .Thank-You for this amazing content.
@NicholasRenotte
3 жыл бұрын
Thanks so much @Karunesh! Awesome suggestion, I'm planning on doing a bunch more in the series on custom object detectors including exporting and sharing the models for deployment (inc. tflite).
@husamjalamneh4392
3 жыл бұрын
Did you do a video for convert it to tflite ? i need it for raspberry pi
@alpertemizel9892
3 жыл бұрын
@@NicholasRenotte for example boosting up the project with jetson nano
@alpertemizel9892
3 жыл бұрын
@@NicholasRenotte There are very few videos on the internet about converting tensorflow format to tensorrt format which is used by awesome jetson nano
@NicholasRenotte
3 жыл бұрын
@@husamjalamneh4392 oh man, I'm so late to replying to you. Check this out kzread.info/dash/bejne/q6Wfq7WCc6uuXbg.html
Thank you Nick
That line 1114 is not there
Hi Nicholas, tutorial working perfect right up until last block of code where real time detection should be done and I get the following error: ---> 30 cv2.imshow('object detection', cv2.resize(image_np_with_detections, (800, 600))) error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-memyuvq3\opencv\modules\highgui\src\window.cpp:651: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage' Help would be greatly appreciated!
@NicholasRenotte
3 жыл бұрын
Definitely, this is normally an OpenCV error, try reinstalling: !pip install opencv-python !pip install opencv-contrib-python
@boozebag2000
3 жыл бұрын
@@NicholasRenotte Wow thanks for getting back so quickly. The issue seemed to be that I didn't have the second package there 'opencv-contrib-python' installed. Pip installed that and it was working brilliantly. Thanks again for such a great tutorial. This will be so useful for my university project where I have to build a ground marker detector for an aircraft. Really appreciate all your hard work!
@NicholasRenotte
3 жыл бұрын
@@boozebag2000 that's awesome. Anytime, glad you got it working!! Would love to see some images from your final model!
@majd643ma
3 жыл бұрын
@@boozebag2000 in which file shall I install it in when im opening the comand line
@bellemarravelo6002
3 жыл бұрын
@@majd643ma in a c:\>
Hi Nicholas! Thank you for the great tutorial! However, why is my training script runs on CPU instead of my gpu? In pip list i have both tensorflow=2.4.0 and tensorflow-gpu=2.4.0 in my environment. How can I train using my GPU instead? Should I pass additional command in order to do so?
Hi Nick, love the way you teach. I tried to implement the same but ran into an error stating this AttributeError: module 'object_detection.protos.faster_rcnn_pb2' has no attribute 'AttentionPosition' while model_builders is getting imported AttributeError: module 'object_detection.protos.faster_rcnn_pb2' has no attribute 'AttentionPosition' while model_builders is getting imported Can you help me out in this?
I can't find that line in 1114 th line 😭😭😭
@anonomations
7 ай бұрын
Me too 😢😢
@alijafri2906
3 ай бұрын
Go to 1180
@wardah_asad788
3 ай бұрын
Check below and find the function containing that line.... Also if you are using newer versions of labelimg then you don't need to do that modification in line 1114, bcz it's already done
Hi, Nick, I went through this video and the prerequisite video over three days. You cover a lot. What strikes me though is the difficulty of getting things running, given differences in your machine's setup and mine, in terms of what is and isn't already installed etc. Wouldn't a better approach be to leverage Docker to eliminate a lot of these problems? Thanks again. You are a natural-born teacher.
@NicholasRenotte
3 жыл бұрын
Thanks so much @datapro007, in hindsight it would've been a ton easier to package it all up. I'm planning on Dockerizing it all up to simplify the tutorial when I'm back from holidays!
Hi Nicholas. Another question. At chapter 5 you've edited the pipeline_config. Why have you changed fine_tune_checkpoint_type: "classification" to fine_tune_checkpoint_type: "detection"? What is the difference between these two checkpoints?
@NicholasRenotte
3 жыл бұрын
No problemo, classification will focus on classifying the entire image whereas detection changes the task to object detection!
Thanks so much for this, learning so much from these series! Is it possible to include the versions of Python and TF that you are using?
@NicholasRenotte
2 жыл бұрын
Yup, Python 3.7.3 and TF 2.3.1 here!
@thewatersavior
2 жыл бұрын
@@NicholasRenotte Thanks!
Hi! thanks for the amazing video. I have a similar project and this video really helped me. I have a question, what should I do if I want to see the training/testing accuracy?
Thank you so much dude ^ ^
@NicholasRenotte
3 жыл бұрын
Anytime hombre! Going to do a bunch more with the github repo this week as well, should be a few more tutorials on using it for other detection projects!
amazing guides !
Right here with ya, bro
what a great tutotiral hey nick, thank you very much. I have a question in the image database with the mask images they use the COCO format but in your video you use the Pascal VOC format, is this a problem?
Thanks, great content
Hi Nicholas. How can I see the "summary" of the model used to train the data? I tried "detection_model.summary()" but it does not work. When you use the a "pretrained model" does a layer modification make sense? For example: change a optimizer function, or add a new dense layer? Thanks a lot.
@NicholasRenotte
3 жыл бұрын
Heya @samdml, I'm not sure this is available when using the TFOD API, it's made available through Keras. So, when we're setting the fine tune checkpoint we're actually dropping the final SSD layer and adding our own custom layer!
Thanks a lot. Please make video on image transformation
hi Nich i have been a little lost in this week trying to make a model detection because i chose this particular topic for my thesis and i don't have any idea how begin but you save my life and i want say u thank a lot! i could be writing you for some possible future issues ? and i wonder if u could share the right path to order to learning
@NicholasRenotte
3 жыл бұрын
Awesome stuff @Alejandro, definitely hit me up whenever you need! Check out this playlist for an end-to-end walkthrough: kzread.info/head/PLgNJO2hghbmhUeJuv7PyVYgzhlgt2TcSr
Thanks a lot Nicolas for your tutorials! but I have a question, how to give action when a class detected? like alarm when no mask detected
Thank you Nicholas, it was such a nice tutorial. However, I wanted to know how we can calculate the mAP metrics for custom object detection, and how can we check the logs in tensorboard.
@NicholasRenotte
3 жыл бұрын
Heya @Rashmi, check this out: kzread.info/dash/bejne/X3yWpaNph6rIcso.html
Hi Nick, I've been on this tutorial for a while now. Been able to solve most of my encountered problems. Just need this help to perfect the work. I've trained, frozen and converted my model. I am deploying presently to tfjs. I am getting some detections but the model is throwing some errors in between the detections and this is not making bb to be drawn in the frontend. This is the error thrown TypeError: Cannot read properties of undefined (reading 'color') and this is coming from the utilities.js file where we have labelMap[text]["color"]. What can I do Nick. Thanks in advance.
Hi Nicholas! Great video and was super easy to follow:) I just wanted to know if it was possible to print a message to the command prompt when a phone is detected.
Thanks for the video, your tutorials are excellent for my learning. I can't find the line you edited on line 1114 of the labelimg.py file in the vscode. Has the original file been modified?
@gustavolemos4665
2 жыл бұрын
@Nelson thanks
Thank you for the video? what version of tensorflow are you using? I've had some compatibility issues and I'm stuck on the training part. When I run python Tensorflow/models/research/object_detection/model_main_tf2.py --model_dir=Tensorflow/workspace/models/my_ssd_mobnet --pipeline_config_path=Tensorflow/workspace/models/my_ssd_mobnet/pipeline.config --num_train_steps=5000 I get an error message ImportError: cannot import name 'model_lib_v2' from 'object_detection' (/home/liam/anaconda3/envs/tensorflow/lib/python3.7/site-packages/object_detection/__init__.py) It sounds like I have to use tensorflow 1?
@NicholasRenotte
2 жыл бұрын
I'm using 2.3.1 on this vid. That error might be due to an update to the TF package, check this out: Looks like the install might have been updated. Try running this: cd models/research # Compile protos. protoc object_detection/protos/*.proto --python_out=. # Install TensorFlow Object Detection API. cp object_detection/packages/tf2/setup.py . python -m pip install --use-feature=2020-resolver . Source: github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2.md
Thanks for your tutorials! I have a question for you. Why the other pre trained models from zoo tf2 donot work? I tried with every single of them (efficentnet, resnet, etc) and just work with mobilenet v1 and v2.
thankyou Nicholas
7:28 Hello Nick, please that line of code (line 1114) looks different from what I'm seeing. Did you make any changes to the code? Thanks.
Hello Nicholas Thank you for the detail of the video. I have a question, I would be very happy if you could answer it. For a similar project I want to shrink and relocate the text in the output. For example, "NoMask" should be printed in a different place with a slightly smaller font size. Which line of code do we need to change for this? I would be very grateful if you could help or direct me to any relevant site.
hello sir! may I ask a question? I seem that I'm stuck at step Training the Model (2. Step TF records). I got the error when I tried to run it >>Traceback (most recent call last): File "Tensorflow/scripts/generate_tfrecord.py", line 29, in from object_detection.utils import dataset_util, label_map_util ModuleNotFoundError: No module named 'object_detection'
@biancaar8032
4 ай бұрын
you dont have the object detection tf api- install it with pip
When I open labelImg.py and I try to change save directory I get: "Python39\lib tpath.py", line 204, in splitext p = os.fspath(p) TypeError: expected str, bytes or os.PathLike object, not NoneType" I have tried searching everywhere and can't find a solution
@XavierDC
Жыл бұрын
I found a solution and posted it to a github page where people had the same issue. I resolved this problem by changing line 1309 to "self.show_bounding_box_from_annotation_file(str(self.file_path))" to force it to a string.
@ahmedsanaullah4924
Жыл бұрын
@@XavierDC Thank you it worked for me as well.
@uyenng.7795
Жыл бұрын
@@XavierDC thanks a million
@larissasmith6509
Жыл бұрын
Thank you!!!!
@johnjerielgalicia1827
Жыл бұрын
@@XavierDC bro thank you so much it worked ....
Loved your video! Helped me understand on how to use the API quickly :D Just a quick question, if I were to add other types of data augmentation how would I go about it other than manually opening the edited config file ?
@NicholasRenotte
3 жыл бұрын
Could also apply it in preprocessing and do it with OpenCV then dump out the new images but then you would need to relabel as well!
whenever I try to run the labelImg python file it says no module named 'sip'. I also did a pip install for the same but the problem still persists. can you plz help me?
hay nicholas, i have question, how to labelling img if i have many img. i have 1700 img...because doing so much labeling is very wasting time..
Hello, would you mind sharing if there's a way to compile everything written on jupyter and all the assets to create an android app that does object detection?
"There's a whole heap" 🤣🤣🤣 Im going to start using that
Hi @Nicholas, I want to ask you that for training you are determining number of steps to be 5000. What happens if I increase it lets say to 20000? I think both training time and accuracy will improve but I am not sure of it. And also is it enough to change it by manually retyping 20000 instead of 5000 or should I change something else in config files? Also I want to continue to train at where I stop before. How can I do that? Thank you so much, you are helping me so much
@NicholasRenotte
3 жыл бұрын
It would likely increase the accuracy but you need to be mindful of overfitting! Test it out, you can also use Tensorboard to monitor the loss.
Thanks a lot! You said that it's possible to improve accuracy by applying data augmentation, right? Could you explain how to do that please?
Hello Nick. in relation to the set of separate images for testing, when is it used? and how to use them?
thanks so much! i have a question!! " How can I use ".mp4" files not use webcam? " Actually, I used before this Code: cv2.VideoCaptur("~.mp4"). but, ValueError: 'images' must have either 3 or 4 dimensions.
I'm stuck in my tutorial for object detection, I got this error when I execute my command: ValueError: Checkpoint version should be V2 I removed my fine_tune_checkpoint_version: V2 using the answer of this question after an error ParseError: 172:3 : Message type "object_detection.protos.TrainConfig" has no field named "fine_tune_checkpoint_version" and now I have an other error when I execute my command ValueError: Checkpoint version should be V2. So if I put it back in my config file like suggested in this answer: TensorFlow - ValueError: Checkpoint version should be V2 I will again my first error. Any fixes?
Thank you for the great tutorial! I just have one question since I am new to this: How do you tell Google Colab to get the files from your local disk? I haven't been able to move forward from the first step in the Jupyter notebook because it says "FileNotFoundError: [Errno 2] No such file or directory: 'Tensorflow/workspace/annotations\\label_map.pbtxt'"
@bachaoduy3607
2 жыл бұрын
Maybe you need to connect gg colab with your gg drive and upload files from your local disk to gg drive
@edgarramos4830
2 жыл бұрын
@@bachaoduy3607 thanks! That worked🙌🏼
Hey Nick, i am trying to train a custom object and while creating a TF record, i am running into this error AttributeError: module 'tensorflow' has no attribute 'gfile' i have really tried to solve it but no success, if I can get your help would be great. Thank you.!!
Hi Nicholas, I hope you're well- I'm stuck doing this at the create label map stage- when I try to run it from jupyter it gives me a file not found error, even though the pbtxt file is in the annotations folder. Wouldyou have a recommendation for how to resolve this?
Thank you Nicholas I just had a doubt that I am unable to generate tf records for training and testing, I installed cuda but is it necessary?
Can you remake this video with up to date TensorFlow 2.x. Because right now alot of errors are occuring while performing these exact same steps.
Hi! I saw a in a comment that one of the environment requirements is visual studio C++ 2015. I tried to download it from your description box but it keeps showing that there are some missing packages because of which the exe file isn't installing. Are there any other alternatives to this for tensor flow?
@NicholasRenotte
3 жыл бұрын
Unfortunately nope, gotta have the C++ build tool installed. You can use the 2019 version though, check this out, build tools mentioned towards the start: www.tensorflow.org/install/source_windows
Thanks alot for your effort, actually i trained the model using google colab but stuck at a point where i want to apply the model detect on real time using colab rather than on jupyter because i found colab is better for training and installing the dependencies, any video on that ?
this code doesn`t work with tensorflow v2.x i am tired of converting one by one to the newer format if you help me then thank you if not then good day
Thank you for the very well explained tutorial Nick. I went through everything smoothly except for at 56:34, whenever I run the "while true" loop, it takes forever to run it. Last time I tried, I waited for 3 hours and nothing happened 😪. Even though my webcam started to run but without detection boxes
@NicholasRenotte
2 жыл бұрын
Got errors for me?
@assemjameel1038
2 жыл бұрын
@@NicholasRenotteNot really, I had resolved all errors up to that point. But as I said, the "while true" loop keeps running forever
If you want to follow this tutorial, you need to follow these steps: 1. `pip uninstall tensorflow` (I'm assuming that you are using the latest version of TensorFlow, which is not compatible with this tutorial) 2. `pip install tensorflow
on a more professional note I had one question about the dataset images pre-processing. Assuming I have a dataset of images with differing resolution, should I try to preprocess the dataset images so that their aspect ratio is square and the images would be same resolution, does it improve model performance?
@NicholasRenotte
3 жыл бұрын
Nope, I wouldn't bother, tha TFOD API does it for you! Going to talk a little bit about it in the upcoming vid.
Thanks for a end-to-end tutorial. I treid to execute the commands, detection is performed bu when i try to store the model using the SavedModel format, i get an error. Here is the command i used python ..\models esearch\object_detection\export_inference_graph.py --input_type image_tensor --pipeline_config_path Tensorflow\workspace\models\my_ssd_mobnet\pipeline.config --trained_checkpoint_prefix ckpt-7 --output_directory ssdmodel_01 error message: RuntimeError: tf.placeholder() is not compatible with eager execution. Please help if possible
hey, great video! I was wondering how I could modify the notebook to work with images off my computer instead of a live video feed, I was working with cold sores and have followed the tutorial up to part 7 of the jupyter notebook, but am not sure how to make it work with downloaded images instead of a real time detector. thanks for any help
@NicholasRenotte
3 жыл бұрын
Heya @fat Craig, check this out: kzread.info/dash/bejne/q6Wfq7WCc6uuXbg.html
The dataset from Kaggle has so many images and their annotations are in json format in a separate file, I can convert json to xml (is that necessary?) but matching the annotations with their images is a manually tedious process, how do I proceed with this ?
Post 'Train the model step' when I open command prompt and paste the output I got an error - "python: can't open file 'Tensorflow/models/research/object_detection/model_main_tf2.py' [Errno 2] No such file or directory". But the file is present in the defined directory. Looking for your guidance. Thank you.
@NicholasRenotte
3 жыл бұрын
Heya @Avinash, can you ensure you're running the command from the root folder. You could have the notebooks and the Tensorflow folder inside of the directory you're running it from.
Great tutorial! Do you have idea how to get coordinates of center of the box?
@NicholasRenotte
3 жыл бұрын
Could subtract x2 - x1 and y2 -y1 to get the centerpoint! The coordinates are available through the detections object. Let me know how you go!
When running step 2 in jupyter (create TF records), I get an error. It says: no such file “tensorflow” and sometimes “pandas”. What step did I skip/forget?
Hello there, I have an issue if maybe you'd have some insight on it please. When I ran command "python labelImg.py" for the firsttime, I received an error about pathlib not being istalled. So I installed it in python dir with pip and now I have an error "ImportError: No module named PyQt4.QtCore". I tried installing pyqt4 package but it refuses to do so as it's used on python 2.7 and I have 3.7. Up until this point, everything worked as shown in the video. Solution edit: I tried to implement it with anaconda prompt where I installed everything inside venv (python, tensorflow and the rest that you showed) and then ran python labelImg.py from labellImg directory and it opened up.