Created
June 27, 2021 16:49
-
-
Save magi82/80ac54f121b7b7a1d4dadfd35b3befc1 to your computer and use it in GitHub Desktop.
ImageClassifier
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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