How to Train DETR Object Detection Transformer on Custom Dataset

Поділитися
Вставка
  • Опубліковано 17 гру 2024

КОМЕНТАРІ • 134

  • @abdshomad
    @abdshomad Рік тому +5

    When i see notification appeared from Roboflow, I always press like button before watching the show 👍😁

    • @abdshomad
      @abdshomad Рік тому

      Always quality content.

    • @Roboflow
      @Roboflow  Рік тому +1

      @@abdshomad thanks a lot! I’m so happy that someone is clicking on those notifications 🔔

    • @sihameghaprabashwara6025
      @sihameghaprabashwara6025 6 місяців тому

      ​@@RoboflowIs there any way to detect in a video ?

  • @soumenhalder2811
    @soumenhalder2811 9 місяців тому

    Best ever Deep Learning video I have found. please make such video

  • @Megan-gl7pi
    @Megan-gl7pi 8 місяців тому

    Great tutorial. I'm going to train Detr on a custom medical dataset with x-ray images to detect bolus, stent, catheter, etc. Hopefully this will turn out to be fruitful. There hasn't been much research using Detr on medical datasets yet.

  • @10straws59
    @10straws59 Рік тому +2

    Thank you so much for this tutorial!
    I am getting this error:
    KeyError: 'annotations'. I think this is because "predictions" is an empty dict, so is "results". However "orig_target_sizes" is not empty. I have tried with 20 epochs, is it because the model is not learning well enough to be able to actually make predictions? Furthermore, I tried to annotate images in the train and val datasets, and I am not seeing any detected boxes around the objects (when comparing to the ground truth) Would rly appreciate some help regarding this issue!

    • @Roboflow
      @Roboflow  Рік тому

      Could you create new issue here: github.com/roboflow/notebooks/issues and describe all those issues.

    • @SalmanFarsi-qt6fr
      @SalmanFarsi-qt6fr Рік тому

      Bruh i am also getting this type of error continuously please if you have come up with it guide me too. Will really appreciate ❤ Thanks

  • @chandank5266
    @chandank5266 7 місяців тому

    Hey Roboflow bro! I found this vidio really helpfull and I have a question striking me: where to use the checkpoint, I want to load the model using checkpoint that got saved while logging inside lightning_logs and not by the config file saved in custom-model directory; is there a way?

  • @arfashaha4074
    @arfashaha4074 Рік тому +2

    Thank you so much for the great video! Your quality content has helped me a lot in my thesis ☺. Just wanna ask, can we apply our trained model to predict a video/webcam directly?

    • @Roboflow
      @Roboflow  Рік тому +1

      Not entirely “directly” but you can use tools in Supervision to process video

    • @arfashaha4074
      @arfashaha4074 Рік тому +1

      @@Roboflow Ah I see, is the concept the same as your video about detect and count object in polygon zone?

    • @Roboflow
      @Roboflow  Рік тому +1

      @@arfashaha4074 yes exactly! Generate frames from video. Process frame. Annotate. Save to result file.

    • @arfashaha4074
      @arfashaha4074 Рік тому +1

      @@Roboflow Perfect, thanks for the help! You've been wonderful

    • @Roboflow
      @Roboflow  Рік тому

      @@arfashaha4074 thanks a lot for kind words!

  • @body1024
    @body1024 Рік тому +1

    amazing tutorials
    keep it coming

    • @Roboflow
      @Roboflow  Рік тому +1

      Thanks a lot! Stay tuned. I already have idea for next one ☝️

  • @katogyn
    @katogyn Рік тому +2

    annotations are not found during the evaluation process any way out for this model

    • @Roboflow
      @Roboflow  Рік тому

      Would you be a bit more specific?

  • @MuhammadAdnan-tq3fx
    @MuhammadAdnan-tq3fx Рік тому +1

    Thank you so much for this video. i followed your video and received this results
    Accumulating evaluation results...
    DONE (t=0.16s).
    IoU metric: bbox
    Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.546
    Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.766
    Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.629
    Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
    Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.328
    Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.558
    Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.578
    Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.605
    Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.605
    Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
    Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.343
    Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.617
    please guide me how i can increase my value upto 95%. i use same parameter that you have used in your video.i will be very thankful to you

    • @Roboflow
      @Roboflow  Рік тому +1

      Did you used the same dataset we did?

    • @MuhammadAdnan-tq3fx
      @MuhammadAdnan-tq3fx Рік тому

      I used the "SeaShip" dataset, downloaded from the Roboflow website, which consisted of 7,900 training images and approximately 1,661 validation images. For both the train_dataloader and val_dataloader , I set the batch size to 4. training and model parameters was:
      model = Detr(lr=1e-4, lr_backbone=1e-5, weight_decay=1e-4)
      trainer = Trainer(devices=1, accelerator="gpu",
      max_epochs=50,
      gradient_clip_val=0.1, accumulate_grad_batches=8, log_every_n_steps=5)
      on these i received the results that i have uploaded in my first comment.
      I again starts a second training iteration with significant adjustments to hyperparameters. In this instance, I enlarged the training dataset to 9,843 images while simultaneously reducing the validation dataset to a mere 300 images., also increase the epochs up to 100 and for train_dataloader batch_size=4 and for valid_dataloader batch_size=2, also reduce the learning rate from lr=1e-4 to lr=1e-5.
      during first time total training time was 23 hours but this time my training is still running from last 18 hours it will take one more day i think.after that i will share the result again. and one more thing i have NVIDIA rtx 6000 (24GB)

    • @MuhammadAdnan-tq3fx
      @MuhammadAdnan-tq3fx Рік тому

      @@Roboflow Second time accuracy comes 81% how can i increase the accuracy.

  • @raymond-andrade
    @raymond-andrade Рік тому +2

    Great Video. I resonate with your intro, on how it's hard not to get imposter syndrome in this fast changing AI/ML landscape, when you don't know how to implement the latest "thing".

    • @Roboflow
      @Roboflow  Рік тому +1

      Thanks a lot. At the same time there is nothing better than just to face your latest “thing” and learn!

  • @helloansuman
    @helloansuman Рік тому

    Nice video. Can you please tell how to run the training on multi-gpu? Which lines to be added or modified?

  • @venusshah4476
    @venusshah4476 4 місяці тому

    Hey, This is a great lesson, do you have any idea that this way we can also train Grounding Dino on our custom dataset?

  • @ComedyArchives
    @ComedyArchives 9 місяців тому +1

    great video, thanks!

  • @ALOKAGIMHARI
    @ALOKAGIMHARI 6 місяців тому

    Thank you for your tutorial.❤
    Let me know how to use this trained model for test an image thats not in test dataset.

  • @anaisabelrua189
    @anaisabelrua189 Рік тому +1

    Loved it!! have you tried using DETR with Detectron2?
    BTW, it wasn´t long for me. Very precise learned a lot!

    • @Roboflow
      @Roboflow  Рік тому

      Thanks a lot for that positive feedback. I actually didn’t trained DETR with Detectron2. I came a bit late to the party and went straight with Transformers.

  • @Thedrive17
    @Thedrive17 Рік тому +1

    Thanks for the great video! Just wanna ask can we detect image from image that we upload in colab?

    • @Roboflow
      @Roboflow  Рік тому

      Thanks a lot. I’m not sure I understand. Could you rephrase the question?

    • @accongnetwork1208
      @accongnetwork1208 Рік тому

      @@Roboflow Hi, may I ask you a question? How can we show the IoU after the detection?

    • @Roboflow
      @Roboflow  Рік тому

      @@accongnetwork1208 and I responded a month ago :) IoU of what? Detections and ground truth?

    • @Thedrive17
      @Thedrive17 Рік тому

      ⁠​⁠@@Roboflow Yes, the IoU of detections and ground truth, I dont know how to show the coordinat of detections, and Is there any code to show the IoU of Ground Truth and Detections automatically? Thank youu so much

  • @leandrodiascarneiro5663
    @leandrodiascarneiro5663 Рік тому

    Excellent video. Thanks!!

  • @chrisboutsikas5973
    @chrisboutsikas5973 5 місяців тому

    Is there reason in particular why you install a spesific verison of supervision (i.e. supervision==0.3.0) ?

  • @MiaLovEm
    @MiaLovEm Рік тому

    Thank you for such a great tutorial! I have learnt a lot. And I also watched other videos you made. They really helped me understanding the models and training process better.
    About the false detection you mentioned, I came acorss similar problems on my dataset. I'm thinking maybe add null images to the dataset (about 10%) could help? I am just about to try!

  • @umarkhalid5463
    @umarkhalid5463 6 місяців тому

    Can this be applied to realtime surveillance cameras to detect shoplifting?

  • @canciones381
    @canciones381 9 місяців тому

    It is possible mix this training custom data set with transformers with the PolygoneZone tool? Great Video!

  • @aaminataskeen3448
    @aaminataskeen3448 Рік тому

    Hi, very informative video! I’ve been working with DETR for mitosis object detection and your code has been of great help. But when im training the model, the loss is decreasing very very slowly. Like even after 50 epochs my loss has gone down from 3.7 to 3.1 . So I was thinking maybe it’s coz of the learning rate. Is there any way I could change the learning rate coz when I tried doing that during DETR class instantiation, it threw an error while error. So as of now I can’t change the learning rate and my loss is almost stabilized at 3 and just fluctuating between the above mentioned values. Appreciate your reply :))

  • @AmarnathReddySuarapuReddy
    @AmarnathReddySuarapuReddy 9 місяців тому

    Great lesson

  • @sihameghaprabashwara6025
    @sihameghaprabashwara6025 6 місяців тому

    Is there any way to detect in a video ?

  • @mahachaabene6750
    @mahachaabene6750 Рік тому +1

    great content! I have tried using it on my own dataset but the labels were not correct with the coco format, although i tried yolov5 and it did good . any explanation for that ?

    • @Roboflow
      @Roboflow  Рік тому

      Boxes were detected but with incorrect labels?

    • @mahachaabene6750
      @mahachaabene6750 Рік тому

      @@Roboflow yes that"s exactly what happened

    • @mahachaabene6750
      @mahachaabene6750 Рік тому +1

      my dataset contains numbers stamped on metal in a curved way, the model was detecting the boxes but with the wrong labels in this case, but it worked fine when i tried yolov5

    • @Roboflow
      @Roboflow  Рік тому

      @@mahachaabene6750 any pattern? Some numbers are always generated as other number? Maybe there is some mapping problem?

    • @mahachaabene6750
      @mahachaabene6750 Рік тому

      @@Roboflow it seems like each number is detected as its successive number, like 1 is detected as 2, 3 detected as 4.....

  • @felipegerard1613
    @felipegerard1613 9 місяців тому

    Hi, first thanks for this great work, I am having a problem if I try to create this notebook on my development server, when I use "inputs=image_processor(images=image,return_tensor='pt').to(DEVICE)" (device(type='cuda', index=0)) I get in transformers/feature_extraction_utils.py:229 "TypeError: is_floating_point(): argument 'input' (position 1) must be Tensor, not list" any help will be very appreciated

  • @nhauwu
    @nhauwu Рік тому +1

    I tried to use it with my own model, but it said "NameError: name 'image_processor' is not defined" in the first code cell of "Create COCO data loaders

    • @Roboflow
      @Roboflow  Рік тому

      I’d need more details. Could you create Agnew thread here: github.com/roboflow/notebooks/discussions/categories/q-a and give me a bit more details?

  • @afriquemodel2375
    @afriquemodel2375 11 місяців тому +1

    NameError: name 'image_processor' is not defined

  • @bharanis1004
    @bharanis1004 8 місяців тому

    hey any idea on how to use pretrained detr

  • @michaelscheinfeild9768
    @michaelscheinfeild9768 Рік тому

    HI THANKS FOR VIDEO. Where i can read article of model

  • @МаксимМалахов-у4ш

    How do I use my saved pre-trained model in a new laptop with my own weights?

  • @DigiDriftZone
    @DigiDriftZone Рік тому

    What is the impact of small batch sizes on inference accuracy? - I only have 8gb of vram on my 3060ti and for the larger models I’m only getting batch sizes of 1 or 2.

  • @sangamithramurugesan8178
    @sangamithramurugesan8178 Рік тому +1

    Hello, the acuial purpose of DETR is to ELIMINATE the use of NMS. But your code uses NMS. why?. obtained from the original paper:"Our approach streamlines the detection pipeline, effectively removing the need for many hand-designed components like a non-maximum suppression procedure or anchor generation
    that explicitly encode our prior knowledge about the task"- PLEASE EXPLAIN

    • @Roboflow
      @Roboflow  Рік тому +1

      The answer is pretty simple. I run the model and faced a lot of problems with double detections. Results were pretty much unusable without NMS and that’s why I added it.

  • @tomaszbazelczuk4987
    @tomaszbazelczuk4987 Рік тому +1

    Piotr thanks a lot👍

    • @Roboflow
      @Roboflow  Рік тому +1

      Our viewership in Poland 🇵🇱 grew a lot over the last few months.

  • @nimrakhan5785
    @nimrakhan5785 Рік тому +1

    which object detection model is best for accuracy, Yolov8, dert, transofrmer or Faster RCNN?

    • @Roboflow
      @Roboflow  Рік тому

      You only care about top accuracy? Speed does not matter? Or top accuracy in real time detection?

    • @iMJKhan
      @iMJKhan Рік тому

      @@Roboflow Thanks for the great content.
      How about each use case?
      1. Accuracy, 2. Speed, 3. Accuracy in RT-detection, and 4. Speed in RT-detection

  • @محمدالفقى-ي4ب
    @محمدالفقى-ي4ب Рік тому +1

    AttributeError: type object 'Detections' has no attribute 'from_coco_annotation'
    I didn't find any raise issue on github or any stackOverflow
    so
    python```
    sv.Detections.from_coco_annotation
    ```
    and i get this error

    • @Roboflow
      @Roboflow  Рік тому

      What version of supervision you use? Tutorial was dedicated for 0.3.0. from_coco_annotation got drop from supervision API.

  • @rezaazhar1292
    @rezaazhar1292 Рік тому +1

    hi i wanna ask. can i deploy this model to mobile android or drone like dji tello?

    • @Roboflow
      @Roboflow  Рік тому +1

      You can convert the model to ONNX and in this format it is deployable on Android Phones. Maybe there are other ways, but I’m pretty sure this one should work.

  • @QuickKeysAcademy
    @QuickKeysAcademy Рік тому +2

    Great video👍, I have used my own dataset and got annotations using roboflow.
    I got this error can you please resolve this
    --> 243 raise TypeError(
    244 f"Detections.__getitem__ not supported for index of type {type(index)}."
    245 )
    TypeError: Detections.__getitem__ not supported for index of type .

    • @Roboflow
      @Roboflow  Рік тому

      What is the version of supervision that you have installed?

    • @QuickKeysAcademy
      @QuickKeysAcademy Рік тому

      @@Roboflow torch: 1.13 ; cuda: cu116
      ; supervision: 0.3.0 ; transformers: 4.26.1

    • @Roboflow
      @Roboflow  Рік тому

      @@QuickKeysAcademy wow, this is unexpected. Could you please create a bug report here: github.com/roboflow/supervision/issues and attach link to your notebook. I'll try to debug it live.

    • @QuickKeysAcademy
      @QuickKeysAcademy Рік тому

      @@Roboflow ok thank you

    • @SalmanFarsi-qt6fr
      @SalmanFarsi-qt6fr Рік тому

      Bruh did You resolved this issue. If yeah then guide me too i am also getting this for too long.
      Will really appreciate Thanks❤😊

  • @俊凱-c8x
    @俊凱-c8x Рік тому +1

    Hi, thanks for your great video!!
    I am trying to train detr on lab server. I tried to set up the environment, but when I typed pip install -q ./transformers
    and pip install -q pytorch-lightning in terminal. I got the following errors
    ERROR: Invalid requirement: './transformers'
    Hint: It looks like a path. File './transformers' does not exist.
    Can you help me with this? Thanks a lot !!

    • @Roboflow
      @Roboflow  Рік тому

      I’m a bit confused. Why ./ before transformers? I believe it should not be there :

    • @俊凱-c8x
      @俊凱-c8x Рік тому +1

      @@Roboflow oh, that's my fault ! Thank you!

    • @Roboflow
      @Roboflow  Рік тому

      @@俊凱-c8x no problem! 😉

  • @tongtongchen-qo6qj
    @tongtongchen-qo6qj 5 місяців тому

    AttributeError: 'ToTensor' object has no attribute 'pad' that How to solve this problem ?

  • @SalmanFarsi-qt6fr
    @SalmanFarsi-qt6fr Рік тому +1

    I am getting the 'Key Error'='annotations'
    And Type of Error: Detections.___Getitem__ not supported for index of type ....
    Please Do guide me with the following error how can i come up with it.
    Will really appreciate it.

  • @muhdnajhan886
    @muhdnajhan886 Рік тому

    what code for random run any image

  • @biswajitroy-zp6lk
    @biswajitroy-zp6lk Рік тому +1

    TypeError: Detections.__getitem__ not supported for index of type . Hi this is a error i am getting when i am about to detect bounding box on the test dataset .i have one class

    • @Roboflow
      @Roboflow  Рік тому

      Hi 👋! Is that happening with the current version of the notebook without any changes?

    • @shivamsharmaiitkgp8370
      @shivamsharmaiitkgp8370 Місяць тому

      I have also one class, getting same issue

  • @afriquemodel2375
    @afriquemodel2375 11 місяців тому

    how to configure to work in local environnement

  • @seroshmannan
    @seroshmannan Рік тому

    how can we tweak with network block

  • @МаксимМалахов-у4ш

    How do I count the various objects in the photo?

    • @Roboflow
      @Roboflow  Рік тому

      You can do it quite easily, for example like that:
      count = len(sv.Detections.from_transformers(transformers_results=results))

    • @МаксимМалахов-у4ш
      @МаксимМалахов-у4ш Рік тому +1

      @@Roboflow And how do I determine the number of objects for each class in the photo?

    • @Roboflow
      @Roboflow  Рік тому

      @@МаксимМалахов-у4ш we do not have that functionality yet, but I'll add it to our roadmap. In the meantime you can do something like that:
      {
      int(class_id): len(detections[detections.class_id == class_id])
      for class_id
      in np.unique(detections.class_id)
      }

    • @МаксимМалахов-у4ш
      @МаксимМалахов-у4ш Рік тому

      @@Roboflow Thank you very much!

  • @TheArkLade
    @TheArkLade Рік тому +1

    Does anyone know why " __init__() got an unexpected keyword argument 'gpus'" error shows up when training with pytorch_lightning? It used to work...hummmm. Its this part: "trainer = Trainer(gpus=1, max_epochs=MAX_EPOCHS, gradient_clip_val=0.1, accumulate_grad_batches=8, log_every_n_steps=5)"

    • @Roboflow
      @Roboflow  Рік тому

      Did the error accrue when you run our notebook? Or you have done some custom changes?

    • @dreamin4444
      @dreamin4444 Рік тому +1

      @@Roboflow Tak, na waszym notebooku. Mam ten sam problem :/

    • @Roboflow
      @Roboflow  Рік тому +1

      @@dreamin4444 I'm working on fix right now

    • @Roboflow
      @Roboflow  Рік тому +1

      I just fixed the notebook. There was a change in pytorch-lightning. And that broke our notebook. It should work fine now.

    • @dreamin4444
      @dreamin4444 Рік тому +1

      @@Roboflow Thank u so much!

  • @afriquemodel2375
    @afriquemodel2375 11 місяців тому

    it is possible to do the same thing in local environnement??

    • @Roboflow
      @Roboflow  11 місяців тому

      Yes. But you really should have GPU train it.

    • @afriquemodel2375
      @afriquemodel2375 11 місяців тому

      @@Roboflow i have Gtx nvdia 1050
      4Go

  • @JUANG0MEZ
    @JUANG0MEZ Рік тому

    hello good afternoon, is it possible to detect objects and that the bounding box has a rotation?

    • @Roboflow
      @Roboflow  Рік тому

      What do you mean by retention?

    • @raymond-andrade
      @raymond-andrade Рік тому +1

      Generally if you want more accuracy than a horizontal bounding box, I feel most people opt to use Segmentation instead of Bounding Boxes, since Bounding Box is meant to just have XY center position with Width Height (to minimize model output needed to identify the object)

    • @Roboflow
      @Roboflow  Рік тому

      @@raymond-andrade I’m still not sure if that was the original question, but if so than I agree.

  • @kilikia8939
    @kilikia8939 Рік тому

    Why you dont show, how look annotation?

  • @varshanathkm6947
    @varshanathkm6947 Рік тому +1

    Is there any way to detect in a vedio

    • @Roboflow
      @Roboflow  Рік тому

      Yes! you can use process_video function from supervision package: roboflow.github.io/supervision/video/#process_video to automatically process every frame from video.

    • @olanrewajuatanda533
      @olanrewajuatanda533 Рік тому

      @@Roboflow the link leads to nowhere. Please, can you check again? I'd appreciate if you can do that.
      Also, how can one see the mAP, F1 and Recall from the training and validation?

  • @YahyaSamet-vi3pu
    @YahyaSamet-vi3pu Рік тому

    how to test this model in real time

  • @miladfarzalizadeh3058
    @miladfarzalizadeh3058 Рік тому

    how inference time for each frame of video?

    • @Roboflow
      @Roboflow  Рік тому

      You should be able to get around 20-25 fps with ResNet50 backbone.

  • @systembreaker4651
    @systembreaker4651 Рік тому

    Why you didn't make with pycharm its hard to do like in the video 😢

  • @pranks4167
    @pranks4167 Рік тому

    Hello Peter, I waana you to become my teacher , how can we do it ?

  • @lorenzoleongutierrez7927
    @lorenzoleongutierrez7927 Рік тому

    great !

    • @Roboflow
      @Roboflow  Рік тому +1

      Thanks a lot! 🙏

    • @lorenzoleongutierrez7927
      @lorenzoleongutierrez7927 Рік тому +1

      @@Roboflow, really thanks to all of you for the teaching and truly democratization of this knowledge changing the world. As an user following almost 3 years ago the evolution of roboflow, it seems to me incredible how well is directed the whole ecosystem service and clear information for so many people (Including me, as an agronomist interested in locating weeds and crops!). a Big Bravo from Chile and have a great weekend!!

    • @Roboflow
      @Roboflow  Рік тому +1

      @@lorenzoleongutierrez7927 This is so kind! Thanks a lot 🙏I'll pass your message to the rest of the team.

  • @DrShroom.
    @DrShroom. Рік тому

    Cool!

  • @rupalibalabantray5178
    @rupalibalabantray5178 Рік тому

    Hello sir I am a Research Scholar I want a dataset of thermal images of a Distribution transformer can you help me out.

  • @afriquemodel2375
    @afriquemodel2375 11 місяців тому

    --> 366 raise MisconfigurationException("No supported gpu backend found!")
    MisconfigurationException: No supported gpu backend found!

  • @FirstNameLastName-fv4eu
    @FirstNameLastName-fv4eu 10 місяців тому

    hahahaha !! 12324343 KM from reality