【问题标题】:How to process non-square frames from camera with CoreML?如何使用 CoreML 处理来自相机的非方形帧?
【发布时间】:2019-06-30 18:21:28
【问题描述】:

我在 Keras 中训练了一个神经网络来检测图像上的关键点。网络需要形状 (224, 224, 3) 的图像。我希望能够使用 CoreML 在 Swift 中检测图像上的关键点,但不确定如何在需要方形图像的神经网络中使用非方形形状。关于适当的预处理步骤的任何想法? Vision API 中是否内置了一些东西来帮助解决这个问题?我可以将图像压缩成正方形,但我想这会与预测的 (X,y) 关键点对混淆。

【问题讨论】:

    标签: swift keras deep-learning computer-vision coreml


    【解决方案1】:

    这取决于。原始模型是如何训练的?如果它还接受了压缩图像的训练,那么在推理过程中压缩它们就可以了。

    如果不是,并且您想保留图像的纵横比,您可能需要将VNCoreMLRequest 对象中的imageCropAndScaleOption 设置为其他模式之一。

    无论如何,您都必须将预测的关键点坐标转换回您正在显示图像的任何尺寸。当图像被压扁时这是最简单的(只需乘以宽度和高度),但在使用时会有点棘手其他imageCropAndScaleOptions。

    【讨论】:

    • 谢谢,马蒂斯。该网络在裁剪图像上进行了训练,因此听起来我将不得不使用 imageCropAndScaleOption。有什么方法可以在模型处理裁剪的图像之前查看它,以便我可以对关键点的缩放过程进行逆向工程?
    • 您可以创建一个简单的 Core ML 模型,它只输出输入图像。这让您可以看到不同 imageCropAndScaleOption 设置和任何其他预处理选项的效果。这是一个执行此操作的示例项目(来自我的 Core ML 书):github.com/hollance/coreml-survival-guide/tree/master/…
    • 非常聪明。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-03-19
    • 2016-01-18
    • 1970-01-01
    • 2019-10-09
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多