Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么我预先训练的mlmodel在对象识别中会如此错误?_Ios_Swift_Coreml_Createml - Fatal编程技术网

Ios 为什么我预先训练的mlmodel在对象识别中会如此错误?

Ios 为什么我预先训练的mlmodel在对象识别中会如此错误?,ios,swift,coreml,createml,Ios,Swift,Coreml,Createml,最近我想查看CoreML和CreateML,所以我创建了一个简单的应用程序,带有对象识别功能 我只为香蕉和胡萝卜创建了一个模型(只是为了一次尝试)。我使用了60多张图片来训练我的模型,在CreateML应用程序中,训练过程看起来很好 一切都很顺利,直到我在控制台上打印出结果,我看到我的模型100%相信瀑布是一个香蕉 理想情况下,我认为香蕉的输出为0%,胡萝卜的输出为0%(因为我使用了瀑布的图像) 你能给我解释一下为什么输出是这样的,并给我一些如何改进我的应用程序的建议吗 这是我的图像识别代码:

最近我想查看CoreML和CreateML,所以我创建了一个简单的应用程序,带有对象识别功能

我只为香蕉和胡萝卜创建了一个模型(只是为了一次尝试)。我使用了60多张图片来训练我的模型,在CreateML应用程序中,训练过程看起来很好

一切都很顺利,直到我在控制台上打印出结果,我看到我的模型100%相信瀑布是一个香蕉

理想情况下,我认为香蕉的输出为0%,胡萝卜的输出为0%(因为我使用了瀑布的图像)

你能给我解释一下为什么输出是这样的,并给我一些如何改进我的应用程序的建议吗

这是我的图像识别代码:

func recognizeObject (image: CIImage) {

    guard let myModel = try? VNCoreMLModel(for: FruitVegeClassifier_1().model) else {
        fatalError("Couldn't load ML Model")
    }

    let recognizeRequest = VNCoreMLRequest(model: myModel) { (recognizeRequest, error) in
        guard let output = recognizeRequest.results as? [VNClassificationObservation] else {
            fatalError("Your model failed !")
        }
        print(output)
    }

    let handler = VNImageRequestHandler(ciImage: image)

    do {
    try handler.perform([recognizeRequest])
    } catch {
        print(error)
    }

}
在控制台中,我们可以看到:

[<VNClassificationObservation: 0x600001c77810> 24503983-5770-4F43-8078-F3F6243F47B2 requestRevision=1 confidence=1.000000 "banana", <VNClassificationObservation: 0x600001c77840> E73BFBAE-D6E1-4D31-A2AE-0B3C860EAF99 requestRevision=1 confidence=0.000000 "carrot"]
[24503983-5770-4F43-8078-F3F6243F47B2 requestRevision=1置信度=1.000000“香蕉”,E73BFBAE-D6E1-4D31-A2AE-0B3C860EAF99 requestRevision=1置信度=0.000000“胡萝卜”]
图像如下所示:


谢谢你的帮助

如果只对香蕉和胡萝卜的图像进行训练,则该模型应仅用于香蕉和胡萝卜的图像

当你给它一个完全不同类型的图像时,它会尝试将它与它所学的模式相匹配,要么是香蕉,要么是胡萝卜,别的什么都没有


换句话说,这些模型的工作方式与您期望的不同。

您尝试过其他图像吗?是的,我尝试过,结果与我使用不匹配图像时的结果相同。没有“不匹配图像”这样的东西,一切都是香蕉或胡萝卜,您告诉模型的正是这一点。您只需要一个全新的模型/训练数据集。