YOLOv9 on custom dataset | Object detection using YOLOv9

Поділитися
Вставка
  • Опубліковано 1 жов 2024
  • Learn how to use YOLOv9 on custom dataset
    GitHub: github.com/Aar...
    For queries: You can comment in comment section or you can email me at aarohisingla1987@gmail.com
    #yolo #yolov9 #computervision #yolov8 #objectdetection #ai #artificialintelligence #

КОМЕНТАРІ • 156

  • @arunnachalamrs2002
    @arunnachalamrs2002 7 місяців тому +11

    First video of yolov9 super 😍😍😍

    • @CodeWithAarohi
      @CodeWithAarohi  7 місяців тому +1

      Thanks!

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

      👏👏👏👏👏👏👏👏

  • @ramanbains828
    @ramanbains828 7 місяців тому +4

    how much gpu is required for training yolov9 with custom dataset of atleast 2000 images, please reply fast, i really need this info

    • @CodeWithAarohi
      @CodeWithAarohi  7 місяців тому +2

      The GPU requirements for training a custom dataset depend on several factors, including the size of the images, the complexity of the objects being detected. But I think, minimum a GPU with 16GB or more of VRAM.

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

      I can't train my dataset using gelan-e, yolov9-c, and yolov9-e. Anyone can help?

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

      I don't know about yolov9 but with yolov8 i have trained 3500 images with RTX 4050 6GB graphics card in laptop i think even with yolov9 you can do it with 6GB graphic card but reduce batch size to 4

  • @Harishk-q3k
    @Harishk-q3k 9 днів тому

    I am having problems deploying the yolov9 weights on a model in python pls make a video of that

  • @DigitalDuck-r4c
    @DigitalDuck-r4c 5 місяців тому +1

    Madam, just curious, I am training with 2700 images on CPU (since my NVIDIA GPU didnt support) for 50 epochs like what you did. It has been almost 7 hours and it just completed 2 epochs, Is there any better way to run this fast other than using GPU and get good accuracy madam. Because when I used the best.pt after the 2 epochs, it is just creating a detect folder but not actually detetcting anything.

    • @CodeWithAarohi
      @CodeWithAarohi  5 місяців тому +1

      You can train your model using google colab and once you have the trained model, rest of the work you can do it in your machine.

    • @DigitalDuck-r4c
      @DigitalDuck-r4c 5 місяців тому

      @@CodeWithAarohi alright madam, because I’m just worried that the training time might get upto 12 hrs which will eventually stop the run in free tier collab

    • @CodeWithAarohi
      @CodeWithAarohi  5 місяців тому +1

      @@DigitalDuck-r4c try to work with small image size

    • @DigitalDuck-r4c
      @DigitalDuck-r4c 5 місяців тому

      @@CodeWithAarohi alright thanks a lot madam

    • @DigitalDuck-r4c
      @DigitalDuck-r4c 5 місяців тому

      @@CodeWithAarohi madam sorry for bothering you again, also V9 modes can’t be used for plant disease detection yet is it? If that’s the case can V8 be used for that purpose?

  • @preethijanthakal7161
    @preethijanthakal7161 5 місяців тому +1

    i am getting an error like AttributeError: 'list' object has no attribute 'device'. Please help me out

    • @CodeWithAarohi
      @CodeWithAarohi  5 місяців тому +1

      Open yolov9/utils/general.py
      Go to line number 903 and add [0] after prediction[0]
      Final line should look like this: prediction =prediction[0][0]
      Save it and run the code

  • @PratikPatil-u9r
    @PratikPatil-u9r 2 місяці тому

    modify hyp.scratch-high.yaml
    old copy_paste: 0.3 # segment copy-paste (probability)
    new copy_paste: 0.1 or 0.0

  • @arnavthakur5409
    @arnavthakur5409 7 місяців тому +5

    Thank you for sharing this video. Good work.

    • @CodeWithAarohi
      @CodeWithAarohi  7 місяців тому +1

      Thanks for watching!

    • @PratikPatil-u9r
      @PratikPatil-u9r 2 місяці тому

      modify hyp.scratch-high.yaml
      old copy_paste: 0.3 # segment copy-paste (probability)
      new copy_paste: 0.1 or 0.0

  • @11hmt.sun007
    @11hmt.sun007 2 місяці тому

    very helping video for my Ph.D. in intelligent vehicle system, can you trained this on KIITI dataset

    • @CodeWithAarohi
      @CodeWithAarohi  2 місяці тому

      Yes, we can train this on kitti dataset. Change the format of annotations in the way which yolov9 accepts and train yolov9 on kitti dataset.

  • @michaelzeuner1746
    @michaelzeuner1746 3 місяці тому

    Why do you think the results from your test were so poor? Did you just need more training images?

    • @CodeWithAarohi
      @CodeWithAarohi  3 місяці тому

      Yes, with more data, results will be better. Also, You can train for more epochs and try to use different learning rate and hyper parameters.

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

    How can we use in medical image processing in kidney tumor detectionCT images

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

      JUst annotate the images (CT images). Train the model on it

  • @SUMITKUMAR-p6s3u
    @SUMITKUMAR-p6s3u Місяць тому

    Thank you Aarohi for such nice informative video !!! Can you please make a video on how do we calculate the values of Precision, Recall, Accuracy, F1-Score & IoU for object detection models on Custom dataset?

  • @AyushRaghuwanshi-h2q
    @AyushRaghuwanshi-h2q 7 місяців тому

    Can i export yolov9 model to tflite. I am getting error AttributeError: 'NoneType' object has no attribute 'outputs'
    on
    !python export.py --weights /mydrive/yolov9/yolov9/runs/train/exp2/weights/best.pt --include tflite --data /mydrive/yolov9/yolov9/data.yaml

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

    If you get an error of device " AttributeError: 'list' object has no attribute 'device'" then change the code utils/general.py file line no 903 to prediction = prediction[0][1]

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

      ??

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

      @@CodeWithAarohi this was the problem I faced and few others mentioned it in the comment section. I got the solution, hence I am sharing it here.

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

      @@CodeWithAarohi BTW thank you for the explanation. It helped alot... 🙏

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

    Thank you very much for the tutorial. It really helpful! I followed all steps and found that box_loss, cls_loss and dfl_loss of validation process are all zeros, do you know why?

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

      You can check these below mentioned points:
      If the confidence threshold is set too high, the model might not produce any predictions.
      Ensure that the weights file is correct and corresponds to a trained model.
      If the model has not learned anything useful during training, it might not make meaningful predictions. Check the training logs.

  • @PratikPatil-u9r
    @PratikPatil-u9r 2 місяці тому

    if last line of your code after starting the training
    , box, s = labels[j], boxes[j], segments[j]
    ~~~~~~~~^^^
    IndexError: list index out of range
    then try:
    modify hyp.scratch-high.yaml
    old copy_paste: 0.3 # segment copy-paste (probability)
    new copy_paste: 0.1 or 0.0

  • @Drama-U
    @Drama-U 6 місяців тому

    Nice video! How many epoch would be enough for a custom dataset? I tried like yours step by epoch=100 but doesn't detect anything.

    • @CodeWithAarohi
      @CodeWithAarohi  6 місяців тому +1

      The number of epochs needed for training an object detection model on a custom dataset can vary significantly depending on various factors such as the complexity of the dataset, the quality and quantity of the data.

  • @m0306
    @m0306 10 днів тому

    Mam i have a doubt why is the validation losses graphs coming blank for me

    • @CodeWithAarohi
      @CodeWithAarohi  9 днів тому

      Make sure that you have provided the correct path of validation data during the training loop. If no validation data is provided, the validation loss will not be computed.

    • @m0306
      @m0306 9 днів тому

      @@CodeWithAarohi training loop or training step in the notebook?

  • @abubakarsaleem5167
    @abubakarsaleem5167 3 місяці тому

    Ma'am, you have edited the yolov9.yaml file in models/detect/yolov9.yaml, but the pretrained model you are using is different, specifically "yolov9-e.pt." I may be wrong, but I think it is the "yolov9-e.yaml" file that should be edited instead.
    Btw, thanks for this informative tutorial.

  • @ankitaggarwal9195
    @ankitaggarwal9195 3 місяці тому

    Labels are empty in the dataset you have provided..?

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

    Madam, Is there any way by which I could change the optimizer for yolov9 training? Currently it uses SGD, and the convergence is very slow wrt mAP, hence wanted to try out ADAM to see if it can be improved with less epochs.
    Thank you in anticipation

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

      Yes, You can change it. Just clone the official yolov9 github repo and do the required changes.

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

    Hello, thank for this great tutorial, I have to do inference in C# do you think the best way is to convert .pt file to ONNX file or there a simple way by using .pt file ?

    • @CodeWithAarohi
      @CodeWithAarohi  5 місяців тому +1

      Converting the .pt file to ONNX and using ONNX Runtime in C# is the best approach for efficient inference.

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

    Very Helpful Video :-)
    Can you please do one with YOLOv9 -> PyTorch -> ONNX -> TF -> TFLite
    Which can be deployed and used on android for real-time object detection trained using custom dataset.

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

    This is amazing. Seems very easy to train Yolo V9 than Yolo V4.
    Could you tell us how to use the custom-trained weights file for object detection in a video?
    Waiting for your next video.

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

    It will be very helpful if you can share how to export the yolov9 model as a tflite model and make inference (images and videos)

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

    Can u resume Yolo v9 training if it was interrupted???
    In yolo v8, we could set mode = train resume, can we do that in yolo v9?

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

      Yes you can do that. Just add --resume in your command (python detect.py --weights yolov9-c.pt --resume)

  • @yaZ-p2h
    @yaZ-p2h 2 місяці тому

    to train custom data + coco do i add class to the .yaml file?

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

    Hi there,first thing first I really appriciate for your video,how can we use the weights in our local system?

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

      You just need to change the paths as per your local machine. Just check where you have placed your weights file in local machine then provide that path in your your command while making predictions.

  • @SAMMAS-y4w
    @SAMMAS-y4w 5 місяців тому

    how i can use best model for using my webcam ?

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

    Thanks for the great tutorial. I have 2 questions. 1)How can we use a Python script for training? I don't want to do it from the command. 2) Let's say my input image size is 720x576, how can I write for --img parameter?

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

      The code of yolov9 is available in their GitHub repo and from there you can understand how the code is working and implement it as you want.

  • @VivekSharma-jh8sn
    @VivekSharma-jh8sn 5 місяців тому

    I was getting this error while i was starting the training
    AttributeError: 'FreeTypeFont' object has no attribute 'getsize'

    • @michaelzeuner1746
      @michaelzeuner1746 3 місяці тому

      I just had this issue. The latest version of Pillow changed the syntax. I "pip uninstall pillow" and then "pip install pillow==7.2.0" and that addressed this issue.

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

    Hi, there is no keypoint detection on custom dataset for yolov9. Can you make a video for the same? Considering that you did same for the yolov7

  • @likeyo-yy3vj
    @likeyo-yy3vj 7 місяців тому

    actually yolov9,but why it still show the the use of yolov5 when train?

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

    Great tutorial. But how can one print the 4 points of the detection BBox and its centre point as well? Thanks

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

      Extract the bounding box coordinates and instead of using cv2.rectangle, use cv2.circle. This will put points on the bounding box coordinates.

  • @pifordtechnologiespvtltd5698
    @pifordtechnologiespvtltd5698 7 місяців тому +2

    Amazing video on Volo-V9

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

    Do you have any video on image data augmentation? Kindly share it with me 🙏🙏🙏

    • @CodeWithAarohi
      @CodeWithAarohi  6 місяців тому +1

      I did this video long time ago. You can check if this is helpful: ua-cam.com/video/BBR3J2HI5xI/v-deo.html

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

    Do you need to draw the annotation on the images ? Or just provide the dataset with the coordinates?

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

      You train your object detection model using dataset (Images + annotations)

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

    how many images and labels do you need for the train file, the test file and also valid file?
    f.e. i have 500 images annotated already, how many should i put into the test ,valid, and train file?
    thanks a lot for the very helpful video!

    • @CodeWithAarohi
      @CodeWithAarohi  6 місяців тому +1

      You might allocate around 70-80% of your data to the training set. In your case, with 500 annotated images, you might allocate around 350-400 images for training, around 50-75 images for validation and around 50-100 images for testing

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

      Cool i will try it that way, thanks a lot

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

    AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)

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

      Do you think this is ChatGPT?

    • @DigitalDuck-r4c
      @DigitalDuck-r4c 5 місяців тому

      Man it is so clear use '--device cpu'

  • @V.Ajantha
    @V.Ajantha 6 місяців тому

    how do we get the PR curve and confusion matrix for yolov9?

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

      After training you will get it in runs folder

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

    Thanks a bunch for the super informative video, it's been a big help. Plus, it's so empowering to see female creators stepping up in the Computer Vision scene. Really hoping to see more of us joining the field soon. :)

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

      You're very welcome! I'm glad you found the video informative and empowering :)

  • @AJINKYALADHE-x4e
    @AJINKYALADHE-x4e 7 місяців тому

    can we use yolo nas and yolov9 in android using tflite?

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

    AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)

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

      This shows the issue with the CUDA device configuration.

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

      How to fix mam

    • @DigitalDuck-r4c
      @DigitalDuck-r4c 5 місяців тому

      @@tjtj1122 use '--device cpu'

  • @tenns-tu1yz
    @tenns-tu1yz 6 місяців тому

    nvidia-smi: command not found

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

      NVIDIA System Management Interface (SMI) command-line utility is not installed on your system, or its location is not included in your system's PATH environment variable.

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

    can i use yolov9 for raspberry pi 5?

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

    Unique video with least of complexity in understanding. Keep up this kind of good work

  • @Yadav-it3ku
    @Yadav-it3ku 7 місяців тому

    Thank you Aarohi ma'am. I got my error solved from the video only 😄😊

  • @DigitalDuck-r4c
    @DigitalDuck-r4c 5 місяців тому

    Great tutorial and a very clear explanation. Thanks a lot, madam.

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

    what is difference between v8 and v9? what are the improvements?

    • @CodeWithAarohi
      @CodeWithAarohi  6 місяців тому +2

      You can check this comparison of output: ua-cam.com/video/HZjbMDm9hOA/v-deo.html
      Apart from that, there architecture is different. Yolov9 architecture explained: ua-cam.com/video/iH-c4_cjBbU/v-deo.html

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

      @@CodeWithAarohi Mam I have a question i have checked the video seems like V9 is performing better in real-time detection what about medical images should I go for Yolov9 for medical images.?

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

    it says could not find tensorrt

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

    i want to ask if i want to use yolov9 for image classification how can i do that

    • @CodeWithAarohi
      @CodeWithAarohi  7 місяців тому +1

      Image classification is not supported yet. Only object detection.

    • @DigitalDuck-r4c
      @DigitalDuck-r4c 5 місяців тому

      @@CodeWithAarohi Hello madam, so can't I use YOLOV9 for plant disease detection yet?

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

    sukar dipercaya YOLOv9 sudah hadir

  • @ShivaNaroju-lz9sz
    @ShivaNaroju-lz9sz 6 місяців тому

    voice is low mam

  • @Nursultan-sz9ih
    @Nursultan-sz9ih 7 місяців тому +1

    cool bro the best

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

    Can u add yolov9 for classification?

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

      The Classify folder of yolov9 have the classification code which is same as yolov5.

  • @sqf-g4n
    @sqf-g4n 2 місяці тому

    Thank you! very nice vid👍

  • @Sunil-ez1hx
    @Sunil-ez1hx 7 місяців тому +2

    Thank you very much for sharing such an amazing video👍👍

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

    How to open camera

    • @CodeWithAarohi
      @CodeWithAarohi  6 місяців тому +1

      --source 0 (python detect.py --weights tolov9-c.pt --source 0)

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

      @@CodeWithAarohi thank you

    • @SAMMAS-y4w
      @SAMMAS-y4w 5 місяців тому

      @@tjtj1122 can u rewrite the code pls?

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

    Thanks, very good!

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

    Seu vídeo Perfeito! Parabéns, foi muito objetivo e funciona como você demostrou

  • @FREEFIREGAMER-iv8dx
    @FREEFIREGAMER-iv8dx 6 місяців тому

    Maam pls provide dataset

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

      universe.roboflow.com/roboflow-100/furniture-ngpea

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

      universe.roboflow.com/roboflow-100/furniture-ngpea

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

    Thank you so much!!!❤❤❤

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

    great video
    thank you

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

    Very helpful!

  • @python_tutorial-s6z
    @python_tutorial-s6z 6 місяців тому

    nice tutorial

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

    How to change the Optimizer from SGD to Adam?

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

      Locate the Training Configuration File:
      Change this:
      name: SGD # Change this line to 'Adam'
      name: Adam # Change to Adam

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

    Great job👏👏

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

    Awesome video