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 #
First video of yolov9 super 😍😍😍
Thanks!
👏👏👏👏👏👏👏👏
how much gpu is required for training yolov9 with custom dataset of atleast 2000 images, please reply fast, i really need this info
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.
I can't train my dataset using gelan-e, yolov9-c, and yolov9-e. Anyone can help?
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
I am having problems deploying the yolov9 weights on a model in python pls make a video of that
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.
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.
@@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
@@DigitalDuck-r4c try to work with small image size
@@CodeWithAarohi alright thanks a lot madam
@@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?
i am getting an error like AttributeError: 'list' object has no attribute 'device'. Please help me out
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
modify hyp.scratch-high.yaml
old copy_paste: 0.3 # segment copy-paste (probability)
new copy_paste: 0.1 or 0.0
Thank you for sharing this video. Good work.
Thanks for watching!
modify hyp.scratch-high.yaml
old copy_paste: 0.3 # segment copy-paste (probability)
new copy_paste: 0.1 or 0.0
very helping video for my Ph.D. in intelligent vehicle system, can you trained this on KIITI dataset
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.
Why do you think the results from your test were so poor? Did you just need more training images?
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.
How can we use in medical image processing in kidney tumor detectionCT images
JUst annotate the images (CT images). Train the model on it
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?
Sure
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
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 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.
@@CodeWithAarohi BTW thank you for the explanation. It helped alot... 🙏
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?
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.
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
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.
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.
Mam i have a doubt why is the validation losses graphs coming blank for me
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.
@@CodeWithAarohi training loop or training step in the notebook?
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.
Labels are empty in the dataset you have provided..?
You can try with other dataset then
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
Yes, You can change it. Just clone the official yolov9 github repo and do the required changes.
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 ?
Converting the .pt file to ONNX and using ONNX Runtime in C# is the best approach for efficient inference.
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.
Will try
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.
Yes, soon
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)
Sure!
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?
Yes you can do that. Just add --resume in your command (python detect.py --weights yolov9-c.pt --resume)
to train custom data + coco do i add class to the .yaml file?
Hi there,first thing first I really appriciate for your video,how can we use the weights in our local system?
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.
how i can use best model for using my webcam ?
Change the source to 0
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?
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.
I was getting this error while i was starting the training
AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
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.
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
Not yet in yolov9.
actually yolov9,but why it still show the the use of yolov5 when train?
Great tutorial. But how can one print the 4 points of the detection BBox and its centre point as well? Thanks
Extract the bounding box coordinates and instead of using cv2.rectangle, use cv2.circle. This will put points on the bounding box coordinates.
Amazing video on Volo-V9
Thanks a lot!
Do you have any video on image data augmentation? Kindly share it with me 🙏🙏🙏
I did this video long time ago. You can check if this is helpful: ua-cam.com/video/BBR3J2HI5xI/v-deo.html
Do you need to draw the annotation on the images ? Or just provide the dataset with the coordinates?
You train your object detection model using dataset (Images + annotations)
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!
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
Cool i will try it that way, thanks a lot
AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)
Do you think this is ChatGPT?
Man it is so clear use '--device cpu'
how do we get the PR curve and confusion matrix for yolov9?
After training you will get it in runs folder
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. :)
You're very welcome! I'm glad you found the video informative and empowering :)
can we use yolo nas and yolov9 in android using tflite?
AssertionError: Invalid CUDA '--device 0' requested, use '--device cpu' or pass valid CUDA device(s)
This shows the issue with the CUDA device configuration.
How to fix mam
@@tjtj1122 use '--device cpu'
nvidia-smi: command not found
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.
can i use yolov9 for raspberry pi 5?
Unique video with least of complexity in understanding. Keep up this kind of good work
I will try my best
Thank you Aarohi ma'am. I got my error solved from the video only 😄😊
Glad to hear that 🙂
Great tutorial and a very clear explanation. Thanks a lot, madam.
You are most welcome
what is difference between v8 and v9? what are the improvements?
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
@@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.?
it says could not find tensorrt
i want to ask if i want to use yolov9 for image classification how can i do that
Image classification is not supported yet. Only object detection.
@@CodeWithAarohi Hello madam, so can't I use YOLOV9 for plant disease detection yet?
sukar dipercaya YOLOv9 sudah hadir
voice is low mam
cool bro the best
Thanks!
Can u add yolov9 for classification?
The Classify folder of yolov9 have the classification code which is same as yolov5.
Thank you! very nice vid👍
Thank you :)
Thank you very much for sharing such an amazing video👍👍
Glad you enjoyed it
How to open camera
--source 0 (python detect.py --weights tolov9-c.pt --source 0)
@@CodeWithAarohi thank you
@@tjtj1122 can u rewrite the code pls?
Thanks, very good!
Glad you liked it!
Seu vídeo Perfeito! Parabéns, foi muito objetivo e funciona como você demostrou
Glad my video is helpful!
Your video helped a lot! thanks!@@CodeWithAarohi
@@julianoaragao3492 welcome!
Maam pls provide dataset
universe.roboflow.com/roboflow-100/furniture-ngpea
universe.roboflow.com/roboflow-100/furniture-ngpea
Thank you so much!!!❤❤❤
Welcome 🙂
great video
thank you
Glad you liked it!
Very helpful!
Glad it was helpful!
nice tutorial
Thanks
How to change the Optimizer from SGD to Adam?
Locate the Training Configuration File:
Change this:
name: SGD # Change this line to 'Adam'
name: Adam # Change to Adam
Great job👏👏
Thank you! 😃
Awesome video
Thanks!