The difference is probably nms in tflite model.
Maybe use this after your keras model?
  

      github.com
  

  
    google/automl/blob/9c58b0b487995d5e6b95ba366cb56cff8f17cd26/efficientdet/keras/postprocess.py#L528 2



      
      
                  nms_boxes_bs[:, :, 1],
                  nms_boxes_bs[:, :, 0],
                  nms_boxes_bs[:, :, 3],
                  nms_boxes_bs[:, :, 2],
                  nms_scores_bs,
                  nms_classes_bs,
              ]
            return tf.stack(detections_bs, axis=-1, name='detections')
          
          

          
def generate_detections(params,
                                  cls_outputs,
                                  box_outputs,
                                  image_scales,
                                  image_ids,
                                  flip=False,
                                  pre_class_nms=True):
            """A legacy interface for generating [id, x, y, w, h, score, class]."""
            _, width = utils.parse_image_size(params['image_size'])
          
          
  original_image_widths = tf.expand_dims(image_scales, -1) * width