Home > Software engineering >  Increase number of detections on Tensorflow Lite's Model Maker (Android)
Increase number of detections on Tensorflow Lite's Model Maker (Android)

Time:10-13

I've adapted Tensorflow Lite's Salad Detector Colab and am able to train my own models and get them working on Android but I'm trying to count Objects and I need more than the 25 limit that is the default. The models have a method for increasing detections so, in the above Colab, I inserted the following code:

spec = model_spec.get('efficientdet_lite4')
spec.tflite_max_detections=50

And on the Android side of things

val options = ObjectDetector.ObjectDetectorOptions.builder()
    .setMaxResults(50)
    .setScoreThreshold(10)
    .build()

The models are training fine but I'm still only able to detect 25 Objects in a single image.

Is there a problem with my models? Or are there any other settings I can change in my Android code that will increase the number of detections?

CodePudding user response:

Solved this myself after Googling a different SOF question on efficientdet_lite4, I stumbled on an AHA moment.

My problem was here:

spec = model_spec.get('efficientdet_lite4')
spec.tflite_max_detections=50

I needed to change the whole spec of the model:

spec = object_detector.EfficientDetLite4Spec(
    model_name='efficientdet-lite4',
    uri='https://tfhub.dev/tensorflow/efficientdet/lite4/feature-vector/2',
    hparams='',
    model_dir=None,
    epochs=50,
    batch_size=64,
    steps_per_execution=1,
    moving_average_decay=0,
    var_freeze_expr='(efficientnet|fpn_cells|resample_p6)',
    **tflite_max_detections=50**,
    strategy=None,
    tpu=None,
    gcp_project=None,
    tpu_zone=None,
    use_xla=False,
    profile=False,
    debug=False,
    tf_random_seed=111111,
    verbose=0
)

From there I was able to train the model and things worked on the Android side of things.

This has been bugging me for a few weeks!

  • Related