swift 苹果视觉框架:LCD/LED数字识别

eit6fx6z  于 2023-01-12  发布在  Swift
关注(0)|答案(2)|浏览(198)

我在iOS上开发应用程序,一切似乎都很好,直到我尝试捕捉数字时钟,计算器,血压监测器,电子体温计等图像。
由于某种原因,Apple Vision FrameworkVNRecognizeTextRequest无法识别原始LCD屏幕上的文本,如下图所示:

您可以尝试使用Apple's sample project捕获数字,但它会失败。或者您可以尝试Vision Framework的任何其他示例项目,但它将无法将数字识别为文本。
作为一个最终框架用户,我能做些什么?有解决方法吗?

pcww981p

pcww981p1#

训练模型...

训练你自己的.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框架从图像中提取文本,请看这篇文章。

相关问题