swift - 苹果视觉框架: LCD/LED digit recognition

标签 swift machine-learning coreml apple-vision createml

我正在开发一个 iOS 应用程序,一切似乎都运行得很好,直到我 try catch 数字时钟、计算器、血压计、电子温度计等的图像。

出于某种原因Apple Vision FrameworkVNRecognizeTextRequest无法识别原始 LCD 屏幕上的文本,如下所示:

enter image description here

您可以尝试使用 Apple's sample project 捕获数字它会失败。或者您可以尝试 Vision Framework 的任何其他示例项目,但它将无法将数字识别为文本。

作为最终框架用户我可以做什么?有解决办法吗?

最佳答案

训练模型...

使用多达 10K 个包含数字时钟、计算器、血压计等屏幕的图像来训练您自己的 .mlmodel。为此,您可以使用 Xcode PlaygroundApple 创建 ML 应用程序。

您可以将以下代码复制并粘贴到 macOS Playground 中:

import Foundation
import CreateML

let trainDir = URL(fileURLWithPath: "/Users/swift/Desktop/Screens/Digits")

// let testDir = URL(fileURLWithPath: "/Users/swift/Desktop/Screens/Test")

var model = try MLImageClassifier(trainingData: .labeledDirectories(at: trainDir), 
                                    parameters: .init(featureExtractor: .scenePrint(revision: nil), 
                                    validation: .none, 
                                 maxIterations: 25, 
                           augmentationOptions: [.blur, .noise, .exposure]))

let evaluation = model.evaluation(on: .labeledDirectories(at: trainDir))

let url = URL(fileURLWithPath: "/Users/swift/Desktop/Screens/Screens.mlmodel")

try model.write(to: url)


从图像中提取文本...

如果您想了解如何使用 Vision 框架从图像中提取文本,请查看 this post

关于swift - 苹果视觉框架: LCD/LED digit recognition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60855437/

相关文章:

ios - 将 UIImageView 设置为模糊的初始状态

ios - 如何使用 Core ML 3 的 `Linked Model` 特性?

properties - 检测复合属性的变化

ios - 在另一个 Swift 方法中访问 let/var

ios - 在 UITableView 出现之前将 PFObject 在自定义类之间传递给 viewController

ios - 弃用警告 在 Create ML 中初始化时使用 DataSource 而不是 MLDataTable

ios - 是否可以在应用程序运行时在设备上训练 CoreML 模型?

machine-learning - 使用正态方程方法进行多元回归分析中的特征缩放(归一化)?

python - pytorch Faster-RCNN 的验证损失

machine-learning - 如何摆脱 'sticky' 状态?