pytorchcomputer-visionobject-detectionyolov5roboflow

How to place the dataset for training Yolov5?


I’m currently working on object detection using yolov5. I trained a model with a custom dataset which has 3 classes = [‘Car’,‘Motorcycle’,‘Person’]

I have many questions related to yolov5.

My dataset consists of

All the custom images are labelled using Roboflow.

question1 : As you can see from the table that my dataset has mix of images with different sizes. Will this be a problem in training? And also assume that i’ve trained the model and got ‘best.pt’. Will that model work efficiently in any dimensions of images/videos.

question 2:

My dataset directory looks like this:

Is this directory model correct for training. Even i have ‘test’ directory but it seems that the directory is not at all used. The images in the ‘test’ folder is useless. ( I know that i’m asking dumb questions, please bare with me.)

Is it ok if place all my images like this

And should i need a ‘test’ folder?

question3: What is the ‘imgsz’ in detect.py? Is it downsampling the input source?

I’ve spent more than 3 weeks in yolo. I love it but i find some parts difficult to grasp. kindly provide suggestion for this questions. Thanks in advance.


Solution

  • "question1 : As you can see from the table that my dataset has mix of images with different sizes. Will this be a problem in training? And also assume that i’ve trained the model and got ‘best.pt’. Will that model work efficiently in any dimensions of images/videos."

    Roboflow's python package can also be used to extract your images programmatically: https://docs.roboflow.com/python

    "Is this directory model correct for training. Even i have ‘test’ directory but it seems that the directory is not at all used. The images in the ‘test’ folder is useless. ( I know that i’m asking dumb questions, please bare with me.)"

    You do need a test folder if you want to run inference against the test folder images to learn more about your model's performance.

    The 'imgsz' parameter in detect.py is for setting the height/width of the images for inference. You set it at the value you used for --img when you ran train.py.

    For example: Resized images to 640 by 640 when generating your images for training? Use (640, 640) for the 'imgsz' parameter (that is the default value). And that would also mean you set --img to 640 when you ran train.py

    YOLOv5's Github: Tips for Best Training Results https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results

    Roboflow's Model Production Tips: https://docs.roboflow.com/model-tips