fizyr / keras-retinanet

Keras implementation of RetinaNet object detection.
Apache License 2.0
4.38k stars 1.96k forks source link

Modern resnet bakbones #1429

Closed gosha20777 closed 4 years ago

gosha20777 commented 4 years ago

We use a very old keras_resnet implementation as a backbone.

Why not replace it with a model from the official keras zoo?

Or on a model from @qubvel classification-models repository (as it is done with efn networks or as done here)

In my opinion, this will give a lot of advantages and it will be possible to use various configurations of resnet-like networks as backbones. I also don't understand why this approach is not used in tf-retinanet

hgaiser commented 4 years ago

The implementation from Keras gives some complications. It is not following the implementation from Caffe and for some weird reason it gave horrible performance in tf-retinanet. We did try it in tf-retinanet, which is implemented here. I haven't looked at the https://github.com/qubvel/classification_models repository, it might be a better fit but it didn't exist at the time.

There is at the moment also another reason involved, which is legacy. Anyone who has trained a network with the current implementation, including us, cannot just switch to another implementation, unless the layers are identical. Porting to a different implementation is therefore pretty annoying.

gosha20777 commented 4 years ago

Thanks for the quick response. I will try to add the missing backbones (resnet34, resnet18) to my implementation and train them on coco.