Augmented Faces API - Как создаются лицевые ориентиры?

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

Я бы создал функцию, которая сама взяла массив в строках с необходимыми расширениями и затем перебирала на этом массиве все необходимые вызовы. Эта функция вернет общий список файлов, соответствующих адресам, которые я отправил.

Надеюсь, что это поможет.

6
задан ARGeo 27 March 2019 в 08:46
поделиться

1 ответ

  1. Новый ARCore Augmented Faces API , который работает на фронтальной камере без датчика глубины, предлагает высококачественную 468-point 3D-сетку, которая позволяет пользователям добавлять такие эффекты на их лица в виде анимированных масок, очков, ретуши кожи и т. д. Сетка предоставляет координаты и привязки к региону , которые позволяют добавлять эти эффекты.

Я твердо верю, что обнаружение лицевых ориентиров генерируется с помощью алгоритмов компьютерного зрения под капотом ARCore 1.7 . Также важно сказать, что вы можете начать работу в Unity или в Sceneform, создав сеанс ARCore с включенным режимом «фронтальная камера» и «Расширенные грани». Обратите внимание, что другие функции AR, такие как определение плоскости, в настоящее время недоступны при использовании фронтальной камеры. AugmentedFace расширяет Trackable, поэтому лица обнаруживаются и обновляются точно так же, как плоскости, дополненные изображения и другие отслеживаемые объекты .

enter image description here

Как вы знаете, 2+ года назад Google выпустила Face API, которая выполняет обнаружение лица, которое находит лица в фотографии, а также их положение (где они на картинке) и ориентация (в какую сторону они смотрят, относительно камеры). API Face позволяет вам определять ориентиры (точки интереса на лице) и выполнять классификацию, чтобы определить, являются ли глаза открытыми или закрытыми, и является ли лицо улыбающимся. Face API также обнаруживает и отслеживает лица в движущихся изображениях, что называется отслеживанием лиц.

Итак, ARCore 1.7 только что позаимствовал некоторые архитектурные элементы из Face API, и теперь он не только обнаруживает лицевые ориентиры и генерирует для них 468 точек, но и отслеживает их в в режиме реального времени со скоростью 60 кадров в секунду и придерживается трехмерной геометрии лица .

См. Google Обзор концепций распознавания лиц .

enter image description here

  1. Рассчитать канал глубины в видео, снятом движущейся RGB-камерой, не является ракетостроением. Вам просто нужно применить формулу параллакса к отслеживаемым функциям. Таким образом, если амплитуда трансляции объекта на статическом объекте достаточно высока - отслеживаемый объект находится ближе к камере, а если амплитуда объекта на статическом объекте достаточно низкая - отслеживаемый объект находится дальше от камеры. Эти подходы для расчета глубинного канала вполне обычны для таких приложений композитинга, как The Foundry NUKE и Blackmagic Fusion более 10 лет. Теперь те же принципы доступны в ARCore.

  2. Вы не можете отклонить алгоритм обнаружения / отслеживания лиц для пользовательского объекта или другой части тела, например руки. API Augmented Faces разработан только для лиц.

Вот как выглядит Java-код для активации функции Augmented Faces:

// Create ARCore session that supports Augmented Faces
public Session createAugmentedFacesSession(Activity activity) throws 
                                                      UnavailableException {

    // Use selfie camera
    Session session = new Session(activity, 
                                  EnumSet.of(Session.Feature.FRONT_CAMERA));

    // Enabling Augmented Faces
    Config config = session.getConfig();
    config.setAugmentedFaceMode(Config.AugmentedFaceMode.MESH3D);
    session.configure(config);
    return session;
}

Затем получите список обнаруженных лиц:

Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);

И, наконец, рендеринг эффекта :

for (AugmentedFace face : faceList) {

    // Create a face node and add it to the scene.
    AugmentedFaceNode faceNode = new AugmentedFaceNode(face);
    faceNode.setParent(scene);

    // Overlay the 3D assets on the face
    faceNode.setFaceRegionsRenderable(faceRegionsRenderable);

    // Overlay a texture on the face
    faceNode.setFaceMeshTexture(faceMeshTexture);

    // .......
}

Надеюсь, это поможет.

0
ответ дан ARGeo 27 March 2019 в 08:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: