En utilisant CoreML avec React natif
Je reçois l'erreur
étiquettes Argument '(l'image :)' ne correspond à aucun surcharge disponible
J'ai suivi ce tutoriel here et La documentation d'apple, mais quand j'ai essayé de faire le lien entre le framework et une image de React Native, j'ai commencé à avoir cette erreur. Le pont entre Swift et Reac Native fonctionne, seulement quand je commence à essayer coreML ai-je des erreurs?
Je pense que cela a quelque chose à voir avec la nouvelle syntaxe swift mais je ne suis pas sûr de savoir comment y remédier, j'ai aussi ont pas vu quelqu'un en utilisant CoreML avec React natif encore
Voici ma pleine fonction:
import Foundation
import CoreML
@objc(Printer)
class Printer: NSObject {
@objc func imageRec(_ image:CGImage) -> CVPixelBuffer? {
let model = Inceptionv3();
UIGraphicsBeginImageContextWithOptions(CGSize(width: 299, height: 299), true, 1.0)
//image.draw(in: CGRect(x: 0, y: 0, width: 299, height: 299))
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
let attrs = [kCVPixelBufferCGImageCompatibilityKey: kCFBooleanTrue, kCVPixelBufferCGBitmapContextCompatibilityKey: kCFBooleanTrue] as CFDictionary
var pixelBuffer : CVPixelBuffer?
let status = CVPixelBufferCreate(kCFAllocatorDefault, Int(newImage.size.width), Int(newImage.size.height), kCVPixelFormatType_32ARGB, attrs, &pixelBuffer)
guard (status == kCVReturnSuccess) else {
return nil
}
CVPixelBufferLockBaseAddress(pixelBuffer!, CVPixelBufferLockFlags(rawValue: 0))
let pixelData = CVPixelBufferGetBaseAddress(pixelBuffer!)
let rgbColorSpace = CGColorSpaceCreateDeviceRGB()
let context = CGContext(data: pixelData, width: Int(newImage.size.width), height: Int(newImage.size.height), bitsPerComponent: 8, bytesPerRow: CVPixelBufferGetBytesPerRow(pixelBuffer!), space: rgbColorSpace, bitmapInfo: CGImageAlphaInfo.noneSkipFirst.rawValue)
context?.translateBy(x: 0, y: newImage.size.height)
context?.scaleBy(x: 1.0, y: -1.0)
UIGraphicsPushContext(context!)
newImage.draw(in: CGRect(x: 0, y: 0, width: newImage.size.width, height: newImage.size.height))
UIGraphicsPopContext()
CVPixelBufferUnlockBaseAddress(pixelBuffer!, CVPixelBufferLockFlags(rawValue: 0))
guard let prediction = try? model.prediction(image: newImage) else {
}
}
}
Je suis confus à ce que R_D_Spend, Administration et Marketing_Spend sont? J'ai essayé de faire ceci mais j'ai la même erreur juste sur la ligne d'init. – codegeek511
R_D_Spend, Administration, Marketing_Spend sont les paramètres de mon modèle ML. Ouvrez votre MLModel dans Xcode. il montrera le paramètre d'entrée-sortie pour votre ml-modèle que vous devez utiliser à la place. – user3378829
Hmmm le paramètre est 'image' – codegeek511