TensorflowLite iOS示例问题

TensorflowLite iOS示例问题,ios,swift,tensorflow,tensorflow-lite,Ios,Swift,Tensorflow,Tensorflow Lite,我已经从GitHub官方帐户下载了tensorflowlite Posenet iOS示例 我能够在设备上运行该示例,但它给出了以下错误 2021-05-18 00:57:50.385071+0530 PoseNet[8112:3939417]大小调整错误:源映像比率和目标映像比率不同 2021-05-18 00:57:50.385531+0530 PoseNet[8112:3939417]预处理失败 2021-05-18 00:57:50.385797+0530 PoseNet[8112:3

我已经从GitHub官方帐户下载了tensorflowlite Posenet iOS示例

我能够在设备上运行该示例,但它给出了以下错误

2021-05-18 00:57:50.385071+0530 PoseNet[8112:3939417]大小调整错误:源映像比率和目标映像比率不同 2021-05-18 00:57:50.385531+0530 PoseNet[8112:3939417]预处理失败 2021-05-18 00:57:50.385797+0530 PoseNet[8112:3939417]无法获得推断结果。

有人遇到过这个问题吗?我们如何解决它?

我的解决方案就在这里

  • 转到CVPixelBufferExtension.swift文件

  • 第32行:func resize(从源代码:CGRect到大小:CGSize)->CVPixelBuffer? 请禁用以下代码

    //    guard abs(rect.size.width / rect.size.height - source.size.width / source.size.height) < 1e-5
    //    else {
    //      os_log(
    //        "Resizing Error: source image ratio and destination image ratio is different",
    //        type: .error)
    //      return nil
    //    }
    
    //保护abs(rect.size.width/rect.size.height-source.size.width/source.size.height)<1e-5
    //否则{
    //日志(
    //“调整大小错误:源映像比率和目标映像比率不同”,
    //类型:。错误)
    //归零
    //    }
    
  • 说明:调整大小功能首先检查当前缓冲区
    rect
    是否包含源
    rect
    ,并使用此代码
    guard rect.contains(source)else
    。而resize函数实际上是从摄影机中裁剪出帧的区域。所以它不需要验证纵横比。 这就是为什么我们可以安全地禁用代码


    这很有效。但是图书馆的行为很奇怪,它的运行速度不快,大约一年前我就用过它,它工作正常,不确定现在有什么变化,因为它的行为也不像以前那样。