4 ms·
I've used darknet quite a bit over the last few months. I wouldn't recommend using it for a serious project, unless you happen to need an extremely fast off-the
by joshvm 8y ago
I've used darknet quite a bit over the last few months. I wouldn't recommend using it for a serious project, unless you happen to need an extremely fast off-the-shelf object detector. The other exception is if you need a fast convnet running on a Pi - Tiny Yolo will do about 1.2FPS with an optimised fork (using nnpack). Other than that you could just buy a Neural Compute Stick. Yolo itself is pretty great - it's very fast and is accurate enough for a lot of things.
The original repo isn't really updated, and while AlexyAB's fork is much improved, it's still a pain to use.
- If you make mistakes, things fail silently. This is by far the biggest problem. Train/test is difficult to get right because it's very difficult to figure out where exactly you've messed up.
- Support for images is arbitrary. Although you can compile with OpenCV, there are internal glob functions which simply ignore certain image types (I had to recompile it with support for TIFF, for example).
- Bounding boxes are stored in an awkward format, which is easy to get wrong. It's referenced to the centre of the box, stored as a fraction of the image width.
- Logging is very basic. Alexey added a loss graph, but that's about it. If you restart training from a checkpoint, you only get a loss curve from where you restarted.
- Retraining on your own data can seem like dark magic. There's a lot of "copy this config file and edit these numbers" and if you get it wrong, you've wasted a day training.
If you need to use Yolo, I'd recommend looking at reimplementations in more mature frameworks like pytorch (e.g. https://eavise.gitlab.io/lightnet/ https://eavise.gitlab.io/lightnet/)