I am using YOLOv3 to detect cars in videos. I downloaded three files used in my code coco.names
, yolov3.cfg
and yolov3.weights
which are trained for 80 different classes of objects to be detected. The code worked but very slowly, it takes more than 5 seconds for each frame. I believe that if I reduced the number of classes, it would run much faster. I can delete the unnecessary classes from coco.names
, but unfortunately, I don't understand all the contents from yolov3.cfg
, and I can't even read yolov3.weights
.
I was thinking about training my own model, but I faced a lot of problems, so I gave up the idea.
Can anyone help me in modifying these files?
For easy and simple way using COCO dataset, follow these steps :
coco.names
file in darknet\data\coco.names
yolov3.cfg
), change the 3 classes on line 610, 696, 783 from 80 to 1(classes+5)x3
)./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/your_image.jpg
For more advance way using COCO dataset you can use this repo to create yolo datasets based on voc, coco or open images. https://github.com/holger-prause/yolo_utils .
Also refer to this : How can I download a specific part of Coco Dataset?
Would be great if you can train YOLO model using your own dataset. There are so many tutorial on the internet of how to build your own dataset. Like this, this, this or this.
Note : reducing number of classes won't make your inference speed faster. By reducing classes, you will detect less object and somehow will probably make your program run faster if you do post-processing for each detection.