2

在会话 506 的 WWDC 2017 视频中。第一个演示中的一段代码如下所示:

let exifOrientation = self.exifOrientationFromDeviceOrientation()

自我的使用。表示它应该是来自 ViewController 的属性。鉴于此exifOrientationFromDeviceOrientation()方法在 UIViewController 类中不存在,我认为 ViewController 符合授予该功能的协议。有人可以指出是哪个协议吗?

4

4 回答 4

0

比那更糟。它指的是他们应用程序的 UIViewController() 子类中的一个函数。我在 WWDC 示例中的任何地方都找不到这个应用程序的副本——我认为他们没有包含它。

但是,这个项目似乎有一个等价物:

https://github.com/yulingtianxia/Core-ML-Sample/blob/master/CoreMLSample/ViewController.swift#L107

于 2017-09-25T20:35:46.483 回答
0

您指的是此处发布的此代码:

他们在代码中创建变量:

var exifOrientationFromDeviceOrientation: Int32 {
    let exifOrientation: DeviceOrientation
    enum DeviceOrientation: Int32 {
        case top0ColLeft = 1
        case top0ColRight = 2
        case bottom0ColRight = 3
        case bottom0ColLeft = 4
        case left0ColTop = 5
        case right0ColTop = 6
        case right0ColBottom = 7
        case left0ColBottom = 8
    }
    switch UIDevice.current.orientation {
    case .portraitUpsideDown:
        exifOrientation = .left0ColBottom
    case .landscapeLeft:
        exifOrientation = .top0ColLeft
    case .landscapeRight:
        exifOrientation = .bottom0ColRight
    default:
        exifOrientation = .right0ColTop
    }
    return exifOrientation.rawValue
}
于 2017-09-25T20:36:29.930 回答
0

请查看 Apple 的“ Training a Create ML Model to Classify Flowers ”。相关代码应该适用于 iOS 12.x。

我使用了此线程中发布的代码,却没有意识到它们不(或不再)正确。我仅在开始测试绘制边界框和分类的图像定位模型时才检测到这一点。所以如果你有同样的问题,你可以尝试更改代码。

我将回到我的分类模型,看看准确性是否有所提高。我的预期对象具有旋转不变性,因此我不希望这会发生太大变化。但是对于所有具有明确方向的模型,如果您没有正确定位,您的准确性可能会下降。

于 2018-11-05T00:38:58.433 回答
0

我强烈建议您查看https://github.com/yulingtianxia/Core-ML-Sample/blob/master/CoreMLSample/ViewController.swift,它是GitHub 上Core-ML-Sample项目的一部分。

var exifOrientationFromDeviceOrientation: Int32 {
    let exifOrientation: DeviceOrientation
    enum DeviceOrientation: Int32 {
        case top0ColLeft = 1
        case top0ColRight = 2
        case bottom0ColRight = 3
        case bottom0ColLeft = 4
        case left0ColTop = 5
        case right0ColTop = 6
        case right0ColBottom = 7
        case left0ColBottom = 8
    }
    switch UIDevice.current.orientation {
    case .portraitUpsideDown:
        exifOrientation = .left0ColBottom
    case .landscapeLeft:
        exifOrientation = .top0ColLeft
    case .landscapeRight:
        exifOrientation = .bottom0ColRight
    default:
        exifOrientation = .right0ColTop
    }
    return exifOrientation.rawValue
}

干杯!

于 2017-09-25T20:35:36.977 回答