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

Machine learning 苹果视觉框架:LCD/LED数字识别,machine-learning,computer-vision,coreml,apple-vision,createml,Machine Learning,Computer Vision,Coreml,Apple Vision,Createml,我在开发一个iOS应用程序,在我尝试拍摄数字时钟、计算器、血压监视器、电子温度计等图像之前,一切似乎都很顺利 由于某些原因,无法识别像这样的原始LCD屏幕上的文本: 您可以尝试使用捕获数字,但它将失败。或者您可以尝试Vision框架的任何其他示例项目,但它将无法将数字识别为文本 作为最终框架用户,我可以做什么?有解决方法吗?您可以训练自己的模型,例如训练模型。。。 使用包含数字时钟、计算器、血压监测仪等屏幕的多达10K图像来训练您自己的.mlmodel。为此,您可以使用Xcode playde

我在开发一个iOS应用程序,在我尝试拍摄数字时钟、计算器、血压监视器、电子温度计等图像之前,一切似乎都很顺利

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

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


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

您可以训练自己的模型,例如

训练模型。。。 使用包含数字时钟、计算器、血压监测仪等屏幕的多达10K图像来训练您自己的
.mlmodel
。为此,您可以使用
Xcode playder
Apple Create ML
应用程序

以下是您可以复制并粘贴到macOS游乐场的代码:

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 framework从图像中提取文本,请查看。

很可能Vision没有经过训练来识别这些类型的数字。你可以试试谷歌的MLKit,看看它是否有效,或者试试一些OCR库,比如Tesseract。