Hey,
thank you for your thoughts on this!
To 1: As far as i am aware QAT (assuming this means quantization aware training) is done by solely adding the following to the training config at the bottom:
graph_rewriter {
  quantization {
    delay: 1000
    weight_bits: 8
    activation_bits: 8
  }
}

Which should activate the quantization effects after the first 1000 steps of the training run. I do not know if or how i could tell if all layers are quantized by this as i was not able to find much information regarding this. (if you can point me to a good read on this topic i’d gladly take it) I train the model from scratch as my application is really narrow and other detections are not needed/unwanted. From what i can tell finetuning should have nothing to do with this no? in the end the model itself works perfect before tflite conversion.
To 2: Yes that was my thought as well but as far as i know the full quantization process needed for the coral edgetpu-compiler is only achived with this configuration:
converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]
converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8
converter.target_spec.supported_types = [tf.int8]

This however fails with an error demanding a representative dataset if none is provided.
Following the advice you gave however i ran a conversion test using only
converter.optimizations = [tf.lite.Optimize.DEFAULT]

instead. Sadly this leads to even worse results with the highest confidence beeing 21% with the wrong label and a bounding box that is not even close to the object.
Thank you for pointing me towards netron. The net setup seems valid to me, the inbetween tensor sizes could be valid as well. As for weights i am not able to see them in the tflite model for some reason. The only thing i can confirm from this is that the quantized tflite model from my original post indeed is quantized as all factors in all layers seem to be integers and the input and output each run through a (de)quantization block.
Do you think that the workflow that i use in general is not to be used to achive the desired result? I read some github issues that this in general should work.
Cheers