Как получить точки в сетке лица, такие как глаз, бровь, губа, рот, нос, используя ARFaceTracking в Swift 4.2?

В настоящее время я получаю очки для левого и правого глаза. Как я могу получить очки для других деталей, используя ARFaceTracking или другую платформу в swift 4 в ios.

пожалуйста, дайте отзыв над вопросами?

2 ответа

Вы можете использовать вершины ARFaceGeometry. Это волшебное число. ARFaceGeometry имеет 1220 вершин и индекс 9 на носу. Это работает.

let vertices = [anchor.geometry.vertices[9]] // nose

// You can use Features Indexes with array
let features = ["nose", "leftEye", "rightEye", "mouth", "hat"]
let featureIndices = [[9], [1064], [42], [24, 25], [20]]

Здесь features - это массив имен узлов, которые вы дали каждому объекту, а featureIndices - это индексы вершин в ARFaceGeometry, которые соответствуют этим объектам. ARFaceAnchor свойство используется.

Вот несколько магических чисел для вас:

      let mouthTopLeft = Array(250...256)
let mouthTopCenter = [24]
let mouthTopRight = Array(685...691).reversed()
let mouthRight = [684]
let mouthBottomRight = [682, 683,700,709,710,725]
let mouthBottomCenter = [25]
let mouthBottomLeft = [265,274,290,275,247,248]
let mouthLeft = [249]
let mouthClockwise : [Int] = mouthLeft +
                               mouthTopLeft + mouthTopCenter +
                               mouthTopRight + mouthRight +
                               mouthBottomRight + mouthBottomCenter +
                               mouthBottomLeft
let eyeTopLeft = Array(1090...1101)
let eyeBottomLeft = Array(1102...1108) + Array(1085...1089)
let eyeTopRight = Array(1069...1080)
let eyeBottomRight = Array(1081...1084) + Array(1061...1068)
Другие вопросы по тегам