I have a series of Neural Networks that I run on some video data. First network detects bounding boxes, then it extracts features for object tracking, matching each box to an id frame by frame and finally some other CNN is applied to all "boxes" extracted.

Naturally this is very slow and I understand that this is just so much you could do, but I wonder if there's a way to optimise this for speed?

Some suggestions I've heard is to concatenate my networks. I've used Thread class with Queue with some effect but want to try something a bit more radical

  • $\begingroup$ They are serial operations which are dependent on each other. One solution can be using lighter versions of the current models. $\endgroup$ – Media Mar 26 at 16:48
  • $\begingroup$ Probably a stupid question, but is there actually a way to "thin" them down, I can't really sacrifice a lot of accuracy and it seems that at least for bounding box detection yolov3 is as accurate as ssd but 3x faster so not sure I could find anything much faster. I only need 1 class (person) so perhaps there's a way to strip out other labels, that would only change the last dense layer which I assume won't speed up the network much $\endgroup$ – Edouardos Kim Mar 26 at 17:30
  • $\begingroup$ Yes, you can use transfer learning. But you have to train your network but not from scratch. It will thin your model! $\endgroup$ – Media Mar 26 at 17:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.