Real Time Face Mask Detection with Tensorflow and Python | Custom Object Detection w/ MobileNet SSD
Vložit
- čas přidán 31. 10. 2020
- 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! - Věda a technologie
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!!!
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 =)
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!?
Can I have the code
@@saisharaneruventi2180 link in the description!
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!!!
Good Morning! within this area of facial recognition in Python, I didn't find a channel as rich as yours, Congratulations!!! Levi. of Brazil...
Nicholas, you are the best when it comes to Objection detection, you have helped me a lot, thank you
Hey!!! hope you are doing good?!Glad to see this video! was eagerly waiting for it since last month!!
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!
Thank you Nicholas you help my project in school.. Im so glad i finally found your videos.. I learn so much....❤❤
Heya @Rey, thanks so much. Glad you learned a ton 🤗
@@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??
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
@@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
excellent explanation. Turkish resources on these subjects are limited. Thank you very much. I am grateful to you. Allah you bless you.
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.
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!
@@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.
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).
@@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.
@@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
Thanks very much for the clear tutorial you provided. This is the best I found in this field.
i have tons of errors in this process, but after all its actually work! thank yo very match!
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
Thanks so much!
Zero to hero , I want to finish my final project.
@@user-fl7vs4ed6l awesome, how's it going so far?
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
@@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 .
Hey, I couldn't fix the problem "ModuleNotFoundError: No module named 'object_detection", even after running the 6th step successfully. Any help?
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...
Heya @@scythe548, can you try running through all the install steps? czcams.com/video/dZh_ps8gKgs/video.html it goes through how to install from scratch!
@@DhruvPatel-mg6ou right on time, install video is out and alive, it goes through each install step from scratch: czcams.com/video/dZh_ps8gKgs/video.html
Your content is amazing .
Thanks a lot for all the content, you motivate me a lot to keep learning.
Blessings.
So amazing, really worth it to watch. Best explanation and easy to follow. Keep up doing video sir. You just got 1 new subscriber 😁
Thanks so much @Khairul, welcome to the fam!
🔥🔥Great Project!!!
Bro, IMAGE CAPTION GENERATOR project🎃
YEAHHHYAA @venkata sreeram, captioning coming soon!
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
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 .
@@NicholasRenotte hi nicholas that is load in mac os or not supported
thank you very much, really it was so helpful for me and your explanation is awesome
Great tutorial! Thanks for sharing!
Thanks so much @James!
Hey ! Thank you for this tutorial. Im looking to export this into a TFlite. Do you have any tutorial for that ?
Stay tuned should be out in the next few weeks!
Well done, that was really clear.
Thank you :)
Thanks so much @Mohamed, let me know how you go! More custom object detection stuff coming this week!
@@NicholasRenotte WOW! Can't wait
Sir you are Godsent, thank you so much Nicholas! Liked, subbed, and shared!
Heyyy, thanks a bunch @Erwin!!
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
Facing the same issue.
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.
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?
Heya @Sirajum, check this out: tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html#monitor-training-job-progress-using-tensorboard
@@NicholasRenotte thanks a lot
@@SirajummuneerParvez anytime!!
@@NicholasRenotte hi, may i know which file we should cd into to run the command?
@@nickylyy5957 top level folder, you should be able to see the Tensorflow folder and the Jupyter Notebooks from within it
I just wanna say I love u bro 🥺😭💜
Awwww, right back at ya, much love from Sydney 🤗!
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.
You got it @Ryan, will do something on augmentation!
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?
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.
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()
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 .
Hmmm, is that the only error @Nirmala? Did you run through the install steps czcams.com/video/KvLG1uTC-KU/video.html
Great content man, thanks
Thank you very much for this helpful video!
Thanks so much @Joey, glad you enjoyed it!
@@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!
@@BoedaChees check this out: czcams.com/video/-HbCA0WGbBg/video.html
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.
Heya @Amir, I've been tossing up some ideas on getting this up and running. Still working on it!
@@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.
@@v0rtex- definitely, I might actually take you up on that!
That line 1114 is not there
You saved my life thank you!
Anytime!! 😍
Absolutely superrrr tutorial video👍😎
Thanks so much @Ronak 🙏!
Can you share this notebook so as to train on colab, i have train/test.record , labelmap.pbtxt
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
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.
Awesome tip @Lauri, correct as this will break your detections when you generate the tfrecords!
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()
thank you so much it was really helpful
"There's a whole heap" 🤣🤣🤣 Im going to start using that
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.
try this
pip install tensorflow-object-detection-api
hey, did you solve your issue, having the same problem here
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.
Heya @Vidhi, if it's easier, just copy the config from the pre-trained model folder to your my_ssd_mobnet folder.
@@NicholasRenotte Thank you so much
@@vidhivsingh anytime!
@@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.
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.
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! 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 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!
Definitely, this is normally an OpenCV error, try reinstalling:
!pip install opencv-python
!pip install opencv-contrib-python
@@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!
@@boozebag2000 that's awesome. Anytime, glad you got it working!! Would love to see some images from your final model!
@@boozebag2000 in which file shall I install it in when im opening the comand line
@@majd643ma in a c:\>
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
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.
@@XavierDC Thank you it worked for me as well.
@@XavierDC thanks a million
Thank you!!!!
@@XavierDC bro thank you so much it worked ....
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.
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).
Did you do a video for convert it to tflite ? i need it for raspberry pi
@@NicholasRenotte for example boosting up the project with jetson nano
@@NicholasRenotte There are very few videos on the internet about converting tensorflow format to tensorrt format which is used by awesome jetson nano
@@husamjalamneh4392 oh man, I'm so late to replying to you. Check this out czcams.com/video/yqkISICHH-U/video.html
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 😭😭😭
Me too 😢😢
Go to 1180
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
amazing guides !
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?
Yup, Python 3.7.3 and TF 2.3.1 here!
@@NicholasRenotte Thanks!
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
the best tutorial ever
Thanks, great content
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
Awesome stuff @Alejandro, definitely hit me up whenever you need! Check out this playlist for an end-to-end walkthrough: czcams.com/play/PLgNJO2hghbmhUeJuv7PyVYgzhlgt2TcSr.html
Thank you Nick
Thank you so much dude ^ ^
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!
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.
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.
Thanks a lot.
Please make video on image transformation
thank you very much ! i was close to crying with this maze of tutorials, wrong configurations, errors, repairing errors only to lose by stanger one. I will sub untill my death xD. (my poor, student ass can pass through next course)
I know this pain 🤣, so glad you smashed it!
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?
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 ?
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!
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.
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.
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!
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?
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. 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?
No problemo, classification will focus on classifying the entire image whereas detection changes the task to object detection!
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?
Awesome video! Now I have an idea for a project using this tools.
Ps: The font can be a little bigger in order to get better readability (at least from youtube app)
SWEEET! Thanks so much @Gustavo. Ahhh yeah, my bad, first time recording on a Windows machine. The folders and VS Code were a little on the smaller side. I'll have it fixed for the sign language detection vid this week!
Heya @Gustavo, tried upping the icon size and the font in the latest vid, thoughts:czcams.com/video/pDXdlXlaCco/video.html
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?
@Nelson thanks
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?
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
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.
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?
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.
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.
Heya @Rashmi, check this out: czcams.com/video/-HbCA0WGbBg/video.html
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?
Right here with ya, bro
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.
Hey Nick, this was pretty awesome man!!! Although had a tough time resolving errors/issues but I learnt through them.
Also, could you/someone suggest to me how to use a different camera module instead of a webcam for real-time detection? If I fit the camera outside/outdoors.
Depends on the camera, I know opencv can connect to RTPC cameras if that's what you were looking for?
For onvif ip camera it will be enough to write cap = cv2.VideoCapture(0) --> 0=rtsp://admin:password@cam-ip:554/main (rtsp link for milesight ip camera)
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'
you dont have the object detection tf api- install it with pip
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.
Hi, I am using your ripo for my own custom model with larger data set. its around 1000 images. and each image is around 15mb. i am getting this "Filling up shuffle buffer (this may take a while): 278 of 2048" . its eventually runs out of memory and windows kills the training process. how and where should i bring down the buffer size?
Great tutorial!!! I have 2 questions:
1: Would you say creating/training a custom model would be small enough to fit onto a raspberry pi4 or equivalent microcontroller? I understand that the model would have to be trained on a PC, but then could the resulting model be transferred to a microcontroller?
2: Let's assume it CAN fit but the processing speed of the microcontroller is too slow. Could you perform image processing on every other frame or every third frame to reduce cpu usage?
Sure can to both @Will, check out my 5 hour end to end tutorial. I show how to do deploy to an RPi in Project three!
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?
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?
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
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.
Hello Nick. in relation to the set of separate images for testing, when is it used? and how to use them?
thankyou Nicholas
Hi I want to know that where is the resource file of python in the labelImg folder because I can't find it in github repository
At time 24:00 for "Create TF Records", I have a version problem. It said the way you wrote it is only avalible for version >=1.16.5 and
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?
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
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?
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
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..
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.
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
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 ?
hi nicholas, I couldnt setup labelimg package as i have a SSL while using this command - conda install pyqt=5, can you resolve this quick?
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