Real Time Face Mask Detection with Tensorflow and Python | Custom Object Detection w/ MobileNet SSD

Sdílet
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

Komentáře • 1,8K

  • @pavinlimpotong9141
    @pavinlimpotong9141 Před 2 lety +5

    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!!!

  • @jeromevandenbossche1632
    @jeromevandenbossche1632 Před 3 lety +4

    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
      @NicholasRenotte  Před 3 lety +2

      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
      @saisharaneruventi2180 Před 3 lety +1

      Can I have the code

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +1

      @@saisharaneruventi2180 link in the description!

    • @prajwalkumar5074
      @prajwalkumar5074 Před 3 lety

      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!!!

  • @thiagosoares5052
    @thiagosoares5052 Před 2 lety

    Good Morning! within this area of facial recognition in Python, I didn't find a channel as rich as yours, Congratulations!!! Levi. of Brazil...

  • @darshpatel3491
    @darshpatel3491 Před 2 lety +1

    Nicholas, you are the best when it comes to Objection detection, you have helped me a lot, thank you

  • @vrishabvishnu5520
    @vrishabvishnu5520 Před 3 lety +8

    Hey!!! hope you are doing good?!Glad to see this video! was eagerly waiting for it since last month!!

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      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!

  • @reybato4788
    @reybato4788 Před 3 lety +15

    Thank you Nicholas you help my project in school.. Im so glad i finally found your videos.. I learn so much....❤❤

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +2

      Heya @Rey, thanks so much. Glad you learned a ton 🤗

    • @vishnukeerthi5024
      @vishnukeerthi5024 Před 3 lety

      @@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
      @vishnukeerthi5024 Před 3 lety

      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
      @NicholasRenotte  Před 3 lety +1

      @@vishnukeerthi5024 definitely, ideally you would want to provide additional examples with other people when training!

  • @akshayd211
    @akshayd211 Před rokem

    Jeezus, this is the best one out here! THANK YOU FOR MAKING EVERYTHING AVAILABLE

  • @enchantedchim9489
    @enchantedchim9489 Před 2 lety +2

    This was so incredibly helpful! Actual lifesaver

  • @samtech26
    @samtech26 Před 2 lety +6

    excellent explanation. Turkish resources on these subjects are limited. Thank you very much. I am grateful to you. Allah you bless you.

  • @aniket1015
    @aniket1015 Před 3 lety +3

    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
      @NicholasRenotte  Před 3 lety +1

      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
      @aniket1015 Před 3 lety

      @@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
      @NicholasRenotte  Před 3 lety

      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
      @aniket1015 Před 3 lety

      @@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
      @Hdx64 Před 2 lety

      @@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

  • @abeermalkawi9812
    @abeermalkawi9812 Před 2 lety

    Thanks very much for the clear tutorial you provided. This is the best I found in this field.

  • @avishayelihay2968
    @avishayelihay2968 Před 2 lety

    i have tons of errors in this process, but after all its actually work! thank yo very match!

  • @user-fl7vs4ed6l
    @user-fl7vs4ed6l Před 3 lety +85

    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
      @NicholasRenotte  Před 3 lety +4

      Thanks so much!

    • @user-fl7vs4ed6l
      @user-fl7vs4ed6l Před 3 lety +6

      Zero to hero , I want to finish my final project.

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +3

      @@user-fl7vs4ed6l awesome, how's it going so far?

    • @sravani3059
      @sravani3059 Před 2 lety

      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
      @nabils4738 Před 2 lety +1

      @@sravani3059 Need to use gitbash maybe

  • @NicholasRenotte
    @NicholasRenotte  Před 3 lety +7

    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
      @scythe548 Před 3 lety

      Hey, I couldn't fix the problem "ModuleNotFoundError: No module named 'object_detection", even after running the 6th step successfully. Any help?

    • @DhruvPatel-mg6ou
      @DhruvPatel-mg6ou Před 3 lety +1

      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
      @NicholasRenotte  Před 3 lety

      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!

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      @@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

  • @albana.rodriguez7814
    @albana.rodriguez7814 Před 2 lety

    Your content is amazing .
    Thanks a lot for all the content, you motivate me a lot to keep learning.
    Blessings.

  • @khairulazhar7593
    @khairulazhar7593 Před 3 lety +2

    So amazing, really worth it to watch. Best explanation and easy to follow. Keep up doing video sir. You just got 1 new subscriber 😁

  • @venkatasreeram
    @venkatasreeram Před 3 lety +3

    🔥🔥Great Project!!!
    Bro, IMAGE CAPTION GENERATOR project🎃

  • @gabesz9530
    @gabesz9530 Před 3 lety +13

    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
      @NicholasRenotte  Před 3 lety +20

      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
      @mohamedouazze9414 Před 2 měsíci

      @@NicholasRenotte hi nicholas that is load in mac os or not supported

  • @ahmedbadra9237
    @ahmedbadra9237 Před 3 lety +1

    thank you very much, really it was so helpful for me and your explanation is awesome

  • @leujim1
    @leujim1 Před 3 lety +1

    Great tutorial! Thanks for sharing!

  • @schouketta1980
    @schouketta1980 Před 3 lety +4

    Hey ! Thank you for this tutorial. Im looking to export this into a TFlite. Do you have any tutorial for that ?

  • @yosaikan
    @yosaikan Před 3 lety +1

    Well done, that was really clear.
    Thank you :)

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +2

      Thanks so much @Mohamed, let me know how you go! More custom object detection stuff coming this week!

    • @yosaikan
      @yosaikan Před 3 lety +1

      @@NicholasRenotte WOW! Can't wait

  • @erwincarlogonzales
    @erwincarlogonzales Před 3 lety +1

    Sir you are Godsent, thank you so much Nicholas! Liked, subbed, and shared!

  • @manavsheth4446
    @manavsheth4446 Před 3 lety +5

    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
      @shreyase9541 Před 3 lety +1

      Facing the same issue.

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      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.

  • @SirajummuneerParvez
    @SirajummuneerParvez Před 3 lety +7

    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
      @NicholasRenotte  Před 3 lety +4

      Heya @Sirajum, check this out: tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html#monitor-training-job-progress-using-tensorboard

    • @SirajummuneerParvez
      @SirajummuneerParvez Před 3 lety +1

      @@NicholasRenotte thanks a lot

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      @@SirajummuneerParvez anytime!!

    • @nickylyy5957
      @nickylyy5957 Před 3 lety

      @@NicholasRenotte hi, may i know which file we should cd into to run the command?

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +1

      @@nickylyy5957 top level folder, you should be able to see the Tensorflow folder and the Jupyter Notebooks from within it

  • @User-ri1jz
    @User-ri1jz Před 3 lety +1

    I just wanna say I love u bro 🥺😭💜

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +1

      Awwww, right back at ya, much love from Sydney 🤗!

  • @cramer26
    @cramer26 Před 3 lety +2

    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.

  • @akbaraliotakhanov1221
    @akbaraliotakhanov1221 Před 2 lety +5

    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
      @akbaraliotakhanov1221 Před 2 lety +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
      @anniezaidi7607 Před 2 lety

      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()

  • @nirmalamahajan1228
    @nirmalamahajan1228 Před 3 lety +3

    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
      @NicholasRenotte  Před 3 lety

      Hmmm, is that the only error @Nirmala? Did you run through the install steps czcams.com/video/KvLG1uTC-KU/video.html

  • @ahmedjumaah9727
    @ahmedjumaah9727 Před 2 lety

    Great content man, thanks

  • @BoedaChees
    @BoedaChees Před 3 lety +1

    Thank you very much for this helpful video!

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      Thanks so much @Joey, glad you enjoyed it!

    • @BoedaChees
      @BoedaChees Před 3 lety +1

      @@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
      @NicholasRenotte  Před 3 lety

      @@BoedaChees check this out: czcams.com/video/-HbCA0WGbBg/video.html

  • @v0rtex-
    @v0rtex- Před 3 lety +7

    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
      @NicholasRenotte  Před 3 lety +4

      Heya @Amir, I've been tossing up some ideas on getting this up and running. Still working on it!

    • @v0rtex-
      @v0rtex- Před 3 lety +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
      @NicholasRenotte  Před 3 lety +3

      @@v0rtex- definitely, I might actually take you up on that!

  • @deeprajsingh2465
    @deeprajsingh2465 Před rokem +4

    That line 1114 is not there

  • @gihanna
    @gihanna Před 3 lety +1

    You saved my life thank you!

  • @ronaktawde
    @ronaktawde Před 3 lety +1

    Absolutely superrrr tutorial video👍😎

  • @faiquejatu8649
    @faiquejatu8649 Před 3 lety +2

    Can you share this notebook so as to train on colab, i have train/test.record , labelmap.pbtxt

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      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

  • @steelpanther88
    @steelpanther88 Před 3 lety +7

    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
      @NicholasRenotte  Před 3 lety

      Awesome tip @Lauri, correct as this will break your detections when you generate the tfrecords!

    • @anniezaidi7607
      @anniezaidi7607 Před 2 lety

      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()

  • @fakheralbouchi1802
    @fakheralbouchi1802 Před 2 lety

    thank you so much it was really helpful

  • @bestless8895
    @bestless8895 Před 2 lety

    "There's a whole heap" 🤣🤣🤣 Im going to start using that

  • @pragunsharma8681
    @pragunsharma8681 Před 2 lety +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
      @swastikpoojari2810 Před 2 lety

      try this
      pip install tensorflow-object-detection-api

    • @azimuth809
      @azimuth809 Před 2 lety

      hey, did you solve your issue, having the same problem here

  • @vidhivsingh
    @vidhivsingh Před 3 lety +3

    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
      @NicholasRenotte  Před 3 lety +1

      Heya @Vidhi, if it's easier, just copy the config from the pre-trained model folder to your my_ssd_mobnet folder.

    • @vidhivsingh
      @vidhivsingh Před 3 lety +2

      @@NicholasRenotte Thank you so much

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +1

      @@vidhivsingh anytime!

    • @vidhivsingh
      @vidhivsingh Před 3 lety +2

      @@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.

  • @datapro007
    @datapro007 Před 3 lety +1

    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
      @NicholasRenotte  Před 3 lety +1

      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!

  • @sabrinaallisha4229
    @sabrinaallisha4229 Před 2 lety +1

    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?

  • @vikashchand.
    @vikashchand. Před 3 lety +3

    🤘🔥

  • @boozebag2000
    @boozebag2000 Před 3 lety +3

    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
      @NicholasRenotte  Před 3 lety +1

      Definitely, this is normally an OpenCV error, try reinstalling:
      !pip install opencv-python
      !pip install opencv-contrib-python

    • @boozebag2000
      @boozebag2000 Před 3 lety +1

      @@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
      @NicholasRenotte  Před 3 lety

      @@boozebag2000 that's awesome. Anytime, glad you got it working!! Would love to see some images from your final model!

    • @majd643ma
      @majd643ma Před 3 lety

      @@boozebag2000 in which file shall I install it in when im opening the comand line

    • @bellemarravelo6002
      @bellemarravelo6002 Před 3 lety

      @@majd643ma in a c:\>

  • @XavierDC
    @XavierDC Před rokem +3

    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
      @XavierDC Před rokem +3

      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
      @ahmedsanaullah4924 Před rokem +1

      @@XavierDC Thank you it worked for me as well.

    • @uyenng.7795
      @uyenng.7795 Před rokem

      @@XavierDC thanks a million

    • @larissasmith6509
      @larissasmith6509 Před rokem

      Thank you!!!!

    • @johnjerielgalicia1827
      @johnjerielgalicia1827 Před rokem

      @@XavierDC bro thank you so much it worked ....

  • @karuneshpalekar5212
    @karuneshpalekar5212 Před 3 lety +2

    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
      @NicholasRenotte  Před 3 lety +1

      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
      @husamjalamneh4392 Před 3 lety

      Did you do a video for convert it to tflite ? i need it for raspberry pi

    • @alpertemizel9892
      @alpertemizel9892 Před 3 lety

      @@NicholasRenotte for example boosting up the project with jetson nano

    • @alpertemizel9892
      @alpertemizel9892 Před 3 lety

      @@NicholasRenotte There are very few videos on the internet about converting tensorflow format to tensorrt format which is used by awesome jetson nano

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      @@husamjalamneh4392 oh man, I'm so late to replying to you. Check this out czcams.com/video/yqkISICHH-U/video.html

  • @hardikatkotiya7709
    @hardikatkotiya7709 Před 2 lety +2

    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?

  • @ghostplays5291
    @ghostplays5291 Před rokem +4

    I can't find that line in 1114 th line 😭😭😭

    • @anonomations
      @anonomations Před 8 měsíci

      Me too 😢😢

    • @alijafri2906
      @alijafri2906 Před 4 měsíci

      Go to 1180

    • @wardah_asad788
      @wardah_asad788 Před 4 měsíci

      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

  • @TheLordOfWolves
    @TheLordOfWolves Před rokem

    amazing guides !

  • @thewatersavior
    @thewatersavior Před 3 lety +2

    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?

  • @purplelinechannel833
    @purplelinechannel833 Před měsícem +1

    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

  • @yilberrojas8306
    @yilberrojas8306 Před 2 lety

    the best tutorial ever

  • @abhinandansingh5584
    @abhinandansingh5584 Před 3 lety

    Thanks, great content

  • @aguilarhernandezcarlosalej3829

    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
      @NicholasRenotte  Před 3 lety

      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

  • @quoclephu9343
    @quoclephu9343 Před rokem

    Thank you Nick

  • @whatnexttech
    @whatnexttech Před 3 lety +1

    Thank you so much dude ^ ^

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +1

      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!

  • @AnikaJagatiBAI
    @AnikaJagatiBAI Před 2 lety +1

    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.

  • @anthonyoluyele4565
    @anthonyoluyele4565 Před 2 lety +1

    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.

  • @Universaeducation
    @Universaeducation Před 2 lety

    Thanks a lot.
    Please make video on image transformation

  • @andrzejgierlak5078
    @andrzejgierlak5078 Před 3 lety +1

    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)

  • @gisanimrahma7803
    @gisanimrahma7803 Před 2 lety

    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?

  • @alexgan111
    @alexgan111 Před 3 lety

    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
      @NicholasRenotte  Před 3 lety

      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!

  • @karmasoleni8104
    @karmasoleni8104 Před 2 lety

    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.

  • @samdml
    @samdml Před 3 lety +1

    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
      @NicholasRenotte  Před 3 lety

      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!

  • @kenzilamberto1981
    @kenzilamberto1981 Před 3 lety +1

    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?

  • @divyeshparekh4158
    @divyeshparekh4158 Před 2 lety +1

    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.!!

  • @samdml
    @samdml Před 3 lety +1

    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
      @NicholasRenotte  Před 3 lety

      No problemo, classification will focus on classifying the entire image whereas detection changes the task to object detection!

  • @Lemonard0
    @Lemonard0 Před 2 lety +1

    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?

  • @gustavojuantorena
    @gustavojuantorena Před 3 lety +1

    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)

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +2

      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!

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety +1

      Heya @Gustavo, tried upping the icon size and the font in the latest vid, thoughts:czcams.com/video/pDXdlXlaCco/video.html

  • @gustavolemos4665
    @gustavolemos4665 Před 2 lety +2

    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?

  • @GiorgioLZ
    @GiorgioLZ Před 2 lety

    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?

  • @efeberkayyitim2435
    @efeberkayyitim2435 Před 3 lety +2

    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
      @NicholasRenotte  Před 3 lety

      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.

  • @anshumaanphukan4388
    @anshumaanphukan4388 Před 2 lety +1

    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?

  • @numforfrank9205
    @numforfrank9205 Před rokem +1

    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.

  • @rashmitiwari7788
    @rashmitiwari7788 Před 3 lety +1

    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
      @NicholasRenotte  Před 3 lety

      Heya @Rashmi, check this out: czcams.com/video/-HbCA0WGbBg/video.html

  • @alexanderborschel2135

    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?

  • @mrunalbhongade5810
    @mrunalbhongade5810 Před rokem

    Right here with ya, bro

  • @saitoinosaka6445
    @saitoinosaka6445 Před 2 lety

    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.

  • @TirthajitBaruah
    @TirthajitBaruah Před 3 lety +1

    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.

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      Depends on the camera, I know opencv can connect to RTPC cameras if that's what you were looking for?

    • @samtech26
      @samtech26 Před 2 lety +2

      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)

  • @emailais1488
    @emailais1488 Před 2 lety +2

    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
      @biancaar8032 Před 5 měsíci

      you dont have the object detection tf api- install it with pip

  • @user-vg3jl7ye1p
    @user-vg3jl7ye1p Před 2 lety +2

    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.

  • @TharunKunapareddy
    @TharunKunapareddy Před 2 lety

    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?

  • @willthethrill521
    @willthethrill521 Před 3 lety +1

    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?

    • @NicholasRenotte
      @NicholasRenotte  Před 3 lety

      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!

  • @ananyachaudhary9748
    @ananyachaudhary9748 Před 2 lety

    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?

  • @naturenoise4706
    @naturenoise4706 Před 2 lety

    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?

  • @tejaslotlikar3573
    @tejaslotlikar3573 Před rokem +1

    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

  • @urhic229
    @urhic229 Před 3 lety

    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.

  • @leonardocosta7031
    @leonardocosta7031 Před rokem

    Hello Nick. in relation to the set of separate images for testing, when is it used? and how to use them?

  • @vishalmaddeshiyarobotics7032

    thankyou Nicholas

  • @queenofgames541
    @queenofgames541 Před 8 měsíci

    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

  • @rayschannel7868
    @rayschannel7868 Před rokem

    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

  • @liamhan8145
    @liamhan8145 Před 3 lety

    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
      @NicholasRenotte  Před 2 lety

      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

  • @aishwaryaj9610
    @aishwaryaj9610 Před 3 lety +1

    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
      @NicholasRenotte  Před 3 lety

      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

  • @rizairsyad5775
    @rizairsyad5775 Před 2 lety +1

    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..

  • @kamransaif1631
    @kamransaif1631 Před rokem +2

    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.

  • @m.matoori343
    @m.matoori343 Před 2 lety +2

    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

  • @rugilandavyimubondo476

    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 ?

  • @rallenabishek
    @rallenabishek Před 2 lety

    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?

  • @zeromanaka4129
    @zeromanaka4129 Před 2 lety

    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