Модель радужки MediaPipe TensorflowLite

#computer-vision #tensorflow-lite #mediapipe

#компьютерное зрение #tensorflow-lite #mediapipe

Вопрос:

Я пытаюсь понять выходные данные модели ориентиров радужной оболочки tflite, доступной в mediapipe.

На карточке модели выходные данные представлены в виде 71 2D-ориентира и 5 2D-ориентиров. При проверке модели следующим образом:

 interpreter = tf.lite.Interpreter(model_path='iris_landmark.tflite')
interpreter.allocate_tensors()
output_details = interpreter.get_output_details()

print(output_details)
[{'dtype': numpy.float32,
  'index': 384,
  'name': 'output_eyes_contours_and_brows',
  'quantization': (0.0, 0),
  'quantization_parameters': {'quantized_dimension': 0,
   'scales': array([], dtype=float32),
   'zero_points': array([], dtype=int32)},
  'shape': array([  1, 213], dtype=int32),
  'shape_signature': array([  1, 213], dtype=int32),
  'sparsity_parameters': {}},
 {'dtype': numpy.float32,
  'index': 385,
  'name': 'output_iris',
  'quantization': (0.0, 0),
  'quantization_parameters': {'quantized_dimension': 0,
   'scales': array([], dtype=float32),
   'zero_points': array([], dtype=int32)},
  'shape': array([ 1, 15], dtype=int32),
  'shape_signature': array([ 1, 15], dtype=int32),
  'sparsity_parameters': {}}]
  

Я вижу 213 значений и 15 значений в выходных данных модели — поэтому я предполагаю, что получаю координату x / y / z для каждой точки. После запуска модели на изображении я получаю значения в диапазоне от -7000 до 7000. Моими входными данными было изображение размером 64×64, есть идеи о том, как эти точки соответствуют исходному изображению?

Я хотел бы иметь пиксельные координаты ключевых точек глаза, которые отображаются в примерах mediapipe.

Ответ №1:

Карта модели кажется неправильной, на самом деле она выводит 3D-координаты, также есть некоторая нормализация на входе и выходе модели, которая неясна, но используется для рисования 2d-ориентиров.

Я открыл выпуск github с моими выводами здесь. Я не видел никаких изменений, связанных с картой модели.

Я создал colab, демонстрирующий правильное использование, здесь. Вы можете игнорировать координату z и нанести координаты x / y на свое изображение, чтобы увидеть ориентиры.

Вероятно, мне следует обновить colab примером изображения радужки.