【问题标题】:What are the input image size requirements for CoreML Vision face detectionCoreML Vision 人脸检测的输入图像尺寸要求是什么
【发布时间】:2020-01-18 04:25:01
【问题描述】:

我正在使用 Vision 框架来检测图像中的人脸。我在 Apple 的文档中找不到输入图像的要求。通常在使用机器学习模型时,尤其是在 CoreML 中使用 .mlmodel 时,它描述了所需的输入。例如Image (Color 112 x 112)

let image: UIImage = someUIImage()    
let handler = VNImageRequestHandler(ciImage: CIImage(cgImage: (image?.cgImage)!))
let faceRequest = VNDetectFaceLandmarksRequest(completionHandler: { (request: VNRequest, error: Error?) in
    guard let observations = request.results as? [VNFaceObservation]
    else {
        print("unexpected result type from VNFaceObservation")
                return
        }
    self.doSomething(with observations: observations)
})

do {
    try handler.perform([faceRequest])
} catch {
    print("Face detection failed: \(error)")
}

【问题讨论】:

    标签: swift deep-learning face-detection coreml apple-vision


    【解决方案1】:

    没关系,Vision 会自动处理这个问题。 (它可能会或可能不会在后台使用机器学习模型。)

    您确实需要确保整个面部/头部在图像中可见,否则面部检测器将无法正常工作。

    它也可能不适用于非常小的图像,但我从未尝试过。

    【讨论】:

    • 我正在从相机胶卷中获取图像。我猜它不适用于缓存 32x32 中最小的可用图像,另一方面也不需要全尺寸图像。如果他们提到建议的或最小的尺寸,我会知道要拿什么。现在我只是猜测。
    • 我在相机的 1080x1920 图像上使用它没有问题。我确信 Vision 会在内部将图像大小调整为它喜欢的任何大小。
    • 如果要处理相机胶卷中的所有照片(10k 张照片),这一点至关重要。我使用 .fasFormat 交付模式获取 224x224。我正在退化 90x120,这是 VNRequest 的输入,效果很好。但这是一种猜测
    • 我想你可以设置一个断点,然后使用调试器来逐步执行 Vision 正在执行的操作。 ;-) 肯定会在某处致电vImageScale_xxx()
    • 我读过他们的论文,描述了他们在做什么。在第一层中使用 convul​​ution 意味着您可以提供任何输入大小。也许这是一种新概念,即输入越好,输出就越好(发生)。而不是通常如何在固定输入大小上训练模型
    猜你喜欢
    • 2017-06-07
    • 2011-07-22
    • 2021-11-18
    • 2013-10-06
    • 1970-01-01
    • 2017-07-30
    • 2019-09-02
    • 2018-05-30
    • 2022-11-24
    相关资源
    最近更新 更多