【问题标题】:Apple Vision Framework: LCD/LED digit recognitionApple Vision 框架:LCD/LED 数字识别
【发布时间】:2020-07-06 09:18:57
【问题描述】:

我正在开发一个 iOS 应用程序,一切似乎都运行良好,直到我尝试捕获数字时钟、计算器、血压监测器、电子温度计等的图像。

由于某种原因,Apple Vision FrameworkVNRecognizeTextRequest 无法识别像这样的原始 LCD 屏幕上的文本:

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

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

【问题讨论】:

  • Vision 很可能没有接受过识别这些数字的训练。您可以尝试使用 Google 的 MLKit 看看是否有效,或者尝试一些 OCR 库,例如 Tesseract。

标签: machine-learning computer-vision coreml apple-vision createml


【解决方案1】:

训练模型...

使用包含数字时钟、计算器、血压监测器等屏幕的多达 10K 图像训练您自己的 .mlmodel。为此,您可以使用 Xcode PlaygroundApple Create 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

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2018-11-02
    • 2021-12-01
    • 2018-06-16
    • 2018-02-08
    • 2020-02-01
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多