使用 MLKit ios swift 尝试化妆

Posted

技术标签:

【中文标题】使用 MLKit ios swift 尝试化妆【英文标题】:try Makeup using MLKit ios swift 【发布时间】:2020-07-31 18:50:12 【问题描述】:

任何想法,如何在面部检测中将口红涂在嘴唇上。我已经完成了颜色,但我想展示光泽和闪亮。 关于如何在 MLKit ios 应用程序中使用纹理和阴影的任何想法

我只需找到嘴唇点并创建 CAShapelayer 图层,然后填充颜色。 在 ARKit 中,我们可以使用场景包和场景视图,因此我们可以轻松添加材质和纹理等等。 但是我们如何在 mlkit 中使用

[![在此处输入图片描述][1]][1]

第一季度。是否可以在 mlkit 中使用场景视图来获取材质和纹理。

第二季度。或者如何在所有点(如嘴唇、眼睛、眉毛)中绘制图像

// MARK: Contour func
private func addContours(for face: VisionFace, width: CGFloat, height: CGFloat) 

      let facez = SCNScene()
    guard let facez =  SCNScene(named: "8.scn") else 
              return
          
    facez.rootNode.scale = SCNVector3(1,1,1)
    let multipl :CGFloat = 200.0
    let xoff :CGFloat = 0.98
    let yoff : CGFloat = 1.76
    let xp = ((face.frame.origin.x) / multipl) - xoff

    let yp = ((face.frame.origin.y) / multipl) - yoff

    facez.rootNode.position = SCNVector3(xp, yp, -1)
    facez.rootNode.eulerAngles = SCNVector3(-1,1,0)
    cameraView.allowsCameraControl = true
    cameraView.autoenablesDefaultLighting = true
    cameraView.scene = facez

    let materials =  facez.rootNode.geometry?.firstMaterial
    materials?.diffuse.contents = UIColor.red



我试过这样,

    public static func addleftImage(
  atPoint point: CGPoint,
  to view: UIView,
  color: UIColor,
  radius: CGFloat
) 
  let divisor: CGFloat = 2.0
  let xCoord = point.x - radius / divisor
  let yCoord = point.y - radius / divisor
  let circleRect = CGRect(x: xCoord, y: yCoord, width: radius, height: radius)
  let circleView = UIImageView(frame: circleRect)
    circleView.image = #imageLiteral(resourceName: "leftEye")
  circleView.layer.cornerRadius = radius / divisor
  circleView.alpha = Constants.circleViewAlpha
  circleView.backgroundColor = color
  view.addSubview(circleView)

但没有运气!

【问题讨论】:

【参考方案1】:

Q1:恐怕这超出了 mlkit 的范围。

Q2:如果有帮助,MLKit 在 swift 中有一个快速入门应用,可以显示面部轮廓点:https://github.com/firebase/quickstart-ios/tree/master/mlvision/MLVisionExample

应用了一个 transformMatrix,这是添加轮廓点的线: https://github.com/firebase/quickstart-ios/blob/master/mlvision/MLVisionExample/ViewController.swift#L845

【讨论】:

以上是关于使用 MLKit ios swift 尝试化妆的主要内容,如果未能解决你的问题,请参考以下文章

MLKit 旋转面部图像使其笔直(iOS 和 Android)

如何为 MLkit 面部检测实现 CMSampleBuffer?

Firebase MLKit 眼睛轮廓 getPoints

使用 CameraX 时,前置摄像头的 Facebase MLKit 人脸检测失败

使用位图时,Android MLKit 人脸检测未检测到人脸

react-native-firebase-mlkit textRecognizerProcessImage 不是函数