【问题标题】:iOS11 vision framework mapping all face landmarksiOS11视觉框架映射所有面部地标
【发布时间】:2017-12-31 02:31:07
【问题描述】:

我正在使用视觉框架并使用此代码获取所有地标点:

if let allFaceLandmarks = landmarks.allPoints {
    print(allFaceLandmarks)
}

但找不到这些点的映射。例如右眼的索引号。

寻找与this 相同的东西,但改为使用 Vision 框架。

【问题讨论】:

    标签: ios swift image-processing face-recognition ios11


    【解决方案1】:

    我不知道为什么苹果不提供这个图形。在文档中为人们提供似乎是非常有用的信息。无论如何,我能够读取观察结果的 allPoints 属性并用数字将它们绘制出来。我不太确定鼻子和鼻冠之间的区别。你大概可以把它们画出来看看……

    • 右眉 = 0 - 3
    • 左眉 = 4 - 7
    • 右眼轮廓 = 8 - 15
    • 左眼轮廓 = 16 - 23
    • 外唇 = 24 - 33
    • 内唇 = 34 - 39
    • 面部轮廓 = 40 - 50
    • 鼻子和鼻冠 = 51 - 59
    • 梅丹线 = 60 - 62
    • 右瞳 = 63
    • 左瞳 = 64

    这是一张希望有帮助的图片!

    【讨论】:

      【解决方案2】:

      这篇文章对我很有帮助,所以我想我会为 iOS 13 更新它(问题的原始范围是 iOS 11)。从 iOS 13 开始,您将获得一组不同的点 (VNDetectFaceLandmarksRequestRevision3),除非您手动指定 VNDetectFaceLandmarksRequestRevision2 修订版。修订参数仅在 iOS12 中可用,因此您需要类似:

      let faceLandmarksRequest = VNDetectFaceLandmarksRequest(completionHandler: self.myFaceFunction)
      
      if #available(iOS 12.0, *) {
        // Force the revision to 2 (68-points) even on iOS 13 or greater 
        // when VNDetectFaceLandmarksRequestRevision3 is available. 
        faceLandmarksRequest.revision = 2
      }
      

      当我将我的 app talkr 更新到 iOS 13 时,我找不到像这篇文章中那样的新点的参考图像,所以我想我会生成一个。我希望它可以帮助别人!

      【讨论】:

        【解决方案3】:
        lefty eyebrow   : 1~4
        right eyebrow   : 5~8
        left eye        : 9~16
        right eye       : 17~24
        outer mouth     : 25~34
        inner mouth     : 35~40
        left contour    : 41~45
        chin            : 46
        right contour   : 47~51
        nose outline    : 52~60
        nose crest      : 61~63
        left tulip      : 64
        right tulip     : 65
        

        修订版3

        【讨论】:

          【解决方案4】:

          希望您已经在使用 Vision API VNDetectFaceLandmarksRequest 类来检测面部特征。

          我们找到的每个地标都是VNFaceLandmarks2D的类型

          var landmarks: VNFaceLandmarks2D? { get }
          

          如果您检查documentationVNFaceLandmarks2D 类实例属性,我们可以找到有关检测到的人脸的所有详细信息。以下是我们可以从每个地标中获得的值。

          • 所有点
          • 面部轮廓
          • 内唇
          • 左眼
          • 左眉
          • leftPubil
          • 中线
          • 鼻子
          • 鼻冠
          • 外唇
          • 右眼
          • 右眉
          • rightPubil

          都是[VNFaceLandmarkRegion2D][2]的类型

          【讨论】:

          • 感谢您的回答。我得到了 rightEyeBrow 的积分,但它返回 4 分,我需要知道哪个索引在中间。
          • 从文档中可以看到,这些点是VNFaceLandmarks2D 的类型,它是特定面部特征的二维几何信息。每个点都是一种vector_float2,它是二维向量。您可以尝试将其转换为 CGPoint 以找出中心
          猜你喜欢
          • 2017-12-03
          • 2017-12-13
          • 2017-11-10
          • 2019-06-08
          • 2017-07-10
          • 1970-01-01
          • 2018-06-13
          • 2017-12-12
          • 1970-01-01
          相关资源
          最近更新 更多