我无法摆脱使用 Core ML 图像识别的程序中的错误!
我的代码基本上是经过调试的,并且可以处理大量文件,但是在 421 个文件上会发生 EXC_BAD_ACCESS 错误(我更改了处理文件的顺序以消除文件损坏的问题)我已经将所有潜在危险的对象转换为单例避免泄漏,调试和整理sqlite数据库,使用推荐的generateCGImagesAsynchronously运算符重写代码从视频文件中获取图片,所有内容都清理干净并且可以正常工作,但仍然出现错误直接提取文本对象的代码从网络上稍微升级了一下,可能是有问题吧?,求助!
CreateAltModel3.shared.handler = VNImageRequestHandler(ciImage: inputImage!)
CreateAltModel3.shared.request = VNCoreMLRequest(model: CreateAltModel3.shared.visionModel!) { [weak self] req3, error in
output_handler(req3.results) }
do {try CreateAltModel3.shared.handler!.perform([CreateAltModel3.shared.request!])} catch {print ("hadler3 error - request3")}
这是 output_handler 函数的代码
func output_handler(_ results: [Any]?) {
guard let results = results as? [VNClassificationObservation]
else {return}
for class1 in results {
if (class1.confidence > 0.05) { // Only show greater than 5%
let fileID = filesArray[currentFileIndex]?.index
if percentRecogn <= Int(round(class1.confidence*100)) {
findKeyStr = (class1.identifier + " " + String(round(class1.confidence*100)) + "%")
resultKeyStr.0 = Int64(fr)
let comma = (resultKeyStr.1 == "") ? "" : ", "
let cutDubbing = (resultKeyStr.1 == class1.identifier) ? resultKeyStr.1 : resultKeyStr.1 + comma + class1.identifier
resultKeyStr.1 = cutDubbing
resultKeyStr.2 = Int64(fileID!)
}
}
}
}
但据我所知,退出此功能后会发生错误
更多的代码传播没有意义,因为我只会用额外的信息混淆你,我只会补充一点,这段代码在全局流中循环工作,并按预期将信息输出到主流中的标签和 ImageView,以及所有内容似乎已调试,但我无法理解错误的性质,可能与流有关,但甚至不知道在哪里挖掘)
