1

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

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

在此处输入图像描述

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

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

4

2 回答 2

1

您可以训练自己的模型,例如https://developer.apple.com/documentation/vision/training_a_create_ml_model_to_classify_flowers

于 2020-03-27T20:32:31.047 回答
1

训练模型...

.mlmodel使用包含数字时钟、计算器、血压监测器等屏幕的多达 10K 图像训练您自己。为此,您可以使用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 框架从图像中提取文本,请查看这篇文章

于 2020-03-30T12:33:10.093 回答