Converting TF2 object detection to CoreML

I've spent way too long today trying to convert an Object Detection TensorFlow2 model to a CoreML object classifier (with bounding boxes, labels and probability score)

The 'SSD MobileNet v2 320x320' is here: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md

And I've been following all sorts of posts and ChatGPT

To convert it.

I keep hitting the same errors though, mostly around:

NotImplementedError: Expected model format: [SavedModel | concrete_function | tf.keras.Model | .h5 | GraphDef], got <ConcreteFunction signature_wrapper(input_tensor) at 0x366B87790>

I've had varying success including missing output labels/predictions.

But I simply want to create the CoreML model with all the right inputs and outputs (including correct names) as detailed in the docs here: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/running_on_mobile_tf2.md

It goes without saying I don't have much (any) experience with this stuff including Python so the whole thing's been a bit of a headache.

If anyone is able to help that would be great.

FWIW I'm not attached to any one specific model, but what I do need at minimum is a CoreML model that can detect objects (has to at least include lights and lamps) within a live video image, detecting where in the image the object is.

The simplest script I have looks like this:

import coremltools as ct
import tensorflow as tf

model = tf.saved_model.load("~/tf_models/ssd_mobilenet_v2_320x320_coco17_tpu-8/saved_model")
concrete_func = model.signatures[tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY]

mlmodel = ct.convert(
    concrete_func,
    source="tensorflow",
    inputs=[ct.TensorType(shape=(1, 320, 320, 3))]
)

mlmodel.save("YourModel.mlpackage", save_format="mlpackage")

Hello,

Will the MobileNetV2 model available here in CoreML format meet your needs?

Converting TF2 object detection to CoreML
 
 
Q