AlexeyAB / darknet

YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet )
http://pjreddie.com/darknet/
Other
21.73k stars 7.96k forks source link

Differences between forks - AlexeyAB, Pjreddie, darknet-NNPACK #1419

Open PeterQuinn925 opened 6 years ago

PeterQuinn925 commented 6 years ago

I'm building a detection system that will use a Jevois cam that uses the Darknet-NNPACK fork for acceleration on the device. I am using a Windows PC running AlexeyAB's fork to do the training because I have a GPU. I am also considering using an older Linux laptop running PJreddie's fork since I have no GPU. I suppose I can use Alexey's fork on that.

After I've trained my network using Alexey's fork, it runs great. I have half a dozen test images that are not in the training set and it works perfectly. When I put these on the Jevois device, it does poorly. I'm putting that aside for now and trying to get it work better with the older laptop running PJreddie's fork.

I'm getting worse results with this than on my Windows PC. Is there a difference in these forks, or is it because the GPU makes a difference? Should I expect that different ports will give significantly different results?

AlexeyAB commented 6 years ago

I think the main difference is that: https://github.com/AlexeyAB/darknet/issues/232#issuecomment-336955485

PeterQuinn925 commented 6 years ago

Thank you - that would explain a lot. My main problem is with small images.

I'm trying your port on my Linux box to see how that goes. One further question - the python interface is different, and the notes in darknet.py say that it needs to be compiled to a DLL. I don't think this is possible on Linux. Do you know if there's a way to call darknet via python with your fork?

AlexeyAB commented 6 years ago

@PeterQuinn925 For using darknet.py on Linux - just compile with LIBSO=1 in the Makefile and run darknet/darknet.py

Also build this repo with OPENMP=1 in the Makfile for faster detection on CPU.

If CPU on http://jevois.org/ camera supports AVX2, you can try to compile this repo with AVX=1 in the Makefile.