Skip to content

Instantly share code, notes, and snippets.

@magi82
Created June 27, 2021 16:49
Show Gist options
  • Save magi82/80ac54f121b7b7a1d4dadfd35b3befc1 to your computer and use it in GitHub Desktop.
Save magi82/80ac54f121b7b7a1d4dadfd35b3befc1 to your computer and use it in GitHub Desktop.
ImageClassifier
import UIKit
import CoreML
protocol ImageClassifierLogic {
var version: String? { get }
func prediction(image: UIImage?) -> [String: Double]?
}
final class ImageClassifier: ImageClassifierLogic {
var version: String? {
guard #available(iOS 13.0, *) else { return nil }
guard let imageClassifierModel = try? KarrotMLModel(configuration: MLModelConfiguration()) else { return nil }
return imageClassifierModel.model.modelDescription.metadata[MLModelMetadataKey.versionString] as? String
}
func prediction(image: UIImage?) -> [String: Double]? {
guard #available(iOS 13.0, *) else { return nil }
guard let cgImage = image?.cgImage else { return nil }
guard let imageClassifierModel = try? KarrotMLModel(configuration: MLModelConfiguration()) else { return nil }
let result = try? imageClassifierModel.prediction(input: KarrotMLModelInput(imageWith: cgImage))
return result?.scores
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment