Используйте модель TensorFlow со Swift для iOS

Мы пытаемся использовать модель TensorFlow Face Mesh в нашем приложении для iOS. Сведения о модели: https://drive.google.com/file/d/1VFC_wIpw4O7xBOiTgUldl79d9LA-LsnA/view.

Я следовал официальному руководству TS по настройке модели: https://firebase.google.com/docs/ml-kit/ios/use-custom-models, а также распечатал ввод-вывод модели с помощью скрипта Python в учебнике и получил это:

INPUT
[  1 192 192   3]
<class 'numpy.float32'>
OUTPUT
[   1    1    1 1404]
<class 'numpy.float32'> 

На данный момент я совершенно потерялся, пытаясь понять, что означают эти числа и как мне передать входное изображение и получить выходные точки сетки лица, используя модель Interpreter. Вот мой код Swift на данный момент:

let coreMLDelegate = CoreMLDelegate()
var interpreter: Interpreter
// Core ML delegate will only be created for devices with Neural Engine
if coreMLDelegate != nil {
  interpreter = try Interpreter(modelPath: modelPath,
                                delegates: [coreMLDelegate!])
} else {
  interpreter = try Interpreter(modelPath: modelPath)
}

Любая помощь будет высоко оценена!


person Roi Mulia    schedule 19.08.2020    source источник


Ответы (1)


Что означают эти цифры, полностью зависит от модели, которую вы используете. Это не связано ни с TensorFlow, ни с Core ML.

На выходе получается тензор 1x1x1x1404, что в основном означает, что вы получаете список из 1404 чисел. То, как интерпретировать эти цифры, зависит от того, для чего предназначена модель.

Если вы не проектировали модель самостоятельно, вам придется найти для нее документацию.

person Matthijs Hollemans    schedule 20.08.2020
comment
Эй, Маттис! Спасибо за комментарий. Я добавил описание модели здесь: drive.google.com/file/d/1VFC_wIpw4O7xBOiTgUldl79d9LA- LsnA/представление. - person Roi Mulia; 20.08.2020
comment
Выходные данные должны описывать трехмерную сетку лица (я думаю, это дает вам точки X Y Z ориентиров лица, поэтому вы можете учитывать глубину, если хотите) - person Roi Mulia; 20.08.2020